This is an application I've written for displaying school-related data for Stockholm Science & Innovation School on a Fitbit watch!
This is my first Fitbit application ever and my first project using the Fitbit SDK, so I learned a lot and also created some relevant functions and libraries to make future development easier.
The app can be downloaded here.
The current version of the app is built for the Fitbit Versa 3 and the Fitbit Sense, the currently available devices on the Fitbit SDK v5.
The daily lunch menu is just a tap away, right on your wrist! The lunch menu is retrieved from my own API.
What's the next lesson? Worry no more ;) Using the school's own API, the schedule with lesson, room and teacher information is now also brought to your wrist.
Info
Also see the Changelog for update information.
Here is how to set up a local development environment:
The Fitbit app is inside the ssis/
folder.
App screenshots are inside the screenshots/
folder. There is also a video available in the website/
folder
called app.gif
.
A website with information about the app (work in progress) is available inside the website/
folder and currently
also at https://20alse.ssis.nu/fit.
It takes some time to learn the Fitbit SDK. If you have not used it before, here are some great documentation pages that may help you (this is not a complete list, you'll have to do some searching yourself):
- Clone the repository.
- Run
npm install
. - Although testing live is the best, getting the Fitbit OS simulator is great for quickly debugging changes. After downloading, make sure to configure it for the Versa 3 by navigating to "Settings"->"Device type" and choose "Versa 3" (atlas) or "Sense" (vulcan).
- Now you can
npx fitbit
. You might have to log in if it is your first time using the tool. - For building and installing the app, type
bi
(short forbuild-and-install
). For installing the app without rebuilding, typeinstall
. - Before committing, take use of the automatic code formatting on commit (Prettier) by using Pre-commit.
Run
pre-commit install
to install the code formatter.
Other that the Fitbit SDK tools, Luxon is the only dependency.
This project uses icons from the Material Design Icons. They are in the resource/
folder.
Material Design Icons is licenced under Apache 2.0. Many thanks for great icons!
-
Automatically scroll to active schedule item
-
Implement backswipe functionality (backswiping currently will exit the app)
If you have your phone with you, there's a possibility your phone took a while to connect and that everything will work if you close the app and then open it again.
The connection interface from the watch to your phone (used for retrieving the menu and schedule) is a part of Fitbit's API. You should probably try the troubleshooting from Fitbit. In extreme cases, it might also help reinstalling the app. If you believe there is an error in my code, you're welcome to open a pull request!