- Kotlin - Most widely used programming language for Android development.
- Coroutinesο»Ώ - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that
- Retrofit - A type-safe HTTP client for Android and Java.
- GSON - Gson is also widely used in Kotlin and Java development for JSON serialization and deserialization.
- GSON Converter - A Converter which uses Gson for serialization to and from JSON.
- OkHttp3 - For implementing interceptor, logging and mocking web server.
- Glide - An image loading and caching library for Android focused on smooth scrolling.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- Dependency injection - Dependency injection (DI) is a technique widely used in programming and well suited to Android development.
- Reusability of code
- Ease of refactoring
- Ease of testing
- RecyclerView
- CardView
- ImageSlider
- Fragments
- Passing data between activities, fragments
- SearchView
- SwipeRefresh
- Navigation ...
Onboarding | Sign in & Sign up |
---|---|
Home | Search |
Filter | Detail |
Wishlist | Cart |
|
βββ app
| βββ App
|
βββ common
| βββ Constants
|
βββ data
| βββ api
| | βββ auth
| | | βββ dto
| | | | βββ AuthResponse
| | | | βββ SignInRequest
| | | | βββ SignUpRequest
| | | | βββ UserDto
| | | βββ AuthApi
| | |
| | βββ product
| | βββ dto
| | | βββ Banner
| | | βββ Category
| | | βββ Detail
| | | βββ HomeResponse
| | | βββ Product
| | | βββ Section
| | | βββ SectionType
| | |
| | βββ paging
| | | βββ ProductPagingSource
| | βββ ProductApi
| |
| βββ repo
| | βββ AuthRepositoryImpl
| | βββ ProductRepositoryImpl
| |
| βββ store
| βββ BaseStore
| βββ OnboardedStore
| βββ RecentsStore
| βββ TokenStore
| βββ UserStore
|
βββ di
| βββ ApiModule
| βββ DataModule
| βββ NetworkModule
| βββ RepositoryModule
|
βββ domain
| βββ model
| | βββ Destination
| | βββ ProductQuery
| | βββ User
| βββ repo
| βββ AuthRepository
| βββ ProductRepository
|
βββ presentation
| βββ categories
| | βββ CategoriesAdapter
| | βββ CategoriesFragment
| | βββ CategoriesViewModel
| |
| βββ detail
| | βββ DetailFragment
| | βββ DetailViewModel
| | βββ ImageAdapter
| | βββ RelatedAdapter
| |
| βββ filter
| | βββ FilterFragment
| | βββ FilterViewModel
| |
| βββ home
| | βββ adapter
| | | βββ BannerAdapter
| | | βββ HomeCategoryAdapter
| | | βββ HorizontalAdapter
| | | βββ SectionAdapter
| | | βββ VerticalAdapter
| | βββ HomeFragment
| | βββ HomeViewModel
| |
| βββ main
| | βββ MainActivity
| | βββ MainViewModel
| |
| βββ onboarding
| | βββ OnBoardingAdapter
| | βββ OnBoardingViewModel
| | βββ OnboardingFragment
| |
| βββ orders
| | βββ OrdersFragment
| | βββ ..
| |
| βββ products
| | βββ ProductViewHolder
| | βββ ProductViewModel
| | βββ ProductsAdapter
| | βββ ProductsFragment
| |
| βββ profile
| | βββ ProfileFragment
| | βββ ..
| |
| βββ search
| | βββ adapter
| | | βββ RecentAdapter
| | | βββ RecentAdapter
| | | βββ SearchProductsAdapter
| | βββ SearchFragment
| | βββ SearchViewModel
| |
| βββ sign_in
| | βββ SignInFragment
| | βββ SignInViewModel
| |
| βββ sign_up
| | βββ SignUpFragment
| | βββ SignUpViewModel
| βββ wishlist
| βββ WishlistFragment
| βββ WishlistViewModel
|
βββ utils
βββ BaseFragment
βββ Functions
βββ HorizontalMarginItemDecoration
βββ SingleLiveEvent
This app uses MVVM (Model View View-Model) architecture.