An open API service indexing awesome lists of open source software.

https://github.com/teamsolutionanalysts/android-snippet


https://github.com/teamsolutionanalysts/android-snippet

Last synced: 12 months ago
JSON representation

Awesome Lists containing this project

README

          

Read Me

This sample project is created to showcase architecture, environment setup, use of customer configurable and reusable components, how we make api calls, how we handle data , how we map data. To demonstrate above mentioned purpose we have create simple Login , signup screen flow.

- Environment Setup
This sample project is configured for three environment: development, stage and production , this will help us to manage single code for all three different env.

- Login/Signup UI
in this project we have created login and signup screen using Constrain layout. Which is compatible with all mobile Android

- Project Architecture
we are using MVVM architecture so that we can make fragment thiner. We can manage code in different separate area so that it is easy to manage and debug code.

- Data binding
In Android, the Data Binding Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.

- Android KTX
Android KTX is a set of Kotlin extensions that are included with Android Jetpack and other Android libraries. KTX extensions provide concise, idiomatic Kotlin to Jetpack, Android platform, and other APIs

- SDP - a scalable size unit
An android lib that provides a new size unit - sdp (scalable dp). This size unit scales with the screen size. It can help Android developers with supporting multiple screens

- Koin
Koin is a dependency injection framework for Kotlin. It is lightweight, can be used in Android applications, is implemented via a concise DSL, and takes advantage of Kotlin features like delegate properties rather than relying on annotations

- Retrofit
In Android, Retrofit is a REST Client for Java and Android by Square inc under Apache 2.0 license. Its a simple network library that used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API. It’s easy and fast library to retrieve and upload the data(JSON or any other structured data) via a REST based web service.

- ProgressUtils
Manage api progress when we calling any apis using this class we can show or hide progress when needed

- BindingAdapter
Some attributes need custom binding logic using binding adapter we can write logic in xml

- FragmentState
- Declare all fragment in this screen

- ViewUtils
Declare all common dialog here and use when we need by just calling that method

- IApiService
Declare all apis call and that fields here

- Viewmodelmodule
Declare all new repository and model class here

- Custom configurable components
We are using our own create custom configurable components to create UI . So that with minimum line of code we can have different ui with single component. Ex. CustomTextField: this is a custom object using which we can crate different text filed UI.

- Request package
Declare any request related model in requst package

- Result package
Declare any response related model in result package

- BaseFragmentFmExt
Using base fragment we can mange all fragment like open or close from stack