移动端 App 开发

346 天前
 zhenyoung

本人后端佬,想了解一下其他领域的情况,所以想问一下大家移动端目前的主流技术栈是怎样的一个情况(虽然目前移动端的市场已经被小程序给吃掉很多了,但我还是想了解一下),react-native 、kotlin 、原生 Java 、flutter 等,如果要开发移动端 App 的话,目前主流的技术栈是咋样的

注:虽然 uniapp 这种可以极大程度上减少开发和维护的成本,但对于纯粹追求技术的开发者而言,实在是无法接受

5868 次点击
所在节点    Android
23 条回复
boyxy120
346 天前
公司需要什么就用什么
x77
346 天前
Kotlin 、Java 是原生开发,用的系统的基于 XML 描述的交互界面,开发算法、集成第三方库、调用 Android 系统的 SDK 来实现功能

Flutter 是面向跨平台应用,一套代码只需要不同的平台编译即可(不需要为不同的平台开发不同的版本)。分原生和 Web:原生 App Flutter 框架自己实现交互界面,和 XML 不同 Dart 是声明式 UI ,功能实现上通过 Plugin 机制和系统 API 交互; Flutter Web App 在浏览器上运行,编译会生成 JS ,渲染模式可以用 Canvas 也可以 HTML ,功能没法做到原生 App 那么广泛,会受浏览器能力的限制。

RN 和 Flutter 类似,但我不是很了解就不讲了
vueli
346 天前
一般公司领导不在于技术追求,反而都是什么方便什么来,更多的的都是原生 APP 套个 H5 的壳子。美名其曰混合式开发。 当然了这种情况更新方便快。
x77
346 天前
@x77 从先进程度和发展趋势看,Flutter 这类框架是方向(主观)。补充一下,Flutter 原生 App 效率非常好,和 Kotlin 、Java 写的没啥区别,比一些不理解 App 开发随便写的 Kotlin/Java App 效率更好。
beisilu
346 天前
小应用和玩具都无所谓,大的肯定都是混合的。
blackvv666
346 天前
没什么值得追求的。
左右不过就是写写那些业务 UI 。
哪个块,哪个方便,哪个挣得多。
用哪个。

太年轻了,还纠结这些最无所谓的东西。
AreYou0k
346 天前
flutter
zoharSoul
346 天前
目前还是原生为主.
小程序基本都是特别边缘的部门在负责.....
theguagua
346 天前
混合开发用过 Java+rn 和 Java+Flutter ,业务基本一样的情况下,Flutter+Java 在操作上会更加流畅一些,开发中奇怪的 bug 也会少一些,Dart 也会比 React 心智负担少一些(比如 React 各种 rerender) ,也见过 WebView 套壳的网页+kolin/java ,前端网页部署确实方便,但也有一些局限性
beimenjun
346 天前
其实吧,不理解 App 原生开发随便写的 Flutter 也就那样……

有些东西比较的时候会陷入田忌赛马的状态,拿一个中等马去对比别人下等马。

Flutter 终究是第三方,哪怕是 Google 里面团队做的,对于 Android 开发这个领域终究不算亲生的。
aCodingCat
346 天前
别想太多
直接上 flutter
ciki
346 天前
小的东西随便,大项目直接原生
wobuhuicode
346 天前
react native 招人最简单。
deng81416754
346 天前
如果是在公司角度肯定是低成本的 uniapp 性价比更高,如果是纯粹追求技术 肯定是新出的 compose 、flutter 等技术更具有发展性
wingkwanli888
346 天前
@deng81416754 我司最近两年的 app 项目都是 webview 套 vant h5 , 体验上和原生没分别
coreki
345 天前
直接上 flutter ,流畅丝滑
furlxy
345 天前
大部分都是原生代码,flutter 及一些营销活动是网页代码占比不到 10%,至于小程序,边缘业务才会用到,比如使用说明书这种。
rvw
345 天前
@coreki 不支持高刷
zhanlanhuizhang
341 天前
如果一个应用复杂点不在页面,那么就用原生吧,如果业务不复杂,复杂点在页面那就用跨平台。
zhanlanhuizhang
341 天前
比如一个 app ,需要本身带服务器( AndServer 这种),需要全局数据库支持,音视频,需要支持蓝牙,NFC ,自己写相机,这个时候,你需要用 C ,C++,java ,lua ,kotlin ,如果是混合协作开发,你还需要考虑和 webview 交互,需要懂 js ,如果需要在各种环境打包,还有怎么自动备份混淆文件,备份打包文件,这个时候你还需要学习 Groovy ,或者 kotlin dsl ,来配合 gradle 打包。如果需要自动生成 doc 文档上传服务器,那么需要了解一下 nginx 等等,然后你发现这样是不是可以使用 Ci/CD ,然后你需要学习一下可持续集成,学习怎么写脚本文件等等技术。妈蛋无穷无尽。

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

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

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

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

© 2021 V2EX