A assignment project in which have all new coding structured follows
- Open Android Studio and launch the Android SDK manager from it (Tools | Android | SDK Manager)
- Ensure the following components are installed and updated to the latest version.
- Android SDK Platform-Tools
- Android Support Repository
- Google Repository
IMPORTANT Ensure you have set the ANDROID_HOME environment variable.
SDk location
sdk.dir=/home/ashutosh/Android/Sdk
./gradlew build
- Clone the https://github.com/Kumarashutosh97/Assignment
- Sync the gradle
- Connect the device/ Emulator
- Run the project Note - Please create a project on NY times for API_Key and use own key for run the application/
This app uses MVVM (Model View View-Model) architecture.
- Kotlin - First class and official 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.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- [NY times API] - API for fetching most popular data within 7 days.
- [Kotlin delegate]- The Delegation pattern has proven to be a good alternative to implementation inheritance, and Kotlin supports it natively requiring zero boilerplate code.
- [Data binding] -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.
- [Dagger 2] -agger 2 is dependency injection framework. It is based on the Java Specification Request (JSR) 330. It uses code generation and is based on annotations.
com.assigmnent.cleararchitecture # Root Package
├── data # Model class
├── DI # Dagger 2 packages.
|
├── ktx # Kotlin Delegat method for Data binding
|
|___network # Retrofit provides and service API
|
├── UI # Activity/Fragment View layer
│ ├── Adapter # Adapter class
│ ├── master # Master Activity
│ ├── ViewModel # Add ViewModel
│ ├── Webview # Details Activity
├── utils # All Utils classes