Giter VIP home page Giter VIP logo

jetpack-compose-template's Introduction

Jetpack Compose Android template

To create you own repo, click on:

Use this template

Important

Here you can find detailed instructions on how to turn the template into your own app

What does it use?

What does it offer?

  • ⚫ dark theme support
  • 🇬🇧 🇮🇹 in-app language preference
  • 🔒 encrypted datastore
  • 🔭 linting and formatting on PR
  • 🔧 custom snackbars

Screenshots

Light/dark theme Light theme home screen screenshot Dark theme home screen screenshot
Language and theme pickers Language picker screenshot Theme picker screenshot

Inspo

Useful features

If you wanna implement some of the following things (not included by this template), consider searching in Now in Android repo first:

Note

Feel free to contribute or reach out to me at my email

jetpack-compose-template's People

Contributors

seve-andre avatar

Stargazers

Bassem Mohsen avatar flamy avatar Goh Qiu Le avatar  avatar  avatar Ubaidullah Niazi avatar  avatar Bùi Hải Quy avatar Yair Cano Hernandez avatar Justicx26 avatar Naufal AP avatar Ellion Blessan avatar  avatar Wim Sonevel avatar Mark Bzm avatar Younes Belouche avatar 残血战士 avatar tinyfight avatar Tolga Erbaş avatar Andrea Severi avatar  avatar Parth Takkar avatar  avatar Dmytro avatar Vikram Kriplaney avatar Tushar Asodariya avatar Arda K. avatar arikawa0712 avatar Sergio Crespo Toubes avatar hashi_84 avatar  avatar Danil Nikolaev avatar Muhammad Wildan Iskandar avatar  avatar Vladimir Tanakov avatar  avatar Mistletoe avatar RICHARD IKENNA avatar Cato Godlee avatar  avatar Abhay Koradiya avatar  avatar Tim Mailu avatar Hüseyin Şahinli avatar Vincent Zuo avatar Nikhil Parab avatar Binay Shaw avatar  avatar Wye avatar Aritra Das avatar Babatunde Oladotun avatar Jefferson Abreu Martinez avatar Karimi Amine avatar Yao Yuan avatar abaferas avatar Enes Ceviz avatar McGregorWiloh avatar Majid Arabi avatar Claudia avatar

Watchers

 avatar  avatar  avatar

jetpack-compose-template's Issues

Run PR checks on kotlin files only

Project's Github workflow called linting-on-pr.yml has detekt checks, which should run only if the number of .kt/.kts files is above zero.

Implement `placeholder` using `Modifier.Node`

Due to the deprecation of Accompanist placeholder owing to its lack of maintenance, the recommended approach is to duplicate the source code. However, a challenge arises as the current method for creating custom modifiers has shifted from composed {} to Modifier.Node. Consequently, a new implementation must be devised from the existing one, while retaining the basic, fade, and shimmer effects.

Run detekt on changed files only on PR

Currently, when opening a new PR, a detekt linter is run on all project files, which adds time to the PR. Ideally, detekt checks should be applied to changed files only.

PR linting and formatting

Before merging pull requests, ensure that linting and formatting checks are passing. Set up a process that requires these actions and rejects the PR if they are not completed successfully.

Encrypted DataStore

DataStore is the modern recommended data storage solution to store key-value pairs/typed objects. However, it currently lacks native encryption/decryption capabilities. On the other hand, EncryptedSharedPreferences has been available for some time.

Several approaches exist to implement encryption:

  • use EncryptedSharedPreferences, sacrificing the advantages offered by DataStore (not really ideal)
  • create an EncryptedSerializer using Keystore (complicated to deal with)
  • use encrypted-datastore as an interim solution until an official resolution is provided (check that it doesn't use EncryptedSharedPreferences under the hood)

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.