pebble-dev / mobile-app Goto Github PK
View Code? Open in Web Editor NEWRebble device companion app for iOS and Android
License: Apache License 2.0
Rebble device companion app for iOS and Android
License: Apache License 2.0
App should sync all user's calendar events to the watch's timeline.
User should also be able to select which calendars should be synced.
Depends on #15
It should work somewhat like this:
Actions that should be on timeline pins:
Sub-tasks (WIP in https://github.com/matejdro/mobile-app/tree/calendar):
isVisible
(if pin is visible) and persistQuickView
(if quick view is persisted during event duration) timeline flags doI will create a workable UI prototype in Figma that performs all of the listed functions in the milestones below. The figma file is located at https://www.figma.com/file/mXl0svBSnlGV2MKfTj8H7e/Mobile-app?node-id=121%3A424
I will create a workable UI prototype in Figma that performs all of the listed functions in the milestones below. The figma file is located at https://www.figma.com/file/mXl0svBSnlGV2MKfTj8H7e/Mobile-app?node-id=121%3A424
Support/Community links page
Developer features
After watch connects, we should fetch:
of the watch and make it available inside phone app (for the display in the "My Watch" menu and for AppMessage purposes).
After this is done, all remote-related features of the pebble
command in the Pebble SDK should work.
I will complete tasks in the Basics and Apps milestones that have not been taken by the @crc-32 yet:
App installation fro pbw file (#33)
Store app locker on the phone (#34 - This task is prerequisite for both me and @crc-32. We have agreed that whoever needs it first, implements it)
Complete PebbleKit Android implementation (#37)
Add support for Sports and Golf apps (#38)
Complete developer connection implementation (#47)
โ๏ธ Add Data Logging support (#39) WON'T DO
I will create a workable UI prototype in Figma that performs all of the listed functions in the milestones below. The figma file is located at https://www.figma.com/file/mXl0svBSnlGV2MKfTj8H7e/Mobile-app?node-id=121%3A424
Add support for Data Logging: https://developer.rebble.io/developer.pebble.com/guides/communication/datalogging/index.html
I'm not aware of any Android app that actually uses this, but in the worst case, I will whip some testing app myself so I can test this feature out.
Currently notification access code is very crude and lets through most notifications (including ones that shouldn't be on the watch such as Play Store updates).
We should improve that logic.
Line 23
onGenerateRoute: Router.generateRoute,
showing error.
{ "resource": "/Users/kent/Developer/mobile-app/lib/main.dart", "owner": "dart", "code": { "value": "ambiguous_import", "target": { "$mid": 1, "external": "https://dart.dev/tools/diagnostic-messages#ambiguous_import", "path": "/tools/diagnostic-messages", "scheme": "https", "authority": "dart.dev", "fragment": "ambiguous_import" } }, "severity": 8, "message": "The name 'Router' is defined in the libraries 'package:flutter/src/widgets/router.dart' and 'package:fossil/ui/Router.dart'.\nTry using 'as prefix' for one of the import directives, or hiding the name from all but one of the imports.", "source": "dart", "startLineNumber": 23, "startColumn": 24, "endLineNumber": 23, "endColumn": 30, "tags": [] }
Sync should happen:
This is fairly trivial, so I think we should implement it native-only (no flutter)
Those apps are basically just regular apps that communicate via AppMessage. What needs to be added is customization feature that allows mobile apps to change the name of the app (so apps would say "Strava" instead of just generic "Sports" for example).
I'm not aware of any Android app that uses golf, but in the worst case, I will whip some testing app myself so I can test this feature out.
This would make development much easier since I won't have to go to devices and wait for scan completion to test anything. I can take a stab at it if you wish.
Similarly to original Pebble app, new app should also be able to install pebble apps from pbw files.
Upon tapping on pwb file in any file browser app (or in browser's downloads list), Cobble app should open, displaying information about the app and offering user to install it.
Progress in https://github.com/pebble-dev/mobile-app/tree/pbw_install:
Stage 1:
Stage 2:
Stage 3:
Note that deigns on this are incomplete. On Android we have two stages of this option: first stage only mutes notifications while second stage also mutes phone calls. Current designs only display single toggle.
Depends on #27
Currently a release build fails with the following:
/home/crc32/Documents/fossil/build/app/tmp/kapt3/stubs/release/io/rebble/fossil/di/AppComponent.java:8: error: [Dagger/DependencyCycle] Found a dependency cycle:
public abstract interface AppComponent {
^
error.NonExistentClass is injected at
io.rebble.fossil.di.LibPebbleModule.provideBlobDbService(protocolHandler)
error.NonExistentClass is requested at
io.rebble.fossil.di.AppComponent.createProtocolHandler()
We should display an error message or something. Low priority.
Can be tested on Android Emulator.
Depends on #15
Current app already has rudimentary PebbleKit support, but following still needs to be done:
I will create a workable UI prototype in Figma that performs all of the listed functions in the milestones below. The figma file is located at https://www.figma.com/file/mXl0svBSnlGV2MKfTj8H7e/Mobile-app?node-id=121%3A424
Onboard new users
Core features
Minor optimization - when user disconnects from the watch, nothing from Cobble app should be running in the background.
Depends on #45
Currently we queue all packets sent to the watch. We should not queue AppMessage packets to mimic classic Pebble app behavior in that regard.
Currently unregistering/forgetting a device only removed it from PairedStorage but does not unpair the device
Depends on #15
At the moment, there are two ways to do this on Android:
The old Bluetooth Intent way (like original Pebble app) - This allows user to pick one app in the settings (or on the watch) and always control that app. Big pro of this method is that user can start playback even when app is not active. Con is that many modern music players (such as Youtube Music or Google Podcasts) do not support that anymore, so user cannot control those apps.
New Notification Service way. This one is more modern and supports pretty much all media apps. Con of this is that it only controls last active app (user cannot switch between Podcasts and Spotify for example). Also this method has more information on playback (such as current position in track).
Which path should we take? I lean for for the second option.
Currently all strings in the app are hardcoded english. At some point, we should add https://flutter.dev/docs/development/accessibility-and-localization/internationalization to the project.
Just a small request: Could you export your code style config from Android Studio and commit it into project? That way there aren't any code style discrepancies with external commits.
Currently flutter only works on MainActivity. We need to implement some system to make flutter calls from background service.
Needs to be done since we changed the codename to avoid confusion with the Fossil watchmaker.
This is to allow people to test the app without us manually sending APKs.
Ideally, at this early stage, location of these builds should be a bit secluded, so only people that know what are doing can get the build (and we are not swamped by lots of bug reports on unfinished app).
Prerequisite components
Settings screen #90
Watch data needs to be stored after first connection to watch so it can be accessed in the My Watches page.
Probably only needed on Android.
Prompt needs to be displayed:
Note that after our prompt, system prompt will show up asking user if he allows Cobble to access notifications.
At the moment, Location permission is only required before user scans for the watches (in the future, this will also be used for PKJS ).
Very low priority since there are no firmwares out yet.
I will create a workable UI prototype in Figma that performs all of the listed functions in the milestones below. The figma file is located at https://www.figma.com/file/mXl0svBSnlGV2MKfTj8H7e/Mobile-app?node-id=121%3A424
Onboard new users
Core features
Locker
Health
Support/Community links page
Developer features
I think logging (especially file logging) should be left to the native since it can run all the time. But Flutter code should have a way to hook into it and transmit logs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.