Dads — папины шутки как пример реализации лучших подходов к Android-разработке. Внутри огромный стек: корутины, Dagger Hilt, DataStore, Flow, Room, WorkManager, Lottie, GraphQL и прочие технологии и фреймворки на несколько страниц перечислений.
Foundation
- App Startup — Orchestrating single ContentProvider at startup.
- Coroutines — Performing asynchronous code with sequential manner.
- Dagger Hilt — The DI framework w/ Jetpack integration.
- DataStore — Preferences in nutshell but with steroid.
- Flow — Reactive streams based on coroutines, just like Rx. But simpler.
- Fragment — The UI host.
- JavaPoet — Personal diff-state engine printer.
- Lifecycle — Coroutines teams up with Android’s component lifecycle.
- Navigation component — The key player for adopting single-activity architecture with ease.
- Room — ORM for SQLite database. Also, try out its integration with Database Inspector.
- View Binding — Providing safe access to view.
- ViewModel — Presenter with its semi data persistence behavior.
- WorkManager — Background job scheduler. You should also try out its integration with WorkManager Inspector.
UI
- BottomSheetDialogFragment — As the name suggests.
- ConcatAdapter — Helping me group
ViewHolder
based on types in isolation. - ConstraintLayout — Helping me manage positioning & alignment with ease.
- Lottie — Providing animation asset.
- Material Components — Helping me present Material Design.
- MotionLayout — Animating view has never been easier.
- ViewPager2 — Personal option over
RecyclerView
when dealing view snapping experience.
Internal
- LiveListAdapter
ListAdapter w/ every visible cell (ViewHolder
) is reactive. Cell acts like observer of data they hold, so it will auto-refresh if their related data is updated. - RenderExecutor Processor
Processor forRenderWith
annotation. Diff-state engine generator for rendering view component.
Remote
- Apollo GraphQL — Client for requesting GraphQL API.
- OkHttp — Request interceptors. Pipeline before remote API call.
Testing
- Espresso — Android UI tests.
- Hilt Testing — For swapping production dependencies with test doubles.
- Truth — Assertion framework in tests by Google.
Health
- Firebase Crashlytics — Collecting crash report for production environment.
- LeakCanary (Debug) — Memory leak detector.
- StrictMode (Debug) — Tool for checking if any should-be-background operation is done on main thread.