Repository
https://github.com/mcfarhat/actifit
Introduction
This development update is another iteration in the development life cycle of our Actifit project, particularly the Android app.
The update covers commits versions 0.2.1, 0.2.2, and 0.2.3, which are planned to be released within the week to the public.
Recap - What is Actifit ?
Actifit is a innovative SMT (Smart Media Token) that rewards fitness related activity via Actifit tokens. The process goes as follows:
1- Download the app from playstore
2- App Auto tracks your Activity
3- Post to steemit and get rewarded
If you'd like more info on the project, check out our initial announcement here as well as the recent update
Technology Stack
The project's mobile app is built using native Android (Java) via Android Studio and SQLite db for storing on-device information.
What work has been done?
Version 0.2.1 - which involved the following work : commit link
- Creating new wallet view with relevant classes: We are giving our users access to the wallet from within the app. We believe this is really helpful and makes checking on their current token count and related transactions real helpful.
- Implementing "Volley" based connectivity under new android SDK: We decided to rely on the Volley package to connect to the API service as the speed optimization and caching mechanism is quite impressive. The package supports proper JSONObject and JSONArray direct implementations, which we were able to utilize to properly fetch our wallet view data.
Version 0.2.2 - which involved the following work: commit link
- Adding automated loading of account data on wallet screen opening: Wallet screen now auto-loads the user's account information via the account configured from the post to steemit screen.
- Adding settings for measurement system: We created a setting screen, in which we included a setting for choosing proper measurement system, in preparation for upcoming functionality of tracking measurements.
- Adding back button confirmation to avoid leaving the app promptly: One of the concerns was lack of movement tracking via accidental exit of the app by clicking the back button. We implemented a confirmation toast to ensure action is intended to exit the app.
Version 0.2.3 - which involved the following work: commit link
Switching movement tracking to a service instead of an activity: Activities risk being killed by Android once gone to background, services, particularly foreground ones have less likelihood of doing so. So we switched our implementation into an activity connected to a Foreground service
Adding locked screen display and notification of actifit activity tracking: in line of the switch above, we created a new foreground notification which allows the user to easily keep track of his movement for the day without the need to unlock the phone
Adding aggressive background tracking mode and a relevant setting for it: an issue that was frequently reported by few phones is the inability of the phone to track movement in screen off mode. We implemented a wake lock approach via connecting to the power manager to overcome this limitation, and made this a setting so as only affected devices would turn on the option, as it has the potential to increase the battery consumption
- Adding automatic trimming of white spaces from username, switching it to lowercase, and removing @ to conform to steemit username structure all on the screen of posting to steemit to avoid problems reported by users.
- Switched some left over occurrences of "steps" wording to activity.
Roadmap
We already accomplished some of the items we had on our prior roadmap, yet the project is still in infancy, with the following functionality planned for now:
- Creating an iOS version
- Adding image upload functionality from the app
- Adding calories, distance, GPS, and time tracking
- Adding charity-oriented activity and donations (more on this soon :) )
- Adding goal tracking
- Adding a forget credentials (user and posting key) for removing user account info off the device (it is not stored anywhere online anyhow)
- Adding capability to store and track age, weight, measurements and progress
- Graphics based and look and feel enhancements
How to contribute?
You can chat to us on the official actifit discord, or to me in discord private @mcfarhat#6013.
Contributions are accepted as pull requests to the official github repo.
We are having continuous tasks assigned to devs who are more than helpful. More official tasks announced soon :)