八月部门给分配的分享任务,由于项目太赶,推迟一个月。
选 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 入门 --- 内部分享的更多相关文章

  1. Spark入门PPT分享

    本篇PPT是我在公司内部进行Spark入门的分享,内容包含了Spark基本概念.原理.Streaming.SparkSQL等内容,现在分享出来. 下载请点击这里

  2. Flutter入门之有状态组件

    StatefulComponent使用方法入门 在上一篇Flutter入门之无状态组件中我们讲到了无状态组件,所谓的无状态组件指的就是其内部的状态是来自其父组件并使用final类型的变量来存储,当组件 ...

  3. Facebook内部分享:25个高效工作的小技巧

    Facebook内部分享:25个高效工作的小技巧 Facebook 内部分享:不论你如何富有,你都赚不到更多的时间,你也回不到过去.没有那么多的假如,只有指针滴答的时光飞逝和你应该好好把握的现在,以下 ...

  4. Java 并发编程内部分享PPT分享

    .NET程序员转向JAVA领域,必备技术首当其冲就是JAVA Concurrency 并发编程. 最近系统性的学习了 Doug Lea <JAVA并发编程实战>一书.这书很有嚼劲,进入JA ...

  5. 青客宝团队Consul内部分享ppt

    青客宝团队Consul内部分享ppt   https://mp.weixin.qq.com/s?src=3&timestamp=1503647705&ver=1&signatu ...

  6. 淘宝内部分享:MySQL & MariaDB性能优化

    发表于2015-01-20 16:26| 28875次阅读| 来源mysql.taobao.org| 22 条评论| 作者淘宝数据库团队 MySQL性能优化淘宝数据库 摘要:MySQL是目前使用最多的 ...

  7. flutter入门开发的一些坑

    flutter入门开发的一些坑 很久没写博客了,最近在准备物联网比赛,顺便抽出时间学习了一下flutter,花了近2周完成了一个查看博客博文的一个小的APPdemo,随便截了两张图,如下: 首页 博客 ...

  8. flutter 入门(Mac)

    背景 近一年时间都在用 React Native 开发公司的 APP,水平基本上可以说是登堂入室了.前一段时间兴起一阵 Flutter 热,后端的同事都有推荐,今年 Google 大会又推出 flut ...

  9. jmeter 性能测试入门手册分享

    深思熟虑之下,决定把这份性能测试入门手册分享给大家 最初整理这份教程的是因为自己在学习性能测试的过程中踩过了很多的坑,遇到了 数不清的问题,于是就想着将这些解决的问题全都归拢在一个文档里,方便自己查阅 ...

随机推荐

  1. 小小知识点(二十一)如何修改PPT母版上无法直接点击修改的文字

    1. 进入PPT后,选择下图右上角红色圈出的“视图”,接着选择下方红色圈出的“幻灯片母版”: 2.点击进入母版,如下图所示,最上面一栏第一个选项变成了“幻灯片母版”,在下面一栏最右边变成了“关闭母版视 ...

  2. 使用百度NLP接口对搜狐新闻做分类

    一.简介 本文主要是要利用百度提供的NLP接口对搜狐的新闻做分类,百度对NLP接口有提供免费的额度可以拿来练习,主要是利用了NLP里面有个文章分类的功能,可以顺便测试看看百度NLP分类做的准不准.详细 ...

  3. 31.用python中的serial向串口发送和接收数据(案例一)

    代码功能说明:1.向串口助手发送十六进制数据:0X01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A: 2.用串口助手向代码发送数据,并将发送过来的数据保存在数据库中,按数据和 ...

  4. Django之models字段属性

    目录 常用字段 AutoField IntegerField CharField 自定义及使用char DateField DateTimeField 字段合集 字段参数 null unique db ...

  5. Java五子棋小游戏(控制台纯Ai算法)

    Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...

  6. CVE-2019-0708远程桌面服务远程执行代码漏洞exp利用过程

    CVE-2019-0708远程桌面服务远程执行代码漏洞 上边这洞是啥我就不多说了,描述类的自行百度. 受影响系统版本范围: Windows Server 2008 R2 Windows Server ...

  7. P4513 小白逛公园 动态维护最大子段和

    题目链接:https://www.luogu.org/problem/P4513 #include<iostream> #include<cstdio> #include< ...

  8. Redis系列(二):Redis的5种数据结构及其常用命令

    上一篇博客,我们讲解了什么是Redis以及在Windows和Linux环境下安装Redis的方法, 没看过的同学可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. 本篇博客我们来 ...

  9. 吸取教训:一段网上找的代码突然爆了,项目出现大BUG

    本人是做游戏服务器开发的,碰到一个需求,给符某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算. 这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策 ...

  10. python scoket

    一.简介 scoket(套结字)在python就是模块 二.分类 基于文件型(不用) 基于网络型 名字:AF_INET AF_INET6 三.scoket应用 1.基于tcp 长连接:基于tcp的Se ...