Mobile Q1 · 2019
**GOALS**
* Improve Error handling
* Implement offline/local-first mode
* Improve UX
* Gatherings improvements
* Easier update for android users
* Add 2FA
**ERROR HANDLING**
Improve the overall UX with better error handling
**Api Level:** If an api call fails due to a network error, wait a few ms and repeat the call, if the second call fails, throw the error.
**Store Level:** If an api call returns an error, store the state and warn the users.
“Error loading the feed. <Retry>” for example.
**Component Level:** Use componentDidCatch to capture exceptions in components and show error messages to users.”Oops can’t show this activity”
Update the package react-native-error-handling
Post the user’s critical error stack trace somewhere?
**OFFLINE / LOCAL-FIRST**
There is an old implementation which supports offline mode, maybe we can use it and improve the functionality.
https://github.com/Minds/mobile-native-internal/pull/583
**Current Implementation:**
**Connectivity Service:** It detects changes in the connectivity state of the device and keeps the other components/services informed (using an observable)
Implemented here: https://github.com/Minds/mobile-native-internal/pull/583/files#diff-90c423f62eaeb78804639057271a8b67
**Data Service:** It abstracts the calls to get data from a data provider method and adds the possibility of attaching middlewares before and after the calls
Implemented here:
https://github.com/Minds/mobile-native-internal/pull/583/files#diff-c68ffe588d0b5d700398d0f5e4b23f2e
**Cache Entities Middleware:** It stores and retrieves entities from the local database in case the device is offline
https://github.com/Minds/mobile-native-internal/pull/583/files#diff-9a750897ec7172d46ba7ab74add502caR7
**Cache Feeds Middleware:** it stores and retrieves the feeds (array of guids of the entities)
Implemented here: https://github.com/Minds/mobile-native-internal/pull/583/files#diff-4ee906e0c2b9cfdfc0fa70237fe959b7
**SQL Backend:** Stores and retrieves cached data from the SQLite db
https://github.com/Minds/mobile-native-internal/pull/583/files#diff-6416f5613b51c2a20ded24dbbb0be348
**GATHERINGS IMPROVEMENTS**
* Be able to turn to landscape smoothly
* Display groups and live gatherings on top of newsfeed
* Be able to minimize gatherings when navigating away like jitsi
**EASIER UPDATE FOR ANDROID USERS**
Despite the use of code push for faster updates, sometimes we will need to change the native code and, in those cases, we have to make a new apk release.
**Improvements alternatives:**
1. Autoupdate of apk (we have to check if this is possible with react native)
2. Check for new updated and prompt the user to download the new apk
epic