aaaaalbert / sensibility-testbed

1 stars 2 forks source link

Re-enable/Re-think app installation #20

Closed lukpueh closed 7 years ago

lukpueh commented 7 years ago

We need to re-enable the existing app/Seattle installation procedure which looks like this:

On seash machine (e.g. laptop):

  1. Configure the installer (or use CIB Fastlane) in browser
  2. Download your key pair

On android device to be donated:

  1. Scan the QR code shown above
  2. Open CIB website in browser
  3. Click link to Google Play
  4. Download and install from there
  5. Start the app
  6. Install Python (move files from the app's res/raw dir to data dir)
  7. Download the Python (Seattle) part of the app from the CIB download URL learned through an "installer intent" from Google Play.

While we are at it, we might as well streamline the process:

~An orthogonal idea would be to self-host the App installer and re-package it with the custom seattle installer before the user installs it. This would eliminate the extra seattle download step on the device and would also facilitate re-occuring roll outs of the app.~

~Note: I haven't tried but it should be possible to just unzip an .apk file, add the seattle_android.zip including the custom vesselinfo to res/raw and re-compress.~

aaaaalbert commented 7 years ago

(I've updated the description to strike through the last two paragraphs, as that idea would force the user to accept non-Play apps.)

lukpueh commented 7 years ago

By the way, let's not forget about user feedback (#10) during the installation process.

yyzhuang commented 7 years ago

I agree with @aaaaalbert about forcing 3rd party apps.

lukpueh commented 7 years ago

@yyzhuang and @aaaaalbert: Sounds good to me. It was just a thought.

Another orthogonal thought was to ship out the base seattle android installer with the app and only download the vesselinfo from the custom install builder. Or even crazier, we could URIencode the vesselinfo and pass it as referrer to the Play Store, which is available to the app at install time and would eliminate the need for any additional download.

aaaaalbert commented 7 years ago

Base installer in the app has some appeal as there would be only one big download upfront before the app can install. It would create some slight ugliness in the app build process though.

vesselinfo in the Referer would be awesome, but URIs are oddly limited in length across HTTP client software, so I wouldn't bet on vesselinfos to get through unmangled. I don't see this happen right now.

lukpueh commented 7 years ago

Here's what I (in loose agreement with @aaaaalbert) would like to have for now: Two installation UIs (i.e. fragments) auto and manual:

auto The auto installation UI only displays a welcome text and a button that leads to the manual UI. When the app is started it should present the auto UI and perform the following actions:

Additionally, it would be nice to display some sort of user feedback while above actions are carried out (e.g. a progress bar or spinning wheel) and when the actions are finished (e.g. a Toast or notification). See https://github.com/aaaaalbert/sensibility-testbed/issues/10 for a discussion on user feedback.

manual The manual installation UI can look like the currently available UI with buttons to

The same user feedback as above would be helpful and in addition we could/should disable the buttons while the actions are carried out.

aaaaalbert commented 7 years ago

I think we can consider this issue addressed. The install-ui branch has all the GUI niceties, and the new setup docs describe the installation steps which have also been streamlined thanks to a proper Play Store release, direct QR-to-Play-Store linking, and installation process feedback on the GUI. Thanks @lukpueh and @msk610!