• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

MarcinMoskala/KotlinAndroidViewBindings: Bindings for properties with simple Kot ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

MarcinMoskala/KotlinAndroidViewBindings

开源软件地址(OpenSource Url):

https://github.com/MarcinMoskala/KotlinAndroidViewBindings

开源编程语言(OpenSource Language):

Kotlin 100.0%

开源软件介绍(OpenSource Introduction):

KotlinAndroidViewBindings

Bindings for properties with Kotlin types (Boolean, String) to layout traits (visibility, text).

Analytics

Library allows to bind properties of basic types (String, Int, functional) to view element properties. Example:

var email: String by bindToTextView(R.id.emailView)
val emailRequestFocus: ()->Unit by bindToRequestFocus(R.id.emailView)
var emailErrorId: Int? by bindToErrorId(R.id.emailView)

This allows to make clear and simple MVP. Example:

LoginView.kt

interface LoginView {
    var progressVisible: Boolean
    
    var email: String
    val emailRequestFocus: ()->Unit
    var emailErrorId: Int?
 
    var password: String
    val passwordRequestFocus: ()->Unit
    var passwordErrorId: Int?
    
    var loginButtonClickedCallback: ()->Unit
}

LoginActivity.kt

class LoginActivity : AppCompatActivity(), LoginView {
    
    override var progressVisible by bindToLoading(R.id.progressView, R.id.loginFormView)
    
    override var email by bindToTextView(R.id.emailView)
    override val emailRequestFocus by bindToRequestFocus(R.id.emailView)
    override var emailErrorId by bindToErrorId(R.id.emailView)
    
    override var password by bindToTextView(R.id.passwordView)
    override val passwordRequestFocus by bindToRequestFocus(R.id.passwordView)
    override var passwordErrorId by bindToErrorId(R.id.passwordView)
    
    override var loginButtonClickedCallback by bindToClick(R.id.loginButton)
    
    //...
}

Presenter.kt

class LoginPresenter(val view: LoginView) {

    fun onCreate() {
        view.loginButtonClickedCallback = { attemptLogin() }
    }
    
    //...
}

This makes presenters fully unit-testable while keeping Activities short and simple. Full example here. Library usage in wider context here.

Installation

To add KotlinAndroidViewBindings to the project, add to build.gradle file:

dependencies {
    implementation 'com.github.MarcinMoskala:KotlinAndroidViewBindings:0.12'
}

While library is located on JitPack, remember to add to module build.gradle (unless you already have it):

repositories {
    maven { url 'https://jitpack.io' }
}

Media

Other libraries

If you like it, remember to leave the star and check out my other libraries:

  • ActivityStarter - Simple Android Library, that provides easy way to start and save state of Activities, Fragments, Services and Receivers with arguments.
  • PreferenceHolder - Library for simple SharedPreference management in Kotlin
  • ArcSeekBar - Good looking curved Android SeekBar
  • VideoPlayView - Custom Android view with video player, loader and placeholder image

License

Copyright 2017 Marcin Moskała

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

   http://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.



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap