BasedHardware / omi

AI wearables
https://omi.me
MIT License
3.69k stars 475 forks source link

Easy onboarding for app developers, they shouldn't to build the backend #1131

Open beastoin opened 1 month ago

beastoin commented 1 month ago

Send them:

  1. API_BASE_URL: https://based-hardware-development--backend-api.modal.run/
  2. Android Debug Jks, *we create one and add to firebase dev https://stackoverflow.com/questions/51845559/generate-sha-1-for-flutter-react-native-android-native-app/56091158#56091158
  3. Firebase Service Account Key firebase_dev_key.json
  4. GoogleService-Info.plist

That's all!

Don't forget finish prerequisites https://docs.omi.me/get_started/Setup

Command lines might help:

$ dart pub global activate flutterfire_cli

$ flutterfire config --platforms="android,ios" --out=lib/firebase_options_dev.dart --ios-bundle-id=com.friend-app-with-wearable.ios12.development --android-app-id=com.friend.ios.dev --android-out=android/app/src/dev/  --ios-out=ios/Config/Dev/ --ios-target="Runner" --yes --service-account="firebase_dev_key.json" --project="based-hardware-dev"

# to bypass the compile error, product only
$ flutterfire config --platforms="android,ios" --out=lib/firebase_options_prod.dart --ios-bundle-id=com.friend-app-with-wearable.ios12 --android-app-id=com.friend.ios.dev --android-out=android/app/src/prod/  --ios-out=ios/Config/Prod/ --ios-target="Runner" --yes --service-account="firebase_dev_key.json"  --project="based-hardware-dev"
beastoin commented 1 month ago

hi @adamcohenhillel feel free to ask me anything.

josancamon19 commented 1 month ago

I think most people want to run the backend and point the app to it instead, but your call guys.

mdmohsin7 commented 1 month ago

I agree with @josancamon19, app devs don't want to run their own backend for app specific changes and backend devs don't want to build their own app fir backend specific changes

beastoin commented 1 month ago

the story is, Adam called me and asked if he could help with the app developer onboarding. that's why we have this ticket, target on the app dev.

what about the backend dev? for sure bruh. we have to make their onboarding easier too. but, who want to join the ticket for backend dev ? lmk then i will take some note.

as for users? no plan for now.

josancamon19 commented 1 month ago

And you guys sure that the developers we need are the mobile devs? not the back ones / integrations?

beastoin commented 4 weeks ago

what about the backend dev? for sure bruh. we have to make their onboarding easier too. but, who want to join the ticket for backend dev ? lmk then i will take some note.

burhhh...

beastoin commented 4 weeks ago

hi @adamcohenhillel any question sir ?

adamcohenhillel commented 3 weeks ago

Yo @beastoin , sorry haven't seen your comments here.

@josancamon19 - The focus on app devs is mainly to push forward the app store inside of Omi - and not for onboarding devs to help improve Omi itself - that is something separate.

@beastoin - I understand all these steps, I did them myself, but imo this is too complicated for a 3rd party person who don't know us to follow. Like - they literally need us to add their key sha to firebase

ANy ideas how can we simply this?

josancamon19 commented 3 weeks ago

Can you show me a repo that's easy to onboard?

| @josancamon19 - The focus on app devs is mainly to push forward the app store inside of Omi

Then you need to be able to change the back url from the app, or let the use e.g. development, which I think we already are

josancamon19 commented 3 weeks ago

cc https://github.com/orgs/BasedHardware/projects/1/views/1?pane=issue&itemId=85289036&issue=BasedHardware%7Comi%7C1212

beastoin commented 3 weeks ago

they literally need us to add their key sha to firebase

@adamcohenhillel we do this step, just send them jks file. i just updated the description to clarify it. for short: we give them the api path + 3 files, that's all.

kodjima33 commented 3 weeks ago

@beastoin no one will manually send anything to the devs

only if this will be publicly accessible than it might work

I've removed @adamcohenhillel from this task as seems he is busy with his own app rn

@beastoin we need someone to be assigned here asap

beastoin commented 3 weeks ago

publicly accessible

ofc man

adamcohenhillel commented 3 weeks ago

Sure Nik feel free to remove me - all up to you.

The solution I came up with to make it a bit simpler is: Create a public dev public keystore, and place it in the repo together with the rest of the code.

This will allow us to have 1 dev keystore we can sign and add its sha256 ans sha1 to the Firebase project

that way we are not blocking devs to jump on the repo

We potentially can do something similar with the other 2 files

adamcohenhillel commented 3 weeks ago

Feel free to let someone else implement this.

Either way - it needs to come with a FULL youtube video of 5 mins on how to setup local frontend app and develop your first app with Omi

A few more words in docs wont do

mdmohsin7 commented 3 weeks ago

In the long run, we should move authentication to the backend so that there's no dependency on Firebase in the app (except for notifications). This would also make things easy for backend devs as well (they can just simply set their backend URL in the prod app)

adamcohenhillel commented 3 weeks ago

@mdmohsin7 you'd still need furebase auth in that case^

mdmohsin7 commented 3 weeks ago

@mdmohsin7 you'd still need furebase auth in that case^

For the app?

beastoin commented 3 weeks ago

@mdmohsin7 do you want to join this task ? if yes, pls finish in-progress tickets then move to this task. if no, i will find someone else but next week.

mdmohsin7 commented 2 weeks ago

My Proposal:

For short-term:

For long-term: