All Projects → agrosner → KBinding

agrosner / KBinding

Licence: MIT license
A Small, Kotlin Android Databinding Library

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to KBinding

modern-android
Modern Android Project Skeleton
Stars: ✭ 17 (-10.53%)
Mutual labels:  viewmodel, anko, databinding
Jetpackmvvm
🐔🏀一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
Stars: ✭ 1,100 (+5689.47%)
Mutual labels:  viewmodel, databinding
Wanandroid
Jetpack MVVM For Wanandroid 最佳实践 !
Stars: ✭ 1,004 (+5184.21%)
Mutual labels:  viewmodel, databinding
Popularmovies
🎥 Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.
Stars: ✭ 142 (+647.37%)
Mutual labels:  viewmodel, databinding
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+2057.89%)
Mutual labels:  viewmodel, databinding
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+2136.84%)
Mutual labels:  viewmodel, databinding
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (+547.37%)
Mutual labels:  viewmodel, databinding
Moko Mvvm
Model-View-ViewModel architecture components for mobile (android & ios) Kotlin Multiplatform development
Stars: ✭ 329 (+1631.58%)
Mutual labels:  viewmodel, databinding
Coolweather
Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin
Stars: ✭ 154 (+710.53%)
Mutual labels:  viewmodel, databinding
Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (+1047.37%)
Mutual labels:  viewmodel, databinding
Books jetpack
A sample application to demonstrate how to use Jetpack Architecture Components in an Android Application following the Clean Architecture concepts.
Stars: ✭ 241 (+1168.42%)
Mutual labels:  viewmodel, databinding
Sunset-hadith
Islamic app written with Kotlin, using KTOR + coroutines + flow + MVVM + Android Jetpack + Navigation component. Old version using RxJava + Retrofit + OKHttp
Stars: ✭ 26 (+36.84%)
Mutual labels:  viewmodel, databinding
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (+1910.53%)
Mutual labels:  viewmodel, databinding
Kodein Mvvm
Example app using Kodein for dependency injection with MVVM and Architecture Components
Stars: ✭ 26 (+36.84%)
Mutual labels:  viewmodel, databinding
Android Jetpack Demo
🔥 快速入门Android Jetpack以及相关Kotlin、RxJava、MVVM等主流技术,独立构架App的基础技能
Stars: ✭ 335 (+1663.16%)
Mutual labels:  viewmodel, databinding
Mentorship Android
Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the Android application of this project.
Stars: ✭ 117 (+515.79%)
Mutual labels:  viewmodel, databinding
Chat-App-Android
Chat app based on the MVVM architecture using Kotlin, ViewModel, LiveData, DataBinding and more.
Stars: ✭ 70 (+268.42%)
Mutual labels:  viewmodel, databinding
Tictactoe Mvvm
Sample android application used to learn the Model View View Model pattern and DataBinding in Android
Stars: ✭ 268 (+1310.53%)
Mutual labels:  viewmodel, databinding
Jetpack github
基于Kotlin + Jetpack全家桶 + Coroutines(协程) + Flutter等架构实现的一款精简版Github客户端项目,望与广大小伙伴一起成长,欢迎start or fork!
Stars: ✭ 314 (+1552.63%)
Mutual labels:  viewmodel, databinding
Android Vmlib
VMLib is an Android framework based on Android Jetpack, easy to use, desinged for fast development. Embrace the new way devloping Android :)
Stars: ✭ 146 (+668.42%)
Mutual labels:  viewmodel, databinding

KBinding

KBinding is a Kotlin databinding library best used with Anko to enable databinding in a fluent, easy to understand syntax.

We can represent our UI in ways such as:

verticalLayout {

  textView {
    bindSelf { it.name }.toText(this)
  }

  editText {
    hint = "Email"
    bindSelf { it.emailInput }
      .toText(this)
      .twoWay(
      .toFieldFromText()
  }.lparams {
    width = MATCH_PARENT
  }

  textView {
    bindSelf { it.emailInput } // mirrors input for example
      .toText(this)
  }
}

Including in your project

buildscript {
  ext {
    kbinding_version = "1.0.0"
  }
}

allProjects {
  repositories {
    // required to find the project's artifacts
    maven { url "https://www.jitpack.io" }
  }
}
compile "com.github.agrosner.kbinding:kbinding:$kbinding_version"

// to use with Anko, separate artifact.
compile 'org.jetbrains.anko:anko-sdk15:0.10.3' // current version of anko used
compile "com.github.agrosner.KBinding:kbinding-anko:$kbinding_version"

Documentation

We support three kind of bindings:

  1. One Way (ViewModel to View)
  2. Two Way (ViewModel <-> View)
  3. One Way to Source (View to ViewModel)

Read more in the docs below:

Supported Bindings

Getting Started

KBinding By Example

Pull Requests

I welcome and encourage all pull requests. Here are some basic rules to follow to ensure timely addition of your request:

  1. Match coding style (braces, spacing, etc.) This is best achieved using CMD+Option+L (Reformat code) on Mac (not sure for Windows) with Android Studio defaults.
  2. If its a feature, bugfix, or anything please only change code to what you specify.
  3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :)
  4. Pull requests must be made against develop branch. Any other branch (unless specified by the maintainers) will get rejected.
  5. Have fun!

Maintained By

agrosner (@agrosner)

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].