Collect: Easier white-labelling of app

Created on 9 Nov 2016  路  2Comments  路  Source: getodk/collect

A lot of forks are shallow (e.g., name change and icon) and eventually fall out of date. This seems wasteful. If there is a way we can do this (either some web service where we swap out the manifest and namespace) or improved runtime assets, that'd be awesome.

enhancement needs discussion

Most helpful comment

I've looked into this per @yanokwa's request. Here are some thoughts:

Goals

  1. Let folks provide branded experience
  2. (Preferrably) ensure that users can still receive automatic updates

Options

  1. App launcher icon & title (shown in the list of apps and by default on the homescreen)
  2. Shortcuts on the home screen
  3. Icons / color scheme / app name shown in the app itself

App launcher icon & title

Because both are set in manifest file they cannot be configured during runtime, making changes there will require building the app (and distributing it outside of primary Play Services channel).

We can definitely simplify the process there by providing clear instructions and scripts that would do bulk of the work. Admins then would just drop PNG file with the icon / edit text file and run the script, which will automatically check out the most recent release and replace icon / app name in there.

Of course, to distribute updates admins would need to run script again and distribute apk file manually (or submit it to the play store).

Alternatively we could build a web service where users could upload app icon / specify app name, web service then would unpack original unsigned apk file, make changes and pack it again for user to download.

Generating custom APK files is the only way to ensure that new icon/app name will show up everywhere but its main downside is manual distribution of updates.

Shortcuts & Widgets

If admins are mostly concerned with branded experience for when users launch the app, we could let them create shortcuts on the home screen with custom icons / text.

Flow would be something like this:

  1. Admin goes into Settings
  2. Chooses an option to create a shortcut
  3. Selects png file for the icon and app name
  4. Taps button and new shortcut gets created

To the end user launching app from home screen it would seem as it's a branded app (however if they go to the list of all apps, original icon/name will be shown).

A slight variation of this is creating a widget instead of a shortcut. Widget can take more space on the screen (for easier launching) and / or provide additional functionality (present a list with a blank form etc).

Inside the app

We can let Admins brand experience within the app through Settings where they will be able to select an image, perhaps an accent color and customize name being displayed. This would not affect any experiences outside the app.

All 2 comments

I've looked into this per @yanokwa's request. Here are some thoughts:

Goals

  1. Let folks provide branded experience
  2. (Preferrably) ensure that users can still receive automatic updates

Options

  1. App launcher icon & title (shown in the list of apps and by default on the homescreen)
  2. Shortcuts on the home screen
  3. Icons / color scheme / app name shown in the app itself

App launcher icon & title

Because both are set in manifest file they cannot be configured during runtime, making changes there will require building the app (and distributing it outside of primary Play Services channel).

We can definitely simplify the process there by providing clear instructions and scripts that would do bulk of the work. Admins then would just drop PNG file with the icon / edit text file and run the script, which will automatically check out the most recent release and replace icon / app name in there.

Of course, to distribute updates admins would need to run script again and distribute apk file manually (or submit it to the play store).

Alternatively we could build a web service where users could upload app icon / specify app name, web service then would unpack original unsigned apk file, make changes and pack it again for user to download.

Generating custom APK files is the only way to ensure that new icon/app name will show up everywhere but its main downside is manual distribution of updates.

Shortcuts & Widgets

If admins are mostly concerned with branded experience for when users launch the app, we could let them create shortcuts on the home screen with custom icons / text.

Flow would be something like this:

  1. Admin goes into Settings
  2. Chooses an option to create a shortcut
  3. Selects png file for the icon and app name
  4. Taps button and new shortcut gets created

To the end user launching app from home screen it would seem as it's a branded app (however if they go to the list of all apps, original icon/name will be shown).

A slight variation of this is creating a widget instead of a shortcut. Widget can take more space on the screen (for easier launching) and / or provide additional functionality (present a list with a blank form etc).

Inside the app

We can let Admins brand experience within the app through Settings where they will be able to select an image, perhaps an accent color and customize name being displayed. This would not affect any experiences outside the app.

This has become more of a governance issue and is tracked at https://github.com/opendatakit/roadmap/issues/22.

Was this page helpful?
0 / 5 - 0 ratings