2016.6.24北京GMTC第一日分享上午

JerryXia 发表于 , 阅读 (0)
开发过程的动态化。基于原生开发的动态化。插件化和热补丁。

热补丁iOS上的jspatch,Android上的nfix。前端开发能力是移动端开发者将来所需要具备的能力。

组件化可以使得App和组件并行开发提高开发效率。追求更好的性能和扩展性。开源化开发,组件化可以更好地开源。可以很容易地把私有的组件项目推广到开源社区。扩展开发团队的视野和开发水平。可以很容易的引入外部好的开发思想和组件。

Google提出了instant App概念。让App的一部分功能直接扩展到系统运行,直接给用户提供服务。语音交互将是未来的趋势。

王永杰(京东,Android系统架构组负责人)分享他的观点

客户端技术架构

  • 分层设计
  • 模块化(可测试,可观测,可替换)
  • 插件化

运营,活动推广越来越重要。提供了标准模板给运营人员定制活动,不需要运营人员写一行代码。体验是Native的。

奔溃率是一个重要指标。对帮助转化率。建立一个动态检测,自动对重大bug或行为异常(比如进入某个页面的数据曲线大幅降低)进行报警。

脱离业务讲技术就是刷流氓。

Facebook iOS 技术发展十年

关注InfoQ公众微信号回复PPT获得嘉宾分享的PPT

覃超(FaceBook早起员工) 带来他的分享。**

  • Status quo of Facebook iPhone App
  • 1.0: Native + 九宫格
  • 2.0: Faceweb(HTML5) + HamburgerMenu
  • 3.0: Native + Immutable Data = Hybrid
  • Takeaways for us

iOS Engineering @ Facebook

  1. 1000+ iOS mobile engineers
  2. 100+ shared libs using Buck to generate
  3. Module based development
  4. Data Model: immutable (thread safe)

What you can lear?

  1. Native->HTML5->Native
  2. How to scale your mobile team?
  3. Module based programming React Native

A brief review of the history of Facebook app

Facebook 1.01. Made By solo developer: Joe Hewitt
2. Netscape -> Firebug & DOM inspector -> AOL
3. iPhone app -> Three20
http://joehewitt.com/

Facebook 2.0

2010-2012:Faceweb Era (HTML5)
HTML5 webpages rule all -> Faceweb

Bret Taylor, Dave Fetterman -> Zuck

  • HTML5 mobile tech stack
  • Easier UI layout
  • Cross platform: write once, run anywhere
  • Hot push, no app store review neededetc...

Facebook 2.0启示

Engineering Cliches (陷阱)
Cross platform: write once, runs anywhere

  • Platform Tax (JS bridge)
  • Versioning (Hacks everywhere)
  • Comprises for every platform
  • Browser Fragmentation

Performance Issue

  • No Nitro JS engine in UIWebView
  • Single Thread in Javascript
  • Touch & Scroll delay in WebView

More Data Consumption
more Battery Consumption

Facebook 3.0 启示

  • Performance boosted
  • However, 20% crash rate -> Async rendering:CALayer for async rendering, Error in Apple`s documentation
  • Delayer by 6 months
  • Core Data -> MemDataModel + immutable

Current Facebook

  • 90% Native, no interface builder, no storyboard.
  • Try to switch to React Native (HTML for UI layout, UI layout code reuse)
  • Multiple apps strategy+shared libs (a lot)
  • Module based.Product/Feature team works on module. Self contained.
  • Navigate using module manager
  • URL based