第1页
从万物生长到繁荣有序
重新思考移动开发
南天
第2页
2016-4-
第3页
目录
contents
移动开发这十年 移动开发万物生长 移动开发繁荣有序 移动开发个人展望
第4页
移动开发这十年
设备十年
第5页
移动开发这十年
过去
应用十年
现在
第6页
移动开发这十年
过去
平台十年
现在
第7页
移动开发这十年
KJava/MTK WAP浏览器 (单进程)
iOS/Android (多进程)
容器化
动态化
(动态部署、差量更新) (RN/ Weex)
Symbian
(应用级动态加载)
Hybird
插件化
Native Web化
移动技术十年
第8页
移动开发万物生长
应用开发人员
13%
移动应用数
2014 2015
300W+
180W+ 300W+
开发人员与应用规模万物生长
77% 小于30岁、小团队,移动领域平均开发经验不到3年
第9页
12%
2015年移动领域使用云服 务、三方工具 同比2014 提升12%
第10页
移动开发万物生长
开源与三方服务万物生长
50%应用需多平台,跨平台、三方工具成为刚需
第11页
移动开发万物生长-领域知识
游戏引擎
酷 滤镜美化
缓存 炫
UI控件 特
swift 持 kotlin效续
Hybrid 集
RN 拍照/摄像 数据同步
Weex 图片库碎片化
跨平台
数据库 MVVM
启
动 态
短视频/直播
动发
线 上 度 量
Java OC 成
MVC
兼容性 优 版 化
包混淆 安全加固 Runtime
图文 混排
热 修
内存优化 动画库 ART Davilk
Rx 复 性能优化 网络库
Flux
运营商网络优化
动态化 Relay
Framework
长链接 方法数超限
AOP
第12页
移动开发万物生长-开发者诉求
渲染
逻辑
效果 体验 创新 复用 灵活 解耦
组件库
丰富 专业 易接入
开源 + 自研
开源 + 自研 开源 + 自研 + 三方服务
快速 开发
提升 体验
功能 体验 性能 体验
第13页
移动开发万物生长-PC与移动对比
PC时代
移动时代
渲染
稳定性
逻辑处理 随时发版,想发就发
伸缩性 扩展性 稳定性
渲染 逻辑处理 组件库 不稳定性
逻辑处理
体验 性能 兼容性 扩展性 稳定性 专业性
应用市场发布版本
引子:“富”客户端技术之变
第14页
移动开发万物生长-诸多挑战
应用体验
部署环境 (平台+设备)
App 渲染 逻辑处理 组件库
传输介质 云端服务
人 研发效率
协同方式
移动开发挑战
移动开发挑战在于既要还要,开源与三方服务只能解决各自领域问题。
第15页
移动开发繁荣有序-问题定义
工程交付
多人并行 开发
开发期解耦
模块复用 独立运行
运行期解耦
动态加载 差量更新
发布期解耦
度量定位 快速修复
研发支撑
研发效率
编程框架
体验特色
不发版
高质量中间件
开发模式改变
第16页
移动开发繁荣有序-各种尝试
H5 全栈
部署灵活, 性能体验问题
平台升级
依赖编程框架, 对人员有要求
等待iOS/Android 跨平台是问题
第17页
移动开发繁荣有序-研发有序
部署架构 研发支撑
水平扩展
快速堆人
编程框架
垂直扩展
具体业务开发效率
中间件
动态化
工程交付 业务研发效率
功能体验 全新开发方式
网络
复杂多变的环境 Network, Device
随时在线的用户 - Anytime, Anywhere
第18页
阿里移动架构进化之路
端侧架构的弹性与张力 效率与体验的平衡之道 无线网络治理的快准稳 移动中间件沉淀与建设 研发支撑与质量保障 传统开发到核心技术突破
Support Platform
Gateway
Tool Age
App Age
Platform Age
Web Browser
webview Biz Native
Hybrid Biz
Libs Infra
Network
Native
Hybrid Biz Libs Infra Bus Net Service
Native
形态: - WAP 站点
关键技术: - WAP 2.0 - 云转换
形态: - 披着APP外衣的WebAPP - 局部Native化
关键技术: - HTML + JSON - webview
形态: - Native占比逐步加大 - PC业务开始迁徙
关键技术: - API Gateway - Hybrid - PUSH - 支撑平台
产品形态: - 大规模人员投入 - 模块插件化开发 -
关键技术: - 容器 - 网络通道 - 基础服务框架 - 支撑平台
Ecosystem Age
第19页
移动开发工程标准模式
单工程(多分支)混合开发
B UI 逻辑
A UI 逻辑
Z
UI 逻辑
V1版本
源代码集成
XZ V2版本
ABZ
ABZ
X
V3版本 ABZ
第20页
移动开发标准模式的制约
• 大量业务的涌入共进 • 火车模型的悬崖效应 • 数十支团队的整合集成 • 大规模团队的敏捷挑战 • Mission Impossible:
随时发版,随时更新
第21页
阿里容器架构
Bundle (deployable unit)
Bundle (deployable unit)
Bundle (deployable unit)
UIs
Services
Msgs
Bus (UI & Service & Message)
Lifecycle Mgmt.
Bundle Mgmt.
Runtime
Librar ies
App/Service Project
Runtime Lib
Librar ies
Runtime Project
一切皆组件:告别插件,拥抱组件(bundle)
第22页
阿里容器架构延展
热修复
动态部署
差量更新
dexposed AndFix
发布期解耦,让发版不再成为限制
+
手淘历年hotpatch发布次数
第23页
阿里移动网络接入
不得不谈的移动网络技术
不确定性
弱网问题 通信效率 通信安全
随时在线
部署架构
云上开放
长链接 调用模型
灵活调度
百川移动云
Node B RNC SGSN /MME
GGSN /GW
UE
Authoritative DNS Server
LocalDNS
IDC GW
SERVER
第24页
阿里移动网络接入-网络优化&调用模型
HTTPDNS
无线TLS
HTTP2.0
协议优化 弱网优化 SPDY QUIC
移动网络优化
RPC
PUSH
SYNC
调用模型 TQL
长链接
随时在线
第25页
阿里移动网络接入-部署调度
异地多活 前置接入 海外部署 就快接入
IP下发 测速上报
网络调度
调度模块
客户端 SDK
网络测速 统 一 调度 网 络 配置 库
单元化
网络通道
统一协 议
网络接入层 Aserver
Spanner+
静态资源 部分前置业务
CDN
业务网 关
业务gw
Push gw
其他gw
第26页
阿里移动网络接入-云上开放
云上开放
云推送
移动加速
百川移动云
HTTPDNS
移动数据采集
云推送、移动数据采集已上云开放。其他陆续开放中。
第27页
Weex-或许是一条自由之路
Web开发痛点
加载性能
流畅体验
Native开发痛点
平台、设备差异 自由部署能力 开发集成效率
Web
Hybird
Weex
You give us a few weeks, so we bring you a few Weex.
第29页
Weex
The V & VM in MVVM
from
第30页
Weex
f ( HTML/CSS/JS ) = Native
UI
第31页
HTML/CSS/JS
DSL
(HTML/JS/CSS) transformer/js-framework
Virtual DOM
iOS Renderer Android Renderer H5 Renderer
iOS UI
Android UI
H5 UI
第32页
inspired by Web Components, Vue
第33页
multi platforms support
React Native
平台支持: iOS/Android API设计: 平台差异
Weex
平台支持: iOS/Android/H5 API设计: 透明化平台差异
第34页
coupling in template & style mixed with logic
React JSX
Weex(Vue)
第35页
Weex三种模式
Full Page Page
H5组件
Native组件 件
第36页
Weex showcase
第37页
移动开发个人展望
Atlas/hot patch
ACCS
WEEX
OSGI
新的传输介质
Web方式开发Native应用
从万物生长到有序归一?
第38页
移动开发个人展望
变 不变
新交互 新场景 新传输介质 技术本质 效率为王 极致体验
传输介质 部署环境
编程模型 极致体验 效率为王
A/VR?
触控
移动技术螺旋上升,砥砺前行
第39页
加入我们,创变未来
阿里百川
阿里百川(baichuan.taobao.com) 是阿里巴巴集团无线开放平台,通过 “技术、商业及大数据”的开放,提供 移动场景下的高内聚、开放式、行业 领先的技术产品矩阵、成熟的商业组 件和完善的服务体系,帮助移动开发 者快速搭建APP、加速APP商业化进 程,全方位赋能移动开发者及移动创 业者。
手机淘宝技术团队MTT
AlibabaMTT MTT(Mobile Taobao Tech)欢迎关注手机淘宝技 术团队,交流分享无线技 术,共创移动开发无限未 来。