JetNote

JetNote is modern MVVM note android application written by kotlin language and jetpack-compose toolkit. The app dealing with Room for Database, Dagger-Hilt dependency injection, Coroutine the non-blocking programming, Navigation-Compose, DataStore, ExoPlayer to play the recorded media in the app, CameraX to take and save picture, And more to make it good app that inspired by google app keep Notes.

API
Kotlin Version
Kotlin Coroutines Version
GitHub license
Android Platform
Android CI
CodeFactor

Screenshots

Check it out Project manager to see what's going on and what's comming in this project.

Libraries

Kotlinx-coroutines

A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.

The Navigation component provides support for Jetpack Compose applications. You can navigate between composables while taking advantage of the Navigation component’s infrastructure and features.

Room

The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.

DataStore

Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally.

Dependency-injection-with-hilt

Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires you to construct every class and its dependencies by hand, and to use containers to reuse and manage dependencies.

Sketchbook

Jetpack Compose canvas library that helps you draw paths, images on canvas with color pickers and palettes.

accompanist

Accompanist is a group of libraries that aim to supplement Jetpack Compose with features that are commonly required by developers but not yet available.

  1. Permissions: A library that provides Android runtime permissions support for Jetpack Compose.

  2. Pager: A library that provides utilities for building paginated layouts in Jetpack Compose, similar to Android's ViewPager.

  3. Navigation-Animation: A library which provides Compose Animation support for Jetpack Navigation Compose.

  4. SwipeRefresh: A library that provides a layout implementing the swipe-to-refresh UX pattern, similar to Android's SwipeRefreshLayout.

  5. Flow Layouts: A library that adds Flexbox-like layout components to Jetpack Compose.

ExoPlayer

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet.

CameraX

CameraX is an addition to Jetpack that makes it easier to add camera capabilities to your app. The library provides a number of compatibility fixes and workarounds to help make the developer experience consistent across many devices.

Timber

This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.

Coil

An image loading library for Android backed by Kotlin Coroutines.

The App Hierarchy

                          *****************************
                          |        UI Controller      |
                          *****************************
                                        |
                                        |
                          *****************************
                          |        View Module        |
                          *****************************
                                        |
                                        |
                          *****************************
                          |         Repository        |
                          *****************************
                                        |
                      --------------------------------------
                      |                                     |
          *****************************      *****************************
          |            Room           |      |        ...........        |
          *****************************      *****************************

License

Copyright 2022 The Android Open Source Project
 
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

GitHub

https://github.com/City-Zouitel/