18
回答
高手问答第 159 期 — 如何完全使用 Kotlin 独立开发 App?
华为云数据库免费试用   

OSCHINA 本期高手问答(2017 年 6 月 28 日 — 7 月 4 日)我们请来了@刘自鹏为大家解答有关 Kotlin、以及个人开发者如何开发出精致 App 的问题。

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

因为被谷歌宣布成为 Android 开发官方支持的语言,Kotlin 这门 JVM 语言火速成为众多开发者关注的焦点,开发者围绕着它的争论一度成为热门的话题。

虽然这门新兴的 JVM 语言背后站着 JetBrains 和 Google 这两个巨头,但依然有不少开发者不敢轻易使用它。因此,本期的高手问答邀请到了一位资深 Kotlin 开发者 —— 刘自鹏。和大家一起围绕 Kotlin 进行讨论、分享,希望能解答开发者心中的一些疑惑。

刘自鹏还带来了他的独立开发作品 Twobbble(已开源),这是一个 Android 平台的第三方 Dribbble 客户端。与大多数这类应用一样,它完全基于 Material Design 设计,不过值得一提的是,Twobbble 完全使用 Kotlin 进行开发。

作为一个较早使用 Kotlin 的开发者,刘自鹏踩过的坑可谓是是数不胜数,加上独立开发这样一款精致的 App 的经验,因此大家可以围绕 Kotiln、独立开发以及如何开发出精致的 App 这些方面进行提问,欢迎大家踊跃提问。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就相关的的问题向@刘自鹏提问,请直接回帖提问。

举报
局长
发帖于1年前 18回/4K+阅
共有18个答案 最后回答: 12个月前

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

--- 共有 1 条评论 ---
生存以上生活以下目前我的使用过程都还是比较顺利的,没有遇到这些点。设计得好不好,我可能没办法去评论,但缺点嘛~ 我觉得语言不可能完美,总归可能藏着,但依托于java的生态,我们总能找到workaround~ 未来如果遇到坑我也会及时和大家分享解决方案 :) 1年前 回复

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

--- 共有 2 条评论 ---
生存以上生活以下另外,建议多观察他人开发的设计优秀的App,吸取优点。可常浏览Dribbble。 1年前 回复
生存以上生活以下如果你只是练手,完全照搬知名应用的设计没有问题,但是如果你要发布,建议原创。 我一直认为作为一个客户端开发者,是有必要具备一定的ui设计能力与交互意识的。关于这点,如果你是Android开发者,可以学习Material Design 的设计指导,iOS开发者,可学习iOS人机交互指南。这两份文档均有中文翻译版本。 1年前 回复

@生存以上生活以下

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

--- 共有 1 条评论 ---
生存以上生活以下这里所说的精致,主要是UI与交互层面的。 至于个人开发时,技术如何选型,首先多关注行业动态可以看出哪些第三方项目是主流,这时你可以去看这个项目的star数量,数量大证明使用者多,接着瞄一眼issues,看看问题解决得及不及时。 当然技术服务于业务,技术选型也要照顾到和你的业务是否契合。 1年前 回复

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

--- 共有 1 条评论 ---
生存以上生活以下使用Kotlin来开发app,效率上已经是较于原来有一个很大的提升了。 而hybrid主要优势是跨平台,降低多平台的开发成本。纯原生开发最大的优势是更好的体验,更强的交互。没有办法去说哪种方案更好,因为这都是根据你的业务需求来的。如果你的业务中有某个页面,它需要和iOS保持一致,并且内容可以快速随着业务需求去变化,hybrid很适合,如果没有类似的需求,并且你的应用很注重交互体验,那原生显然更好。 1年前 回复
@刘自鹏 老师你好,kotlin的突然出现,让大家迅速熟悉,感觉有点始料未及的。我从事Java也有多年,也一直在想找自己的第二语言,最近在学习Python。前一段时间看了go,scala,Erlang语言,感觉学习起来都不是很容易。我的问题是kotlin会是让人比较容易上手的语言吗?对于有Java经验的人,学习起来还有哪些瓶颈要克服?对于kotlin这门语言,会不会热过一阵之后,就消声匿迹了呢,它未来的发展,你感觉怎么样?还有app使用kotlin开发,会比Java有什么优势吗?
--- 共有 5 条评论 ---
机器猫123谢谢 1年前 回复
loveq369看来是一只菜鸟 1年前 回复
生存以上生活以下对比Java的优势有很多,比如语法更加简洁、不啰嗦,更多的语法糖扩展函数,空安全,协程,通过扩展函数与lambda实现各种酷炫的高阶函数,默认参数,智能类型转换,以及更多的java所不具备的特性,总之它能够用更少的代码完成更多的事,也就能够让我们后续的维护成本更低。 1年前 回复
生存以上生活以下Android开发一直处于低糖的状态,其实不少Android开发者对现代语言早就如饥似渴了。Kotlin与Java完美的互操作这一点 为Kotlin的社区支持提供了很好的基础, 加上kotlin团队一直以来对开发者需求的快速反应迭代,所以对于Kotlin,至少在Android这个细分领域,我很看好它的未来。 1年前 回复
生存以上生活以下按Kotlin开发团队的话来说,Kotlin是一门以java开发者的思维来开发的语言,Java 到 Kotlin的过渡是相当平滑的,只要熟悉基本语法,你几乎可以直接用你原来开发Java的思想去开发写Kotlin代码,而你学习更多Kotlin的特性就能够让你代码写起来更加轻松简洁,所以真的没有什么要克服的,多学习一些它的特性吧。 1年前 回复

@生存以上生活以下 自己写MD的控件,没有设计的天分,请问您自己写MD控件,还是用MD的库呢?有什么MD的库可以推荐吗?

--- 共有 1 条评论 ---
生存以上生活以下自己写 和 用库都有过,但是大多数场景 官方的控件和support包中的控件就可以满足了,Material Design的重点不在于怎么去使用控件,使用什么控件,而在于对它的一些思想的理解与应用。 1年前 回复
顶部