技术控

    今日:41| 主题:49101
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] 爽翻天!告别Java。一起来使用kotlin开发完整客户端

[复制链接]

立即注册CoLaBug.com会员,免费获得投稿人的专业资料,享用更多功能,玩转个人品牌!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
必须写在前面:从Java转向Kotlin,只需要几天时间!

  本篇是kotlin开发Android系列教程的最后一篇。前面几篇介绍了kotlin的基本语法、与java的不同之处等。在本篇文章中,将使用到前面的知识点,从零开发一款Gank.io 干活集中营App(感谢Gank提供的Api)。 该App完全使用了Kotlin语言开发,基于MVP模式,并使用如下主流开源框架:
  
       
  • Kotlin   
  • Dagger2   
  • Rxjava   
  • DataBinding   
  • Retrofit   
  • Okhttp3   
  • DeepLinkDispatch   
  • Gson   
  • Glide  
  除了以上主流库,还运用到了我的一个导航栏滑动隐藏库:
  
       
  •   ByeBurger
      该项目地址为 GankClient-Kotlin ,如果你想学习Kotlin,那么这个项目应该会给予你不少的帮助。
      
     界面风格采用了MD风格,多数控件都是design包里的内容。主要实现了一个客户端该有的内容,界面交互,信息展示,数据获取等等。
   
爽翻天!告别Java。一起来使用kotlin开发完整客户端-1 (Android,项目开发,design,集中营,知识点)


爽翻天!告别Java。一起来使用kotlin开发完整客户端-2 (Android,项目开发,design,集中营,知识点)
     笔者已经将Kotlin运用在项目开发2个月了,期间难免有一些坑,但是在坑之外,是他带给我的 快感 ,从此以后。用Kotlin写代码相较于Java完全是一种享受。鉴于有些同学没有看前面的文章,这里再简单介绍一下Kotlin。
  Kotlin是又一个基于JVM的语言,由JetBrains开发(你用的Android Studio就是他家的)。 如果你有java基础,那么他上手极其容易。
  除了无缝调用java(所有java类、java库皆可不作任何处理的兼容)、一键将java转为Kotlin、空指针安全这些特性,还有许多比Java屌的特性。下面举一些栗子:
   1.代码量对比( 参考 使用Kotlin开发Android(一) ):
  Java

  [code]
TextView textView = findViewById(R.id.textView);

textView.setText("Hello World");[/code]  Kotlin

  [code]
textView.text = "hello kotlin"[/code]   下面是 扩展函数 展示,参考 使用Kotlin开发Android(二)
  扩展函数简单来说,就是将某个类不通过继承动态扩展,来添加方法等,比如下面的toast就是扩展了Context类。
  Java

  [code]
Button button = findviewbyid(R.id.button)
button.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
Toast.makeText(this,"hello java",Toast.LENGTH_SHORT);
}
});[/code]  Kotlin

  [code]button.setOnClickListener {toast("hello kotlin")}[/code]  POJO类(Java Bean对比)
  java

  [code]public class User {
private String name;
private String id;

public User(String name, String id) {
this.name = name;
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

}[/code]   kotlin(不要被吓到,确实这么短!!)
  [code]
data class User(var name: String, var id: String)[/code]  栗子完毕

  相信看到上面的一些代码对比,大家心里已经比较清楚kotlin的特点了。相比java,代码少了至少三倍。这简直是大快人心!
  开发完整App客户端

  现在,假定你已经了解了Kotlin的基本用法,那么我将给你介绍这个客户端App的结构。
  MVP

   通过契约类Contract管理View Model Presenter接口(如果你项目写烦了MVP,那么安利下自动生成MVP代码的插件 MVPHelper )。
  
       
  • Model — 主要处理业务,用于数据的获取(如网络、本地缓存)。   
  • View — 用于把数据展示,并且提供交互。   
  • Presenter — View和Model交互的桥梁,二者通过Presenter建立联系。  
  主要流程如下: 用户与View交互,View得知用户需要加载数据,告知Presenter,Presenter则告知Model,Model拿到数据反交于Prsenter,Presenter将数据交给View进行展示。
  偷一张老图:
12下一页
友荐云推荐




上一篇:使用Apache Spark构建实时分析Dashboard
下一篇:K8s容器设计模式实践,分散收集模式
酷辣虫提示酷辣虫禁止发表任何与中华人民共和国法律有抵触的内容!所有内容由用户发布,并不代表酷辣虫的观点,酷辣虫无法对用户发布内容真实性提供任何的保证,请自行验证并承担风险与后果。如您有版权、违规等问题,请通过"联系我们"或"违规举报"告知我们处理。

雨梅 发表于 4 天前
啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我要投稿

推荐阅读

扫码访问 @iTTTTT瑞翔 的微博
回页顶回复上一篇下一篇回列表手机版
手机版/CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 )|网站地图 酷辣虫

© 2001-2016 Comsenz Inc. Design: Dean. DiscuzFans.

返回顶部 返回列表