The presentation covers the design principles and architecture one should follow to build a scalable app. It provides in-depth knowledge on the tech stacks to be used for modernization. The last part talks about modularisation and how it helps in building a faster, performant, and scalable app.
app for Scale
Director of Engineering - PayU Credit
GDE - Firebase
Build for India, Build for the world
● Develop in Kotlin. Use latest language constructs
● Consistent design and app architecture
● Separation of Concern
● Enhance developer productivity
● Better test coverage
● Modernization of tech stack
● Robust and scalable
● Modularization of code base
● Faster app performance
The difference between good and bad
architecture is the time you spent on it.
- David Chipperfield
Clean Code Architecture
● Outer circle -> Mechanisms &
Inner Circle -> Contracts
● Dependencies always point
● Separation of concern
● Loose Coupling
● Highly testable
● Inversion of Control - DI
● Unidirectional flow
● Reactive with Kotlin Coroutines
● Developer productivity
● Easily modularised
● Highly testable
Don’t try to reinvent the wheel, just work on
making it better than anyone else.
- John Muir
● Kotlin with Coroutines
● Handle Lifecycle with Lifecycle aware components like ViewModel
● UI Using View- ViewBinding for interaction with UI and Data Binding to bind data into your UI.
● Move across screens using Jetpack Navigation
● Build with Jetpack Compose
● Dependency Injection with HILT
● Improve performance with Jetpack Benchmark and App Startup
● Persistence with DataStore and Room
● Image loading using Coil
● Automation using Fastlane and Firebase App Distribution or any other CI/CD pipeline
● Networking with Retrofit over OkHttp and Moshi
We cannot learn something new and stick to it without
a modular approach to application, positive
reinforcement and a real change to environment.
- David Amerland
● Multi-modular architecture
● Improve build time
● Separation of concern.
● PODs or Containers for small modules. Focussed development.
● High performance.
● Faster feature delivery.
● Use for experimentation around technologies.
● Kotin Multi-Mobile Platform(KMP)
○ Okhttp and more
Tivi by Chris Banes
A good programmer is someone who always looks
both ways before crossing a one-way street.
- Doug Linder
Thank You :)