Today (yesterday) was Network Optimizations day.
I didn’t have great internet, so I decided it was time to optimize my app for slow networks, and even offline usage.
Offline app usage
I added a network context to refresh and always try to connect to a list of servers, the fastest one to respond becomes the server used by the app. If it can’t find any, then the app can disable some features, or show no network alerts.
This, combined to local caching of previous network requests, means the app is now fully usable offline to read your registry’s data. I also plan to add a background sync to show the latest data even when offline.
What about slow networks?
I fixed all loading indicators so the user knows the app is actually working, and also changed the loading method to load smaller portions of data separately, for instance, the previous behaviour had the app loading the whole class data including subjects and similar, so network requests would be more heavy, but also more complete. Now, the app loads basic class data with a subject id array, which is used to estimate the number of subjects to load. Afterwards, it individually loads each subject’s info so it can cache it, and effectively load much faster.
Other small things
I changed communications to notice board, since that’s the right name for it.
Also, I added empty view texts (No lessons and similar), and no active class warns for every page (except for the profile page)
What’s next?
I still need to work on actual registry data such as grades, resources, week schedule and so on.
See you in the next devlog!