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

移动端 App 开发

  •  
  •   zhenyoung · 2023-05-18 11:38:43 +08:00 · 10167 次点击
    这是一个创建于 554 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    23 条回复    2024-01-25 11:43:30 +08:00
    boyxy120
        1
    boyxy120  
       2023-05-18 11:52:28 +08:00
    公司需要什么就用什么
    x77
        2
    x77  
       2023-05-18 13:39:57 +08:00
    Kotlin 、Java 是原生开发,用的系统的基于 XML 描述的交互界面,开发算法、集成第三方库、调用 Android 系统的 SDK 来实现功能

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

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

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

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

    Flutter 终究是第三方,哪怕是 Google 里面团队做的,对于 Android 开发这个领域终究不算亲生的。
    aCodingCat
        11
    aCodingCat  
       2023-05-18 14:20:35 +08:00
    别想太多
    直接上 flutter
    ciki
        12
    ciki  
       2023-05-18 15:03:10 +08:00
    小的东西随便,大项目直接原生
    wobuhuicode
        13
    wobuhuicode  
       2023-05-18 15:20:50 +08:00
    react native 招人最简单。
    deng81416754
        14
    deng81416754  
       2023-05-18 15:39:52 +08:00
    如果是在公司角度肯定是低成本的 uniapp 性价比更高,如果是纯粹追求技术 肯定是新出的 compose 、flutter 等技术更具有发展性
    wingkwanli888
        15
    wingkwanli888  
       2023-05-18 23:25:09 +08:00 via iPhone
    @deng81416754 我司最近两年的 app 项目都是 webview 套 vant h5 , 体验上和原生没分别
    coreki
        16
    coreki  
       2023-05-19 08:36:22 +08:00
    直接上 flutter ,流畅丝滑
    furlxy
        17
    furlxy  
       2023-05-19 15:09:36 +08:00
    大部分都是原生代码,flutter 及一些营销活动是网页代码占比不到 10%,至于小程序,边缘业务才会用到,比如使用说明书这种。
    rvw
        18
    rvw  
       2023-05-19 15:59:25 +08:00
    @coreki 不支持高刷
    zhanlanhuizhang
        19
    zhanlanhuizhang  
       2023-05-23 14:40:50 +08:00
    如果一个应用复杂点不在页面,那么就用原生吧,如果业务不复杂,复杂点在页面那就用跨平台。
    zhanlanhuizhang
        20
    zhanlanhuizhang  
       2023-05-23 14:50:43 +08:00
    比如一个 app ,需要本身带服务器( AndServer 这种),需要全局数据库支持,音视频,需要支持蓝牙,NFC ,自己写相机,这个时候,你需要用 C ,C++,java ,lua ,kotlin ,如果是混合协作开发,你还需要考虑和 webview 交互,需要懂 js ,如果需要在各种环境打包,还有怎么自动备份混淆文件,备份打包文件,这个时候你还需要学习 Groovy ,或者 kotlin dsl ,来配合 gradle 打包。如果需要自动生成 doc 文档上传服务器,那么需要了解一下 nginx 等等,然后你发现这样是不是可以使用 Ci/CD ,然后你需要学习一下可持续集成,学习怎么写脚本文件等等技术。妈蛋无穷无尽。
    zhanlanhuizhang
        21
    zhanlanhuizhang  
       2023-05-23 14:58:07 +08:00
    然后,还有,如果你想学习一下,SO 库,内存泄漏,或者怎么监听 SO 造成的闪退,哦豁,这个时候,你还需要学习一下内存 dump 信息等堆栈信息。如果遇到性能优化,这个时候你可能还需要了解一下利用寄存器编程,然后你想搞点黑科技,这个时候你需要学习虚拟化,Hook 等等技术。
    zhanlanhuizhang
        22
    zhanlanhuizhang  
       2023-05-23 15:05:13 +08:00
    以上还只停留在用的层面,如果遇到,特殊问题,比如流式压缩,非对称加密(自己实现椭圆曲线代码),教育机上的手指跟随书写效果,可能几周一个月也没有任何进展,这个时候就发现他妈的,写界面 UI ,动画效果,至少可以慢慢调试,真他妈简单。可是有些东西,不懂,就根本无法下手。
    snowflake007
        23
    snowflake007  
       302 天前
    小点的看现有人员的技术栈,反正又不是不能用( dog )
    但是大一点的大型 App 还是原生是主流加一些 H5 混合

    小公司呢生存都不一定,折腾哪个快用哪个,Flutter ,uniapp ,H5 加壳都行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5242 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:50 · PVG 16:50 · LAX 00:50 · JFK 03:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.