Skip to content

Project 5: Android Kotlin Developer Udacity | Nanodegree

Notifications You must be signed in to change notification settings

samueljuma/Upcoming-Movies

Repository files navigation

App Logo Upcoming-Movies

Project 5: Android Kotlin Developer Udacity | Nanodegree

Get it on Google Play

Rationale

The App is inspired by The Android Kotlin Developer Nanodegree Course on Udacity. It's the final project of the Five projects in the course. I Chose to develop a custom app, so I can build everything from scratch. It's been fun.

Project Instructions

  • The student will define their own project feature-set that meets criteria encompassing key areas of development skills covered within the nanodegree:
    • Application Architecture
    • UI and Layout
    • API Connectivity and Data Persistence
    • Hardware Integration
    • User-based Functionality

Feature Graphics

Feature Graphics

App ScreenShots

Implementation

Built with

  • Kotlin

    Kotlin is a programming language that makes coding concise, cross-platform, and fun. It is Google's preferred language for Android app development.

  • XML

    used to implement UI-related data

  • Android Studio Iguana | 2023.2.1 Patch 1

  • MVVM Architecture

    is a software architectural pattern that is commonly used in Android app development.

Tools and Libraries

  • Retrofit

    A type-safe HTTP client for Android and Java.

  • Room

    For data persistence

  • Dagger Hilt

    a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project

  • Repository Pattern

    Repositories combine different data sources and solve any potential conflicts between the data sources to update the single source of truth regularly or due to a user input event

  • Data Binding

    is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.

  • Navigation Library

    a framework for navigating between 'destinations' within an Android application that provides a consistent API whether destinations are implemented as Fragments, Activities, or other components.

  • SharedPreferences

    used for saving application settings, user preferences, or other small pieces of data that need to persist between app sessions.

  • ViewModel

    lets you manage your UI's data in a lifecycle-aware fashion.

  • LiveData

    an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.

  • ListAdapter

  • DiffUtil

    calculates the difference between two given lists, the old list that is currently displayed and the new that you have recently obtained.

  • Notifications

  • Sealed Result Class

    Result sealed class for kotlin error handling, allowing us to write safe code either in a functional or imperative format, without the use of exceptions.

  • Binding Adapters

    responsible for making the appropriate framework calls to set values

  • Work Manager

    The recommended API for background processing WorkManager is the recommended solution for persistent work. Work is persistent when it remains scheduled through app restarts and system reboots.

  • MotionLayout

    MotionLayout is a layout type that helps you manage motion and widget animation in your app

About

Project 5: Android Kotlin Developer Udacity | Nanodegree

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages