国内有大公司是用 Kotlin 开发 Android APP 的么?

2016-01-21 00:52:11 +08:00
 nekocode


鄙人目前在国内积极进行 Kotlin 的布道,个人已经开始将其尝试应用到实际生产环境中(目前有处于开发期的产品正在使用 Kotlin ),感觉十分良好。想问问国内有什么公司(非个人)是在进行这方面的尝试的。

13793 次点击
所在节点    Kotlin
61 条回复
br00k
2016-01-21 13:23:32 +08:00
想用来做 web 开发 XD
florije
2016-01-21 13:23:58 +08:00
关注了,但是还没有在实际项目中使用,已经收藏 LZ 相关文章,稍后仔细看看。
pengbo37877
2016-01-21 13:27:32 +08:00
不错,下一个项目可以试试
loshine1992
2016-01-21 13:42:08 +08:00
关注楼主的专栏很久了,没想到竟然来 V2EX 布道了呀
alexsunxl
2016-01-21 13:44:20 +08:00
@nekocode airbnb 最信奉的一句话:让 1 个用户爱上你,而不是 100 个用户喜欢你。
线下能让你找到布道小伙伴
nekocode
2016-01-21 14:28:06 +08:00
@john990
你指的是预览版的 instant run 么? kotlin 目前在对 instant run 和某些 lambda 代码的 debug 都支持不太好,不过要相信 jetbrains 家的实力,这些都不是大问题。

@br00k @florije @loshine1992
谢谢支持

@alexsunxl
从简做起吧,有空的话我可以考虑下寻求或者创建组织 ♥
eimsteim
2016-01-21 15:17:19 +08:00
我觉得 Android 开发的痛点并不是在语法级别,而是在于复杂的自定义 View ,目前也没有见过比较成体系的成熟的 UI 库,可能我离开 Android 时间有点久了,现在觉得还是用 H5 的方式来写 APP 比较舒服。
nekocode
2016-01-21 16:33:28 +08:00
@eimsteim 语法上的影响很大, Kotlin 之于 Andriod 就如 Swift 之于 iOS ,更丰富的表达能力,带来的肯定是更愉悦的代码体验,以及更高的开发效率。就像 Ruby ,在我看来 DSL 在很大程度上支撑了它的发展。
hjkl0001
2016-01-21 17:21:13 +08:00
谢谢分享!!!!
springwarm
2016-01-21 17:35:56 +08:00
@eimsteim 同意 Android 的最大痛点不在语法级别

但个人的倾向是,当其他环节能有明显改善时,也是值得尝试的
----

Kotlin 表达力更强,又比 Scala 与既有的 Java 生态融合的更好(这点很重要, C#的表达力很强,但是.NET 的生态在很多方面还是不如 Java ),不乏优秀的工具支持( JetBrains 大旗一挥)

Kotlin Android Extension ,把 XML 布局编译成类,就在代码中引用组件而言,开发体验好于 ButterKnife 以及 AndroidAnnotations 的相关部分

后面会考虑将 Kotlin 用于实际项目,期待露珠多写深入好文
CodingPuppy
2016-01-21 17:43:39 +08:00
kotlin koans 已全部做了一遍,感觉挺好,但是网上的资源还是少。怕用到项目里面拖累队友
CodingPuppy
2016-01-21 17:49:09 +08:00
@nekocode 看到楼主 github 有提到 anko ,我遇到一个问题想请教下,我在 Activity 的 onCreate 里面使用 DSL ,布局没有显示出来, anko 的官方文档说的是在这里使用是会自动调用 setContentView 的。使用 AnkoComponent 的方式定义布局类,主动调用 set 是可以的。这个是我的使用姿势不对么? 在 anko 发了 issue 然而并没有人鸟我。
nekocode
2016-01-21 18:01:42 +08:00
@CodingPuppy anko: version 0.7.2 下并没有你提到的问题,我在代码中也能正常使用:
https://github.com/nekocode/kotlin_android_base_framework/blob/master/app%2Fsrc%2Fmain%2Fjava%2Fcn%2Fnekocode%2Fbaseframework%2Fui%2Factivity%2Fcomponent%2FSingleFragmentActivity.kt

@springwarm Kotlin Android Extension 并非将 XML 布局编译成类,它的实现其实和 ButterKnife 类似,只是不需手动绑定 id ,我个人是比较喜欢使用 https://github.com/JakeWharton/kotterknife ,以后也会持续分享自身的一些心得(毕竟已经开始使用在生产环境上了。。),谢谢关注~
haroldwu
2016-01-21 18:16:28 +08:00
@nekocode 謝謝樓主指點一二!線上社區支持一個。
springwarm
2016-01-21 18:31:04 +08:00
@nekocode 从官方的这段描述看,像是被编(fan)译(yi)为代码了
布局中赋予 id 的元素,被编译为 Activity 类的 extension property

(如果是这样,这思想很像 C#的 partial class ,而以前开发.NET WinForm/WebForm 的童鞋, 从来没有 findViewById 这种烦恼)

----

```java

// Using R.layout.activity_main from the main source set
import kotlinx.android.synthetic.main.activity_main.*

public class MyActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView.setText("Hello, world!") // Instead of findView(R.id.textView) as TextView
}
}
```

textView is an extension property for Activity, and it has the same type as declared in activity_main.xml.
nekocode
2016-01-21 19:32:46 +08:00
@springwarm Kotlin Android Extension 和 ButterKnife 一样是在「编译期」暗插代码实现的视图绑定,只不过 ButterKnife 是通过 APT ,而 Kotlin Android Extension 是通过自身编译期处理。

Kotlin Android Extension 在编译期解析 XML 后,安插了 Caching Function ,实际上内部实现一样是调用 findViewById 。所以并非它将 XML 编译成对应构造视图的 Java Code 。
nekocode
2016-01-21 19:33:30 +08:00
勘误,「而 Kotlin Android Extension 是通过自身编译器处理。」
ruchee
2016-01-21 19:35:30 +08:00
活捉楼猪,打个酱油。 Kotlin 大法好
incompatible
2016-01-21 19:45:43 +08:00
楼主,抱歉我暂时没有太多时间去研究 kotlin 这门语言。
我是 groovy 的重度使用者,对 closure 、 reader.getText 、 collection.each / collect / inject 等特性爱不释手。我已经在若干服务器端项目中普遍应用了 groovy 语言,目前表现非常完美(在 groovy 支持 CompileStatic 特性后,性能已经没有逊于 java 太多了)。

不知你是否对 groovy 有所了解? 如果“是”的话,能否简要对比一下 groovy 和 kotlin ?非常感谢!
breaklayer
2016-01-21 19:54:49 +08:00
对 kotlin 很感兴趣,但是没有迫切的动力去学习,现在在学 rxjava

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/252244

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX