Skip to content

An Android app built with Kotlin, consuming StarWars API to display characters, Starships, and planets. It is built with a clean architecture, MVVM pattern, and the latest Jetpack components.

Notifications You must be signed in to change notification settings

ali-yousuf/StarWars

Repository files navigation

StarWars

An Android app built with Kotlin, consuming StarWars API to display characters, Starships, and planets. It is built with a clean architecture, MVVM pattern, and the latest Jetpack components.

Features

  • Character List Screen
  • Starship List Screen
  • Planets List Screen
  • Offline Support
  • Error Handle
  • Unit Test For Data Layer

Tech Stack.

  • Kotlin - Kotlin is a programming language that can run on JVM. Google has announced Kotlin as one of its officially supported programming languages in Android Studio; and the Android community is migrating at a pace from Java to Kotlin
  • Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
  • AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
  • Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
  • Viewmodel -The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way
  • LiveData - A lifecycle-aware data holder with the observer pattern
  • Kotlin Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
  • Jetpack Compose - Jetpack Compose is Android’s recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
  • Paging 3 library - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network. This approach allows your app to use both network bandwidth and system resources more efficiently.
  • Room DB - The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
  • Retrofit - Retrofit is a REST Client for Java and Android by Square inc under Apache 2.0 license. Its a simple network library that used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API.
  • GSON - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.
  • Flow - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
  • Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project
  • Navigation Components - Helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
  • Logging Interceptor - logs HTTP request and response data.
  • Material Libarary - Modular and customizable Material Design UI components for Android

Setup Requirements

  • Android device or emulator
  • Android Studio

Getting Started

In order to get the app running yourself, you need to:

  1. Clone this project
  2. Import the project into Android Studio
  3. Connect your Android device with USB or just start your emulator
  4. After the project has finished setting up it stuffs, click the run button

About

An Android app built with Kotlin, consuming StarWars API to display characters, Starships, and planets. It is built with a clean architecture, MVVM pattern, and the latest Jetpack components.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages