Delivery in day(s): 4
Mobile Application Development Assignment
This mobile application develoment assignment is related to developed a mobile app for keep record of fitness and physical activities
The aim of this exercise is to gain some experience in developing mobile applications by building an app that allows users to set fitness goals and to record physical activity towards the completion of their goal. Although there are a number of such mobile computing apps currently available offering a variety of features including automatic detection of user activities, in this exercise the focus is a much simpler app. More specifically, the app is limited to walking and focused mostly on the manual recording of user activities. This is an individual exercise that is developed incrementally in a number of stages, including some stages that allow you to go beyond full marks, over three phases. This is an individual exercise that is developed incrementally in a number of stages, including some stages that allow you to go beyond full marks, over three phases.
The stages of the app are:
- Basic activity goal setting and recording
in this stage the app allows the user to create a number of walking daily goals. Each goal comprises a number of steps the user aims to complete in a day. The app allows the user to setup a number of different goals, each identified by its own name, however only one of them is considered active at any moment in time, i.e. considered the current goal for the day. The user can also view, delete or edit any of the goals setup; however, deletion and editing are only allowed for goals that are not currently active. In addition to goal setting, the app also allows users to manually record activity towards their goal, i.e. a number of steps walked. Moreover, the app also shows to the user the number of steps walked so far in the day and clearly displays the proportion of the daily goal that has currently been completed. The user can change the currently active goal at any moment during the day, and any activity recorded so far on that day would now be transferred to the newly selected goal
- Basic activity history
In this stage, the app is extended to also persistently store the daily activity of the user over time. As a result, the app can show to the user how many steps he/she recorded on each day and the proportion of the daily goal that was completed with clear reference (by name) to the goal aimed for (i.e. the last select goal for that day). The activity history is considered final and should not be possible to change it. However, the user can clear the history at any moment, which will remove any recorded activity from the history, and start afresh from this point onwards.
- Test mode
In order to allow testing of the history functionality, the app must also have a test mode. The test mode should support the same functionality as the main mode of the app, however, it should also allow the user to specify the current date for the app, while in the main mode the date is just taken from the system. As a result, the user should be able to record activity for any day
- Enhanced activity goal setting and recording
in this stage, the app is extended to also allow activity goals to be set using distances in different units, e.g. meters, yards, kilometers and miles. When a goal set in terms of distance is active then the information about the day’s activity is shown to the user with respect to the units of the goal. For example, if a goal is to walk a certain amount of meters, then the app shows to the user how many meters he recorded walking. Although the presentation of the information is done using the units of the goal, users can choose to record their activity in terms of any unit supported by the system including steps. The app behind the scenes does the necessary translation between units. The activity history should also be presented with reference to the units of the goals it refers to
- Enhanced activity history
In this stage the app is extended to provide alternative views of the user activity history, so the user can select to see only activity recorded over the past week, the past month, or within a certain period of time. The user can also select to see only days when the goal was fully completed or was completed above or below a certain percentage. The user can also select to view activities in the history using particular units, i.e. all the activity information is translated into a particular unit. Note that these should just be alternative views of the underlying data that do not change the data themselves.
- Activity and goal statistics
In this stage, the app is extended to provide activity statistics assignment like average, minimum and maximum daily activity overall, over a week, a month, or over a period of time. The user should be able to present the statistics in the units of his choice. In addition to the activity, statistics should also be available about the goals in terms of percentage completed. The user should be able to choose whether he/she wants to see all the available statistics or just focus on some of them, similarly to the different views of the history.
- User preferences and settings
in this stage, the app is extended to allow the user to control its behavior through a number of settings. The user should be able to personalize the mapping between steps and meters (note that there is a well-known mapping between meters, yards, kilometers and miles). It should also be able to switch between normal and test mode and to select the default mode for the presentation of the activity and goal history and the statistics (basically the view that would be presented to the user). The user should also be able to set whether goals are editable or not.
- User notifications
in this stage, the app is extended to provide notifications to the user when the daily goal is completed. The user should be able to switch the notifications on and off, i.e. notifications should be treated as another user setting (see stage above).
- Step counter integration
in this stage, the app is extended to include a step counter. The user should be able in addition to manually recording activity undertaken to start and stop a step counter recording any steps counted. The phases of the development of the app are as follows.
This phase is about the design of your app. The aim is to produce a design for your app that would incorporate design best practice both in terms of the design of currently available apps and in terms of compliance with the design guidelines of your target platform and the utilization of the components it offers and the patterns it suggests. In order to do so, you should consider all the functionality above (i.e. all stages), and you should on one hand look at the design of similar apps currently available to identify common patterns and to get ideas about your own design, and on the other hand to explore the design guidelines for the platform that you are targeting. As a result, you must produce 2 presentation slides (preferably using PowerPoint). One slide should focus on your findings from currently available apps, showing visually the interesting/common patterns you identified and how this could be implemented in your target platform. The other slide should present the design for your app in a way the clear identifies the components and interaction patterns of your target platform that you plan to use. On completion of this phase, you should submit your slides on my place and be prepared to explain your slides to the class (approx. 5 minutes). The aim of the presentation of your slides is to share ideas with your classmates and to receive some formative feedback from them and the class lectures about your design on how the design can be improved in the next phase(s).
This phase is about an initial development of your design with a focus on the implementation of the first 3 stages of functionality. On the completion of this phase you should bring your implementation to the lab, where each of you will have to demonstrate your implementation to a group of your colleagues that will try to identify user interaction issues with it based on the paper “Mobile operating device interaction guidelines” and the design guidelines for your chosen platform. You are responsible for noting down the issues identified, and prepare a document that lists the issues identified and a plan of how you intend to address them. The document should be submitted on My place. The aim of this demonstration is to receive some formative feedback on your app by the class lecturer and to share ideas with your classmates on how the visual appeal and usability of the app can be improved in the next phase. Phase 3 In this phase, you complete the implementation of your app. On completion of this phase, you must submit 1. A zip file (DO NOT USE any other compression format) including the following: a. All the code for your application (ideally this should be the whole project directory to allow your code to be easily loaded by an IDE) b. A packaged executable of the app (e.g. Android ask file or similar that could be run by just loading to an appropriate device) 2. A document that a. clearly outlines the stages attempted, b. a paragraph outlining how the design of your app complies with the guidelines of your target platform and identifies any ideas adopted from similar apps, c. for each completed stage provides screenshots demonstrating the implemented functionality (the screenshots should be as far as possible complete, in demonstrating even aspects like error handling, etc.), and a paragraph outlining how it has been implemented mentioning any relevant library features used, d. a paragraph outlining how the submission has taken into consideration the feedback from phases 1 and 2.