SkillAgentSearch skills...

StarWarsSearch

Search for your favorite star wars characters from Swapi API. Uses Android Jetpack, clean architecture with MVI (Uni-directional data flow), dagger hilt, DFM Navigation, and kotlin coroutines with StateFlow

Install / Use

/learn @Ezike/StarWarsSearch

README

Android Build

Star Wars search

Hey there 👋🏼👋🏼👋🏼 This branch introduces some of the basic ideas on Componentization as shown by the UI Engineering team at Netflix. Resources here: Blog, Repo

For a fuller implementation, check out this branch

You can also check this branch for a different approach to the project

You can check out my thought process in this file

Features

  • Clean Architecture with MVI (Uni-directional data flow)
  • View components
  • Kotlin Coroutines with Flow
  • Dagger Hilt
  • Kotlin Gradle DSL
  • GitHub actions for CI

Prerequisite

To build this project, you require:

  • Android Studio 4.2 canary 8 or higher
  • Gradle 6.6.1
<h2 align="left">Screenshots</h2> <h4 align="center"> <img src="https://res.cloudinary.com/diixxqjcx/image/upload/v1596748100/star_wars_recents.jpg" width="30%" vspace="10" hspace="10"> <img src="https://res.cloudinary.com/diixxqjcx/image/upload/v1596748100/star_wars_search.png" width="30%" vspace="10" hspace="10"> <img src="https://res.cloudinary.com/diixxqjcx/image/upload/v1596748100/star_wars_detail.jpg" width="30%" vspace="10" hspace="10"><br>

Libraries

  • Viewmodel - Presenter for persisting view state across config changes
  • FlowBinding - converts traditional view click listeners and call backs to Kotlin flow
  • Room - Provides abstraction layer over SQLite
  • Retrofit - type safe http client and supports coroutines out of the box.
  • Moshi - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters
  • okhttp-logging-interceptor - logs HTTP request and response data.
  • kotlinx.coroutines - Library Support for coroutines,provides runBlocking coroutine builder used in tests
  • Truth - Assertions Library,provides readability as far as assertions are concerned
  • MockWebServer - web server for testing HTTP clients ,verify requests and responses on the star wars api with the retrofit client.
  • Robolectric - Unit test on android framework.
  • Espresso - Test framework to write UI Tests
  • Dagger Hilt - handles dependency injection
  • Kotlin Gradle DSL

Related Skills

View on GitHub
GitHub Stars35
CategoryData
Updated1y ago
Forks9

Languages

Kotlin

Security Score

65/100

Audited on Jul 1, 2024

No findings