写点什么

2016 移动开发技术巡礼

2016 年 12 月 27 日

目录

  • 前言
  • 平台篇
    • iOS 平台
    • Android 平台
  • iOS 开发技术篇
  • Android 开发技术篇
  • 跨平台技术篇(React Native、Weex、微信小程序)
  • 热门行业技术篇(直播、VR/AR)

前言

2017 年就要来了,过去的一年里你是否疏于学习,欠下技术债呢?如果答案是肯定的,希望本文能让你在学习上少走一点弯路。

2016 年对于移动开发领域来说是颇受冲击的一年,Native 开发面临着 React Native、微信小程序等的冲击,再加上资本寒冬,想必想找移动开发初级工作的同学感受到了一丝凉意。

2016 年对于移动开发又是颇为精彩的一年,很多公司都把自己最核心的技术开源分享出来,呈现出百花齐放的局面。在本文里,我将会一一盘点这些技术。

另外,本文还试图对 2017 年的移动技术做一个预测,以及评点某些受争议的技术,需要强调的是,这些只是试图为读者提供看事情的一个角度,不必尽信。

平台篇

iOS 平台

苹果今年在 WWDC 上发布了 iOS 10、watchOS 3、macOS Sierra、tvOS 四大操作系统,并且在每个操作系统上都有创新,其中 iOS 无疑已成为最重要的操作系统,苹果在大会上宣布开放了三大框架,包括向建筑商开放智能家居平台 HomeKit、向开发者开放 SiriKit 和 CallKit,将更多能力开放给开发者。前两者由于一些限制,开发者使用的较少,而 CallKit 则将我们向纯网络电话时代推进了一大步,同时开放了用户期待已久的来电识别功能,目前已有很多 App 都开始使用该框架推出新功能。

另一个值得一提的是 iMessages,苹果在 WWDC 花很大篇幅对它进行了介绍,同时推出了 iMessages 内置的 App Store,关于它的意义,后面谈微信小程序的时候再说。

在秋季发布会上,苹果发布了新款 MacBook Pro,新加的硬件模块 Touch Bar 引起争议,但也引起了开发者的兴趣,大家都在探索它的新奇玩法。而且在实际上手后,大家发现它没有想象中的那么不便。这件事也告诉我们,对于没有接触过的事物,不要过早下结论。

在政策方面今年苹果有三大改变:

  1. 从 16 年 7 月 1 日起,开发者所提交的应用必须能够支持纯 IPv6 网络环境。IPv4 地址告罄已是事实,可以说 Apple 又一次走在了推动新标准的前列。
  2. 同样是 7 月 1 日,苹果规定在 App Store 中国区上架的手游需要通过国家新闻出版广电总局的审批,在审核信息中提交游戏版本才可上架。对于这条,想必大家想吐槽的都吐槽过了,只能说这条充满中国特色的新政不是苹果的锅。
  3. 最后一个是苹果要求应用必须在 2017 年 1 月 1 日前支持 HTTPS(已延期),最近不少团队都在忙这事。全面推行 HTTPS,有助于保护手机用户的隐私,可以说补全了苹果手机的安全短板。

除了第二个之外,另外两个都是进步的体现,虽然给开发者带来了一些麻烦,但这样做可以避免将来可能出现的安全隐患和一些问题。

与开发者有关的另一个重头戏就是 Swift,9 月 13 号 Swift 3.0 正式发布,Swift 3.0 中的一系列变化旨在依照 Swift API Design 指南,通过去除一部分可能被视作遗留下来的 Objective-C 的内容,来清理 API。不过并不包含之前传言的 ABI 稳定。

Swift 的发展可以说很稳健,同时也给人以惊喜。10 月 25 号 Swift 团队在官方博客上宣布成立服务端API 工作组,彰显了Swift 向其它平台扩展的野心,在未来Swift 也许可以达成前后端通吃。

关于Swift 的应用情况,国外在开发iOS App 的时候早已是Swift First,从各种网络教程和分享来看,基本都是基于Swift 的。反观国内,Swift 只有在部分新业务和新团队才会考虑使用,对于国内的超级App 来说,由于需要频繁发版,同时很多应用使用了基于OC runtime 的“黑科技”,使用Swift 重写一部分应用不太现实,这些我们也需要承认。但是学习Swift 从现在就可以开始了。

你可以在这里回顾WWDC 的演讲视频和技术Session,对于学习苹果新技术,这是第一手资料: https://developer.apple.com/videos/wwdc2016/

另外,对于中国市场,苹果宣布将在北京和深圳成立两处研发中心,用于聚合在中国的工程和运营团队,面向中国以及全球的用户持续为其产品打造领先的技术和服务。未来我们将可以看到更多的为中国的本地化优化,同时我们也期待苹果和国内工程师有更多的交流。

苹果平台 2017 年预测

苹果每年都努力为我们带来一些惊喜,要准确的预测几乎是不可能的,这里我大胆的来预测一下。

过去一年,我们经常看到苹果软件质量受到诟病,这并奇怪,因为苹果目前要开发维护四大操作系统,一个大型 IDE,诸多内置 App(包括重量级的办公软件),甚至还有 Apple News、Apple Music 这样的新业务,任何一个公司面临这样的情况都有可能力不从心。在今年苹果将 OS X 重新命名为 macOS,与其它几个操作系统统一,而据媒体报道,苹果有意将 macOS 的开发由 iOS 团队负责,这意味着 macOS 有可能并入 iOS,成为该系统的一个分支。这样苹果的重担会减轻不少。在 2017 年的 WWDC 上很可能宣布进一步的情况。

在新平台和新技术上,苹果可能推出基于 VR/AR 的新设备,或者是一个新框架。有消息显示苹果今年在 VR 领域有所投入,并且获得了 VR 显示以及头显的专利。

另外,在人工智能方面,明年苹果可能会推出新的系统级 AI 框架。其实 iOS 10 里面已经包含了很多 AI 技术,如语音识别、图片识别等,Siri 的背后更是集人工智能应用之大成,Metal 和 Accelerate 框架也提供新的卷积神经网络 API,但我们还需要一个应用级的框架。按照人工智能现在的热潮,可以预计明年的 WWDC 苹果会重点介绍这方面。

最后,关于 Swift 4 已经确认会在明年发布,Swift 的消息其实相当开放,我们可以在 Swift Evolution 项目看到它的最新进展。前不久 Swift 创始人 Chris 分享了对于 Swift 4 和 Swift 5 的规划。Swift 4 会着重解决开发者关心的问题,以及 ABI 稳定性。苹果会不会配合着来一波推广呢,我觉得很有可能。

Android 平台

今年 Android 新版本 7.0 的出现要比往年早一些,在 IO 大会前两个月就发布了开发者预览版,与此同时还推出了 Android 测试版计划,学习微软的 Windows Insider,让用户也能提前体验最新版系统。新系统最受欢迎的新功能包括 Doze 模式和增强的通知中心。

与 Android 相关的平台今年也获得更新,包括 Android Wear 2.0,能够独立运行 App;Android Auto,支持在手机上运行,将手机变成车载智能系统;Android Things,由之前的物联网平台 Brillo 更名而来,。

与开发者相关的新特性包括:

  • 新的 Interpreter+JIT+AOT 编译器。该编译器减少了应用程序安装时间和存储空间,并在手机空闲的时候编译代码的热点部分,提高性能。
  • Vulkan 跨平台的图形和计算 API。在 2015 年发布的 Vulkan 也终于植入到 Android 系统中。
  • 多窗口支持。还包括分屏、画中画等等。
  • 能免安装运行的 Instant Apps,看上去是革命性的,据分析其原理可能和国内正在研究的插件化 / 沙盒技术类似,不过到现在也一直处于测试状态。
  • 渐进式 Web 应用 PWA。这是今年 Google 重点推广的一项 Mobile Web 技术,大幅提升了离线使用、通知等体验。

在 IO 大会上还同时发布了 Android Studio 2.2,它带来的新特性包括:

  • 将编译器替换成 Google 自己开发的 Jack 编译器,以及配套的工具链 Jack and Jill.
  • 部分支持 Java 8 特性,包括 lamda 表达式,使用这个需要 Jack 编译器。
  • 新的布局方式 ConstraintLayout 和相应的可视化编辑器,可以看做是 RelativeLayout 的增强。它的目标是减少布局的层级,同时改善布局性能,还减少了使用 RelativeLayout 的复杂性 。

在中国市场方面,Google 前不久刚在国内举办了两场规模盛大的开发者大会。发布了新的中文版开发者官网和开发者博客。不过,他们对于 Google 搜索、Play 市场等何时返回国内仍然讳莫如深,从 2016 年年初就传言 Google 返华,然而整个 2016 年进展也并不大。

Android 平台 2017 年预测

从今年的更新可以看到,Android 的发展也逐渐步入平缓阶段,人们的目光更多的被 Google 发布的其它新奇有趣的产品所吸引,比如 VR 平台 DayDream、智能助手和智能 IM 应用。有人甚至认为 Android 逐渐被边缘化,有可能被新系统所取代,比如前阵子传言的 Andromeda。

不过我想说这种担心是多余的,Android 仍然是 Google 最重要的产品之一,并且是其衍生品 Android Wear、Android Auto 等系统的基石,所以在近期不太可能有很大的改变。但是我们可以期待底层和工具上的大的创新,如 ART 运行时、Jack 编译器。

另一个在明年可能带来很大改变的技术是 Instant Apps,但是因为它很可能必须依赖 GMS,在国内不太可能使用。但根据国内在这方面的技术积累,我相信打造相同技术规格、完全兼容的中国版 Instant Apps 不是难事,说不定明年国内手机厂商会将它作为重点功能进行宣讲呢。

最后,根据 Android 新版本的普及速度,明年 Android 7.0 才会逐步在国内推广开,于是开发者们终于可以开始学习 Android 7.0 的新技术了。

iOS 开发技术篇

这里只讨论纯 iOS 开发技术,看看今年大家都讨论了哪些东西。

组件化

组件化并不是什么新东西,事实上当业务、团队规模大到一定程度,必然会去寻求模块化和组件化的方案。特别在国内存在大量超级 App 的情况下,组件化也早已在实践中实施。今年 1 月份蘑菇街李忠老师在第四届线下沙龙 MDay 上分享了蘑菇街组件化的实践。我邀请他到移动开发前线社群做了一个群分享,从此开启了对于这个话题的讨论。

组件化重点是将不同业务组件化,使不同的业务团队能够独立开发、测试和维护。而讨论的重点在于 App 内部和外部调用以及页面跳转,在蘑菇街分享后,casa 分享了他的看法,部分公司也分享了自己的组件化实践。

相关的讨论和分享文章如下:

热补丁

尽管今年苹果将 App Store 上架审核流程加速,但对于人们的需求来说,审核时间还是显得略长,发现问题马上修复是一个刚需,这在 iOS 开发中的体现就是热补丁。

在之前 iOS 中的热补丁开源项目有 Wax,今年随着前端在移动开发中的大火,JS 热修复方案火了起来,其中的代表就是 JSPatch,它在国内已经取得广泛应用。另外在热修复中,还需要与启动保护配合使用,否则有些无法启动的应用无法修复。

而在年底,滴滴发布了 DynamicCocoa,可以将 Objective-C 代码转换到 JS,然后下发到 JSCope 执行,用它甚至可以实现完全动态化,热修复只是它的一个功能。该项目计划于 2017 年初开源。

Swift

Swift 的重要性已不用多说,2016 年大家对于学习 Swift 的热情也很高。我们看到除了一些创业团队采用 Swift 开发之外,大公司的一些创新业务也开始使用 Swift 开发。另外,Swift 在服务端开始吹响号角,得到官方加持,未来 iOS 开发者可以无痛全栈了。

Swift 在今年的主要变化是从 2.x 升级到 3.0,由于是破坏性更新,在迁移时不免遇到种种问题,但也不是不能解决,另外相对于迁移,IDE 的支持才是更大的问题,很多人吐槽 Xcode 写 Swift 写着写着没有代码高亮、没有函数提示、崩溃闪退、编译耗时等等,这个我们也没什么办法,只能期待明年苹果好好重视一下这个问题了。

Swift 是一整门语言,技术点众多,挑几篇有代表性的文章:

另外今年也出了不少 Swift 的学习书籍,推荐几本:

  • 《Swift 进阶》Chris Eidhof Airspeed Velocity 著 王巍 译
  • 《函数式 Swift》Chris Eidhof Florian Kugler Wouter Swierstra 著 陈聿菡 杜欣 王巍 译
  • 《Swift 面向协议编程》 陈刚 编著

响应式编程 / 函数式编程 /FRP

函数响应式编程在 2015 年就是一个很火的话题,当时主要讨论的是 ReactiveCocoa,随着 Swift 逐渐普及的大趋势,以及 Rx 概念在其它语言中开始流行,RxSwift 异军突起,受到了一定关注。

由于响应式和函数式编程在团队中推广使用有一定难度,因此关于两者的布道不能停,相信明年还会有更多的分享。

Realm 数据库

移动开发中有多种客户端数据库可选择,包括苹果官方的 Core Data,以及经典的 SQLite,两者的应用都很广泛。在今年,一个创业公司的数据库产品引起了大家的兴趣,就是 Realm,它专为移动端而设计,API 简洁方便,有一些友好的特性,因此被大家关注。

其实 Realm 是一个跨端的数据库,在 Android 平台也有很多人学习和使用。我将之放在 iOS 下是因为有些人认为 Core Data 难用,而 Realm 是一个很好的替代。

2017 年展望

技术总是日新月异,我们不能断言明年 iOS 领域会流行什么技术,但有一些线索并不难寻:

  1. 动态化 / 热修复。DynamicCocoa 会在明年初开源,到时候又会是一轮讨论热潮。
  2. Swift 实践 / 黑科技。Swift 的安全特性让之前 Objective-C runtime 里的特技失传,这也是很多大型 App 不愿意采用 Swift 的原因。一方面我们期待官方会有更多的高级特性放出,另一方面也期待社区的突破。
  3. 其它领域技术的借鉴。在前端、Android 开发中有些好的设计和理念,可以将之借鉴到 iOS 平台,比如 Redux、Android 中的 Layout、资源设计。在今年其实有一些讨论和开源项目出现,但它们到底能带来多少收益,有没有最佳实践,这是明年我会关注的一个话题。
  4. HTTP/2 和 Protobuf,今年苹果在网络上动作很大,并且都是强制性的,开发者必须跟进,明年苹果是否还有更多的动作,以及在网络上的新玩法 HTTP/2 和 Protobuf,我相信会有不少团队去探索和实践。

Android 开发技术篇

2016 对于 Android 开发来说是非常精彩的一年,黑科技频发,我们可以确定的说在 Android 应用层开发方面我们已经走在了世界前面。然而,其实很多黑科技都是形势所逼,并且其中一些和 Google 的官方政策相违背,这是目前热火的表象下的隐忧。

插件化

从去年下半年开始,Android 插件化开始进入人们的视野,到今年,开源和分享开始爆发,插件化可以说是 Android 开发高级技术的集大成者,要掌握它需要对 Android 系统框架、App 运行机制等足够了解,因此成为很多开发者追求的目标。

但是回过头来想一下,插件化的适用场景其实有限,多用于头部的超级应用,一般的中小型 App 没有必要适用,所以也没有必要盲目追求新技术。

插件化发展到后来,基本都开始追求免安装运行 App,也就是沙盒 / 双开,在这方面我们也有一些商业应用出现,以及开源项目。

这里就推荐一些开源项目:

  • DynamicLoadApk 比较早的一款插件化项目,任玉刚等研发。
  • DroidPlugin 360 手机助手推出的插件化项目。
  • VirtualApp 天才少年 Lody 推出的 Android 应用双开项目。
  • Small wequick 推出的开源项目,包括 Android 和 iOS 双平台(iOS 平台仅限越狱)。
  • DynamicAPK 携程出品的插件化框架,介绍见此
  • VirtualAPK,滴滴出行推出的插件化项目,尚未开源,介绍见此

热补丁

插件化并不是所有应用都需要,但是热修复却基本是正式的项目都想要的。热补丁与插件化的不同点在于,热补丁的关注点在对应用进行方法级的替换以达成修复。2016 年 Android 的热修复取得了非常大的进展,不但有多家公司分享、开源了自己的热修复项目,而且还催生了商业服务。

这里就为大家盘点一下今年都出现了哪些热修复项目:

  • AndFix ,阿里推出的开源项目,并且在其基础之上衍生了商业服务。之前阿里还推出一个 Dexposed ,但由于一些问题已停止维护。
  • Tinker ,微信推出的开源项目,在年中宣布要开源时就引起了广泛关注。
  • Amigo ,饿了么推出的开源项目。
  • Qzone 超级补丁,暂未开源,演讲视频和 PPT见此,社区有人根据其原理研发了 Nuwa 并开源,现已停止维护。
  • QFix,手 Q 的热补丁项目,暂未开源,介绍见此
  • Robust,新美大的热补丁项目,暂未开源,介绍见此

RxJava

RxJava 是 JVM 上的响应式编程框架,可以简化异步操作的代码,是 Rx 系列的一部分,去年年底国内社区开始有人布道,也有很多人分享,RxJava 与 Retrofit 结合可以大幅简化网络操作的复杂性,因此也被人们广泛使用。

推荐文章如下:

Android 组件化

Android 里的组件化是相对于插件化来说的,插件化追求插件直接完全独立,甚至插件本身是可独立运行的 APK,组件化则是在组件独立开发,在编译时仍合成为完整 App。

Android 组件化的实践的代表是淘宝的 Atlas,该项目将于 2017 年初开源。

Kotlin

Kotlin 是老牌开发工具厂商 JetBrains 推出的一门 JVM 语言,也非常适合在 Android 项目中使用,今年推出了 1.0 版本,并在国内举办了一场线下开发者日活动。

Kotlin 被视为 Android 平台的 Swift,可以刷时髦值,从实际开发体验上来说,与 JetBrains 的 IDE 结合(Android Studio 亦可)也非常不错。国内有些团队和个人已经开始尝试。但由于 Java 本身很完备,更换语言目前来说只是基于个人喜好。因此要想 Kotlin 流行,就像苹果推广 Swift 一样,我们也需要谷歌的推动才会让更多人有兴趣学习和使用。

2017 年展望

数一数将于明年开源的一些项目,明年 Android 开发该讨论我们也心里有数。

  • 插件化。2017 年,Android 开发领域关于插件化和热补丁的讨论仍将继续,但我希望国内开发者能更多的走出去和国外同行交流,让这些技术不只是一头热。
  • 组件化。其重点在于工程期的辅助工具和编译流程,期待明年除了 Atlas 之外,有更多的类似项目出现。
  • Kotlin,在这里推这个,也算是我的个人喜好吧,希望明年 Google 能官方表态支持 Kotlin.
  • AI 技术。人工智能是目前最火的技术领域没有之一,如何与移动结合结合玩出花来是一个值得探讨的话题。我觉得 Android 上取得突破的可能性比 iOS 更大,毕竟 Android 更开放,玩法更多。

跨平台技术篇

不只是今年,跨平台技术一直在移动开发领域火热非常,毕竟 Android、iOS 都不是可以轻易舍弃的平台。今年的跨平台技术,相比往年的 Xamarin、Titanium 等,更实际,更接地气,这也导致了跨平台技术今年讨论的热度更高,都快刷屏了。

今年大家所讨论的跨平台技术,无论是 React Native、Weex 还是微信小程序,从技术实现来说都是处于 Native 和 Web 之间,还是使用 Web 技术开发,从 Hybrid 过渡过来是很自然的事情,因此国内不少公司在 React Native 推出不久就开始使用。

RN 及类似技术最光明的未来可能是:类 RN 首先取代当前 App 中的 WebView,之后会取代一部分 Native 界面,长期上来说,一些性能要求高的本地库也会提供对它们的支持,如 Realm 就提供了 RN 版本,原生开发会被进一步压缩。原生开发,未来可能专注于一些专项研发,如音视频,或公共组件接入和维护。

当然,这种未来不一定到来,但移动开发者要做好心理准备。

React Native

React Native 如今的地位毋庸置疑,Facebook 没有在国内专门宣讲过,但我已经见识到了它的一些国内铁粉,并且有些公司如携程更是不遗余力的对它进行支持和布道,这种情况下 RN 发展想不好都不行。

但这样也出现了一些问题,一个是本地化的支持,第二个是有些公司自己对 React Native 做了优化,但没有反馈给 RN 项目,这样最终只是做了一个分支版本,他踩的坑别人还是要踩一遍,这样不环保,长远来看还有维护难的问题。

今年在 RN 上有实践并分享出来的团队的分享如下:

Weex

Weex 是阿里手淘团队推出的跨平台开发框架,于今年 6 月份开源。阿里对该框架非常重视,在全集团推广,并且在今年双十一会场大规模应用,取得了成功。在 9 月份的 JSConf 上他们邀请 Vue.js 作者加入团队担任技术顾问,刚刚发布的 0.9 版也正式支持 Vue 2.0 语法特性了。最近它还加入了 Apache 基金会的孵化器,力争打造成功的开源社区。

相比于 React Native,Weex 略显年轻,不过由于后发优势,在一些地方优化做的比 RN 好。至于用哪个,就要开发者自己去探索哪个更适合自己了。

微信小程序

今年下半年,对移动开发最具冲击的可能要数微信小程序了,它的颠覆性不在于技术,而在于对整个移动互联网生态的影响。大部分的产品经理也许不知道 RN 或者 Weex,但他们一定知道微信小程序,也一定在考虑要不要做一个,这就是微信小程序的影响力。

其实,在 IM 里做平台微信不是第一个,在 6 月份的 WWDC 上苹果展示的 iMessages,就支持集成其它应用,发红包不在话下,甚至还能打车。可惜 iMessages 这个应用实在不接地气,在国内也没有什么影响力。而另一个国人同样不怎么了解的 IM 应用,Facebook Messenger 在向微信学习,在今年 3 月举行的 F8 开发者大会上,Messenger 平台化服务正式对外推出。扎克伯格宣布已有 40 多项服务接入到 Messenger 平台。最近它还推出了 Instant Games,你可以在 FB Messenger 里玩游戏了。

这些现象体现的趋势是基于 IM 的应用分发可能是下一件大事,而这个能参与的只有现有的超级 IM。

所以虽然现在微信小程序看上去能做的还很有限,对于移动 App 没有替代作用,但将来就说不好了,保持关注吧。

PWA

PWA 是 Google 今年力推的一项移动 Web 技术,在支持 Service Worker 和 Fetch API 的浏览器上可以得到完整体验,在不支持的浏览器可以得到降级体验。

我不是很看好 PWA,因为它的能力和性能还是有限,国内目前是超级 App 当道,对于性能都是精益求精,几乎不可能去采用这个方案,更何况它在 iOS 上的体验是降级的,不支持服务器推送,就这一条也会被 Pass 掉。而苹果何时支持 Service Worker 等新特性是说不好的。

对于页面元素少、交互简单的应用可以尝试一下。

热门行业技术篇

2016 年还有些“移动 +”的领域十分火热,这里指的就是直播和 VR/AR,它们除了技术,还有趋势上的问题。

直播

直播是 2016 年的年度标志事件,其火热程度不用多说,因此也有很多泡沫,在数字上弄虚作假已经是人人皆知的事实。但是要看到,直播的兴起的前提是我们软硬件达到了要求,同时直播是对某些陈旧事物的替代,因此即使泡沫破灭,也可以预见剩下的几家会活得很好。

同时,直播开始作为一个功能模块进入很多 App,和其它行业结合,如淘宝、天猫上的直播就给网络购物带来了很好的效果。因此,作为年度热点技术,每个移动开发者都有必要去了解和学习。

直播技术本身涉及到前后端,最有挑战的部分其实不在客户端而是在后端,客户端的部分大多数有了最佳实践,同时在秒开优化上有了很多创新。

VR/AR

与直播相比,VR/AR 则是从得意到失意的典型,年初 VR 还被认为是年度技术,到年底某些做 VR 设备的厂商传出裁员、倒闭,高端头显设备如 HTC vive 的销售量也并不大,一下子大家都不看好了,这个领域似乎被资本所抛弃。

但与此同时,使用 VR/AR 技术的产品屡屡成为互联网的爆点,如 Pokemon Go、阿里双十一 VR、支付宝 AR 红包,说明 VR/AR 在用户体验和交互模式上还是很有潜力,只是我们要找到正确的使用方法。目前来看,基于 LBS+AR 的游戏是可行的点,VR 则在营销上有用武之地。

另外,虽然 VR/AR 被资本不看好,但互联网巨头仍然重金投入,如 Google、Facebook、Microsoft 都将 VR/AR 作为自己的战略发展目标。Google 的 Daydream 更是非常接地气,期待明年当支持设备增多后,给我们更加完善的体验。

总之,VR/AR 目前来看并不会死,但现在投入风险很高,建议可以再等等。

还有哪些没有提到?

  • 性能监控与分析。今年不少公司都研发了自己的客户端性能监控系统。
  • 安装包瘦身。Android 有魔鬼瘦身,iOS 则以滴滴为代表,用 clang 插件瘦身
  • Hybrid 开发,虽然已经是很成熟的技术,但仍有可创新之处,豆瓣和美团都有很好的分享。

技术不会停下脚步,学习永无止境。让我们期待 2017 年的移动技术吧~

2016 年 12 月 27 日 20:406407
用户头像

发布了 134 篇内容, 共 89.4 次阅读, 收获喜欢 375 次。

关注

评论

发布
暂无评论
  • 聊聊 Flutter,面对层出不穷的新技术该如何跟进?

    Flutter在保证性能下实现跨平台开发,更是成为谷歌下一代操作系统的UI框架,为移动技术的发展提供了非常大的想象空间。

    2019 年 4 月 11 日

  • Android 开发周报:Android Wear2.0 升级名单公布、React Native 性能调优详解

    谷歌与甲骨文的官司花了6年终于打完了,结果是谷歌大获全胜。本期周报为大家带来了英文流利说App架构演进、Chromium网络栈实践、动画等方面的技术干货,欢迎阅读。

  • 2015 年,移动开发都有哪些热点?

    回顾过去的一年,Swift语言、Material Design、Win10等等的发布激动人心,HTML5标准的确定也让人对Mobile Web App再次燃起热情,对于开发者来说,这是最好的时代。新的一年里,我们肯定也会迎来更多令人兴奋的变化,移动开发领域将会有哪些值得关注的话题呢?

  • 课程介绍

    2019 年 4 月 17 日

  • Android 开发周报:模块化架构思考、高仿微信开源项目实践

    近日Google发布了Android Things开发者第二预览版,Google手机操作系统二月份统计数也已经出炉。本期周报为大家带来了模块化话架构、混淆、AOP等技术干货,还有高仿微信、直播等高质量项目推荐,欢迎阅读。

  • Dexposed:Android 平台免 Root 无侵入 AOP 框架

    近日,阿里巴巴无线事业部推出首个重量级Android开源项目,名为Dexposed,是一个Android平台下的无侵入运行期AOP框架。

  • 开源如何加速了 Swift 的崛起

    2015年12月,苹果的Swift编程语言成为了一个开源项目。开源增加了人们对这门语言的兴趣,因为它不再是苹果平台专属的语言。

  • Android 开发周报:Weex 开放内测邀请、React Native 启动路径剖析

    阿里巴巴在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。本期周报为大家带来了React Native For Android、插架化、Gradle等多方面的技术干货,欢迎阅读。

  • iOS 开发周报:Apple 中国研发中心在中关村成立、iOS 10.1 将提醒用户手机中存在 32 位应用

    Apple 中国研发中心在中关村成立、iOS 10.1 将提醒用户手机中存在 32 位应用

  • iPhone X 适配

    2019 年 7 月 15 日

  • 解读 2014 之 Android 篇:连接世界

    Android从2008年发布,到2014年末已经6岁。经历了前几年的高速发展,Android已经当之无愧的成为全球用户最多的手机操作系统。2014年虽然不是Android发展最快的一年,却是变化最快、扩张最大的一年。最新版本的Android 5.0 Lolipop无论是用户体验还是系统性能都有着颠覆性的改变与提升。 Material Design的出现,更使Android设备在体验方面第一次和iOS站在了同一个高度。经历了一年多的开发与测试,谷歌也发布了第一款官方正版IDE——Android Stuido,功能强大堪比开发神器。本文作为Android这一年的总结,从系统本身、开发工具、硬件配置、国内外生态环境四方面介绍了Android这一年的发展与改变,并且结合当前市场大胆展望了2015年Android的发展方向。

  • Android 开发周报:Android 7.1 开放下载、Tinker 源码研读

    近日,Google宣布Android 7.1开发者预览版于今天正式开放下载、锤子召开发布会,讯飞输入法走红。本期周报为大家带来了进程绝杀、手淘Native容器化框架和思考、tinker源码研读等技术干货,欢迎阅读。

  • JSPatch 开源经验分享

    先介绍一下 JSPatch (https://github.com/bang590/JSPatch),JSPatch 是 iOS App 动态更新库,引入后即可以用 JS 调用和替换原生任意方法,普遍用于动态下发脚本实时修复线上 Bug,目前微信微博百度地图美团等 1200 个以上 App 已接入使用。部分接入APP列表:http://using.jspatch.org

  • 当插件化遇上 Android P

    演讲嘉宾 张志强,京东商城资深Android系统架构师。 内容介绍 Android P 来了,插件化将何去何从?Android作为操作系统涉及的面比较广,不可能在所有的方面都能走在大家的需求之前,尤其是这几年,App越来越大,而相应的Android官方给出的方案一直不太符合中国的国情,先是65536问题,再是多团队协同开发,再到App如何瘦身,这些问题一直困扰着中国的开发者。国内的开发者们在经过了无数高手的实践之后,在2016、2017年插件化技术越来越成熟,发展到了顶峰,井喷了许多高质量的插件化框架,以应对大型App的开发。 2018年,Google官方也终于祭出了大杀器 – 禁止调用私有API,并推出官方的动态化框架Android App Bundles。 随着Android P的发布,使用插件化的你们做好应对方案了吗?

    2018 年 9 月 12 日

  • 取代 Android?Fuchsia 要的是统一操作系统平台

    Android 和 Chrome OS 可能是谷歌最知名的 OS 项目,但实际上这两年曝光量逐渐增大的是谷歌正在开发的第三个操作系统——Fuchsia。在 Windows、iOS、Linux 等成熟操作系统瓜分完市场的今天,为什么谷歌要大费周章地去开发一个全新的操作系统?

  • 腾讯视频全站 Node.js 化升级打怪之路

    演讲嘉宾 杨浩,腾讯视频高级工程师。 内容介绍 腾讯视频前端团队在3年前开始使用Node.js对整站进行改造,在前端和后端服务之间添加了Node.js中间层做SSR(Server Side Rendering),以提高搜索引擎抓取的效果以及首屏展现的速度。但随即遇到了程序运行不稳定、代码不规范、开发人员培训困难等难题。 随后我们针对内容型网站(对后台主要是做读操作)的场景进行了分析与定制,为这种场景的SSR定制了一个新的Node.js框架,大大提高了开发效率与程序的稳定性,降低了前端开发人员入门Node.js的门槛。在2年内把Node.js从几个小业务覆盖到了整站。 演讲大纲 Node.js在视频网站中扮演的角色; 前端团队做Node.js前后端分离的难点; 腾讯视频的Node.js SSR实践; 优势与劣势分析。

    2018 年 9 月 12 日

  • 有哪些已经投入生产的 WebAssembly 真实案例?

    在这节课里,我们举了两个比较有代表性、在现实生活中的 Wasm 生产实践案例。

    2020 年 9 月 25 日

  • WWDC 总结:开发者需要知道的 iOS 9 SDK 新特性

    今年的 WWDC 并没有像 13 年和 14 年那样颠覆性的变化,大多是对已有特性的加强补充和对开发工具链的增强。今年可以说是一个 Cocoa 开发者们沉淀之前知识,增进自己技能的好机会。

  • 解读 2015 之 iOS 篇:惊喜和机遇

    2015年过去了,对于iOS开发者来说,这是充满惊喜和机遇的一年。Swift开源让这门语言有了更光明的前途,并且让苹果和开发者之间的联系更紧密了,React Native给iOS开发带来了全新的理念,watchOS和tvOS则给开发者开辟了更广阔的市场。下面就让我们来具体回顾一下。

  • 移动开发的罗曼蒂克消亡史

    今天,我想给大家讲一段故事,这个故事里包含有黑科技、天才少年,有意气风发的豪情和壮志未酬的遗憾。更重要的是,这是一段真实的故事

发现更多内容

技术解读丨GaussDB数仓高可用容灾利器之逻辑备份

华为云开发者社区

数据 容灾 备份

数字货币交易所开发特点,去中心化交易所

135深圳3055源中瑞8032

spring-boot-route(十六)使用logback生产日志文件

Java旅途

Java Spring Boot logback

一文带你了解文字识别

华为云开发者社区

技术 识别 文字

软件测试人员的职业发展之路

BY林子

软件测试 QA 职业发展

基于Flink+ClickHouse打造轻量级点击流实时数仓

Apache Flink

flink

干掉PPT!现场编码的职级晋升答辩你参加过么?

华为云开发者社区

软件 开发者 API

高难度对话读书笔记——表达自我

wo是一棵草

USDT承兑支付平台搭建,区块链支付软件开发

135深圳3055源中瑞8032

区块链来了 职业教育这么干

CECBC区块链专委会

区块链 职业教育

anyRTC直播带货解决方案

anyRTC开发者

音视频 WebRTC 直播 RTC

云算力矿机系统源码开发,IPFS矿机软件搭建

135深圳3055源中瑞8032

C++函数模板的偏特化

Jovany Wang

c++

区块链应用众多难题“卡脖子”

CECBC区块链专委会

区块链 金融 供应链融资

多种方式实现 LazyMan

局外人

前端 队列 Promise

路径依赖:穷人很难逆袭突破的科学道理

陆陆通通

程序人生 穷人 逆袭 突破

SpringBoot-技术专题-Caffeine用法

李浩宇/Alex

美团外卖实时数仓建设实践

DorisDB

数据库 数据仓库 实时数仓 数据库选择

蚂蚁金服架构师分享一套内部Java并发编程进阶笔记,白嫖太香了

Java架构追梦

Java 学习 架构 面试 并发编程

十年Java开发经验,走了五年弯路,整理了一份Java架构师进阶路线及进阶资料!

Java架构之路

Java 程序员 面试 程序人生 编程语言

重新学习面向对象设计之开放-封闭原则

IT老兵重开始

面向对象设计 OCP 开闭原则

CloudQuery,数据库管理用它就够了!

CloudQuery社区

数据库 sql 安全 工具软件

血亏!阿里P8轻易把总结了近一年的java高级特性笔记送人了

996小迁

Java 学习 架构 笔记 Java高级特性

媒介狂想曲

善宝橘

媒介 想象

工作流引擎,企业运作加速器

Marilyn

敏捷开发 工作流 快速开发

区块链理财钱包开发,深圳区块链钱包开发公司

135深圳3055源中瑞8032

如何获得工作成就感

滴滴普惠出行

动态代理玩不明白?别紧张,你只是缺少这个demo

小Q

Java 编程 程序员 开发 动态代理

是的,你没看错,自己的APP也能运行微信小程序了

fino星君

小程序flutter, 跨平台 小程序生态 移动开发

风雨边城

满天星

美食 旅行

区块链的浪潮开始涌动了

CECBC区块链专委会

区块链 期货

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

2016移动开发技术巡礼-InfoQ