Application is developed with two search implementation which can be tested using below build flavours
- [Build Flavours]
- [singleSearch] - This build flavour will load search feature within single launched activity with open close search animation.
- [activitySearch]- This build flavour will load search feature in new activity with animation
Developer Note - Run code in Android Studio Arctic Fox with Java-11 support inorder to compile code correctly and download required dependencies
Known issue - If java-8 is default java_home in your machine, you will see below error while building the APK file in android studio.
An exception occurred applying plugin request [id: 'com.android.application']
Failed to apply plugin 'com.android.internal.application'. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing
org.gradle.java.home
ingradle.properties
.
Above issue can be resolved by following steps CLICK-ME or follow steps mentioned below in android studio
Steps Go to Preferences(Android studio Left top)-->Build,Execution,Deployment-->Build Tools-->Gradle-->Gradle JDK (update to JDK 11)-->APPLY-->OK
- Minimum SDK level 23
- Kotlin based
- JetPack
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- LiveData - observable data holder class, lifecycle aware.
- Room - Store data offline
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository pattern
- Hilt - dependency injection
- DataBinding - Android DataBinding kit for notifying data changes to UI layers.
- Coroutines and flow
- DataBinding(Third Party Library)
- Base Recycler Viewadapter - Used to bind view in adapter
- Whatif - Plugin gives direct access to scope function without using if conditions
- Bindables - Observable data binding library
- Unit test case
- robolectric - Used to test android specific test case without using android device
- mockwebserver - Help to mock http request
- Mockito - Used for mocking dummy class or data(interface)
- Material Design & Animations
- Glide - loading images
- Shared element transition - for activity launch animation