想问问现在用 kotlin 写 android 的多吗

2018-09-26 14:22:05 +08:00
 whitepoppy

class InTheVehicleFragment : FragmentCompat() { private val presenter = InTheVehiclePresenter(this)

companion object {
    fun newInstance(): InTheVehicleFragment {
        return InTheVehicleFragment()
    }
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    return inflater.inflate(R.layout.fragment_in_the_vehicle, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    presenter.setup()
    initView()
    initListener()
}

private fun initView() {
    //setInCarNum(25)
}

private fun initListener() {
    container_add_car_plate_num.setOnClickListener { presenter.gotoAddCarPlate() }
    container_car_open_order.setOnClickListener { presenter.gotoSerOrder("") }
}

fun httpError() {
    rcv_today_cars.visibility = View.GONE
    container_loading.visibility = View.GONE
    container_fail.visibility = View.VISIBLE
    container_fail.setOnClickListener({
        presenter.fetchHistoryCars()
    })
}

fun httpSuccess() {
    rcv_today_cars.visibility = View.VISIBLE
    container_fail.visibility = View.GONE
    container_loading.visibility = View.GONE
}

fun setTodayRv(mAdapter: InTheVehicleAdapter) {
    rcv_today_cars.setupVertical()
    rcv_today_cars.adapter = mAdapter
}

fun nodify() {
    rcv_today_cars.post {
        rcv_today_cars.adapter.notifyDataSetChanged()
    }
}

}

写的我好难受啊

15268 次点击
所在节点    Android
91 条回复
davy1995
2018-09-27 09:29:13 +08:00
这个时候还有吐槽没 get 到 kotlin 的好处的吧,就好比吃水果吃了水果皮没吃到果肉吧
wupher
2018-09-27 09:31:03 +08:00
服务端自己负责的一个项目,目前是全 kotlin。
Android 只有私人项目了。

写习惯 kotlin 和 Groovy 后,我自己是非常讨厌写 Java 了。不过,kotlin 对型别有时要求过于严格,有时也挺麻烦的。
notreami
2018-09-27 09:32:49 +08:00
你们用吧,反正最后还是需要深入了解 java
chocotan
2018-09-27 09:37:22 +08:00
多不多,看别人的统计结果吧
https://www.oschina.net/news/97762/the-state-of-kotlin-2018
-----
前两天看到我们公司一个安卓项目已经在用 kotlin 写了
closedevice
2018-09-27 09:40:52 +08:00
以为大家都在谈语言的本质,而非语法,但看下来全程是谈语法的...
icris
2018-09-27 09:44:26 +08:00
@closedevice #65
本质还是 JVM 语言,编译出来 .class 再反编译回去还是 Java,不谈语法有什么好谈的
icop
2018-09-27 09:52:07 +08:00
最主要的是看公司整体用什么。
thinkloki
2018-09-27 10:42:42 +08:00
@qiyuey 老哥 kotlin 写服务端有什么教程吗?
closedevice
2018-09-27 10:44:19 +08:00
@icris 这一个本质背后蕴藏的体系非常庞大,只谈语法却是小了格局.
zhangwugui
2018-09-27 10:48:32 +08:00
感觉是思维的一个转换。
xuhaoyangx
2018-09-27 10:50:40 +08:00
本质来说 kotlin 其实还是一对语法糖,但是真香
GoodRainChen
2018-09-27 10:52:26 +08:00
@icris
主逻辑上的东西没必要判空,就比如 setContentView,判个空有意义吗?实际写代码都很赶时间的,这种阻塞核心流程的地方,还判空写 @NonNull,不是浪费时间吗?就算判了 null 也是个白屏死在那里,很多用户都没有杀应用这个概念,他只会觉得你有一个不可恢复 BUG
bumz
2018-09-27 11:00:28 +08:00
@icris #57 可惜了,IDE 公司里没一个像 James Gosling 这样的程序语言设计专家,从 C# 的设计看微软里面也没有

于是呢?今天 C# 几乎就是外包公司用
icris
2018-09-27 11:04:50 +08:00
@GoodRainChen #72
你还在说 setContentView,这个方法根本没有标 NonNull,打开 IDE 看看这种 View! 的东西怎么处理的吧,别老给我挖坑了。
我反正已经复制了一个 Google 写的判断参数是 null 就抛异常的 startSupportActionMode 方法出来,你可以认为这完全是浪费时间,就算不写也是一个 NullPointerException,我只能说这是正常逻辑该有的操作。

还有,不是「没发现有什么本质上的优势,写代码最花时间的还是思考,而不是打字」吗,怎么连个 if (x == null) 都没时间写了?既然确实要这点儿时间,那 kotlin 优势不就又出来了?
icris
2018-09-27 11:12:50 +08:00
@bumz #73
第一,外包公司也用 Java (同时外包公司不用 kotlin )。
第二,你前一句说要展望未来来着,看今天市占有什么用,.net 开源才刚开始。
第三,我试着理解一下你的逻辑:为什么 Java 好,因为它是「程序语言设计专家」开发的,为什么「程序语言设计专家」是「程序语言设计专家」,因为他开发了 Java ;为什么说微软没有「程序语言设计专家」,因为 C# 不好,为什么 C# 不好,因为它不是「程序语言设计专家」开发的。是这样吗?
GoodRainChen
2018-09-27 11:19:19 +08:00
@icris
唉,我打个比方,你非得揪着这个真实的方法不放,难道要我顶着安全红线把公司业务代码拿出来讨论吗?

我们纠结这个问题的原点是: [kotlin 对于类型安全等方面的限制更加严格,把简化写法带来的优势抵消了不少]
你说你代码简洁,省点时间,结果全在别的地方把省的时间又找回来了,这没多大优势啊
iFlicker
2018-09-27 11:21:49 +08:00
@bumz unity3d。。。。
auhah
2018-09-27 11:22:06 +08:00
挺香的。。。写起来蛮爽

视野之内全是干货的感觉,冗余代码少了很多
icris
2018-09-27 11:23:39 +08:00
@GoodRainChen #76
我再说一遍,你说的关于 kotlin 的 ! ? 限制,全是错的。我已经说了实际上 kotlin 是怎么处理 Java 方法定义的,你不愿意听不愿意看不愿意试,也行,至少结论应该是「 kotlin 对于类型安全等方面的限制更加严格,可以节省更多写 if (x == null) 的时间」。
zzzmode
2018-09-27 11:31:42 +08:00
用 kotlin 可以少写很多代码

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

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

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

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

© 2021 V2EX