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

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

  •  
  •   fltv · 10 天前 via Android · 2170 次点击
    如题,本人萌新一枚,对 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  
       10 天前
    乖乖 安卓开发也是娱乐圈?前端娱乐圈看蒙了
    Helsing
        12
    Helsing  
       10 天前 via iPhone
    当然是优先 Compose 了,比传统 View 写起来爽太多了。
    至于你说的视图数据逻辑堆在一起不知道是什么情况,2024 年了连 MVVM 都还没用上吗……
    当然干活的话,传统 View 你还是得会,因为现在很少项目是纯 Compose 开发的,而且像 TextureView 、WebView 这些,终归还是要用到传统 View 的
    narmgalaxy
        13
    narmgalaxy  
       10 天前
    Jetpack Compose 开发起来很流畅,只需要关系数据流向就行了,当然传统的命令式的开发方式最好也懂一点
    zeropercenthappy
        14
    zeropercenthappy  
       10 天前
    从实际情况来讲,view 、kotlin 必学,kotlin 协程、jetpack 最好学,compose 自己有空再自学。
    从更实际的情况来讲,建议换个赛道,除非存粹是学来玩而不是为了吃饭。
    fltv
        15
    fltv  
    OP
       10 天前 via Android
    综合楼上大佬们的分析,我决定还是先从传统 view 基础学起来吧,这样稳点😐
    a0000
        16
    a0000  
       10 天前 via Android
    为啥要学客户端开发,学后端吧,客户端开发坑位有限,遗留下来的开发太多了,被裁后降薪也会去的
    a0000
        17
    a0000  
       10 天前 via Android
    如果只是感兴趣,都学学还是可以的
    Android 要学的东西太多了
    a0000
        18
    a0000  
       10 天前 via Android
    如果作为未来找工作方向,强烈不建议学
    okakuyang
        19
    okakuyang  
       9 天前
    Jeypack Compose 是调剂品,你写 View 那些原生控件,写多了会烦的。Jeypack Compose 应该和你用什么 MVC 架构没关系,想怎么写就怎么写。Android UI 开发出来不好找工作。
    Flyfish233
        20
    Flyfish233  
       9 天前 via Android
    如果是做开源,或者独立开发者,请首先考虑 Compose ,做海外业务的更甚了。如果是想在国内上班的,建议还是 View ,之前参加会议,知道大厂不愿意用,不知道现在有没有改善了。请说明只是感兴趣学习还是想上班干活。
    xingda920813
        21
    xingda920813  
       9 天前
    结合现在的工作岗位情况, 不建议学习原生开发了, 建议直接学习 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  
       5 天前   ❤️ 1
    开发效率(跨端、丰富的基建)、性能、维护成本这几项来看,Compose 并不能带来革命性成果,如今这行情,团队哪有资源给你搞这个。技术得懂且会用,各端都流行 DSL 。

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