V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaotianhu
V2EX  ›  程序员

后端来问问:是不是安卓开发比 iOS 更难?

  •  
  •   xiaotianhu · 2020-08-26 10:30:52 +08:00 · 7810 次点击
    这是一个创建于 1579 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接触过一点 iOS 开发,没弄过安卓开发

    从产品最终的质量和人力成本来看.iOS 和安卓,相同的人力成本 时间成本, 人的能力相差不大, 最终做出来的 App 的质量, 安卓比 iOS 要差不少.

    安卓的机器确实多,各种低端 MTK, 不同屏幕,兼容性不好弄.感觉上就像当年的 IE6 一样.

    安卓的开源组件,做的普遍也没有 iOS 好.不够精细,勉强能用的水平.

    所以懂的同学来说说,是不是客观情况决定了就是这样,没办法?还是我司小伙伴的水平差距问题.

    46 条回复    2020-08-27 17:49:20 +08:00
    kop1989
        1
    kop1989  
       2020-08-26 10:36:05 +08:00   ❤️ 1
    从我的经验理解来讲。
    对于小厂而言(拿不到各种 os 的白名单的话):
    如果是要一个 40 分左右的 app,安卓简单些。
    但是如果要一个 90 分左右的 app,安卓很困难。

    如果是一个 60 分的 app 的话,我感觉安卓和 ios 的难度相仿。
    kop1989
        2
    kop1989  
       2020-08-26 10:38:09 +08:00
    还有一点需要补充,就是相同的产品,安卓 app 往往要比 ios 的 app 功能需求更多(因为安卓环境更开放的原因)。
    murmur
        3
    murmur  
       2020-08-26 10:38:38 +08:00
    ios 主要是用 c 语言,c 语言带数组就比安卓恶心,objc 又比正统 c 更恶心,当然不知道现在是不是都 swift 了

    安卓其实问题不大,那种国产特性都是合作方才能做的,也轮不到你
    murmur
        4
    murmur  
       2020-08-26 10:38:50 +08:00
    *更正:c 的指针
    lonelymarried
        5
    lonelymarried  
       2020-08-26 10:40:07 +08:00
    我开发习惯了 ios,去搞安卓,真心不顺手。
    Leonard
        6
    Leonard  
       2020-08-26 10:41:17 +08:00
    这个也和 UI 设计有关,如果按 iOS 风格来设计的话,iOS 能直接用原生控件,安卓得找开源组件或自己写;按安卓风格设计的话则相反。不过安卓厂商 UI 定制居多,没有通用风格,所以一般来说会倾向按 iOS 风格设计。
    huage2580
        7
    huage2580  
       2020-08-26 10:46:29 +08:00
    人的能力相差不大,要看是 60 分的人,还是 90 分的人。
    及格水平的话,双端都差不多,甚至安卓画界面快点。
    90 分的 app,安卓更难,尤其是 UI 设计只出一份 ios 的,有些控件 ios 自带,安卓自己写几天。然后就是动画之类的,安卓需要很用心才能调试出差不多的动效。
    hoyixi
        8
    hoyixi  
       2020-08-26 10:46:49 +08:00
    Android 要费劲一些,至少适配就够喝一壶
    iFlicker
        9
    iFlicker  
       2020-08-26 11:12:59 +08:00   ❤️ 6
    个人觉得相对来说的确是难
    Android 上下限拉的太大了,往好了做对开发要求不低,但是随随便便也能出个能用的 app 。优秀的参考国外大厂应用(fb gp ins gmail twitter tg 等)
    还有就是适配,android 要适配各种分辨率 机型 非原生 rom 甚至下到 4.4 上到 11 的版本,一不小心没搞好就扯了。
    另外就是 Android 开发所涉及的广度和深度都不小。
    广度上 java kotlin flutter(dart) C++ ReactNative gradle(groovy) openGL openCV 热更新 插件化 音视频编解码等等,
    深度上 JVM/Dalvik/ART NDK/JNI 反编译 smali 特殊混淆 防破解 加固 签名校验 Xposed/VirtualAPP/root 检测 跨进程(pipe/Binder) Framework(AMS/WindowManager ...) 以及涉及 Linux 的一些东西等等

    常见的开源组件没什么毛病啊 okhttp retrofit rxjava 系列 glide realm 以及 JetPack 等等,难道你说的是 UI 组件?
    iFlicker
        10
    iFlicker  
       2020-08-26 11:14:55 +08:00   ❤️ 1
    [狗头]当然了,真说做的好不好 我觉得一看开发的水平,二看给的时间充足不充足。你再牛逼的开发,老板天天快速迭代 两天搞定第三天上线 能做出个什么玩意儿
    xiaotianhu
        11
    xiaotianhu  
    OP
       2020-08-26 12:04:05 +08:00
    @huage2580 是这样,尤其是动画,都用一些开源方案的时候,安卓体验更差.让开发去优化也感觉更难.

    安卓不是号称对开发者更友好.ios 开发反人类么.
    xiaotianhu
        12
    xiaotianhu  
    OP
       2020-08-26 12:05:56 +08:00
    @iFlicker UI 组件,比较直观嘛.底层网络通信框架啥的我相信按着 Java 的积累肯定没问题的.
    安卓对比 iOS 让人诟病的不也是 UI,不够流畅 不跟手什么的.
    kuyuzhiqi
        13
    kuyuzhiqi  
       2020-08-26 12:07:23 +08:00
    质量这东西和平台无关,看产品设计和敲代码的人,Android 开源组件用 star 数量多的在维护的那种能避免很多坑,不过适配确实太难了,唉
    across
        14
    across  
       2020-08-26 12:08:43 +08:00
    同一水平线的肯定算 android 难,应该说是····杂?
    我之前两端都做接触过一点,不过非专职。
    across
        15
    across  
       2020-08-26 12:10:37 +08:00
    不过楼主应该明说下,这里提到的 [App 的质量] 指什么。 稳定性表现? UI 适配? 功能体验?
    loginbygoogle
        16
    loginbygoogle  
       2020-08-26 13:10:06 +08:00 via iPhone
    贵公司的员工水平都很差
    bjzhou1990
        17
    bjzhou1990  
       2020-08-26 13:13:27 +08:00
    整体而言,小公司安卓开发的水平要比 iOS 开发差一些,并且 iOS 原生组件比安卓原生组件更完善和美观,相同开发成本下安卓 UI 要比 iOS 查一下
    kiroter
        18
    kiroter  
       2020-08-26 13:44:39 +08:00
    就推送消息来说,安卓就要哭了吧。
    fffang
        19
    fffang  
       2020-08-26 13:46:40 +08:00
    @murmur 写 app 用的 objc 一般不会用到 c 指针啊,objc 还算是比较亲和的语言吧。
    andev
        20
    andev  
       2020-08-26 14:09:31 +08:00
    UI 只是开发中的一个小点而已
    anxiousPumpkin
        21
    anxiousPumpkin  
       2020-08-26 14:15:16 +08:00
    你要说最终开发出来的 App 质量差很多,那我觉得人的能力相差还是不小的
    morizawatt
        22
    morizawatt  
       2020-08-26 14:16:26 +08:00
    作为前一环 UI 设计来说 安卓的 box-shadow 真是一言难尽
    iFlicker
        23
    iFlicker  
       2020-08-26 14:21:00 +08:00
    @xiaotianhu 我个人觉得归根到底是系统层面设计的问题,我问了下 iOS 大佬说很多三方 UI 组件动画实现其实还是系统的。。。
    Android 那套绘制方式流程和引擎的确不是特别优秀(现在感觉 flutter 那套要强一些)但是随着硬件性能跟上来后 再加上 Android 10 及其以后 google 有过优化 已经跟 iOS 相差不大了, 可以体验一下 Pixel4 配 Android10

    具体我也不是 iOS 开发没彻底研究过,甩个链接参考一下 https://www.zhihu.com/question/334061990
    gz911122
        24
    gz911122  
       2020-08-26 14:21:13 +08:00
    这个主要看产品设计,
    如果设计是遵循 md 的话, android 其实开发比 ios 更快...
    whatsbug
        25
    whatsbug  
       2020-08-26 14:27:45 +08:00
    说难的,应该举例说明难在那里?
    说适配的,我觉得安卓适配是烦而不是难。适配对安卓开发来说是常规操作。
    我个人觉得安卓跟 iOS 开发都差不多,没有谁比谁难。
    unco020511
        26
    unco020511  
       2020-08-26 14:34:10 +08:00
    我觉得工作量可能要 android=2*ios=3*小程序, Android 在 jetpack 出来之前,甚至都没有工程化的最佳实践,可以这样可以那样,好在现在 google 已经意识到前面欠下的各种债,这两年高产似奶牛
    unco020511
        27
    unco020511  
       2020-08-26 14:36:54 +08:00
    善待你们的 Android 同事吧
    fanyingmao
        28
    fanyingmao  
       2020-08-26 14:40:32 +08:00 via Android
    我记得以前我做安卓开发比 iOS 开发快,然后 iOS 的理由是安卓开发效率更高。。。
    xomix
        29
    xomix  
       2020-08-26 14:44:51 +08:00
    没有通用可比性,开发这个工作个人影响因素更高,你在这里搜集不到合适的可比性,参考小马过河。
    ijaysdev
        30
    ijaysdev  
       2020-08-26 14:45:43 +08:00
    @gz911122 然后国内遵循 MD 的应用少得可怜 😂😂
    wvitas
        31
    wvitas  
       2020-08-26 14:53:35 +08:00
    ios 对于开发者来说更好,因为 sdk 封装的够好,而且做出来的东西无论效果还是流畅度都有保证,可以说 ios 的 sdk 保证了 app 的下限,android 如果想实现相同的效果及动效就需要花大力气去调试,android 无法保证下限
    Kamiyu0087
        32
    Kamiyu0087  
       2020-08-26 15:07:11 +08:00
    大部分 APP 设计的 UI 也好,交互也好,都是照着 iOS 习惯来的
    你 iOS 开发直接就调系统现有框架就成了
    Android 往往需要找第三方库甚至自己去实现,那出来的最终效果不如 iOS 也正常的很
    要是 APP 按照 MD 风格去设计,Android 还能不如 iOS ?
    yinzhili
        33
    yinzhili  
       2020-08-26 15:55:48 +08:00
    @kiroter 适配厂商通道不难,到达率很高的
    morizawatt
        34
    morizawatt  
       2020-08-26 15:58:37 +08:00
    @ijaysdev
    @Kamiyu0087
    主要是 material design 太过时且丑 追波看一圈你会明白现在流行的设计是什么样
    gsgtzq
        35
    gsgtzq  
       2020-08-26 16:05:18 +08:00 via iPhone
    难,算不上。恶心,是一定的。适配,奇葩定制 rom,够喝好几壶。
    WebKit
        36
    WebKit  
       2020-08-26 16:11:30 +08:00 via Android
    @morizawatt md 过时且丑? YouTube GooglePlay 这些 app 也没感觉丑啊,设计能力差很设计语言有关系?
    Randomjo
        37
    Randomjo  
       2020-08-26 16:19:58 +08:00
    之前做 android 开发,最近在搞 Flutter 。做安卓不能说难,是恶心的事特别多。我前阵子用 swift 自己学着开发了一下,苹果的 UIKit 自带的控件就能用了,android 的还要去抄一套 iOS 的 UI 。。material design 国内 99%的都不用啊。再说推送的问题,每家厂商推送接一遍都吐了。iOS 推送稳定,接入又简单。
    当然 iOS 时不时审核打回搞你一下也挺恶心的🤢
    Randomjo
        38
    Randomjo  
       2020-08-26 16:22:28 +08:00
    还有如果要接 vivo 的推送,要先在他市场上架,上架要软著。
    v2jjCom
        39
    v2jjCom  
       2020-08-26 17:09:31 +08:00
    ios 上架太麻烦了,烦躁的一笔
    icu996
        40
    icu996  
       2020-08-26 21:27:21 +08:00
    @wvitas 深刻赞同👍
    morizawatt
        41
    morizawatt  
       2020-08-27 09:40:42 +08:00
    @WebKit 「没感觉丑」和「好看」还是有差别的 真的建议看看追波 /behance 甚至站酷首页推荐的设计,不好看的话为什么被高赞到首页呢?高赞到首页的作品我是没看到过 md 风格的,说句实话,md 风格就像原型图一样粗糙
    WebKit
        42
    WebKit  
       2020-08-27 09:54:28 +08:00
    @morizawatt #41 看了一下 UI APP 分类下的首页推荐还是有 MD 风格的 app 的,或许你对 MD 理解有差异? MD 是一种风格并不是只有用了 Google 发布会时候的那种配色,那种 UI 才是 MD,不少 app 的设计都有 MD2 的元素在里面
    WebKit
        43
    WebKit  
       2020-08-27 09:59:49 +08:00   ❤️ 1
    @morizawatt #41 比如 你说的站酷的 [知群 X 知乎] [RayData 个人版]
    morizawatt
        44
    morizawatt  
       2020-08-27 10:39:19 +08:00
    @WebKit 说的是 md 风格 设计当然是根据设计师对产品的理解来使用不同元素,你不能说使用了几个 md 元素就是 md 风格。
    对 md 嗤之以鼻主要还是之前安卓的同事反馈的安卓阴影做不出来弥散投影,只能用 md 那种生硬的投影,只好把投影单独切图给他,或许可能是他技艺不精湛吧:\
    xiaotianhu
        45
    xiaotianhu  
    OP
       2020-08-27 14:20:27 +08:00
    @kuyuzhiqi
    大概懂你意思,换个说法,同质量下的"开发成本"是不是就更严谨了
    cxknmsl
        46
    cxknmsl  
       2020-08-27 17:49:20 +08:00
    日常写 iOS,偶尔写安卓,安卓不是难,写起来其实都差不多,但是安卓有很多恶心事,适配、推送,不能像 iOS 那样直接用系统组件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:35 · PVG 06:35 · LAX 14:35 · JFK 17:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.