2019-2021 美团技术年货 前端篇Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 C/C++ 开发,实现了 Flutter 的渲染管线和 Dart 运行时等基础能力;最下层为嵌入层,负责与平台相关的能力实现。显然我们要做的 是将嵌入层移植到鸿蒙上,确切地说,我们要通过鸿蒙原生提供的平台能力,重新实 前端 < 3 现一遍 Flutter 嵌入层。 可用于直接绘制的视图对象 鸿蒙系统的 UI 框架提供了很多常用视图组件(Component),比如按钮、文字、图 片、列表等,但我们需要抛开这些上层组件,获得直接绘制的能力。借助官方 媒体播 放器开发指导 文档,可以发现鸿蒙提供了 SurfaceProvider 类,它管理的 Surface 对象可以用于视频解码后的展示。而 Flutter 渲染与视频上屏从原理上是类似的,因 此我们可以借用 事件传递的整个流程如下图所示: 前端 < 9 Flutter 事件分发 iOS/Android 的原生容器通过触摸事件的回调 API 接收到事件之后,会将其打包传 递至引擎层,后者将事件传发给 Flutter 框架层,并完成事件的消费、分发和逻辑处 理。同样,整个流程的大部分工作已经由 Flutter 统一,我们要做的仅仅是在原生容 器上监听用户的输入,并封装成指定格式交给引擎层而已。 在鸿蒙系统上,我们可以借助平台提供的0 码力 | 738 页 | 50.29 MB | 1 年前3
Vue.js v3.0 教程(Vue3 教程)目 录 致谢 基础 安装 介绍 应用 & 组件实例 模板语法 Data Properties and Methods 计算属性和侦听器 Class 与 Style 绑定 条件渲染 列表渲染 事件处理 表单输入绑定 组件基础 深入组件 组件注册 Props 非 Prop 的 Attribute 自定义事件 插槽 提供 / 注入 动态组件 & 异步组件 致谢 - 5 - 本文档使用 书栈网 · BookStack.CN 构建 安装 介绍 应用 & 组件实例 模板语法 Data Properties and Methods 计算属性和侦听器 Class 与 Style 绑定 条件渲染 列表渲染 事件处理 表单输入绑定 组件基础 基础 - 6 - 本文档使用 书栈网 · BookStack.CN 构建 Vue.js 在设 每个版本的详细发行说明可在 GitHub (opens new window) 上找到。 当前是 Beta 版——Vuex 和 Router 的集成仍然是 WIP 在使用 Vue 时,我们推荐在你的浏览器上安装 Vue Devtools (opens new window),它允许 你在一个更友好的界面中审查和调试 Vue 应用。 获取 Chrome Extension (opens new window)0 码力 | 368 页 | 3.97 MB | 1 年前3
electron中文教程
目 录 致谢 向导 支持平台 分发应用 提交应用到 Mac App Store 打包应用 使用 Node 原生模块 主进程调试 使用 Selenium 和 WebDriver 使用开发人员工具扩展 使用 Pepper Flash 插件 使用 Widevine CDM 插件 教程 快速入门 桌面环境集成 在线/离线事件探测 API文档 简介 进程对象 支持的 分享,让知识传承更久远! 感谢知识的创造者,感谢知识的分享者,也感谢每一位阅读到此处的读者,因为我们 都将成为知识的传承者。 致谢 - 4 - 本文档使用 书栈(BookStack.CN) 构建 支持平台 分发应用 提交应用到 Mac App Store 打包应用 使用 Node 原生模块 主进程调试 使用 Selenium 和 WebDriver 使用开发人员工具扩展 使用 Pepper Flash electron ,Windows 中的 electron.exe ),接着 Electron 就会以你的应用程序的方式启动。 electron 文件夹将被部署并可以分发给最终的使用者。 除了通过拷贝所有的资源文件来分发你的应用程序之外,你可以通过打包你的应用程序为一个 asar 库文件以避免暴 露你的源代码。 为了使用一个 asar 库文件代替 app 文件夹,你需要修改这个库文件的名字为0 码力 | 203 页 | 2.72 MB | 1 年前3
[试读] Angular 5 高级编程...............6 2.1.3 安装 Git...............................6 2.1.4 安装编辑器..........................7 2.1.5 安装浏览器..........................7 2.2 创建并准备项目.........................8 2.2.1 创建项目 创建项目.............................8 2.2.2 创建包文件..........................8 2.2.3 启动服务器........................10 2.2.4 编辑 HTML 文件................11 2.3 向项目中添加 Angular 功能.....13 2.3.1 准备 HTML 3.3.4 更新 Bootstrap 包................39 3.3.5 移除文件 ...........................40 3.3.6 更新控制器、布局和视图....40 3.4 运行项目...................................42 3.5 理解合并项目和工具................44 3.50 码力 | 42 页 | 6.14 MB | 1 年前3
TypeScript 4.0 使用手册
在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this 编码规范 常见编译错误 支持TypeScript的编辑器 结合ASP.NET v5使用TypeScript 架构概述 发展路线图 新增功能 TypeScript 4.0 TypeScript 3.9 TypeScript 3.8 TypeScript TypeScript语言用于大规模应用的JavaScript开发。 ✔ TypeScript支持类型,是 JavaScript的超集且可以编译成纯JavaScript代码。 ✔ TypeScript兼容所有浏览器,所有宿主 环境,所有操作系统。 ✔ TypeScript是开源的。 一大波新的快速开始指南:React,Angular,Nodejs,ASP.NET Core,React Native, 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this 编码规范 常见编译错误 支持TypeScript的编辑器 结合ASP.NET v5使用TypeScript 架构概述 发展路线图 新增功能 TypeScript 4.0 TypeScript 3.9 TypeScript 3.8 TypeScript0 码力 | 683 页 | 6.27 MB | 1 年前3
前端开发者指南(2017)而开发 团队里的前端 全能型人才/全栈神话 前端面试 前端开发职位公示 前端开发薪资 前端开发者是如何诞生的 第二部分:学习前端开发 自学 关于互联网/WEB 学习 Web 浏览器 学习域名系统(又叫 DNS) 学习 HTTP/Networks(包括 CORS 和 WebSockets) 学习网页寄存(通称虚拟主机) 学习前端开发 学习用户界面/交互设计 学习 HTML 1.37 1.6.1.38 1.6.2 1.6.2.1 1.6.3 1.6.4 1.7 1.7.1 1.7.2 1.7.3 1.7.4 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API 的设计 学习 学习 Node.js 学习 JS 模块系统 学习模块加载和打包工具 学习包管理工具 学习版本控制 学习构建及任务自动化技术 学习网站性能优化 学习测试 学习无头浏览器 学习离线开发 学习网络/浏览器/应用的安全 多平台开发学习 导向学习 前端课程 前端开发学习的起点 前端资讯、新闻站和播客 第三部分:前端开发工具 Doc/API 浏览工具 SEO 工具 原型设计和线框图工具0 码力 | 164 页 | 6.43 MB | 1 年前3
Web的未来
新技术和新语言带来的改变性能弱,启动速度慢 ● 工具支持弱 ● 仔细选择技术方案和开发规范 Web 开发中还有许多问题有待解决... 未来的方向? Chrome OS 和 Chromebook Chrome OS 基于浏览器和云端环境的 OS Chromebook 搭载 Chrome OS 的笔记本 今天的讲义也是用 Google doc 做的 PC销量下降,而 Chromebook 销 量增长 Chrome App 1. 传统的浏览器用来展示内容 2. 而作为 App 并不是人们最习惯的使用方式, Web App 应该给人以桌面 App 的“感觉” 3. Web App 应该更像 App 而不是一个浏览器 Tab 4. 用户并不关心背后用的是什么技术。 a. App做壳,Web做核 b. Web 会与 OS 更紧密集成,直接提供 Web引擎支持 Chrome App Launcher Chrome 件、懂系统,但不需要懂硬件了。 安全 HTTPS 无处不在 Sandbox 模型 技术发展方向 ● 演进中的各种新技术标准 ● 编程语言的多元化 Web 是平台,能在上面做什么归根结底是技术标 准和浏览器支持说了算。 技术可以被 hack 的方式玩出新花样,但能力本 身并没有改变。 技术发展方向 1. 能力的扩展来自新技术:如 WebRTC 和 Web Components。 2. 开发方式会有不同流派,但基础技术的支撑很0 码力 | 91 页 | 3.44 MB | 1 年前3
TypeScript Handbook(中文版)
在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this 编码规范 常见编译错误 支持TypeScript的编辑器 结合ASP.NET v5使用TypeScript 架构概述 发展路线图 Breaking Changes TypeScript 2.3 TypeScript 2.2 TypeScript TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript 代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。 TypeScript目前还在积极的开发完善之中,不断地会有新的特性加入进来。 因此本 手册也会紧随官方的每个commit,不断地更新新的章节以及修改措词不妥之处。 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this 编码规范 常见编译错误 支持TypeScript的编辑器 结合ASP.NET v5使用TypeScript 架构概述 发展路线图 Breaking Changes TypeScript 2.3 TypeScript 2.2 TypeScript0 码力 | 557 页 | 7.48 MB | 1 年前3
Hello 算法 1.1.0 Dart版法 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法 A 的运行 时间比算法 B 短;但在另一台配置不同的计算机中,可能得到相反的测试结果。这意味着我们需要在各种机 器上进行测试,统计平均效率,而这是不现实的。 另一方面, 另一方面,展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入 数据量较小时,算法 A 的运行时间比算法 B 短;而在输入数据量较大时,测试结果可能恰恰相反。因此,为 了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。 2.1.2 理论估算 由于实际测试具有较大的局限性,因此我们可以考虑仅通过一些计算来评估算法的效率。这种估算方法被称 complexity)和空间复杂度(space complexity)。 ‧“随着输入数据大小的增加”意味着复杂度反映了算法运行效率与输入数据体量之间的关系。 ‧“时间和空间的增长趋势”表示复杂度分析关注的不是运行时间或占用空间的具体值,而是时间或空间 增长的“快慢”。 复杂度分析克服了实际测试方法的弊端,体现在以下两个方面。 ‧ 它独立于测试环境,分析结果适用于所有运行平台。 第 2 章 复杂度分析 hello‑algo0 码力 | 378 页 | 18.45 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版法 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法 A 的运行 时间比算法 B 短;但在另一台配置不同的计算机中,可能得到相反的测试结果。这意味着我们需要在各种机 器上进行测试,统计平均效率,而这是不现实的。 另一方面, 另一方面,展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入 数据量较小时,算法 A 的运行时间比算法 B 短;而在输入数据量较大时,测试结果可能恰恰相反。因此,为 了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。 2.1.2 理论估算 由于实际测试具有较大的局限性,因此我们可以考虑仅通过一些计算来评估算法的效率。这种估算方法被称 complexity)和空间复杂度(space complexity)。 ‧“随着输入数据大小的增加”意味着复杂度反映了算法运行效率与输入数据体量之间的关系。 ‧“时间和空间的增长趋势”表示复杂度分析关注的不是运行时间或占用空间的具体值,而是时间或空间 增长的“快慢”。 复杂度分析克服了实际测试方法的弊端,体现在以下两个方面。 ‧ 它独立于测试环境,分析结果适用于所有运行平台。 第 2 章 复杂度分析 hello‑algo0 码力 | 379 页 | 18.46 MB | 1 年前3
共 64 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7













