Code Monkey home page Code Monkey logo

doorbellbotnative's People

Contributors

anskaal avatar designatednerd avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

doorbellbotnative's Issues

Persisted Secure Settings

Add something which allows us to securely store access tokens or other settings which should not be stored unencrypted - Keychain on iOS, probably KeyStore on Android.

Setup Firebase Push Notifications project

Set this up on a B&B account with fairly low limits.

  • Allow sending of notifications to a list of iOS and Android devices
  • Allow sending of silent push notifications to a list of iOS and Android devices
  • Allow registration and de-registration of devices for push

Persisted simple settings

Non-secure persisted settings - probably some kind of wrapper around User Defaults and SharedPreferences.

Simple Push Handling - Android

  • Kick the user to the Open Door screen if they tap on the push notification
  • Clear push notifications if the door has been opened.

Create Setup Instructions View Model

Set up a view model for the various pages of instructions to get Doorbell Bot set up.

  • How many pages should be on it?
  • What text should be displayed?
  • Is there an image which should be displayed with it?
  • Is there anything the user needs to do before moving on to the next page?

Advanced Push Handling - iOS

  • Add UI and options for admit/deny on the notification
  • Send command to modem directly from the notification itself

Advanced Push Handling - Android

  • Add UI and options for admit/deny on the notification where supported
  • Send command to modem directly from the notification itself

Research ktor on 1.3

Initial research led to some issues with ktor, but that was before the official release of Kotlin 1.3 and the Native beta. Determine:

  • Is there any way to use ktor without coroutines?
  • Have the issues around using coroutines on K/N at least been cleared up to the point where they're usable?
  • Is there any alternative to ktor for Raspberry Pi if neither of the above are happening?

Research if there's a way to set up push notifications with firebase that would work with K/N

We want to use Firebase push notifications for the sake of not having to set up our own push server which can hit both iOS and Android.

  • Is there a Kotlin/Native SDK for Firebase?
  • Is there an HTTP way to submit push tokens which we could use from either iOS or Android?
  • Is there a way to create a method which delegates to the native app itself to submit something?
  • Or do we need to do this natively in each app?

Research options for sharing localized strings

We should try to keep localization contained within the native core.

  • Does anything already exist for that?
  • If it doesn't, how should we do that, particularly given that you can't really stick raw data files into a K/N shared framework?

Doorbell Open ViewModel

Create a ViewModel for an Open Door screen.

  • Button title to open door
  • Any other copy
  • Notification to dismiss if the door has been opened by someone else
  • Copy for alert to user that door was opened by someone else.

Mobile Apps Networking Core

Once #1 is done, set up shared networking to allow iOS and Android to GET / POST / PATCH / PUT / DELETE data easily from an arbitrary base URL.

  • If we can use ktor, use that
  • If not, use expect fun to set up ways to access things on different platforms.

Settings View Model

Shared view model for settings:

  • Settings names
  • Settings current values
  • Ability to update current value and have it persist locally

Simple Push Handling - iOS

  • Kick the user to the Open Door screen if they tap on the push notification
  • Clear push notifications if the door has been opened.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.