前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Kotlin踩坑无数的他想聊聊:如何完全使用 Kotlin 独立开发 App

在Kotlin踩坑无数的他想聊聊:如何完全使用 Kotlin 独立开发 App

作者头像
养码场
发布2018-08-13 16:40:50
1.4K0
发布2018-08-13 16:40:50
举报
文章被收录于专栏:养码场养码场

自谷歌宣布Kotlin成为 Android 开发官方支持的语言后,Kotlin的 这门 JVM 语言火速成为众多开发者关注的焦点,“养码场”社群内的养码人对此也聊意甚多。

两个多月过去了,Kotlin这门开源语言的人气不断攀升,甚至出现了“Kotlin:征服硅谷的编码语言”的言论。据场主了解到,此言论的缘由是,近日,Google的核心Android开发团队已经在生产代码中使用Kotlin。

虽养码人对此讨论甚多,但大多数也是持观望态度:不敢轻易使用,虽然背后站着JetBrains 和 Google 这两个巨头。

场主特意找到了一篇针对“Kotlin答疑解惑”的文章,答疑者是资深Kotlin 开发者刘自鹏。他,现就职于美团点评企业平台研发部,独立开发了 Twobbble(已开源)。这是一个 Android 平台的第三方 Dribbble 客户端,它完全基于 Material Design 设计,不过值得一提的是,Twobbble 完全使用 Kotlin 进行开发。

作为一个较早使用 Kotlin 的开发者,刘自鹏踩过的坑可谓是是数不胜数,加上独立开发这样一款精致的 App 的经验,以下针对Kotiln、独立开发以及如何开发出精致的 App 等问题做出的解答,可能会对你深入了解Kotlin有所帮助。

提问1:

在你看来,除了生态,Kotlin在语言方面还有哪些设计不足?或者说在实际使用中还有哪些需要workaround的方式或者比较丑陋的方法才能实现你所想要的东西?

刘自鹏:

目前我的使用过程都还是比较顺利的,没有遇到这些点。设计得好不好,我可能没办法去评论,但缺点:语言不可能完美,总归可能藏着,但依托于java的生态,我们总能找到workaround。

提问2:

如果Kotlin来开发app,从开发周期,效率来考虑,原生开发,html5混,当下哪种模式相对好一些,当下流行什么样的模式?

刘自鹏:

使用Kotlin来开发app,效率上已经是较于原来有一个很大的提升了。 而hybrid主要优势是跨平台,降低多平台的开发成本。纯原生开发最大的优势是更好的体验,更强的交互。没有办法去说哪种方案更好,因为这都是根据你的业务需求来的。

如果你的业务中有某个页面,它需要和iOS保持一致,并且内容可以快速随着业务需求去变化,hybrid很适合,如果没有类似的需求,并且你的应用很注重交互体验,那原生显然更好。

提问3:

Kotlin的突然出现,感觉有点始料未及。我从事Java也有多年,也一直在想找自己的第二语言,最近在学习Python。前一段时间看了go,scala,Erlang语言,感觉学习起来都不是很容易。

我大概有4个问题:

1、Kotlin会是让人比较容易上手的语言吗?

2、对于有Java经验的人,学习起来还有哪些瓶颈要克服?

3、对于Kotlin这门语言,会不会热过一阵之后,就消声匿迹了呢,它未来的发展,你感觉怎么样?

4、还有App使用kotlin开发,会比Java有什么优势吗?

刘自鹏:

针对一、二问题:按Kotlin开发团队的话来说,Kotlin是一门以java开发者的思维来开发的语言,Java 到 Kotlin的过渡是相当平滑的,只要熟悉基本语法,你几乎可以直接用你原来开发Java的思想去开发写Kotlin代码,而你学习更多Kotlin的特性就能够让你代码写起来更加轻松简洁,所以真的没有什么要克服的,多学习一些它的特性吧。

第三个问题:Android开发一直处于低糖的状态,其实不少Android开发者对现代语言早就如饥似渴了。Kotlin与Java完美的互操作这一点 为Kotlin的社区支持提供了很好的基础, 加上kotlin团队一直以来对开发者需求的快速反应迭代,所以对于Kotlin,至少在Android这个细分领域,我很看好它的未来。

第四个问题:对比Java的优势有很多,比如语法更加简洁、不啰嗦,更多的语法糖扩展函数,空安全,协程,通过扩展函数与lambda实现各种酷炫的高阶函数,默认参数,智能类型转换,以及更多的java所不具备的特性,总之它能够用更少的代码完成更多的事,也就能够让我们后续的维护成本更低。

提问4:

没有Java开发的经验,直接用Kotlin作为入门学习Android开发合适吗?

刘自鹏:

可以,但是不建议。为什么?

1、在你没有编程基础的情况下去学Kotlin,因为语法特性多而灵活,并不会比别的语言容易。

2、现在Android开发的基础教程,进阶教程清一色是Java的。你如果不会,那么你的学习过程会很吃力。

3、就现在的大环境来看,只会Kotlin的Android开发者可能找不到Android开发的工作。

提问5:

开发出精致的 App,介绍一下都用那些技术框架,怎么选择?

刘自鹏:

这里所说的精致,主要是UI与交互层面的。 至于个人开发时,技术如何选型,首先多关注行业动态可以看出哪些第三方项目是主流,这时你可以去看这个项目的star数量,数量大证明使用者多,接着瞄一眼issues,看看问题解决得及不及时。

当然技术服务于业务,技术选型也要照顾到和你的业务是否契合。

提问6:

请问app界面怎么做到交互性好,体验好,不知道从哪一方面学习这些,模仿别人的界面会属于侵权吧?

刘自鹏:

如果你只是练手,完全照搬知名应用的设计没有问题,但是如果你要发布,建议原创。 我一直认为作为一个客户端开发者,是有必要具备一定的ui设计能力与交互意识的。关于这点,如果你是Android开发者,可以学习Mater...

另外,建议多观察他人开发的设计优秀的App,吸取优点。可常浏览Dribbble。

提问7:

我准备“入坑”使用 Kotlin ,你有什么建议吗?

刘自鹏:

我认为 Kotlin 转正是 Android 开发者的福音。建议其实没什么,Android 开发者转用 Kotlin 过渡是很平滑的。总之,生命苦短,我用 Kotlin 。

作 者 介 绍

Android 开发者:刘自鹏

就职于美团点评企业平台研发部,较早使用 Kotlin 的开发者之一,Kotlin 项目 Twobbble 的作者,对 Material Design 有多年实践,热爱交互,专注应用层开发。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 养码场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档