Giter Club home page Giter Club logo

androidsampleapp's Introduction

AndroidSampleApp

This is a project to create an Android Sample app.

This is a sample project slightly changed from multi-module to lite.

contributor


JungWooHyoen


BaeWooRam


Used Tech

  • Multi Module - A Project with multiple Gradle modules is known as a multi-module project.
  • Kotlin - This Project is using Kotlin version 1.8.21.
  • MVVM
  • Coroutines - Asynchronous programming
  • Lifecycles - Create a UI that automatically responds to lifecycle events.
  • LiveData - Build data objects that notify views when the underlying database changes.
  • Navigation - Handle everything needed for in-app navigation.
  • Paging - Load and display small chunks of data at a time.
  • ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks.
  • Dagger 2 - Compile-time framework for dependency injection.
  • Hilt - Compile-time framework for dependency injection.
  • Retrofit 2 - Handle REST api communication.
  • Test - An Android testing framework for unit and runtime UI tests.
  • ktlint - Enforce Kotlin coding styles.

Features

  • Firebase - Tools to develop high-quality apps.
    • Authentication - Allows an app to securely save user data in the cloud.
    • Cloud Firestore - Flexible, scalable NoSQL cloud database to store and sync data.
    • Cloud Functions - Automatically run backend code in response to events triggered by Firebase
    • Cloud Messaging - Notify a client app.
    • Cloud Storage - Store and serve user-generated content.
    • Remote Config - Change the settings of app without requiring users to download an app update.
  • WorkManager - Schedule deferrable, asynchronous tasks even if the app exits or device restarts.
  • Room - Access your app's SQLite database with in-app objects and compile-time checks.
  • Glide - Load and cache images by URL.
  • Moshi - Serialize Kotlin objects and deserialize JSON objects.

Modules

Using the above modularization strategy, the Android Sample app has the following modules:

Name Responsibilities Key classes and good examples
app Brings everything together required for the app to function correctly. This includes UI scaffolding and navigation. SampleApplication, MainActivity
App-level controlled navigation via NavHost is Empty
feature:1,
feature:2
...
Functionality associated with a specific feature or user journey. Typically contains UI components and ViewModels which read data from other modules.
Examples include:
MainActivity, MainViewModel
VerticalPagingActivity, PagingViewModel
core:designsystem Design system which includes Core UI components (many of which are customized Material 3 components), app theme and icons. The design system can be viewed by running the app-nia-catalog run configuration. BaseComposeView BottomLogo Chips
core:ui Composite UI components and resources used by feature modules, such as the news feed. Unlike the designsystem module, it is dependent on the data layer since it renders models, like news resources. NewsFeed NewsResourceCardExpanded
core:data Making network requests and handling responses from a remote data source. ApiModule
core:datastore Storing persistent data using DataStore. SessionPreferencesDataSource
SettingsPreferencesDataSource
core:model Model classes used throughout the app. Topic
Shopping

Test API

androidsampleapp's People

Contributors

bwooram avatar woohyun-jeong avatar

Stargazers

Donghyeon Kim avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.