This is an attempt to learn Kotlin/Android development. It was based majorly on https://github.com/android/architecture-samples . Many things were learned. Two way binding with ui interaction. Database is offline and loads from a json asset file.
- Learn the basics of MVVM in android
- Basics of dependency injection with Dagger 2
- Navigation/State management
- Testing (Instrumentation/Unit)
- File/Asset manipulation
- com.amitshekhar.android:debug-db - Debugging Room Databases
- Espresso - Testing Runner
- Hamcrest - Tetsing Assertion
- Room - Databases
- Timber - Logging
- Using workmanager seed database on install only, from json asset file. (https://github.com/Stegnerd/AndroidDex/blob/master/app/src/main/java/com/stegner/androiddex/dependencyinjection/workers/DataBaseSeedWorker.kt)
- Dynamically build resourceid for use of binding ui images and links.(https://github.com/Stegnerd/AndroidDex/blob/master/app/src/main/java/com/stegner/androiddex/pokemonlist/PokemonListAdapter.kt)
- Grasped a basic understanding of mvvm architecture.
- Designed Custom Recycler ItemDecoration
- Created popup menu filter (https://github.com/Stegnerd/AndroidDex/blob/master/app/src/main/java/com/stegner/androiddex/pokemonlist/PokemonListFragment.kt)
- Complete Instrumentation tests. Current issue applies - Tests pass one at a time fail together. (check current issues)
Once I get better at android development I have several goals for this app. I am taking a break from this app for a little while to experiment with different ideas.
- Create a more modular design, instead of a monolith approach.
- Create Instrumentation unit tests when I get better at testing.
- Implement a caught/stat to let user keep track of the ones caught
- Add more detail, like moves or routes caught on the detail page
- Add different sections, like moves/items