V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shuiguomayi
V2EX  ›  Android

安卓开发选 kotlin 还是 Java ?

  •  
  •   shuiguomayi · 37 天前 · 4826 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有几年 java 经验,没有 kotlin 经验. kotlin 除了用在安卓开发上, 其他应用场景如何? 生态如何? 要学的东西太多了, 能少一样是一样, 用通用的工具适用性广. 听听各位大佬的建议.

    42 条回复    2025-03-05 15:19:49 +08:00
    xuanbg
        1
    xuanbg  
       37 天前
    kotlin !好学得很
    lin07hui
        2
    lin07hui  
       37 天前
    建议 flutter
    nightlight9
        3
    nightlight9  
       37 天前 via Android
    不会 java 建议用 java
    会 java 建议用 kotlin
    flytsuki
        4
    flytsuki  
       37 天前
    kotlin,入门了再用 flutter
    wxw752
        5
    wxw752  
       37 天前
    直接 flutter 吧,没学 kotlin 和 Swift 没事,ai 可以帮你
    kandaakihito
        6
    kandaakihito  
       37 天前
    吐槽一下,也不知道是不是我浏览器的问题,kotlin 的官方( https://book.kotlincn.net/)中文文档汉化不完全?

    经常看着看着,中间穿插一段大英文文档,甚至有的直接就是只汉化了标题。。。
    Lockroach
        7
    Lockroach  
       37 天前   ❤️ 2
    kotlin 可以直接学,很多 kotlin 的语法就是基于 java 的冗长写法进行优化和语法糖设计的,会 java 的话基本 kotlin 记住一些语法糖和 kotlin 新特性,比如委托和携程就可以直接写了。不过要直接学 kotlin 也可以,挺简单的。
    HojiOShi
        8
    HojiOShi  
       37 天前
    @kandaakihito #6 就是没汉化完全的
    sagaxu
        9
    sagaxu  
       37 天前   ❤️ 1
    @kandaakihito 冷知识,Kotlin 官方就没有中文文档,你看的这个是网友自发翻译的,更新比官方滞后近一年,域名也不是官方的。
    xinyu391
        10
    xinyu391  
       37 天前   ❤️ 1
    现在新建项目,没有 Java 选择了,直接默 kotlin.
    gaobh
        11
    gaobh  
       37 天前   ❤️ 1
    选自己最熟悉的,当然是 Java ,别听别人瞎说,自己没用过的出了问题也不好解决
    Vegetable
        12
    Vegetable  
       37 天前   ❤️ 1
    @kandaakihito Kotlin 与 Kotlin 官方英文站由 JetBrains 支持与开发 本站由中文站翻译贡献者译
    dp
        13
    dp  
       37 天前
    kotlin 有 java 经验很好上手
    kapaseker
        14
    kapaseker  
       37 天前
    Kotlin ,因为官方关于 Java 的库几乎不更新了,后续所有的库都是建立在 Kotlin 上面。

    好学,当然好学,我理解几乎是无痛的。因为在 AS 中,可以直接将 Kotlin 转换成 Java 代码,看完官方文档之后,直接上手写,然后不知道原理的地方,换成 Java 一看就懂了
    location123
        15
    location123  
       37 天前   ❤️ 1
    @kandaakihito kotlin 中文文档看这个 https://kotlin.liying-cn.net/home.html 更新到了 2.1.0
    debuggeeker
        16
    debuggeeker  
       37 天前   ❤️ 1
    Android SDK 的 api 目前都是 Java 的,官方各种支持组件有 Java ,kt 版本。你说的选择是只用那一种语言来开发应用程序?如果你连 SDK 的代码 Java 都看不懂,谈不上只用 kt 来开发,对于安卓开发来说,Java 是必须,kt 是其次的。SDK ,系统 framework ,都是 Java/c/c++,有时候排查东西是需要进到 framework 的,甚至很多博客资料都是 Java 写的案例,Java 是必须的,至于 kt ,看你自己兴趣,可以完全用 Java 写应用,也可以 kt ,也可以混合开发
    kaltin
        17
    kaltin  
       37 天前
    @flytsuki 跨平台的话 KMP 和 flutter 怎么选择呢
    laikick
        18
    laikick  
       37 天前
    @kandaakihito 现在 ai 翻译那么好, 何必拘泥于中文文档.
    lisongeee
        19
    lisongeee  
       37 天前
    google 自己的很多 android 库都在迁移到 kotlin multiplatform 了,都不咋支持 java 了

    其实主要看两个方面,ui 以及业务方面用 kotlin ,底层开发用 java
    MacsedProtoss
        20
    MacsedProtoss  
       37 天前 via iPhone
    选 kotlin 别听别人瞎说什么 java 自己写代码肯定是 kt 香太多 大厂安卓都全切 kt 了 java 语法又不难
    不过确实是有暗坑的 例如 java 的那些 throw 以及潜在空指针在 kt 上没有提示
    另外 flutter 是什么妖魔鬼怪 为啥一个正常的非跨平台 app 要写 flutter 这玩意不就是在降低用户体验吗
    unco020511
        21
    unco020511  
       37 天前
    毫无疑问选 kotlin 啊,现代化语言,能给你省多少事,最关键是现在的团队基本都是 kotlin,谁还在用 java 这种上古语言
    qwell
        22
    qwell  
       37 天前
    上层开发 kotlin 就是 better java
    flytsuki
        23
    flytsuki  
       37 天前
    @kaltin #17 我 flutter 用了好几年只会选 flutter
    gefangshuai
        24
    gefangshuai  
       37 天前
    服务端开发我都用 kotlin 了,别说安卓了
    roundgis
        25
    roundgis  
       37 天前 via Android
    @kaltin kmp 目前只能用來寫邏輯 ui 還是要分別寫。如果你連 ui 都希望重用那就只有 flutter 這個選項了
    superchijinpeng
        26
    superchijinpeng  
       37 天前
    服务端 all in kt
    HangoX
        27
    HangoX  
       37 天前
    有 Java 经验的都建议直接用 Kotlin ,其他可以用 Java 的地方用 Kotlin ,kt 和 java 是无缝互操作的,虽然有些事情需要注意,但是基本是无缝的。对比 swift 和 oc 的操作是完全不一样的。我现在服务端和 android 端都是 kotlin first ,除了一些非常底层的库需要给一些只能用 java 的场景用 java 外,其他时候都用 Kotlin
    buf1024
        28
    buf1024  
       37 天前
    flutter ,之前写过一个,感觉还可以, 参考: https://github.com/buf1024/hiqradio
    kaltin
        29
    kaltin  
       37 天前
    @roundgis Compose Multiplatform 可以用来写 ui 部分,看到题主的问题就在想跨平台还有没有必要再学习 flutter 了,看回复都说 flutter 挺香
    GKD
        30
    GKD  
       37 天前
    flutter
    roundgis
        31
    roundgis  
       37 天前 via Android
    @kaltin 我記得沒錯的話 ios 部分還是 beta 吧?
    anjingdexiaocai
        32
    anjingdexiaocai  
       37 天前 via Android
    想做深的话,必然要会 Java ,framework 应用层上都是 Java 写的
    kaltin
        33
    kaltin  
       37 天前
    @roundgis 恩,还在开发中,主要还是看重 ide 的支持,以及对 android studio 的熟悉度,所以有点期待吧:)
    TArysiyehua
        34
    TArysiyehua  
       37 天前   ❤️ 2
    kotlin 本身没啥问题,但是千万不要用 kotlin 写 sdk ,很多人没意识到,kotlin 写 sdk 有一个巨大的坑。因为 kotlin 要求的版本必须在一个兼容范围,但是这个范围很小很小,导致你几年前的 kotlin sdk ,完全无法接入到新的项目中,会直接提示你 kotlin 版本不对,无法编译通过,蠢的一匹。

    而 java 就不同的,假设你用一个很低的 jdk 编译的 jar 包,因为 java api 是能兼容旧版本的,所以你用老的 jdk 写得 sdk 在新的项目中,依旧是能用的。
    jlkm2010
        35
    jlkm2010  
       36 天前
    kotlin
    pl01665077
        36
    pl01665077  
       36 天前
    建议 flutter
    jeesk
        37
    jeesk  
       36 天前   ❤️ 1
    @TArysiyehua 所以 android 官方很多项目都是 java , 比如 media3
    wzry2580
        38
    wzry2580  
       36 天前 via Android
    kotlin 现在比较多,我虽然不懂那些程序员,那些我是小白,但是 kotlin 昨天就是因为比较好,然后安装大小控制的也很好 感觉这种语言程序也挺流行,应该是 JAVA 的附属语言
    hwb
        39
    hwb  
       36 天前
    你得先会 java ,再去学 kotlin ,不然就是空中阁楼。
    sir283
        40
    sir283  
       36 天前 via Android
    这两个都可以开发安卓的 APP ,你甚至还可以用 electron 、react 、flutter 这种前端框架来开发安卓 APP 。

    kotlin 是 Java 的延伸,基于 Java 做了更多语法糖封装,类似 HTML 跟 vue 的关系。
    Dyon
        41
    Dyon  
       36 天前
    @kandaakihito 这域名官方?
    sankemao
        42
    sankemao  
       36 天前
    kotlin ,官方示例都是 kotlin 优先
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3601 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:34 · PVG 18:34 · LAX 03:34 · JFK 06:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.