Actifit Android V0.4.1-0.4.4 Beta Development Updates

in #actifit5 years ago (edited)

Repository

https://github.com/mcfarhat/actifit

Introduction

Another round of development updates have been implemented on Actifit Android version, with the key theme of this update being our major roll out of the first official Fitbit integration!
This is a major change as the integration touches upon several aspects of Actifit experience, which required adding new settings, tracking modes, optional items for Fitbit sync, storing the data, and other enhancements as explained below.
Few other additional changes have been added including bug fixes, new logging system, as well as better notifications on phone incompatibility detection.



Technology Stack

The mobile app is built on Android native (JAVA).

Work Done:

The work involved changes for versions 0.4.1-0.4.4 Beta, detailed below. Commit Links are following:
Commit Link
Commit Link

Fitbit Integration Work:

Fitbit integration has been a long awaited feature, and is a key growth indicator of Actifit as we start the integration with one of the largest used wearable on a global scale, with more than 25 million active users. Below is some of the work that has been accomplished on this end:

  • Implement Fitbit integration allowing syncing account data to Actifit: We implemented a connector integration with Fitbit, that enables any user with a Fitbit device, after syncing their device data to their Fitbit account, so also sync this data to their Actifit device. This required performing an oauth2 with Fitbit, to receive a proper token after having the user's consent to the scope of data, and then calling Fitbit APIs to grab the relevant required data
    The format being used for fetching step activity follows Fitbit standard using https://api.fitbit.com/1///user/[user-id]/[resource-path]/date/[date]/[period].json



    Fitbit Sync Button

  • New settings for choosing tracking mode (phone sensors v/s Fitbit): We implemented a new setting that allows disabling current active trackers (or enable them again) if the user wishes to disable their phone sensors and simply rely on Fitbit. This will disable all tracking, save battery life, the user will though need to ensure they use above Fitbit Sync key, otherwise they won't have any tracked activity for the day.

  • New settings for choosing to include Fitbit measurements within the sync: We also developed the app so as the user will have the capability to decide whether they want their measurements data (height and weight) to be pulled or not.
    All settings data is being stored as SharedPreferences within the Android app to allow persistance throughout opening and closing the app.



    New Fitbit Related Settings

  • Storing Fitbit data in place of device data: To make the experience fully fledged from an activity history perspective, when the user posts their Fitbit activity, this tracked activity will also be stored on the local device database. This required the creation of a new function that enables such tracking and storage, as manual data storage was not available as part of prior automated device tracking.

  • Display of Fitbit Tracking Mode in place of actual activity count on Fitbit mode: Since using Fitbit mode no longer tracks device sensors, we also adjusted the layout for the main screen, and modified the relevant displayed info so as a Fitbit Tracking Mode On message is displayed instead of the actual activity count. (see post's first figure)

Other Enhancements & Bug Fixes

Several other items are now part of the app, including:

  • Modify all logging system from standard console to an innate Java logging platform across the app.
  • Display proper notifications on potential phone incompatibility issues. Our prior update involved several security measures, which prevented Actifit from running on devices without a valid Sim card, devices with suspicious apps, emulators and/or rooted devices. We now enabled proper notifications so as the user is aware what issue has been detected on his phone to act accordingly.
  • Fix issue with Sim Card detection. Prior version had issues with proper Sim Card detection in case of multi Sim card. Users now receive a relevant notification under this scenario

Roadmap

Further continuous improvements will be done on the actifit app, including distance tracking, map component, calorie consumption, wearable integration, iOS version updates, further security implementations and much more...

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 different contributors to our project. More official tasks are continuously announced :)

GitHub Account

https://github.com/mcfarhat

Sort:  
  • Great step forward with the fitbit integrations
  • The loggings looks better now, good job.
  • When looking at the code something caught my eye:

    Code redundancy. There are better ways to do this I'm sure as explained in this JournalDev

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thank you, and great "catch" about the combined exception handling! Merged :)

Thank you for your review, @helo! Keep up the good work!

so i have an iphone if my kids bought me a fitbit for this christmas would that fit in your timeframe:)

we are trying our best to make that happen ASAP on iphone too :)

Damn. That's great progress. Happy Dance..

Yeah!!! I was waiting for this update!!

Wow Amazing ! :)

recently post alarm doesn't work ! :(

Actifit ♥ LOVE ♩♬

Posted using Partiko Android

oh, please chat to us on discord to better explain your issue

the alarm is working ok since yesterday ! :)\nthanks !

Posted using Partiko Android

@mcfarhat, sorry to go off topic, but is there a way for us to switch the Steem awards to 100% STEEM?

coming right up in next update ;)

thank you, with the steem value being in the dumps, it will be greatly appreciated that actifit facilitates members getting the most value. :)

Hi, @mcfarhat!

You just got a 0.17% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

Hi @mcfarhat!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @mcfarhat!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Great work.

A question - imported data and device data exclude each other, don't they? On a daily basis?

Do you have a list of devices that you plan to support? So I know what to buy :)))

No, seriously. I would very much like that @actifit will support Xiaomi Mi band family and Huami Amazfit watches. This way you will onboard the whole of China, the biggest market on this planet.

Thank you very much.

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.034
BTC 63453.92
ETH 3283.73
USDT 1.00
SBD 3.89