/template_ch

Primary LanguageKotlinApache License 2.0Apache-2.0

Template

Template app to kickstart development of a new Android app. It uses JSONPlaceholder API to fetch data and has a common set of features that most apps have.

Getting started

  1. Click on the Use this template button at the top right of the repository to create a new repository based on this template.
  2. Edit the renameConfig section in the buildscripts/setup.gradle file to use your own newProjectName, newRootProjectName, newMaterialThemeName, newApplicationId and newDeeplinkHost values.
  3. Run the ./gradlew renameTemplate command to rename all the files and replace the template values with the ones you specified in the previous step.
  4. Run the ./gradlew clean command to clean the project.
  5. Click on the Sync Project with Gradle Files button in Android Studio.

Features

  • Login screen with email and password field validation

  • Posts screen with a list of posts

  • Post details screen

  • Splash screen

  • Deeplink setup, including checking the user auth state

    Demo

    Deeplink | User isn't logged in

    Screen.Recording.2024-01-06.at.00.57.28.1.mov

    Deeplink | User is logged in

    Screen.Recording.2024-01-06.at.00.58.11.1.mov

Architecture

The Template app follows the official architecture guidance

Project structure

The project is structured in the following way:

  • app module contains the base template app
  • sample module contains examples of common features used in Android apps

Main libraries used in this project

UI

The app was designed using Material 3 guidelines.

Screenshots

| | |

TODO

  • Tests
  • CI/CD
  • Documentation
  • Add more samples

Inspired by

NowInAndroid

AndroidAppTemplate

Contributing

Contributions are welcome! Feel free to submit a PR or open an issue if you have any questions or find a bug.

License

Template is distributed under the terms of the Apache License (Version 2.0). See the license for more information.