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

移动端 App 开发

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

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

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

    23 条回复    2024-01-25 11:43:30 +08:00
    boyxy120
        1
    boyxy120  
       316 天前
    公司需要什么就用什么
    x77
        2
    x77  
       316 天前
    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  
       316 天前
    一般公司领导不在于技术追求,反而都是什么方便什么来,更多的的都是原生 APP 套个 H5 的壳子。美名其曰混合式开发。 当然了这种情况更新方便快。
    x77
        4
    x77  
       316 天前
    @x77 从先进程度和发展趋势看,Flutter 这类框架是方向(主观)。补充一下,Flutter 原生 App 效率非常好,和 Kotlin 、Java 写的没啥区别,比一些不理解 App 开发随便写的 Kotlin/Java App 效率更好。
    beisilu
        5
    beisilu  
       316 天前
    小应用和玩具都无所谓,大的肯定都是混合的。
    blackvv666
        6
    blackvv666  
       316 天前
    没什么值得追求的。
    左右不过就是写写那些业务 UI 。
    哪个块,哪个方便,哪个挣得多。
    用哪个。

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

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

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

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