All Projects → mutualmobile → Praxis

mutualmobile / Praxis

Licence: Apache-2.0 license
Example Android project using MVVM, DaggerAndroid, Jetpack Compose, Retrofit, Coroutines and Multi module architecture ✌🏽

Programming Languages

kotlin
9241 projects
shell
77523 projects

Projects that are alternatives of or similar to Praxis

WanAndroid
一个简洁漂亮与众不同的WanAndroid客户端,欢迎下载体验(〃'▽'〃)。(A simple and beautiful Wanandroid client App.) MVVM + Dagger2 + DataBinding + Lifecycle + OkHttp + Retrofit2
Stars: ✭ 81 (-68.6%)
Mutual labels:  dagger2, databinding, dagger2-android
Instant Weather
An Android weather application implemented using the MVVM pattern, Retrofit2, Dagger2, LiveData, ViewModel, Coroutines, Room, Navigation Components, Data Binding and some other libraries from the Android Jetpack.
Stars: ✭ 473 (+83.33%)
Mutual labels:  dagger2, databinding, dagger2-android
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+64.73%)
Mutual labels:  dagger2, databinding, dagger2-android
MVVMQuick
🚀使用MVVMQuick快速构建您的MVVM结构项目!(Quickly start projects with MVVMQuick!)
Stars: ✭ 23 (-91.09%)
Mutual labels:  dagger2, databinding, dagger2-android
ThinkRchive
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.
Stars: ✭ 84 (-67.44%)
Mutual labels:  dagger2, dagger2-android, jetpack-compose
Frekans
📻 Frekans is a radio player app. It will be fully developed with Kotlin. It is work-in-progress and under heavy development.
Stars: ✭ 43 (-83.33%)
Mutual labels:  dagger2, databinding, dagger2-android
Strict-DataBinding
善用 DataBinding 彻底解决 “View 实例的 Null 安全一致性问题”
Stars: ✭ 84 (-67.44%)
Mutual labels:  databinding, jetpack-compose
Kotlin Architecture Components Notes Demo
Example of Android Architecture Components which implements MVVM Pattern and written in Kotlin
Stars: ✭ 103 (-60.08%)
Mutual labels:  dagger2, databinding
MultipleAppModules
An example how to use multiple application modules in one android project
Stars: ✭ 105 (-59.3%)
Mutual labels:  dagger2, dagger2-android
Dagger Hilt Playerground
A playground for learning dagger hilt on android
Stars: ✭ 151 (-41.47%)
Mutual labels:  dagger2, dagger2-android
Android App Architecture Mvvm Databinding
A simple but complete project (in both Java & Kotlin) to demonstrate the Android application architecture with MVVM pattern, a client app for The Movie DB Web API. Dagger2 is used for dependency injection and RxJava is used for RFP (Reactive Functional Programming).
Stars: ✭ 69 (-73.26%)
Mutual labels:  dagger2, databinding
Kotlin Mvvm Architecture
Android Architecture Design Patterns using Kotlin, MVVM, Dagger2, LiveData, Room, MediatorLiveData, NetworkBoundResources, Retrofit, AndroidX, ViewModels, Dependency Injection using Dagger2, Repository pattern.
Stars: ✭ 126 (-51.16%)
Mutual labels:  dagger2, dagger2-android
Dahaka
Demo project for Dagger 2
Stars: ✭ 210 (-18.6%)
Mutual labels:  dagger2, dagger2-android
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (-61.24%)
Mutual labels:  dagger2, rxjava-android
Dagger2 Sample
A sample app to demo how to implement dagger in Android using Dagger Android Support library
Stars: ✭ 72 (-72.09%)
Mutual labels:  dagger2, dagger2-android
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (-52.33%)
Mutual labels:  dagger2, databinding
Android Mvvm Rx3 Dagger2 Navcomponent
Implemented using MVVM, LiveData, Room, RX3, Dagger2, Coil, View Binding, Navigation Component and AndroidX
Stars: ✭ 72 (-72.09%)
Mutual labels:  dagger2, rxjava-android
Roomrxjava
Room with Rxjava Example
Stars: ✭ 130 (-49.61%)
Mutual labels:  dagger2, dagger2-android
mvp-sample
Demonstrates how to implement MVP (Model View Presenter) pattern using Kotlin, RXJava, Retrofit, Dagger and DataBinding
Stars: ✭ 35 (-86.43%)
Mutual labels:  dagger2, databinding
raffler-kotlin
A raffling app developed as a playground to study many topics related to Android. Kotlin + Coroutines + MVVM
Stars: ✭ 44 (-82.95%)
Mutual labels:  dagger2, androidx

Praxis

2022 Hit Refresh! Praxis now loves ❤️ Jetpack Compose


This is a sample app written in Kotlin following clean architecture principles which uses slack app features as an example.

The purpose of this app to showcase:

  • Implementation of Jetpack Android Architecture components with Dagger Hilt and Data Binding to minimize boilerplate code.
  • Implementation of an architecture that will support both XML and the new Compose.
  • Implementation of Modular Multi Module Navigation Architecture.
  • Performing background task with Kotlin Coroutines

Requirements

  1. Android Studio : Arctic Fox | 2020.3.1 3.1 or higher
  2. Android Emulator or Physical android device

Built With 🏗

Tools Link
🤖 Kotlin Kotlin
🏛 Architecture Components Android Architecture Components
Data Binding Android Data Binding
💉 Dagger Hilt Dagger Hilt
🌐 Retrofit Retrofit
🚦 OkHttp OkHttp
📄 Gson Parsing Gson
🌊 Coroutines Kotlin Coroutines
🏄🏼‍♀️ Flows Flows

Architecture

Praxis follows the principles of Clean Architecture with Android Architecture Components.

Architecture's layers & boundaries:

Presentation Layer contains UI (Activities & Fragments) that are coordinated by ViewModels which execute 1 or multiple UseCases. Presentation Layer depends on Domain Layer.

Domain Layer is the most INNER part of the circle (no dependencies with other layers) and it contains Entities, Use cases & Repository Interfaces. Use cases combine data from 1 or multiple Repository Interfaces.

Data Layer contains Repository Implementations and 1 or multiple Data Sources. Repositories are responsible to coordinate data from the different Data Sources. Data Layer depends on Domain Layer.

Notes: Mapping between response models and transformed models will happen via extension functions defined in transformed model file

Conventions:

Files are suffixed with be defined Class types.

  • ViewModels are suffixed with VM. Ex: LoginVM
  • UseCases are suffixed with UseCase. Ex: LoginUseCase
  • Sources are suffixed with Source. Ex: LoginRemoteSource, LoginLocalSource
  • Repositories are suffixed with Repo. Ex: LoginRepo

Conclusion

This project can be used as a template for new apps. This project is continually evolving to integrate other libraries and techniques to keep it up to date.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].