All Projects → aartikov → Sesame

aartikov / Sesame

Licence: mit
Android architecture components made right

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Sesame

Gallerit
A sample Android gallery to search images posted on Reddit built using modern Android development tools (Architecture Components, MVVM, Coroutines, Flow, Navigation, Retrofit, Room, Koin)
Stars: ✭ 153 (+218.75%)
Mutual labels:  coroutines, mvvm, navigation
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+910.42%)
Mutual labels:  reactive-programming, architecture, mvvm
Cocktailapp
Cocktails Android App with Clean Architecture, MVVM , Retrofit, Coroutines, Navigation Components , Room, Dagger Hilt, Cache Strategy and Coroutines Flow
Stars: ✭ 128 (+166.67%)
Mutual labels:  coroutines, architecture, mvvm
The Movie Db Kotlin
The Movie DB app using Kotlin with updated Android features
Stars: ✭ 176 (+266.67%)
Mutual labels:  coroutines, mvvm, navigation
Jethub
Sample App with Jetpack components(LiveData, Navigation, ViewModel) + MVVM + coroutine + single activity
Stars: ✭ 224 (+366.67%)
Mutual labels:  coroutines, mvvm, navigation
DeezerClone
This Application using Dagger Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData),Navigation based on MVVM architecture.
Stars: ✭ 81 (+68.75%)
Mutual labels:  navigation, coroutines, mvvm
GitHubApplication
GitHubApplication 📱 is an Android application built to demonstrate the use of modern Android development tools - (Kotlin, Coroutines, Hilt, LiveData, View binding, Data Store, Architecture components, MVVM, Room, Retrofit, Navigation).
Stars: ✭ 11 (-77.08%)
Mutual labels:  navigation, coroutines, mvvm
Cleanarchitecturerxswift
Example of Clean Architecture of iOS app using RxSwift
Stars: ✭ 3,256 (+6683.33%)
Mutual labels:  reactive-programming, architecture, mvvm
Offlinesampleapp
Sample Offline-First MVVM app that uses Android Priority Job Queue, Room, Retrofit2, LiveData, LifecycleObserver, RxJava2, Dagger Android
Stars: ✭ 653 (+1260.42%)
Mutual labels:  reactive-programming, mvvm
Jetpack Mvvm Best Practice
是 难得一见 的 Jetpack MVVM 最佳实践!在 以简驭繁 的代码中,对 视图控制器 乃至 标准化开发模式 形成正确、深入的理解!
Stars: ✭ 6,950 (+14379.17%)
Mutual labels:  mvvm, navigation
Ios Clean Architecture Mvvm
Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI
Stars: ✭ 753 (+1468.75%)
Mutual labels:  architecture, mvvm
Thecontext Podcast
Podcast about Android Development with Hannes Dorfmann, Artem Zinnatullin, Artur Dryomov and wonderful guests!
Stars: ✭ 637 (+1227.08%)
Mutual labels:  reactive-programming, architecture
Androidquick
做外包用的快速开发库--微信、支付宝支付(含签名,下单)、自定义View(验证码/密码,九宫格图片上传等)、换肤、图片预览、RxJava、EventBus、JetPack、CameraX、base层封装等
Stars: ✭ 565 (+1077.08%)
Mutual labels:  coroutines, mvvm
Ribs
Uber's cross-platform mobile architecture framework.
Stars: ✭ 6,641 (+13735.42%)
Mutual labels:  architecture, mvvm
Android Showcase
💎 Android application following best practices: Kotlin, Coroutines, JetPack, Clean Architecture, Feature Modules, Tests, MVVM, DI, Static Analysis...
Stars: ✭ 5,214 (+10762.5%)
Mutual labels:  architecture, mvvm
Androidviewmodel
Separating data and state handling from Fragments or Activities without lots of boilerplate-code.
Stars: ✭ 824 (+1616.67%)
Mutual labels:  architecture, mvvm
Marvelheroes
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin) architecture.
Stars: ✭ 826 (+1620.83%)
Mutual labels:  coroutines, mvvm
Reactiveui
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application.
Stars: ✭ 6,709 (+13877.08%)
Mutual labels:  reactive-programming, mvvm
Ios Architecture
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others
Stars: ✭ 901 (+1777.08%)
Mutual labels:  architecture, mvvm
Plainupnp
PlainUPnP is an upnp control point application for android.
Stars: ✭ 33 (-31.25%)
Mutual labels:  coroutines, mvvm

Sesame

Maven Central license

Sesame is a set of architecture components for Android development. It is based on modern technologies including coroutines and Flow. Sesame is simple to learn and easy to use. It is ideally suited for MVVM and MVI architectures.

Components

property - provides observable properties and one-time commands.
dialog - allows to control dialogs from View Models.
navigation - gives an universal way to navigate between screens.
activable - equips View Models with a very simple lifecycle.
loading - helps to manage state for data loading (including paged one).
loop - provides a simple MVI implementation.

Sesame components are independent. Use only that you like.

Gradle Setup

dependencies {
    implementation 'com.github.aartikov:sesame-property:1.0.0-alpha3'
    implementation 'com.github.aartikov:sesame-dialog:1.0.0-alpha3'
    implementation 'com.github.aartikov:sesame-navigation:1.0.0-alpha3'
    implementation 'com.github.aartikov:sesame-activable:1.0.0-alpha3'
    implementation 'com.github.aartikov:sesame-loading:1.0.0-alpha3'
    implementation 'com.github.aartikov:sesame-loop:1.0.0-alpha3'
}

Sample

The sample application consists of several screens. Each screen demonstrates certain Sesame feature.

COUNTER - shows how to use properties and commands from property.
PROFILE - loads ordinary data with loading.
DIALOGS - shows how to use dialog.
MOVIES - loads paged data with loading.
CLOCK - shows how to use activable.
The whole app - demonstrates navigation.

There is no sample for loop. See LoadingLoop and PagedLoadingLoop as good examples how to use it.

Contact the author

Artur Artikov [email protected]

License

The MIT License (MIT)

Copyright (c) 2021 Artur Artikov

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
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].