《Kotlin 程序设计》第十四章 使用Kotlin开发Android程序
来源:互联网 发布:网络主播思瑞和眼镜男 编辑:程序博客网 时间:2024/06/08 11:19
第十四章 使用Kotlin开发Android程序
Kotlin for android
https://github.com/EasyKotlin/Kotlin-for-Android-Developers
展示一个实现登录注册的demo
下面就我们就开始一个入门级别的demo吧,现在谷歌已经推出了android studio3.0已经支持了Kotlin这门语言,下载地址:https://developer.android.google.cn/studio/preview/index.html ,只需要在这里新建一个工程,然后在是否要加入kotlin的选项上面勾一下就可以了。
下面看一下登录注册的代码:
class MainActivity : AppCompatActivity() { var userName: EditText? = null var userPwd: EditText? = null var register: Button? = null var login: Button? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) userName = findViewById(R.id.user_name) as EditText userPwd = findViewById(R.id.user_pwd) as EditText register = findViewById(R.id.register) as Button login = findViewById(R.id.login) as Button login!!.setOnClickListener { if (userName!!.text.toString() == "123456" && userPwd!!.text.toString() == "abc") { Toast.makeText(this, "login succeed1", Toast.LENGTH_SHORT).show() val intent = Intent(this,HomeActivity::class.java) startActivity(intent) } } register!!.setOnClickListener { Toast.makeText(this, "the function has not open ...", Toast.LENGTH_SHORT).show() } }}
当然实现的代码就非常简单啦,只是可能我们在刚开始接触这门语言的时候有一些的不理解。大家可以看一下上面的代码,要是有什么不理解的地方欢迎issue。
源码地址:https://github.com/linsir6/Kotlin
https://github.com/EasyKotlin/Bandhook-Kotlin
Kotlin生态库
项目模式
- Kotlin
- MVP
- Dagger2
- Rxjava
- DataBinding
- Retrofit
- Okhttp3
- DeepLinkDispatch
- Gson
- Glide
- ByeBurger
Kotlin
让你的代码量大大减少,函数式编程让你爽到飞上天!如果你想学习Kotlin,本项目应该会给你不少帮助。
MVP
通过契约类Contract管理View Model Presenter接口。
- Model -- 主要处理业务,用于数据的获取(如网络、本地缓存)。
- View -- 用于把数据展示,并且提供交互。
Presenter -- View和Model交互的桥梁,二者通过Presenter建立联系。
主要流程如下: 用户与View交互,View得知用户需要加载数据,告知Presenter,Presenter则告知Model,Model拿到数据反交于Prsenter,Presenter将数据交给View进行展示。
Dagger2
项目中,主要进行presenter、model、retrofit Api等类的注入操作。
ApiComponent
主Component、用于注入AppComponent、便于提供子Component依赖。 依赖于: 1.ApiModule(提供okhttpClient、Retrofit、Api等) 2.AppModule(提供context对象(okhttp拦截器所需))
FuckGoodsComponent
父Component为ApiComponent 用于注入FuckGoodsPresenter 依赖于: FuckGoodsModule(提供FuckGoodsView)
RandomComponent
父Component为ApiComponent 用于注入RandomPresenter依赖于 : RandomModule(提供RandomView)
Rxjava + Retrofit + okhttp3
主要用于网络访问。
DeepLinkDispatch
基于路由进行页面转发。
GankClientUri 定义一些路由规则、URI等
GankRouter 统一由此进行路由操作
GSON
用于json的解析操作。
Glide
用于图片的加载。
ByeBurGer
用于导航栏以及悬浮按钮滑动隐藏。
参考资料
1.http://git.bookislife.com/post/2016/dev-android-using-scala/
2.https://github.com/saturday06/gradle-android-scala-plugin
3.https://github.com/pocorall/scaloid
- Kotlin 示例教程
- kotlin中文官网
- kotlin官网
- kotlin官网翻译
- kotlin书籍
- kotlin demo
- 《Kotlin 程序设计》第十四章 使用Kotlin开发Android程序
- 《Kotlin 程序设计》第十三章 使用Kotlin开发JavaScript代码
- 使用Kotlin开发Android
- 使用Kotlin开发Android
- 使用kotlin开发android
- Kotlin 第十四章:函数
- 《Kotlin 程序设计》第八章 Kotlin 集成Spring Boot开发
- 使用kotlin来开发android
- 使用Kotlin进行Android开发
- 使用Kotlin进行Android开发
- 使用Kotlin开发Android应用
- 使用Kotlin简化Android开发
- 使用Kotlin进行Android开发
- 使用Kotlin进行Android开发
- 使用Android Studio+Kotlin开发
- 使用Kotlin进行Android开发
- 使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- 《Kotlin 程序设计》第十一章 Kotlin实现DSL
- python 初学扩展随机数
- 《Kotlin 程序设计》第十三章 使用Kotlin开发JavaScript代码
- python—matplotlib数据可视化实例注解系列-----设置标注字体样式(matplotlib颜色库)
- 《Kotlin 程序设计》第十二章 Kotlin的多线程:协程(Coroutines)
- 《Kotlin 程序设计》第十四章 使用Kotlin开发Android程序
- Spring Boot 实现json和jsonp格式数据接口
- datagrip在离线状态如何安装数据驱动mysql-connector-java-5.1.40-bin.jar
- 计算机语言是怎样设计出来的
- 编译器之自举
- 【实践】CTR预估中的贝叶斯平滑方法(二)
- 程序的基本概念
- linux install 命令
- .NET 2.0 SP2开发和通过VS2012进行采用Framework 2.0不是完全相同的。