《Kotlin 程序设计》第十四章 使用Kotlin开发Android程序
第十四章 使用Kotlin开发Android程序
正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial
京东JD:https://item.jd.com/12181725.html
天猫Tmall:https://detail.tmall.com/item.htm?id=558540170670
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
让你的代码量大大减少,函数式编程让你爽到飞上天!如果你想学习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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【游客必看】 博主所有文章目录
大家好,我是阿韦。欢迎用来到我的简书博客。下面是博客目录,按写作顺序排序如下: 01. 关于提高软件开发知识的建议 02.关于烂代码的那些事 – 评价代码优劣的方法 03.简单几行代码让ViewPager实现垂直滑动效果 04.Zxing二维码扫描和那些坑 05.万能的dialog库(包括类似popwindow效果) 06.封装工厂类创建BottomNavigationBar的addItem 07.RxJava 详解 08.实现Android主流网络框架封装,可无缝侵入切换框架 09. Android Studio使用Vector创建矢量图并加载 10.使用友盟分享和登陆以及使用时要注意的坑 11.优化Android Studio/Gradle构建 12.自定义ViewPager实现3D画廊效果 13.深入理解什么是RESTful API? 14.【全面总结】侧滑菜单的5种实现方式 15.自定义ProgressBar(一) 16.2017年你绝对想尝试的25个新安卓库(持续更新中...) 17.一次使用Kotlin实现酷炫多选操作的尝试 18.国内大公司开源的安卓有关的库(...
- 下一篇
Android数据层架构的实现 上篇
最近我们app的服务器吃不消了,所以我在为服务器增加缓存层之后,又想到在app端进行二级缓存以减少app对服务器的访问。我想很多app应该在项目的初期架构的时候就考虑到了这个问题,但是我当时开发这个app的时候完全不懂架构和设计模式,所以对性能根本没有考虑,导致了现在服务器经常崩溃。关于服务器的优化之后有时间再说,今天我们先来看看如何对一个app的数据的请求和缓存进行架构。 一.数据请求的分类、数据的可缓存性分析和数据同步## 如何对请求进行归类?这是个问题,在Http请求里设定了八种请求的方式,但是显然并不适合我们这里的情况。我对我们app中的数据请求进行归类之后进行了一下两种分类 1.根据需要对请求做那些操作进行分类: 1.GET:需要去内存、硬盘和服务器中取数据的请求,请求时可以提供参数,但是参数并不会上传到内存、硬盘和服务器中。 2.INSERT:需要将数据上传至内存、硬盘和服务器中,返回的数据根据具体情况判断是否需要缓存到内存或者硬盘中。 3.NONE:向服务器进行验证操作,必须和服务器连接,上传的参数不会被存储在内存、硬盘和服务器中,返回的数据也不会被缓存在内存或者硬盘中 ...
相关文章
文章评论
共有0条评论来说两句吧...