Just to clarify something mentioned at 41:39, in MVVM on Android the Repository is not specific to only the back end. It acts as a mediator for all data sources (network, database, etc.), thus freeing the rest of the app from having to care about where data comes from or goes to. A Repository is a regular class that you write; it is not part of Jetpack. Its use is optional but considered to be a best practice.
Thank you so much for this! As a student Android developer, there is hardly any content out there on RU-vid discussing mobile business logic and this helped a lot!!
Nice explanation. Spending almost a decade in mobile app development and worked extensively in Kotlin ,React native and Flutter. Its too difficult to get error insights in cross platform tech like react native. Cross platform on one side saves time in deploying in short time but it adds additional challenges/vectors to take care of. And for android OS which behaves differently on each OS version of each individual OEMS. Believe me its easy to develop on web as compared to mobile. And best thing is the speed with which you deploy on website, there is no third party controlling it like appstore or play store. On website you just deploy the new build and done.
I could feel the pain at 4:27 when Manideep started explaining the challenges. Mobile app dev is not as easy as web dev, esp. when done natively with Java or Kotlin. Handling lifecycle is painful. Imagine, the user changes their screen orientation - the UI is redrawn. Imagine, the user gets a phone call, the active screen is immediately put in the background. In both situations managing the state is of utmost importance. Regarding the point about multiple API calls being required to fetch data when opening the Instagram app, for the highest priority API call, I have it in the installSplashScreen extension function so that the main screen of the app does not load until data fetch is over and the user sees the splash screen for a while. With Android 12 and above, this has become really easy. Also, one of the major differences between mobile and web UI is notifications! Firebase provides a lot of functions for push notifications, but it takes effort to handle notifications natively. Maybe that can be taken up as a point of discussion - how Hotstar leverages notifications.
Finally Finally Finally!! Thank you so much gaurav for this video :) Mobile system design is a lot different than backend system design. Thank you for acknowledging that
Hi, I noticed that you have a very broad knowledge and skillset which is apprent through all the videos you uploaded. Did you learn all of this at school or did you self-learn?
Hi. Nice video. Thanks for sharing. I'd like to know how can I learn more about mobile system design. The ideia is to decide which protocol I should use, like graphQL, rest and so on. Also, which realtime notification is the best choice, SSE, push, long http polling and so on. Can you give me some book, course ?
Very interesting thanks I think if you use graph db for this kind of apps and you define a relationship between nodes like Post - HAS_PREVIOUS_POST -> Post It's very easy to navigate between posts get newer ones and previous ones I have a question , how do you secure an API for a mobile app ?
It does ends it depends on what your followers post, when i first started using Instagram it used to give popup that you are all done no more post. The feed shows you your recent post then all the post of what you follow.