You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**A:** Upgrade-Wall or Update-Wall is a system/service that prevents mobile app users from using the app who are still using the older versions of the app.
93
+
**A:** An **Upgrade-Wall** (or **Update-Wall**) is a system that prevents mobile app users from using the app if they are still on older versions. It ensures that all users operate on the latest version of the app.
94
+
95
+
**Q:** Why do we need an Upgrade-Wall?
96
+
**A:** An Upgrade-Wall is necessary when you need users to update to a new version due to breaking changes, security issues, or to promote new features. For instance:
97
+
98
+
-**Breaking Changes:** If there are significant changes in the backend API that would cause older versions of the app to crash.
99
+
-**Security Issues:** When older app versions have vulnerabilities that are fixed in newer releases.
100
+
-**Feature Promotion:** To encourage users to experience new features you've introduced.
80
101
81
-
**Q:** Why do we need Upgrade-Wall?
82
-
**A:** A required upgrade may be required when there are breaking changes in the backend API which will result in an app crash or when there are security issues in older apps and a new version of the app is released and you may want to require users to update to the newly released version. Also in cases where you want to encourage users to update your app to the newly released versions because you have launched a new cool feature and want users to explore and use it. In these scenarios, Upgrade-Wall is necessary to have in place.
102
+
In these scenarios, an Upgrade-Wall ensures users update to the latest version, providing a consistent and secure experience.
83
103
84
-
**Q:** How to Implement Upgrade-Wall?
85
-
**A:** Upgrade-Wall can be implemented with two strategies, hard and soft Upgrade-Walls. A Hard Upgrade-Wall completely restricts the users from using the app and requires them to update the app. A Soft Upgrade-Wall offers greater flexibility to users, generally giving users the freedom to either update the app or skip the update to a later time. Both the strategies can be implemented by showing a popup/alert to users. When the user opens the app, Hard Upgrade-Wall will show a non-dismissible popup with only an update button. Users cannot skip the popup and will have only one option to update the app. On pressing the update button the app should open the play store or AppStore of the app from where the user can update the app to the latest version. Soft Upgrade-Wall will show a dismissible popup to the user with options to either update the app or skip. Users can skip and continue using the app. An example of Hard Upgrade-Wall and Soft Upgrade-Wall. You can skip the pain of building an Upgrade-Wall yourself and use solutions which are already there.
104
+
**Q:** How do you implement an Upgrade-Wall?
105
+
**A:** An Upgrade-Wall can be implemented using two strategies: **hard** and **soft** Upgrade-Walls.
106
+
107
+
-**Hard Upgrade-Wall:** Completely restricts users from using the app until they update.
108
+
109
+
- Displays a non-dismissible popup with only an **Update** button when the app is opened.
110
+
- Users cannot skip this popup and must update to continue.
111
+
- Pressing the **Update** button redirects to the App Store or Play Store to download the latest version.
112
+
113
+
-**Soft Upgrade-Wall:** Offers flexibility, allowing users to choose whether to update immediately or later.
114
+
115
+
- Shows a dismissible popup with options to **Update** or **Skip**.
116
+
- Users can skip the update and continue using the app.
117
+
- Encourages but does not force the update.
118
+
119
+
Both strategies involve showing a popup or alert to users upon opening the app. You can streamline this process by utilizing existing solutions that provide Upgrade-Wall functionality.
86
120
87
121
### Gotchas:
88
122
- For macOS `applicationDidBecomeActive` will be called after dismissing the UpgradeAlert, make sure you init UpgradeAlert from another method or else it will create an inescapable loop. This does not apply for iOS.
Issue: The current implementation of asynchronous methods uses custom closures with optional parameters for error handling. This can be improved by leveraging Swift's Result type, which provides a clearer and more structured way to handle success and failure cases.
110
144
Improvement: Refactor asynchronous methods to use Result instead of optional parameters. This will make the code more readable and maintainable.
0 commit comments