Flutter 入门 --- 内部分享
八月部门给分配的分享任务,由于项目太赶,推迟一个月。
选 Flutter 这个主题,是因为现在它慢慢流行起来了,而我却不了解,故而借此契机,上手试试。
简介
Flutter 是 Google 推出的跨平台开发框 架。⽬目前⽀支持 iOS, Android 开发,对web 端和桌面端⽀支持还在开发中。
2017 年年 5 ⽉月,Flutter 发布第⼀一个版本。 2018 年年 12 ⽉月,第⼀一个稳定版本, 1.0 发 布。
Flutter 的开发语⾔言是 Dart 。
Flutter 实现了了⼀一整套的跨平台 UI 框架,包括控件,布局,渲染和开发语言。
Flutter Engine 依靠 跨平台的 Skia 进⾏行行渲染,只依赖系统的图形绘制 接口,因此能够很⼤大程度地抹除不不同平台的体验差 异。
采⽤的 Dart 语言,性能优于其他跨平 台框架所使⽤用的 JavaScript 。
再加上 Google 的⽀支 持,Flutter 最近⼀年多发展迅速。
Flutter ⽀支持 macOS, Windows 和 Linux 作为开发环境。IDE 有 Android Studio, IntelliJ 和 Visual Studio Code。
Stack Overflow Trends 对比
图表链接 https://insights.stackoverflow.com/trends?tags=react-native,flutter,ionic,cordova,xamarin
Dart 简介
☸ OOP
☸ 强类型
☸ 专⻔门为客户端优化
☸ 跨平台 (iOS, Android)
☸ 可移植 (ARM/x86)
☸ JIT 和 AOT 运⾏行行模式
Language Tour:https://dart.dev/guides/language/language-tour
Dart 第三⽅方库: https://pub.dev/packages
Flutter 分层架构
有底至上,Framework 层组成部分为:
☆ Foundation: 封装的⼯工具类和⽅方法;
☆ Animation: 动画相关;
☆ Painting: 封装了了 Engine 提供的绘制接⼝口;
☆ Gestures: 触摸事件处理理,⼿手势识别器器;
☆ Rendering: 渲染库;
☆ Widgets: 组件库;
☆ Material: Material Design ⻛风格组件库;
☆ Cupertino: iOS ⻛风格的组件库;
Flutter 项目结构
☸ lib: 写 Dart 代码的地⽅方
☸ ios, android: 原⽣生的宿主项⽬目
☸ build: 运⾏行行的中间产物
☸ test: 单元测试
☸ pubspec.yaml: 第三⽅方库以及资源管 理理⽂文件
☸ External Libraries: 库⽂文件
(images 是⼿手动创建的⽬目录)
用 widgets 构建界⾯面
Everything is a widget.
Widget 是什么
它们的作用分别为:
Widget: 存放渲染内容和布局信息
RenderObjectElement: 存放上下⽂文,持有 Widget 和 RenderObject
RenderObject: 布局和绘制
StatelessWidget 和 StatefulWidget
StatelessWidget: 静态展示
StatefulWidget: 动态展示(随外部事件改变)
与原⽣生交互
Flutter 提供了 Platform Channels 机制来实现与原生的交互。
详细可参考 https://flutter.dev/docs/development/platform-integration/platform-channels
PDF 讲稿和 demo 可访问 Github
Flutter 入门 --- 内部分享的更多相关文章
- Spark入门PPT分享
本篇PPT是我在公司内部进行Spark入门的分享,内容包含了Spark基本概念.原理.Streaming.SparkSQL等内容,现在分享出来. 下载请点击这里
- Flutter入门之有状态组件
StatefulComponent使用方法入门 在上一篇Flutter入门之无状态组件中我们讲到了无状态组件,所谓的无状态组件指的就是其内部的状态是来自其父组件并使用final类型的变量来存储,当组件 ...
- Facebook内部分享:25个高效工作的小技巧
Facebook内部分享:25个高效工作的小技巧 Facebook 内部分享:不论你如何富有,你都赚不到更多的时间,你也回不到过去.没有那么多的假如,只有指针滴答的时光飞逝和你应该好好把握的现在,以下 ...
- Java 并发编程内部分享PPT分享
.NET程序员转向JAVA领域,必备技术首当其冲就是JAVA Concurrency 并发编程. 最近系统性的学习了 Doug Lea <JAVA并发编程实战>一书.这书很有嚼劲,进入JA ...
- 青客宝团队Consul内部分享ppt
青客宝团队Consul内部分享ppt https://mp.weixin.qq.com/s?src=3×tamp=1503647705&ver=1&signatu ...
- 淘宝内部分享:MySQL & MariaDB性能优化
发表于2015-01-20 16:26| 28875次阅读| 来源mysql.taobao.org| 22 条评论| 作者淘宝数据库团队 MySQL性能优化淘宝数据库 摘要:MySQL是目前使用最多的 ...
- flutter入门开发的一些坑
flutter入门开发的一些坑 很久没写博客了,最近在准备物联网比赛,顺便抽出时间学习了一下flutter,花了近2周完成了一个查看博客博文的一个小的APPdemo,随便截了两张图,如下: 首页 博客 ...
- flutter 入门(Mac)
背景 近一年时间都在用 React Native 开发公司的 APP,水平基本上可以说是登堂入室了.前一段时间兴起一阵 Flutter 热,后端的同事都有推荐,今年 Google 大会又推出 flut ...
- jmeter 性能测试入门手册分享
深思熟虑之下,决定把这份性能测试入门手册分享给大家 最初整理这份教程的是因为自己在学习性能测试的过程中踩过了很多的坑,遇到了 数不清的问题,于是就想着将这些解决的问题全都归拢在一个文档里,方便自己查阅 ...
随机推荐
- Python3 pip换源
pip安装源 介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里: ...
- Redis 中的数据持久化策略(RDB)
Redis 是一个内存数据库,所有的数据都直接保存在内存中,那么,一旦 Redis 进程异常退出,或服务器本身异常宕机,我们存储在 Redis 中的数据就凭空消失,再也找不到了. Redis 作为一个 ...
- 「UVA1185」Big Number 解题报告
UVA1185 Big Number In many applications very large integers numbers are required. Some of these appl ...
- 使用tushare 库查阅交易日历
资料参考:https://tushare.pro/ 交易日历 接口:trade_cal描述:获取各大交易所交易日历数据,默认提取的是上交所 tushare的版本和更新: 执行命令: pip insta ...
- linux下配置vnc-server 和gnome-session
机器比较老,安装时间也十分久远,所以也不知道实验室系统当时是不是完全安装,最近需要使用vnc登录显示界面,结果问题就来了...没有安装vnc-server. (1)机器系统是rhel6.2的,所以就从 ...
- 原生JavaScript实现评分效果
一.实现原理: 1.要设置一个“大总管变量”,用于记录点击时的星星下标,只声明不赋值. 2.移入每个星星时,先把所有的星星恢复到默认状态:再把当前星星及在它之前的星星设为选中状态. 3.移出每个星星时 ...
- sql server 新建用户 18456
麻辣各级,今天阴沟里翻船 了,自己在家创建sqlserver新的用户名,一直报错 18456 邮件添加用户名这一套下来是没错. 重要是这样===>要重新启动一下sql server,就ok了. ...
- lvs+keepalived部署k8s v1.16.4高可用集群
一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...
- Oracle GoldenGate 19.1新特性
1.GoldenGate 19.1 新特性概览a.支持Oracle数据库19.1 长期支持发布版本.集成Oracle GoldenGate 12.3版的最终补丁集更新.b.微服务的安全性和可管理性增强 ...
- 用postman导出excel文件
原文地址:https://jingyan.baidu.com/article/915fc414559b4351394b2084.html 现在的web和移动开发,常常会调用服务器提供restful接口 ...