Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hashemi-hossein/ara-note

A reliable note taking app
https://github.com/hashemi-hossein/ara-note

android clean-architecture coroutines-flow datastore-android hilt-dependency-injection jetpack jetpack-compose kotlin kotlin-coroutines material3 mockk mvi-android pageobject-pattern room-database uitesting unittesting

Last synced: 5 days ago
JSON representation

A reliable note taking app

Awesome Lists containing this project

README

        

# Ara Note

A reliable note taking app

[Get it on IzzyOnDroid](https://apt.izzysoft.de/fdroid/index/apk/ara.note)

Or get the latest APK from the [Releases Section](https://github.com/hashemi-hossein/ara-note/releases/latest)

## Screenshots

[Home](fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot1.jpg)
[Drawer](fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot2.jpg)
[Settings](fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot3.jpg)
[Home_Dark](fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot4.jpg)
[Drawer_Dark](fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot5.jpg)

## Directory structure

.
├── app
├── core
│ ├── alarm
│ ├── backup
│ ├── database
│ ├── domain
│ ├── entity
│ ├── preference
│ ├── repository
│ ├── test
│ ├── ui
│ └── util
├── feature
│ ├── home
│ ├── navigation
│ ├── notebookslist
│ ├── notedetail
│ └── settings
└── gradle_plugin

## Technical point of view

* [Kotlin](https://kotlinlang.org/)
* Clean Architecture + [MVI](https://developer.android.com/topic/architecture)
* [Multi-Module Project](https://developer.android.com/topic/modularization)
* [Gradle Version Catalog](https://docs.gradle.org/current/userguide/platforms.html)
* Custom Gradle Plugins (in gradle_plugin directory)

* [Material 3](https://m3.material.io/) design system
* Declarative UI by [Jetpack Compose](https://developer.android.com/jetpack/compose)
* [Reactive programming](https://en.wikipedia.org/wiki/Reactive_programming) by [Kotlin Coroutines](https://github.com/Kotlin/kotlinx.coroutines) and [Flow](https://kotlinlang.org/docs/flow.html)
* [Dependency injection (DI)](https://en.wikipedia.org/wiki/Dependency_injection) by [Hilt](https://developer.android.com/training/dependency-injection/hilt-android)
* Data Persistence by [Room database](https://developer.android.com/training/data-storage/room/) and [DataStore](https://developer.android.com/topic/libraries/architecture/datastore)

* Unit Tests
* UI Tests
* [Page Object Models](https://www.selenium.dev/documentation/test_practices/encouraged/page_object_models/) for UI Tests
* [MockK](https://mockk.io/) mocking lib
* [kotlin.test](https://kotlinlang.org/api/latest/kotlin.test/) assertion lib