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

 

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

本篇是kotlin开发Android系列教程的最后一篇。前面几篇介绍了kotlin的基本语法、与java的不同之处等。在本篇文章中,将使用到前面的知识点,从零开发一款Gank.io 干活集中营App(感谢Gank提供的Api)。 该App完全使用了Kotlin语言开发,基于MVP模式,并使用如下主流开源框架:

除了以上主流库,还运用到了我的一个导航栏滑动隐藏库:

  • ByeBurger
    该项目地址为GankClient-Kotlin ,如果你想学习Kotlin,那么这个项目应该会给予你不少的帮助。

界面风格采用了MD风格,多数控件都是design包里的内容。主要实现了一个客户端该有的内容,界面交互,信息展示,数据获取等等。

笔者已经将Kotlin运用在项目开发2个月了,期间难免有一些坑,但是在坑之外,是他带给我的快感,从此以后。用Kotlin写代码相较于Java完全是一种享受。鉴于有些同学没有看前面的文章,这里再简单介绍一下Kotlin。

Kotlin是又一个基于JVM的语言,由JetBrains开发(你用的Android Studio就是他家的)。 如果你有java基础,那么他上手极其容易。

除了无缝调用java(所有java类、java库皆可不作任何处理的兼容)、一键将java转为Kotlin、空指针安全这些特性,还有许多比Java屌的特性。下面举一些栗子:

1.代码量对比( 参考使用Kotlin开发Android(一)):

Java

Kotlin


下面是扩展函数展示,参考使用Kotlin开发Android(二)

扩展函数简单来说,就是将某个类不通过继承动态扩展,来添加方法等,比如下面的toast就是扩展了Context类。

Java

Kotlin


POJO类(Java Bean对比)

java

kotlin (不要被吓到,确实这么短!!)


栗子完毕

相信看到上面的一些代码对比,大家心里已经比较清楚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进行展示。

偷一张老图:


Dagger2

项目中,主要进行presenter、model、retrofit Api等类的注入操作。这里不做详细Dagger2用法解释,还不太会的同学可以先去拜读下大神的教程。Dagger2在Kotlin中使用有一些配置是不一样的,详细配置请看项目源码

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

主要用于网络访问。这些都是主流的库,使用方式与java相同(当然除了语法以外)


DeepLinkDispatch

基于路由进行页面转发。可以解决多人多模块协作转跳的问题。

GankClientUri 定义一些路由规则、URI等

GankRouter 统一由此进行路由操作


GSON

用于json的解析操作。


Glide

用于图片的加载。


ByeBurGer

用于导航栏以及悬浮按钮滑动隐藏。


本客户端项目的地址:
https://github.com/githubwing/GankClient-Kotlin

开源本客户端的原因旨在让更多人了解Kotlin,接触Kotlin,从而使用Kotlin,实在是好东西不敢私藏。并且希望通过Kotlin能认识更多志同道合的朋友们,一起讨论技术共同进步。

如果该项目能帮助到你学习Kotlin,那是最好不过的事情了。欢迎star.

爽翻天!告别Java。一起来使用kotlin开发完整客户端》有13个想法

  1. [url=http://www.jacqueli.cybersite.nu/blogg?ibe=187074]www.jacqueli.cybersite.nu[/url] [url=http://alejandr.nation2.com/sverige-troja]alejandr.nation2.com[/url] [url=http://enriquet.blogfree.net/]enriquet.blogfree.net[/url] [url=http://www.professiondex.com/blogs/479/1034/manchester-united-troja-forklarat-att-han-inte-skulle]www.professiondex.com[/url]

  2. Pearls are mushy and easily broken, so they should at all times be stored in a comfortable
    back that is free of dust and other tiny particles that might scratch the fragile surface.
    Many other pure gem stones also ought to be stored in individual pouches to keep
    them safe from different stones and metals in your jewellery box.

  3. Nice post. I learn something new and challenging on websites I stumbleupon on a daily basis.
    It’s always useful to read content from other writers and use a little something
    from other web sites.

  4. Before you begin to search online for your style jewelry you must determine what kind of
    fashion jewelry you might be on the lookout for.
    Are you in search of designer items?

  5. India’s exports of cut and polished diamonds between April to November jumped by
    12.2 % from a year ago to $15.four billion, the
    Gems and Jewelry Export Promotion Council said last month.

  6. Middle Minoan period, in Greece, when rapid social adjustments took
    place, with palaces rising for the primary time, but also being
    destroyed and having to be rebuilt.

  7. This small silver-gilt bridal crown has six upright
    openwork elements of renaissance inspiration, joined collectively at
    the top by a hoop of silver-gilt wire, with utilized
    winged angel’s heads.

发表评论

电子邮件地址不会被公开。