现在开发安卓,是用 Kotlin,fluter, Java 还是 uniapp ?

讨论 未结 82 59
buxudashi
buxudashi 会员 2022年6月26日 14:28 发表
<p>如果重新写一个 app ,该选择哪个?</p> <p>有经验的人聊聊。</p> <p>请不要说喜欢哪个用哪个这种没有价值的话。毕竟都没用过。对比是为了选择。</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
82个回复
  • 111111111111
    2022年6月26日 14:28
    先把 uniapp 划掉。。。体验真的不好 目前在用 Kotlin ,感觉一般般,说不上好说不上坏 观望 fluter
    0 0
  • buxudashi
    2022年6月26日 14:28
    看网上说 flutter 能同时写 ios 和安卓。 几年前 google 都说要弄个新系统。fuchsia 也好久没动静了。因为不太喜欢又臭又长的 java ,不想搞安卓,不知道新系统啥时候出
    0 0
  • cheng6563
    2022年6月26日 15:57
    Android 原生开发现在是真的恶心,编译速度快点 5 分钟慢点半小时。
    0 0
  • hs0000t
    2022年6月26日 19:26
    主要按完善程度( demo 级别还是上线级别),跨平台程度,熟练程度等来判断 都没用过的话就只看完善程度和跨平台程度,完善程度越高越建议每个平台用各自官方推荐的语言,越低越推荐用跨平台语言
    0 0
  • murmur
    2022年6月27日 00:29
    第一个就是 uniapp 。现在是 app 减量市场,都是从小程序开始做起,所以 uniapp 做小程序不错,等你抢占到市场,拿到了投资,再考虑 native 的事情。
    0 0
  • murmur
    2022年6月27日 00:59
    有一个很现实的事情就是,上架小程序基本=国内 ios+android 全覆盖,安卓的上架光一个渠道就要你死
    0 0
  • beisilu
    2022年6月27日 01:26
    月经提问。 java 算是被抛弃了,kotlin 是大势所趋。 自己玩写 flutter 。
    0 0
  • zed1018
    2022年6月27日 01:26
    如果你是 kotlin 开发,可以试试 k2 compiler ,据说快不少
    0 0
  • debuggeeker
    2022年6月27日 01:26
    双端开发者来了,java ,kt 开发原生应用,你熟悉那个用哪个,混合也没问题。原生优势在于性能,注重体验的,优先考虑原生。flutter 嘛,纯 UI 显示无底层交互(无蓝牙,无相册相机,传感器,WiFi 等等),毕竟 flutter 只是 UI 框架,和本地硬件对接的还是依赖插件,现在大部分插件都有了,但是一些项目配置,报错等等你该熟悉的还是熟悉,甚至有些需要原生支持的你得会。体验,看开发能力,上限高,下限低。如果遇到一些奇奇怪怪的 bug ,要有能力解决。 uni 就是 webview 加载东西,体验一般。场景:快速成型交付客户,如果遇到打磨体验的时候估计还得走原生 路线。 先写这么多。
    0 0
  • cnhongwei
    2022年6月27日 02:28
    我选的话,选 React native 。iOS Android web 都可以,因为我没有做小程序,所以 react native 转小程序没有看过,好像有作品,但成熟度如何没有试过。不用 flutter 主要是热更新功能官方还是没有支持,而 RN 就成熟多了。使用 Expo 感觉和开发 web 差不多。
    0 0
  • magicdu
    2022年6月27日 02:28
    我们现在是混合开发,h5+原生,h5 搞不了的再用原生写接口
    0 0
  • guyuesh3
    2022年6月27日 02:28
    用 taro 框架,RN 代码目测改吧改吧也很快就能用在小程序上
    0 0
  • ifdef
    2022年6月27日 02:28
    html+css 写 ui 界面很快,如果 app 大部分是纯展示的页面,用原生(kotlin+xml / java+xml)写太慢了。不过可以试试 jet pack compose 。
    0 0
  • marcong95
    2022年6月27日 02:28
    uniapp 确实坑多,举个栗子,DOM/Canvas 操作极奇葩,算是照着微信小程序重复造的轮子,而且还是比较旧版的小程序 API 。如果你不在意性能,想用回 Web API 的话,那个所谓 renderjs 文档极少,API 也各种奇葩。而且据说还会内存泄漏。 你要考虑各种奇奇怪怪的小程序可以上,如果不需要,建议别。
    0 0
  • fredli
    2022年6月27日 02:28
    必须干掉 java 选 kotlin 啊,compose 唯一
    0 0
  • pdog18
    2022年6月27日 02:59
    这个完全不是问题,这个是 framework 提供的能力,java / kotlin 并无区别,因为 kotlin 是完全可以调用 java 写的 framework 的
    0 0
  • buxudashi
    2022年6月27日 02:59
    只选择一种语言适应全局功能。不能因为学了 Kotlin,发现又要调用 java 的框架,又把 Java 学了,那就坑大了。 双份劳动拿一份工资。不明智呀。
    0 0
  • z42514
    2022年6月27日 02:59
    #10 你有个概念没搞明白,这里不是语言的问题 原生:java 、kotlin webview 渲染方案:uniapp 自研引擎渲染:flutter
    0 0
  • z42514
    2022年6月27日 02:59
    #23 kotlin 调用原生方便,是因为用 kotlin 的话基本上就代表使用的是原生开发,而不是 kotlin 本身支持调用硬件
    0 0
  • Leviathann
    2022年6月27日 02:59
    什么意思 kotlin 的标准库都是直接用的 java 的
    0 0
  • pdog18
    2022年6月27日 03:29
    。。。有那么夸张嘛?那换一个角度,如果你只学 Java 以后只用 Java 写 app 用的时间是 1000 个小时,但是你同时会 java 和 kotlin ,后面因为用 kotlin 加快了开发效率,使用的时间是 800 小时,那又怎么算?
    0 0
  • pdog18
    2022年6月27日 03:29
    这种例子我可以举很多,如果你只会 java ,那么同理 kotlin 的一些第一方库,第三方库你都不用,不是因咽废食嘛?这两者不是对立的,不是非 Java 即 Kotlin ,而是两者可以同时学,同时用。
    0 0
  • yazinnnn
    2022年6月27日 03:29
    学 kotlin 需要 java 基础, kotlin 是更好的 java
    0 0
  • xmt328
    2022年6月27日 03:58
    如果是刚学那肯定是从 java 或者 kotlin 入手 不管做哪个,都得会原生开发
    0 0
  • yor1g
    2022年6月27日 03:58
    用 fluter 大多数库会涉及到 dart kotlin java 用 kotlin 大多数库会涉及到 java 用 java 有些库会涉及到 kotlin 但是 kotlin 可以反编译成 java
    0 0
  • kennir
    2022年6月27日 03:58
    不考虑跨 iOS 的话 kotlin 配合 jetpack , 写起来很舒服,新项目可以考虑符合干净架构 需要跨平台又没有太多的 native 体验需求的话那就 flutter
    0 0
  • tianxin12138
    2022年6月27日 05:59
    我是一个游戏客户端,站在外行的角度来说,我个人更倾向于 flutter 。从上手难度来说,我觉得 flutter 比 uniapp 上手快多了,CSS 各种属性看着真的头大。再一个渲染显示方面,flutter 基本上写成啥样就啥样了,uniapp 我按照小程序上的表现去写,Android/IOS 打包出来的效果可能会有差异。还有个性能就不说了,大家都说的太多了,但是据小道消息说 chrome 后期可能会直接支持 dart ,潜力巨大
    0 0
  • xiaogui
    2022年6月27日 05:59
    我们这边已经是 kotlin 。uniapp 算是前期试错的选择。
    0 0
  • xiaogui
    2022年6月27日 06:56
    安卓的开发目前基本都是 kotlin 了。
    0 0
  • ifdef
    2022年6月27日 06:56
    #40 老项目大部分都是 Java 写的,总不可能用 kt 重构吧。所以原生的话还是得学 java 的
    0 0
  • ciki
    2022年6月27日 06:56
    #40 Java 和 kotlin 都是 Android 的原生开发语言,最初是 Java ,后来 kotlin 上位成为第一语言,开发 Android 来说,Java 能干的 kotlin 都能干,但是因为 Java 作为第一语言这么多年,留下的影响在那里。很多库啊,API 离不开。所以 Java 是基础,只要做原生开发,就必须学。
    0 0
  • stoluoyu
    2022年6月27日 06:56
    很现实的问题,如果你不会原生,flutter 、uniapp 出了问题你不一定解决的了。
    0 0
  • WebKit
    2022年6月27日 06:56
    #3 快点 5 分钟?要不先换个电脑试试吧。。
    0 0
  • WebKit
    2022年6月27日 06:56
    #22 你似乎没有搞明白 java 、kotlin 的关系
    0 0
  • murmur
    2022年6月27日 08:26
    说的很明确了,现在是 app 减量年代,你想出一个 app ,除非有内容上的绝对优势,比如周杰伦的新歌,热播电影,当红小说,或者是那种巨优惠的折扣,大概率是没市场的,所以小程序探路是个很好的选择
    0 0
  • equationl
    2022年6月27日 08:58
    这个我认为你恰恰说反了,kotlin 是完全兼容 java 的,不管是你说的遗留库还是遗留 API 。相反,现在谷歌的很多第一方库只支持 kotlin 不支持 java 或者对 java 的支持没有 kotlin 好。
    0 0
  • xinleicoder111
    2022年6月27日 09:29
    优先考虑 Kotlin ,java 写起来很难受,也可用 flutter 开发,开发双端难免要写一些原生的代码,如果没有原生开发的底子,直接去用 flutter 开发商业项目,会折磨的你想吐
    0 0
  • cxsz
    2022年6月27日 09:29
    #10 kotlin 它就是原生,java 能干的它都行
    0 0
  • zapper
    2022年6月27日 09:59
    我觉得分情况吧,你写个 TODO 、或者页面更新快的活动界面,Uniapp 肯定可以写;如果 JNI ( live555 ,ffmpeg 等)、那就 java ,重原生 API 交互(语音、陀螺仪等),那就 java 或 Kotlin ;想写得爽,Kotlin 。记住软件开发没有银弹
    0 0
  • geeksammao
    2022年6月27日 10:28
    小程序探路也看业务类型的。有些业务在小程序生态里就没法尝试,比如社交类,而且小程序买量限制也很大,app 在信息流、短视频、商店渠道能起量的方法对小程序完全不适用。结果就是,做小程序看起来成本低但也基本起不来,有些东西还得拿 app 试。
    0 0
  • leili
    2022年6月27日 10:57
    为啥没有 RN ?? 它不香么? 它具备完整的生态和社区,纯前端即可。较 uniapp 优势还是蛮大的。
    0 0
  • lzgshsj
    2022年6月27日 11:56
    我倒是觉得从 html/css 换到嵌套式声明布局没啥,不用看见 css 我真的太谢谢 flutter 了,布局可以说完全可控,没有什么正交问题。
    0 0
  • seakingii
    2022年6月27日 12:28
    以前叫 xamarin ,现在叫 MAUI ,不过还没有完善, 和 flutter 一样的野心(跨平台 ,还可以开发 PC 程序和手机 APP)
    0 0
  • Buges
    2022年6月27日 12:55
    除此之外还有一个 dotnet MAUI (微软出的 UI 库警告⚠) 总的来说,不需要跨平台就直接原生,没必要关心那些额外的复杂度。 uni 小程序这种 💩就别碰了。
    0 0
  • hst001
    2022年6月27日 14:27
    如果只是 Android 平台的话,建议选择 Kotlin ,涉及到原生交互的问题会很好解决; 如果有多平台的需求而你只有一个人,那么跨平台是首先要考虑的事情,这个时候可以考虑 Flutter 。
    0 0
  • tanranran
    2022年6月27日 15:56
    马德,楼上各种说方案的,有多少人都写过,都实际写过成熟商业项目过的? 作为一个都写过的人而且都上架过多款 APP 说明一下 1 、如果没写过原生,又想支持小程序,建议直接上 uniapp ,楼上不服的来辩, 2 、如果没写过原生,又想不想支持小程序,建议直接上 React Native 2 、如果写过原生,而又想跨平台,直接 flutter 3 、如果写过原生,又不想跨平台,Android 用 Kotlin 和 Java 都可以,iOS 用 Objective-C 和 Swift 都可以,哪个熟用哪个 ps: 1 、有说 k2 compiler 的,你用 k2 compiler 编译过 android ? 2 、有说原生能力的,你用 uniapp 开发过蓝牙,相机,wifi 、等硬件交互过的吗? 3 、有说 compose 的,你用 compose 写过成熟的商业项目?
    0 0
  • James369
    2022年6月27日 16:28
    唉,flutter 好是好,但是要接受 dart
    0 0
  • b1ncer
    2022年6月27日 18:25
    我这目前日活 5 万的项目,用的 RN ,写业务非常舒适,但是在对接国内各种平台 sdk 时麻烦很多。 另有一个日活千级的用的 flutter 。业务上效率略输,因为生态不如 rn 。但神奇的是国内厂商的 sdk 支持度,flutter 相比 rn 略好一些。
    0 0
  • FightPig
    2022年6月27日 18:56
    我来说,uni 我们公司用的多,不过我们公司的大多会写原生,所以各种问题还好,我们公司合作的几个公司,好多用 uni 不会原生的,甲方给的 sdk 是个 jar 包,他们直接不知道怎么搞了,好多用 uni 的只会个云打包。你让自定义基座试试,有多少人会?而且官方文档写的就什么一样,要不是我们公司的人会写原生,估计后面直接嗝屁。而且这东西各种莫名的 bug ,最后还是要用原生的来处理。不过如果只是用来写写简单的业务不涉及到原生 sdk 啥的,还是可以一用。另外,写小程序也尽量原生,uni 的好处是插件多,你不会的,随便找个插件几乎都有,但如果有坑,你自身底子不行,那不好意思,你还是重写吧,因为你找遍全网,发现好多人有这个 bug ,但可能都好几年了,官方也没人说怎么解决。
    0 0
  • debuggeeker
    2022年6月28日 01:27
    kt 和 java 使用 SDK 的 api 一样的,只是语法上有一点点不统一而,java 能做 kt 也能
    0 0
  • debuggeeker
    2022年6月28日 01:27
    不要想着只学一种东西,因为很多开源库其他问题,很多解决方案都不一定是你熟悉的语言。不然人家写的代码你都看不懂,就谈不上解决问题了。作为双端开发,其实我会的不只是双端的知识,还有后端,前端,flutter ,java ,kt ,py ,swift ,oc ,mysql ,nginx===。遇到问题干就是了,不要排斥某个语言,吹某个语言,他们都是你的工具罢了。我们目的是解决问题。
    0 0
  • coolmint
    2022年6月28日 01:27
    只做过海外项目,不了解小程序,前公司做 Android ,用 Kotlin 和一部分 Compose 。现公司单兵 Android + iOS 。 推荐 flutter ,确实是一套代码一把梭了,很方便。
    0 0
  • tanranran
    2022年6月28日 01:57
    #64 技术选型是多方面考虑和业务场景的,任何技术都有技术曲线, 1 、答:而是在好多用 uni 不会原生的 [前期 uni ,后期需要原生那么,就得原生上,这点你换任何跨平台的框架都得遇到这个问题] 2 、答:uni 的好处是插件多,你不会的,随便找个插件几乎都有 [随便找个插件都有问题?这个怪 uni ?] 3 、答:但如果有坑,你自身底子不行 [底子不行,换任何框架都不行] 我们得目的是快速解决问题,快速迭代
    0 0
  • fiypig
    2022年6月28日 01:57
    现在很多 sdk 都支持 fluter , 但不一定支持 uniapp ,很恶心的, uniapp 如果是简单基础开发还好 ,如果功能多了,真的去掉
    0 0
  • FightPig
    2022年6月28日 02:28
    2 、我感觉你没看清楚,我说那是 uni 的好处,3 、uni 的坑你要会前端 和原生两种,不是所有人都会这个,有时候原生更方便。uni 好处是快速出原型,但真不适合写 app 来用来正式商用上,当然了,可能你把 uni 吃的透透的,那我们比不了。
    0 0
  • iXInbo
    2022年6月28日 02:28
    其实用什么,看公司而不是群友说的; 如果你是刚入门,准备做安卓;你要做的第一步就是看你当地的招聘 看看要求,如果 kotlin 多,就学 kotlin ;如果 flutter 多学 flutter ; java 多学 java (学这个总没错) 因为你要靠这个吃饭的找工作的 况且都会也没坏处,程序员就是不断的学学学。。。 但是如果你只是学着自己玩自己搞,那就试试新的,flutter 、kotlin ,甚至 RN 都可以。就如你标题写在,喜欢什么学什么。
    0 0
  • zoharSoul
    2022年6月28日 05:26
    首先排除 uniapp 其次 kotlin/java 还是 flutter 都 ok
    0 0
  • chrisia
    2022年6月28日 08:59
    公司项目我用的 Jetpack Compose ,有一些坑,最大的问题是第三方库都是基于 View ,有时候调用 View 会有 bug 。建议 xml + compose ,在 view 视图中嵌套 compose ,应该是最佳方案。以后趋势的话肯定是 Jetpack Compose 了。
    0 0
  • chrisia
    2022年6月28日 08:59
    我只能用两个字来形容 Jetpack Compose ,“优雅”
    0 0
  • chrisia
    2022年6月28日 09:30
    褒义啊,比 xml 那套好多了吧
    0 0
  • HAYWAEL
    2022年6月28日 10:30
    我最近刚开发了一个 APP 。不知道怎么想的用的 Taro 。 其实就是 RN ,一路踩坑过去的
    0 0
  • buxudashi
    2022年6月28日 10:30
    兄弟你怎么想的?要学也要学原生啊。java 多好。不过我不太喜欢 java ,所以才想着选个别的。
    0 0
  • zerofancy
    2022年6月28日 10:58
    原生开发还是离不开 java 。虽然你自己写的代码可以完全用 Kotlin ,但总需要 debug ,研究系统组件源码,而安卓的 framework 目前整个都是 java 。
    0 0
  • zerofancy
    2022年6月28日 10:58
    有朋友说的 Compose ,只能说,目前还是不太敢用。首先 minSdk 要求 21 ,有低版本兼容的就不行。其次自己折腾时确实遇到一些 bug ,比如 MIUI 上启动白屏,只有点一下才触发重组。去年就有人向小米反馈,但至今没有解决。
    0 0
  • seliote
    2022年6月28日 13:57
    毫无疑问 Flutter ,已经上线了几个应用,涉及到的一些特殊需求例如音视频通话或者其他的,Flutter 不要太方便,而且同时支持 Web Win Mac Linux ,有什么理由不用
    0 0