picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · picasso运⾏机制 import { vc,...

11
Picasso — ⾼性能跨平台动态化框架 美团点评 周鹏飞

Upload: others

Post on 04-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

Picasso — ⾼性能跨平台动态化框架

美团点评 周鹏飞

Page 2: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

Picasso应⽤架构

Page 3: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

Picasso运⾏机制

import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

class DemoVC extends VC { layout() { const bgView = View.viewWithSize(this.width, this.height) bgView.backgroundColor = "#ffffff" const textView = new TextView textView.text = 'Hello,W3C' textView.sizeToFit() textView.onClick = () => { toast('点击') } textView.center = bgView.center bgView.addSubView(textView) return bgView } }

Picasso.Page(DemoVC)

{ "type": 0, "x": 0, "y": 0, "width": 360, "height": 624, "backgroundColor": "#ffffff", "subviews": [ { "type": 1, "x": 180, "y": 312, "width": 0, "height": 0, "actions": [ "click" ] } ] }

Hello,W3C

Picasso 源码 PModel 渲染视图

Page 4: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

锚点布局与布局函数

hlayout([v1, v2, v3, v4], { top: 10, left:10,divideSpace: 10})

v1 v2 v3 v4

10

1010

vlayout

flayoutviewB.top = viewA.top

AB

viewB.left = viewA.right + 10

Page 5: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

⾼性能渲染

锚点布局

• 布局表达与布局计算同时发⽣

• 扁平的视图层级

• 预计算 — 准备渲染数据PModel

Page 6: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

多端⽀持

Page 7: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

多端⽀持

iOS Android H5 ⼩程序

Page 8: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

⽣产⼒⼯具

Picasso代码Vue代码

Sketch设计稿

Picasso引擎

Native代码

Page 9: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

代码⾃动⽣成

Page 10: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

美团点评应⽤现状⼤众点评⾸页、Feed详情页 个⼈⾸页、收藏、待点评

• 业务开发全⾯Picasso

• 全路径应⽤Picasso

美团钱包⾸页

Page 11: Picasso — ⾼性能跨平台动态化框架 · 2018-11-22 · Picasso运⾏机制 import { VC, View, TextView } from "@dp/picasso" import { toast } from ‘@dp/picasso-bridges';

Thanks