鄙人目前在国内积极进行 Kotlin 的布道,个人已经开始将其尝试应用到实际生产环境中(目前有处于开发期的产品正在使用 Kotlin ),感觉十分良好。想问问国内有什么公司(非个人)是在进行这方面的尝试的。
1
gengrui 2016-01-21 05:52:11 +08:00
Hi 楼主好。我是在澳洲的 android 开发者,目前也希望在工作中使用 kotlin ,可否交流交流?谢谢。
PS:你的 baseframework 很不错,谢谢分享。 |
2
haroldwu 2016-01-21 08:04:13 +08:00
同想學 kotlin ,但是找不要到完整的教材,求指點一二!
|
3
nekocode OP @gengrui 谢谢支持。我主要在 [知乎]( https://www.zhihu.com/people/nekocode) 以及 Github 上活跃, V2EX 刚接触,以后可以多交流。
我对 Kotlin 的前景十分看好,不仅仅因为它是一门 trick 多的语言,它和 Java 之间的相融性让它产生了更多机遇与可能。 |
4
nekocode OP @haroldwu
《 Kotlin for android Developers 》是一本不错的教材,这是中文译本 https://www.gitbook.com/book/wangjiegulu/kotlin-for-android-developers-zh/details 更好的教材应当是官方文档 https://kotlinlang.org/docs/reference/,好像也有译文,不过跟不上官方更新,建议直接阅读英文原文。 有基础的话也可以尝试看下我的专栏 http://zhuanlan.zhihu.com/kotandroid ,比较偏实践的内容。 |
5
Tneciv 2016-01-21 09:56:55 +08:00
你是知乎那个?看过你的专栏
|
9
em70 2016-01-21 10:16:58 +08:00 via iPhone
第三方 SDK 能接入吗,比如 qq 登陆 SDK
|
10
nekocode OP @em70
Kotlin 支持与 Java 代码互操作,所以没问题的。这也是 Kotlin 相对其他 Jvm 语言更适合开发 Android 的原因。 |
11
johnnydtsai 2016-01-21 10:41:08 +08:00
正在学习 感觉 kotlin 不错
|
12
moyaya 2016-01-21 10:43:30 +08:00
就算想用,国内目前估计也找不到人。
|
13
puras 2016-01-21 10:45:06 +08:00
有没有用 Kotlin 不做 Android ,而做 WEB 的呢?
|
14
lingdududu 2016-01-21 10:52:23 +08:00 1
收集了一些 Kotlin 资源,希望有帮助
https://github.com/ruijun/Android-Dev-Favorites/blob/master/Kotlin/Kotlin.md |
15
airqj 2016-01-21 11:14:42 +08:00
跟 scala 比起来 有什么优势吗
|
16
alexsunxl 2016-01-21 11:19:19 +08:00
已经推荐给做 Android 的朋友。楼主加油,布道可是不容易,搞点线下交流会吧
|
17
jiezhi 2016-01-21 11:26:12 +08:00
关注一下,有空研究下
|
18
hooluupog 2016-01-21 12:37:33 +08:00
@airqj 从语言的设计上,我不太喜欢 scala ,所以偏向 kotlin 。
要说优势,最大的优势就是和 java 的互操作性,比如利用现有的 java 生态,各自库,这个 scala 完全不能比。 劣势就是目前还没有 1.0 正式版。 |
19
nekocode OP @moyaya
是的。我们团队的两个 Android 开发也是我带起来转到 Kotlin 上的,学习成本也不会太高(一两周就可以上手了)。但是如果没人带的话,肯定会遇到很多坑,所以不建议没有这方面积累的团队把 Kotlin 运用到生产环境中。 @airqj 已经有朋友解答你了 @hooluupog ,有兴趣的话也可去我专栏上查阅文章,对 Kotlin 相较起其他 JVM 语言的优势有比较粗略的解答。 @alexsunxl 谢谢支持 (๑→ܫ←),线下交流会的话就算了,目前连组织都没有。国内使用 Kotlin 的人并不多,但是在可预见的未来 Kotlin 将对 Android 原有开发界造成一定的冲击与影响。 |
20
john990 2016-01-21 13:17:08 +08:00
正在用,但是不支持 android studio 实时编译,很不方便,其他感觉非常好
|
21
br00k 2016-01-21 13:23:32 +08:00
想用来做 web 开发 XD
|
22
florije 2016-01-21 13:23:58 +08:00
关注了,但是还没有在实际项目中使用,已经收藏 LZ 相关文章,稍后仔细看看。
|
23
pengbo37877 2016-01-21 13:27:32 +08:00
不错,下一个项目可以试试
|
24
loshine1992 2016-01-21 13:42:08 +08:00
关注楼主的专栏很久了,没想到竟然来 V2EX 布道了呀
|
25
alexsunxl 2016-01-21 13:44:20 +08:00
@nekocode airbnb 最信奉的一句话:让 1 个用户爱上你,而不是 100 个用户喜欢你。
线下能让你找到布道小伙伴 |
26
nekocode OP @john990
你指的是预览版的 instant run 么? kotlin 目前在对 instant run 和某些 lambda 代码的 debug 都支持不太好,不过要相信 jetbrains 家的实力,这些都不是大问题。 @br00k @florije @loshine1992 谢谢支持 @alexsunxl 从简做起吧,有空的话我可以考虑下寻求或者创建组织 ♥ |
27
eimsteim 2016-01-21 15:17:19 +08:00
我觉得 Android 开发的痛点并不是在语法级别,而是在于复杂的自定义 View ,目前也没有见过比较成体系的成熟的 UI 库,可能我离开 Android 时间有点久了,现在觉得还是用 H5 的方式来写 APP 比较舒服。
|
28
nekocode OP @eimsteim 语法上的影响很大, Kotlin 之于 Andriod 就如 Swift 之于 iOS ,更丰富的表达能力,带来的肯定是更愉悦的代码体验,以及更高的开发效率。就像 Ruby ,在我看来 DSL 在很大程度上支撑了它的发展。
|
29
hjkl0001 2016-01-21 17:21:13 +08:00
谢谢分享!!!!
|
30
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 用于实际项目,期待露珠多写深入好文 |
31
CodingPuppy 2016-01-21 17:43:39 +08:00
kotlin koans 已全部做了一遍,感觉挺好,但是网上的资源还是少。怕用到项目里面拖累队友
|
32
CodingPuppy 2016-01-21 17:49:09 +08:00
@nekocode 看到楼主 github 有提到 anko ,我遇到一个问题想请教下,我在 Activity 的 onCreate 里面使用 DSL ,布局没有显示出来, anko 的官方文档说的是在这里使用是会自动调用 setContentView 的。使用 AnkoComponent 的方式定义布局类,主动调用 set 是可以的。这个是我的使用姿势不对么? 在 anko 发了 issue 然而并没有人鸟我。
|
33
nekocode OP @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 ,以后也会持续分享自身的一些心得(毕竟已经开始使用在生产环境上了。。),谢谢关注~ |
35
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. |
36
nekocode OP @springwarm Kotlin Android Extension 和 ButterKnife 一样是在「编译期」暗插代码实现的视图绑定,只不过 ButterKnife 是通过 APT ,而 Kotlin Android Extension 是通过自身编译期处理。
Kotlin Android Extension 在编译期解析 XML 后,安插了 Caching Function ,实际上内部实现一样是调用 findViewById 。所以并非它将 XML 编译成对应构造视图的 Java Code 。 |
37
nekocode OP 勘误,「而 Kotlin Android Extension 是通过自身编译器处理。」
|
38
ruchee 2016-01-21 19:35:30 +08:00 via iPhone
活捉楼猪,打个酱油。 Kotlin 大法好
|
39
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 ?非常感谢! |
40
breaklayer 2016-01-21 19:54:49 +08:00
对 kotlin 很感兴趣,但是没有迫切的动力去学习,现在在学 rxjava
|
41
canaan 2016-01-21 20:03:57 +08:00
@breaklayer 我也正在学 RxJava ,感觉这个对开发目前可能帮助更大
|
42
mathgl 2016-01-21 20:36:36 +08:00
@incompatible kotlin 运行环境貌似比 groovy 小。 可能也是最小的之一。 kotlin 的设计思想是能用 java 的库就不会自己写。 groovy 现在能在 android 运行了没? 记得原来是不可以的。
|
43
plqws 2016-01-21 20:59:41 +08:00
得知有 Kotlin 才打算入 JVM 坑的,想要问一下楼主,刚入坑要怎么适应 JVM 这个又庞大又复杂的生态呢?
|
44
nekocode OP @incompatible 我对 groovy 的了解仅限于 gradle 和 grails 上,了解不深,不过对它的 DSL 印象挺深。
@breaklayer @canaan RxJava 确实是实现异步的最佳选择。我在我的代码中 Model 层的操作( io 、 cpu 密集操作)都使用 Rx 执行,然后发射 Observable 到 Presenter 层进行处理。对目前一些流行语法糖不感冒的,确实相对于 Kotlin 来说学好 RxJava 的帮助更大。 @ruchee Hi~ 很高兴在这里见到你 ✪ω✪ @mathgl Groovy 能在 android 上运行,但是它和 Java 之间的互操作性不堪入目。 @plqws 不太懂你的意思,入 JVM 坑是什么意思,。。=_= |
45
incompatible 2016-01-21 21:51:10 +08:00 via iPhone
|
46
Lonely 2016-01-21 22:28:03 +08:00
没有让我用 Kotlin 的理由,毕竟不是 Google 明确支持的。
|
48
DemoJameson 2016-01-21 23:38:22 +08:00
已 star 已关注专栏,楼主棒棒哒
|
49
Narcissu5 2016-01-22 00:04:21 +08:00
问个比较小白的问题哈, kotlin 会不会像 scala 一样需要依赖自己的基本库( scala-library ),我是觉得 scala 十几 M 的基本库是个大问题。
|
51
dphdjy 2016-01-22 09:57:15 +08:00 via Android
_(:з)∠)_ 咱的 seed 一直跑不起来~ 大概用了一周才成功编译~资料啊~
|
52
Gem 2016-01-22 10:34:59 +08:00
我想问下楼主,学 kotlin 之前,是不是需要先把 java 系统学一遍?
|
53
nekocode OP @plqws 他们很明显都不是同一类语言,只是都运行在 JVM 上而已,反过来也受 JVM 的限制。
@Narcissu5 Kotlin 一样会依赖自身 runtime 库,不过小太多了: Kotlin has a rather small runtime file size: the library is approximately 955KB (as of build-1.0.0-beta-4589). This means Kotlin adds just a little to .apk file size. @haroldwu clojure 是门好语言~ @Gem 最好是学一遍,当然,不学也并没有什么大问题。 |
56
hqs123 2016-01-22 13:15:45 +08:00
楼主很厉害,我也在学 android,向你学习。
|
57
cppgohan 2016-01-22 14:45:26 +08:00
继续歪楼, 身边没有 kotlin 的应用场景.
最近准备用 kotlin 做一些 java web 的开发 |
58
luckymerlin 2016-01-22 16:15:59 +08:00
Google 官方的 Data Binding 已经用到了 Kotlin ,挺好用的。我现在在用 Observable 做双向绑定;
写了个 Demo : https://github.com/ACEMerlin/Kratos 实际的项目要复杂的多,基本实现了双向绑定, Object 的值变了直接通知 View 改变,配置是在 json 里配置的。 |
59
Gem 2016-01-23 11:32:11 +08:00
有没有 kotlin 的 web 框架?或者说,如果用 kotlin 开发 web 的话,有没有一些好的实践以及配套设施?
|
60
LiYing2016 2016-05-07 21:11:37 +08:00 1
我老人家翻译的《 Kotlin 语言参考文档》中文版
这个文档以前有人翻译过的,但质量很不好,所以我老人家动手重新翻译了一次 地址: http://www.liying-cn.net/kotlin/docs/reference/ 有网页版,也有 PDF 版 GitHub 仓库: https://github.com/LiYing2010/kotlin-web-site |
61
liusd 2017-05-21 12:18:16 +08:00
看这里 http://www.jianshu.com/p/3815084b4a73
(来自于沪江) |