Architecture: MVVM — Activities/Fragments observe LiveData/StateFlow exposed by a ViewModel, which holds no reference back to the View; the ViewModel calls a Repository wrapping Retrofit (TheMealDB), Room (offline favorites/plan), and Firebase (auth/sync).
Starting from scratch: Build the data layer first (API service + Room entities + Repository), then one ViewModel per screen exposing its state, then build each View to observe and render that state — Auth before Favorites/Sync, Browse before Detail.