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

Android 开发方向:传统 View 开发 or 拥抱 Jetpack Compose

  •  
  •   fltv · 10 天前 via Android · 2163 次点击
    如题,本人萌新一枚,对 Android 开发挺感兴趣,想深入学习一下。

    目前我上的 Android 开发课程的内容是 Jeypack Compose,我们老师说这门技术是目前最新的了,学好了大有裨益,我想的是这技术就是因为太新了,之前的项目迁移到这技术上会不会还需要很长一段时间?而且这技术才出来没几年,还没见很多公司使用,我一个新手直接学这个会不会有点走钢丝学习、费力不讨好的感觉?

    我个人感觉应该还是先从传统 View 系统学习开始,还有,就是 Compose 这个声明式编写 UI 的方式我感觉有一丝不舒服,主要觉得视图数据逻辑都堆在一起感觉好混乱,相比之下,我还是更倾向于传统的 MVC 架构。

    希望佬们给点建议,真怕方向错了,白努力了一番😇
    32 条回复    2024-05-01 22:54:56 +08:00
    030
        1
    030  
       10 天前
    学 Jetpack Compose ,现在前端都是这种风格了

    应届生低级岗位的话会有点加分项,能证明你能接受新东西
    bjzhou1990
        2
    bjzhou1990  
       10 天前
    大实话是你都得会,传统 UI 是现实,大部分公司仍然在大规模使用而且很难重构替换新技术,Compose 是未来主流,不会就会被淘汰
    GoldenLeez
        3
    GoldenLeez  
       10 天前
    花精力学 Compose 吧。View 会用就行了,公司里老项目可能都是传统 View 。声明式 UI 你多写一些说不定就适应了,数据驱动视图写起来很舒服(曾经对 Android 开发感兴趣,现在变成辣鸡前端的感受)。前端基本也是这种方式。
    biantaoGG
        4
    biantaoGG  
       10 天前   ❤️ 2
    理想:拥抱新技术,当最前沿的技术大佬
    现实:绝大多数公司还是以前的 view 模式,你有能力有职级有人脉决定推翻旧架构使用 compose ?你们公司的人都会 compose 可以让所有人一起维护?

    楼上的绝对不会是做 android 的。
    android 仔表示,统一采用 kotlin 语言都不容易推进,更何况是 compose 。重构一个小模块公司都不允许,还让你改框架。

    总结:以传统 view 结构为主,自己学习 compose ,一时半会不要妄想能够代替。除非你直接拥抱 flutter ,很多公司采用这个开发双端了,且本身使用的就是这个技术
    HojiOShi
        5
    HojiOShi  
       10 天前
    我开发 android 一直用的传统 View + MVVM ,直到老板说要搞鸿蒙我才有机会接触到 ArkUI 这种声明式 UI 。同样也觉得视图和数据堆在一起挺混乱,只能手动建立架构分开。毕竟鸿蒙也没有系统支持的 ViewModel 这种东西,自己手动写的不算。
    Randomjo
        6
    Randomjo  
       10 天前
    除非你是 android 专精多年的专家,否则现在小公司基本要求你会 Flutter ,会了 Flutter 基本声明式 UI 这类也没啥问题了。可以考虑入门 Flutter 。
    xieren58
        7
    xieren58  
       10 天前
    Jetpack Compose 用 3 年了. 好用... 跨平台 就 flutter...
    winterbells
        8
    winterbells  
       10 天前 via Android   ❤️ 1
    @biantaoGG 同意

    自己研究研究可以,但是公司项目就是埋雷

    印象里它的 API 改了一堆了,每次更新完出一堆报错怎么办

    ist 的性能一直有问题,滚动就是比 recyclerview 卡,也不知道优化多少次了,去年底测试还是有问题的

    而且它是绑定 kotlin 的,像我们公司会追 kotlin 版本,但 compose 那边指不定十天半个月才发布新 compiler
    lulucy
        9
    lulucy  
       10 天前   ❤️ 2
    作为一名老司机,强烈不建议现在入 Android ,坑太少了。

    如果实在要学的话,看你想去什么公司,大厂的话应该很少用 Jetpack Compose ,除非是一些新的项目,老项目的话估计都还在用 Java 。

    去小公司比如创业型的话可以考虑学,一般会采用新技术栈。

    另外,这俩也不是很难,可以都学,如果你做 Android ,以后要学的还很多呢。。。这俩基础框架咋好像是人生重大选择一样😂

    最后,还是建议别再入 Android 的坑了,你可以自己观察,现在出来的新 app 很少了,坑更少了。最好选后端,真的。
    liuzimin
        10
    liuzimin  
       10 天前
    这玩意儿都出了好多年了,咋还是新东西?
    bug51
        11
    bug51  
       9 天前
    乖乖 安卓开发也是娱乐圈?前端娱乐圈看蒙了
    Helsing
        12
    Helsing  
       9 天前 via iPhone
    当然是优先 Compose 了,比传统 View 写起来爽太多了。
    至于你说的视图数据逻辑堆在一起不知道是什么情况,2024 年了连 MVVM 都还没用上吗……
    当然干活的话,传统 View 你还是得会,因为现在很少项目是纯 Compose 开发的,而且像 TextureView 、WebView 这些,终归还是要用到传统 View 的
    narmgalaxy
        13
    narmgalaxy  
       9 天前
    Jetpack Compose 开发起来很流畅,只需要关系数据流向就行了,当然传统的命令式的开发方式最好也懂一点
    zeropercenthappy
        14
    zeropercenthappy  
       9 天前
    从实际情况来讲,view 、kotlin 必学,kotlin 协程、jetpack 最好学,compose 自己有空再自学。
    从更实际的情况来讲,建议换个赛道,除非存粹是学来玩而不是为了吃饭。
    fltv
        15
    fltv  
    OP
       9 天前 via Android
    综合楼上大佬们的分析,我决定还是先从传统 view 基础学起来吧,这样稳点😐
    a0000
        16
    a0000  
       9 天前 via Android
    为啥要学客户端开发,学后端吧,客户端开发坑位有限,遗留下来的开发太多了,被裁后降薪也会去的
    a0000
        17
    a0000  
       9 天前 via Android
    如果只是感兴趣,都学学还是可以的
    Android 要学的东西太多了
    a0000
        18
    a0000  
       9 天前 via Android
    如果作为未来找工作方向,强烈不建议学
    okakuyang
        19
    okakuyang  
       9 天前
    Jeypack Compose 是调剂品,你写 View 那些原生控件,写多了会烦的。Jeypack Compose 应该和你用什么 MVC 架构没关系,想怎么写就怎么写。Android UI 开发出来不好找工作。
    Flyfish233
        20
    Flyfish233  
       8 天前 via Android
    如果是做开源,或者独立开发者,请首先考虑 Compose ,做海外业务的更甚了。如果是想在国内上班的,建议还是 View ,之前参加会议,知道大厂不愿意用,不知道现在有没有改善了。请说明只是感兴趣学习还是想上班干活。
    xingda920813
        21
    xingda920813  
       8 天前
    结合现在的工作岗位情况, 不建议学习原生开发了, 建议直接学习 Flutter, 现在国内互联网企业很少用原生开发了. 不过即使是 Flutter / React Native 这样的跨端方案有时候也还是要用到 Android native 的知识的, 这样的话建议先学习 View, Compose 业余时间了解即可.
    GotKiCry
        22
    GotKiCry  
       8 天前
    理想情况下是用 Compose ,实际情况下公司还在 Java 8
    unco020511
        23
    unco020511  
       8 天前
    等等,现在还有 Android 新人?

    下面说正经的:
    如果要说未来哪个体系是最强最好的,那当然是 Compose,传统的 View 体系基本可以理解为远古设计,与现代化主流响应式 UI 系统无缘,而且 google 也不会再去优化 View 体系了,从开发体验上来说,你的项目一旦很大,那 Compose 的开发体验也是远远好于 View 体系的.

    但是,如果你是想要学了就立马找工作,那 View 是避不开的,你必须得学.因为现阶段,国内大厂的技术栈可能更多还是 View,毕竟老项目比较多.

    我的建议是 View 和 Compose 都要学
    unco020511
        24
    unco020511  
       8 天前
    我觉得你应该先考虑考虑为啥要选择 Android 这个方向,优先学前端,服务端啊,移动端要学的东西多,而且岗位在减少
    luoshuimumu
        25
    luoshuimumu  
       8 天前
    理想:jetpack compose 现实:老项目能跑就行,java+kotlin 混编+组件化+mvp ,还用了 javapoam+只支持到 4 版本的上古 gradle 插件,as 版本太高甚至都编译不了
    Bown
        26
    Bown  
       8 天前
    自学提升或个人项目那必然是 Compose ,开发体验大提升,官方也在大力搞 Compose 的跨平台,未来往广度拓宽学 Flutter / SwiftUI / React 之类的也能更好上手。
    但如果为了找工作,就还是先把 View 写熟练吧,然后 Compose 简单点儿对面试有加分。
    EgbertW
        27
    EgbertW  
       7 天前
    一大票行业内的公司甚至还没从 Java 迁移到 Kotlin ,更何谈 Jetpack Compose 。自己学归学,主力使用的还得是传统技术。
    kingzeus
        28
    kingzeus  
       7 天前
    其实没啥区别的,老板关心的是怎么用最小代价实现功能,确保稳定,不引入新问题,而不是技术迭代

    有追求的就研究下,没有就算了。

    你的核心竞争力是高效的解决业务问题,至于用啥技术只是手段。
    反过来说,你迭代代码是为了更好的解决业务问题,而不仅仅为了换个技术框架,提升开发体验的方案其实很多,比如根据模板自动生成代码,引入设计模式更合理的解耦逻辑等等


    新的项目其实用啥都行,老的项目估计也没有重构的必要
    iflint
        29
    iflint  
       7 天前
    快跑
    HtPM
        30
    HtPM  
       7 天前
    学习传统 View+Java(1.8 主要)+Kotlin(次要),设计模式的话重点学习 MVVM(使用 Jetpack 架构组件)<对新手来说会有点难>,API 的话学习并熟悉四大组件以及其生命周期(建议熟记),其余的功能性 API 官网查资料,进阶的话学习自定义 View ,事件拦截,再进阶的话需要熟悉一些 Framework 相关的知识。 这些知识够你进入互联网了。
    如果要做智能硬件相关的话,除了上面的知识,还需要学习 JNI ,C/C++,NDK 相关的知识。目前在职人员给你的意见。
    HtPM
        31
    HtPM  
       7 天前
    忘了说,Compose 先不用学
    v2ewonder
        32
    v2ewonder  
       4 天前   ❤️ 1
    开发效率(跨端、丰富的基建)、性能、维护成本这几项来看,Compose 并不能带来革命性成果,如今这行情,团队哪有资源给你搞这个。技术得懂且会用,各端都流行 DSL 。

    小年轻的话,梭哈一把,都要,全学了它。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3281 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:35 · PVG 19:35 · LAX 04:35 · JFK 07:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.