HTML5 会取代原生开发吗?
- 前端
- 2023-01-21
上一篇文章「移动开发者为什么没那么吃香了」推送了之后,收到了很多移动领域的问题,恰好4月初 iOS 开发者唐巧在我的攻城狮群做了一次分享,其中的问答环节很有启发,也很有意思,摘录了一些,应该可以解答部分读者的疑问。
唐巧:80后程序员,InfoQ 编辑,《iOS 开发进阶》 作者,目前在猿题库创业。曾开发过网易邮箱、网易微博(已挂掉)、有道云笔记、猿题库、小猿搜题等软件。我很早就认识了唐巧,那时他还是一个初入江湖的「小球」,高高瘦瘦,正在网易有道做云笔记的开发。短短几年之内,唐巧获得了飞速的成长,他不仅成为一个优秀的 iOS 开发者,而且是 iOS 领域的布道者和技术管理者。
唐巧的公众号:iOS开发(iOSDevTips)
1、请问唐巧老师认为国内公司什么时候会大规模开始使用 Swift?Swift 3.0 呢?
答:这个问题非常好,基本上所有人都在关心这个问题:就是 Swift 什么时候会成为主流,而且每个人看法都不一样。我甚至之前还做过一个调查,问大家什么时候迁移到 Swift. 当时的调查反映出,只有百分之十几的公司当前采用的 Swift, 百分之八十多的公司都还没有采用,而且其中有百分之五十的公司,今年到年底都不打算采用。
我个人对 Swift 的流行持保守观点,我认为今年六月份苹果的 wwdc Swift 应该会推出3.0 版本,3.0版本的稳定性会决定这个语言的流行程度,如果苹果3.0 版本使得 Swift 整个语言显示出非常稳定,(题外话:Swift runtime包是打在应用内部的,所以应用体积会增加10M左右)如果苹果在3.0 版本将runtime包打在系统里面,作为系统支持,那就会显示出苹果对这个语言的信心,如果苹果在3.0 版本做到这点,至少显示出苹果自己是有信心的。
所以你问我国内公司什么时候大规模采用 Swift.n 我觉得还是取决于这个语言的发展和大家的观望态度持续到多久,我个人认为至少今年年底不会是大规模的,如果发展的顺利,今年年底应该会有大部分的新兴公司或者勇于尝试的公司会采用 Swift 3.0。如果在使用的过程中得到了一个良好的反馈,最终才会激励更多的持观望态度的公司加入。对于我们公司,我们当前并没有打算采用 Swift, 具体后续采不采用 Swift 要看六月份之后的情况。
2、请唐老师说说服务器端转 iOS 的故事。
答:这里面我还是有很多感触的,服务器端关注的高并发,你要保证逻辑的正确性,你要写很多锁,很多事务,你还要写很多testcase,你可能还要做压力测试,你要部署很多台机器,系统出了问题你也要马上修复。客户端关注的是界面的流畅性,和交互的舒适程度,因为在手机上运行,所以很少用到多核,多核模型都比较简单,不用担心发生高并发。手机的CPU和内存支持不了很多的并发。
总体来说,服务器端的技术挑战更难一些,客户端的开发工作,从技术挑战上来说偏弱一点,但是它能接触更多产品和 UI 上的知识,使得人对于开发之外的知识了解更多。你能了解产品知识,运营知识,甚至理解一些美术设计师思想,这些对于人的知识广度是有帮助的。
3、平时会进行比较多的阅读,但是大部分都是读读算了,自己并没有全部去实践和验证。关于实践和阅读的平衡,怎么做比较好?
答:我的心得是这样的,如果一篇技术的文章对于我未来的工作是有帮助的话,我会去实践。比如它讲到一些动画或者排版,我可以用到,我就会去实践。但如果我的工作不太会用到这些技术,比如它讲怎么录音,或者去做视频,我就暂时不实践。
另外,越底层的东西对你的影响越大。有些文章写的是底层的原理,或者关于一些系统的实现,是偏底层或者原理性的,我就会比较感兴趣。因为我觉得它是通用性的,对于长期理解整个系统的运行也是有帮助的。关于这个部分我会很认真的看。
4、现在的公司对iOS开发要求侧重哪些能力?
答:其实我不太清楚别的公司的招聘标准,我只能分享一下我们公司的标准,包括以前我在网易工作时对于iOS开发者的招聘标准。我们招聘主要看重候选人三方面的能力:
看这个人是不是足够聪明。我们认为,技术是不断更新的,人需要不断的学习和提高才能跟上技术发展的步伐,所以说聪明是第一要素。
我们希望他之前的作品足够优秀,足够专业。所以我们会去考察这个人之前作品的细节,代码质量,架构设计以及一些具体的技术问题。对应届生来说,因为他没有项目经理,我们会考察他在校的专业知识水平,比如问一些结构数据、算法等基础知识。
我们会考察这个人的团队合作能力,一个人不能单打独斗,程序员需要跟产品经理、UI、测试以及其他同事进行良好的沟通,所以我们需要这个人是合群的,容易沟通的。综上所述做到这三点就可以了。
5、对知识的深度和广度怎么平衡。比如我是做 iOS 的,其他的技术有时候也会去了解,比如学 Python 和 PS,同事看着服务端的使用技术等。(虽然看不懂,但是有兴趣)
答:我自己的经验是,如果自己能将其他领域的知识用到自己的工作中,那么学习才更有效,我自己尝试学过安卓开发,感觉效果不大。因为我平时做iOS,所以学安卓开发很难深入,很多东西容易忘。但是我学Python 和前端的知识,效果就很好。iOS开发里面会用到通过 UIWebView 的方式来展开界面,里面会涉及到一些前端的代码。像JS、CSS、HTML,Python 需要写一些打包脚本工具来帮你做代码结构的分析。我最终的感受是,不管你学什么东西,最好可以用到工作中。至少我一直都是这样做的。只有运用上的,才会去深入的去学。其他的知识,知道一些简单的概念和基础名词就够了。
6、请问,对于目前流行的混合开发,甚至纯 HTML5 开发替代原生开发,唐老师怎么看?未来市场上对于 iOS 开发者的需求会不会大大减少?
答:据我所知目前各大应用里面,纯 HTML5 开发整个界面的基本没有,大部分都是说,基本是原生界面,部分内容用 H5 的方式来展现,这个才是主流。
未来会是朝哪个方向发展呢?答案肯定还是朝原生的方向发展,因为现在用户对手机的交互越来越挑剔了,而 H5 的方式你很难做到非常流畅。即使是当前流行的混合开发技术,像 facebook 出现的 react native,它用 H5 写代码,但渲染出来的是原生界面,所以大家都是在追求流畅的交互和体验,如果将这个作为目标的话,作为iOS开发者以及原生系统的开发者,应该是需求越来越多的,纯 H5 开发的项目基本上已经没有了。
当然,我还是希望各位 iOS 开发者能够多接触一些 H5 的知识,在工作中多多少少还是会涉及一些混合开发的界面,如果你懂这些知识,会很大程度上帮助你。
明天攻城狮群的分享我邀请了 OpenResty 的创始人、天才程序员章亦春和大家交流「动态追踪技术」,涉及的内容包括 Dtrace、Systemtap、火焰图、硬件追踪、死进程分析等等。讨论内容包含并不限于动态追踪、OpenResty 等,欢迎参与。
如何加入攻城狮群:关注 MacTalk,点击底部菜单的「攻城狮群」,参与社群活动。
点击阅读原文,下载拉勾 App