• Stars
    star
    198
  • Rank 196,898 (Top 4 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Star wars sample android project showcasing the use of View components for rendering UI in Fragments and Activities. Uses Android Jetpack, clean architecture with MVI (Uni-directional data flow), dagger hilt, and kotlin coroutines with StateFlow

Android Build

Hey there πŸ‘‹πŸΌπŸ‘‹πŸΌπŸ‘‹πŸΌ

This project contains an implementation of the Componentization idea as shown by the UI Engineering team at Netflix.

Resources: blog, repo, talk

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 Flamingo
  • Gradle 7.5
  • Kotlin 1.7.20
  • Android Gradle Plugin 8.0.0-alpha02

Run the following command in the root of the project to setup your Android Studio:

./setup.sh

This script will configure ktlint

Screenshots


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

    License

Copyright 2020-2021 Ezike Tobenna

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

Baking-App-Kotlin

Android architecture sample with dynamic feature modularisation, clean architecture with MVI (Uni-directional data flow), dagger hilt, DFM Navigation, kotlin coroutines with StateFlow and Exo player.
Kotlin
458
star
2

MyWeather

App displays real-time weather updates for user's location and for other locations set by user. App uses MVVM with Repository pattern, dagger dependency injection, NetworkBoundResource, Navigation component, App widget, Alarm manager, and other Android JetPack components (Room, Viewmodel, Livedata)
Java
41
star
3

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
Kotlin
36
star
4

MyWeatherKotlinFlow

Android app that shows weather at your current location or any custom location you specify. Uses Kotlin Flow for data streaming and coroutines for asynchronous work. Also leverages Room, navigation component, Viewmodel and Livedata Jetpack components with MVVM presentation layer architecture. Dagger 2 with Dagger android for dependency injection
Java
28
star
5

StockWatcher

Android project that consumes data from a websocket. Built with MVVM, Kotlin Flow, Clean architecture.
Kotlin
25
star
6

Dynamic-RecyclerView-Form

Sample app to showcase dynamic forms using RecyclerView. Uses MVVM architecture with ViewModel and LiveData
Kotlin
20
star
7

BakingApp

Baking app that displays a list of recipes, and their ingredients with video lessons on how to make them. The app uses MVVM, Android architecture components, Material design with master-detail layout, Dagger, Exoplayer and Databinding. It also contains a home screen widget.
Java
16
star
8

PopularMovies

Mobile app to display movies with reviews, trailers, release date and rating. Uses Picasso, Retrofit2, Android Architecture Components.
Java
10
star
9

android-testing

completed the testing lessons in the Advanced android with kotlin course on Udacity
Kotlin
6
star
10

Gaze

NASA Picture of the Day
Kotlin
3
star
11

Ktor-sample

Kotlin
2
star
12

GraphQLSample

Sample graphql project using ktor
Kotlin
2
star
13

CodingPractice

Kotlin
2
star
14

Playground

Random code shenanigans πŸ€–
Kotlin
1
star
15

Ezike

1
star