Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] App upgrade in-app notification #1642

Closed
sync-by-unito bot opened this issue May 26, 2022 · 12 comments
Closed

[FR] App upgrade in-app notification #1642

sync-by-unito bot opened this issue May 26, 2022 · 12 comments

Comments

@sync-by-unito
Copy link

sync-by-unito bot commented May 26, 2022

User Story: as a Capture app user, I want to be notified that I can upgrade the App and get latest feature when I open the App. If there are breaking changes make old App unusable, the App can enforce redirection to upgrade page instead of let me use broken functionality.

┆Issue is synchronized with this Asana task by Unito
┆Created By: James Chien

@sync-by-unito
Copy link
Author

sync-by-unito bot commented May 26, 2022

➤ James Chien commented:

Need backend support first

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 6, 2022

➤ Sam commented:

James Chien is there any update on backend support?

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 6, 2022

➤ Sam commented:

Tammy Yang while backend is being prepared. I will develop things needed on capture-lite side.

I don't see any UI proposals so I come up with copy solution from Discord. I remember on discord when there is a new update they always show dialog (on app launch) to see attachments

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 6, 2022

➤ Sam commented:

Tammy Yang here is the proposal for UI and logic on the capture-lite part.

When a user launches the app

  • I check the backend if we have an update
  • If we have an update I pull change log from (backed) a markdown text

If there and update use will see something like this https://imgur.com/jDMZq26 ( https://imgur.com/jDMZq26 )
they will read and scroll down at the end we show Dismiss or Update app button

I think fetching markdown text from backend is convenient because styling (sample ( https://co-pilot.dev/static/checklists/changelog/examples/vue-cli.png )) can be done on backend with markdown text and capture-app just display the markdown with ngx-markdown ( https://jfcere.github.io/ngx-markdown/get-started ) library

Let me know if this approach is okay.

Also James Chien what backend api will provide?

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 6, 2022

➤ James Chien commented:

Sam
Here's the backend API for retrieving app update version info. Currently it is hardcoded on dev site, but it will be editable with admin account later in the incoming release.

https://dia-backend-dev.numbersprotocol.io/api/v3/redoc/#operation/services_app_info ( https://dia-backend-dev.numbersprotocol.io/api/v3/redoc/#operation/services_app_info )

latest_app_version: will be version string, ex. 0.39.1
update_urgency: I think we can have multiple levels of update urgency, so I make 3 possible values for this field, low, high, critical

  • low means no need to push user to update (or only show some "update available" text passively in settings menu)
  • high means more actively notify the user to update, for example show the "update available" along with changelog when user open the app, and user need the click dismiss to continue use the app
  • critical means update is a requirement for continue to use the app

I think we don't have to implement all types on App side in this sprint, they are just my proposal on the complete feature.

For pulling changelogs, I believe it's a good idea, but we will need some flow to automated the changelog updates and make sure it is in sync with the changelog on App Store and Play Store (we should use this changelog which is written for users instead of the changelog written for developers)

How about we make the scope of this task small, implement the notify prompt and direct user to store update page without showing detailed changelog?

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 7, 2022

➤ Sam commented:

if the user has a high priority update I show a dismissible popup.
https://imgur.com/tnGaDGw ( https://imgur.com/tnGaDGw )
TITLE = "Important updates are available!" (重要更新可用!)
SUBTITLE = "Please update the app for proper functioning." (請更新應用程序以使其正常運行。)
CANCEL = "REMIND ME TOMORROW" (明天提醒我)
OK = "UPDATE NOW" (現在更新)

if user has a critical priority update I show a non dismissible popup
https://imgur.com/opVRwtW ( https://imgur.com/opVRwtW )
TITLE = "Critical updates are available!" (重要更新可用!)
SUBTITLE = "Please update the app for proper functioning." (請更新應用程序以使其正常運行。)
OK = "UPDATE NOW"(現在更新)

Tammy Yang if ui proposal and text is okay I will ask Sofia to check translations.

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 7, 2022

➤ Tammy Yang commented:

Sam a quick confirmation
When the notification will be sent? (Not all updates, right? 😆)

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 7, 2022

➤ Sam commented:

Tammy Yang Notifications are not sent. 😅

When app starts

  • I do backend call to get app version set on backend
  • If app version from backend is higher than app version I show update modal
  • If update urgency is low I do nothing.

So if we don’t want to show notification for any update we can set urgency as low (from backend)

Only high and critical shows the update modal

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 7, 2022

➤ Sam commented:

Sofia Yan, can you please check these google translations ( https://app.asana.com/0/0/1202336207204524/1202402976378831/f ) 😅

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 7, 2022

➤ James Chien commented:

Just to make sure, if the app fails to fetch app version from backend due to bad network connectivity, it won't show anything and user can use the app normally, right?

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 7, 2022

➤ Sam commented:

James Chien good point will wrap to try-catch block 🙂

@sync-by-unito
Copy link
Author

sync-by-unito bot commented Jun 8, 2022

➤ Sam commented:

Here is the pull request ( #1689 ) maybe for James Chien

@sync-by-unito sync-by-unito bot closed this as completed Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants