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
Currently flutter only works on MainActivity. We need to implement some system to make flutter calls from background service.
Currently we queue all packets sent to the watch. We should not queue AppMessage packets to mimic classic Pebble app behavior in that regard.
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
Needs to be done since we changed the codename to avoid confusion with the Fossil watchmaker.
Current app already has rudimentary PebbleKit support, but following still needs to be done:
After this is done, all remote-related features of the pebble
command in the Pebble SDK should work.
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.
Minor optimization - when user disconnects from the watch, nothing from Cobble app should be running in the background.
Currently unregistering/forgetting a device only removed it from PairedStorage but does not unpair the device
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.
We should display an error message or something. Low priority.
Can be tested on Android Emulator.
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()
Depends on #27
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
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
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
Depends on #45
Sync should happen:
This is fairly trivial, so I think we should implement it native-only (no flutter)
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).
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": [] }
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 #15
At the moment, Location permission is only required before user scans for the watches (in the future, this will also be used for PKJS ).
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 doProbably 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.
Very low priority since there are no firmwares out yet.
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.
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
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
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:
Prerequisite components
Settings screen #90
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.
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.
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).
Watch data needs to be stored after first connection to watch so it can be accessed in the My Watches page.
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.
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.