-
flutter命令介绍
目录 flutter - -version flutter build iosflutter - -version一、介绍 //官方解释: Reports the version of this tool. flutter --version // 下面是输出的版本信息 Flutter 3.7.12 • channel stable • https://github.com/flutter/flutter.gitFramework • revision 4d9e56e694...…
-
flutter环境配置
见这篇文章 Mac中flutter环境配置:https://jianghuhike.github.io/12213.html 行者常至,为者常成!…
-
16 热更新
1、研究基于 Flutter Shorebird 热更新支持中国区域的问题 2、Embed a Flutter module in your iOS app - Use frameworks 3、Code Push for iOS Hybrid Apps 4、快速集成 Flutter Shorebird 热更新目录 shorebird的安装使用 对原有工程的改造 实现热更新shorebird的安装参考官方文档(上面的参考文章3、4),有很详细的注册、登录、初始化、发布、发布...…
-
15 热重载
目录 原理 手动启动tools平台原理Flutter Dart – DartVM(AOT JIT)Dart代码 – Tools热重载平台 – DartVM – flutter引擎Tools平台的路径:flutter - packages - flutter_tools手动启动tools平台热重载的挂载 配置tools的路径和要挂载的工程 如果启动失败配置下dartsdk的路径 配置好以后就可以启动tools平台了,这时我们去修改我们工程内的代码,然后在tools...…
-
14 package开发
参考文章:开发Packages和插件常用命令目录 package的创建 plugin的创建package的创建一、创建于发布flutter create --template=package 'package_name'目录结构如下:所有的有用的资源都要放在lib目录下 上传到pub.dev需要谷歌账号发布环境测试pub publish --dry-run 发布: 发布过程中终端会给出一个授权链接,打开授权链接登录即可完成授权需要梯子 需要指定服务器发布否...…
-
13 flutter channel
目录 channel的创建 channel回调的实现 channel的codecchannel的创建channel的创建需要两个参数 name:channel的唯一标识 binaryMessenger:消息信使,用于消息的接收和发送,可以传入FlutterViewController的实例+ (instancetype)methodChannelWithName:(NSString*)name binaryMessenger:(NSObj...…
-
12 flutter engine
参考:Flutter混合栈管理方案对比目录 介绍 depot_tools 引擎复用介绍一、介绍app.framework 就是dart代码Flutter.framework 就是引擎,很多大公司的二开比如热更新,就是在这个framework的基础上进行的引擎在flutter sdk中的位置 /opt/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64/Flutter.framewor查看当前的en...…
-
11 混合开发
目录 介绍 GlobalKey介绍一、混合开发Flutter项目调用原生的某些功能原生项目里面包含Flutter模块FlutterViewController 创建再销毁之后会有8M的内存泄露 所以Flutter与原生页面之前不适合来回切换,FlutterViewController应该常驻内存让flutter给原生传递数据,原生应该提供一个方法让flutter来调用,通过方法的参数把数据传过来 原生调用flutter也是同样的道理Flutter调用原生// flutter 侧代码...…
-
10 key⭐️
目录 LocalKey GlobalKeyLocalKey1、说明 LocalKey(ValueKey)只在同一个父节点下生效, diff 范围:updateChildren() 的 兄弟节点数组。 查找成本:O(n),范围小2、无 Key(index 驱动)oldWidgets: [A, B, C]newWidgets: [D, A, B, C]Element 变化图EA(StateA - A) → (StateA - D)EB(StateB - B) → (StateB ...…
-
9 重要方法⭐️
目录 didUpdateWidget:什么时候会被调用? update相关方法 didChangeDependenciesdidUpdateWidget:什么时候会被调用?一、触发的完整条件1、父 widget 触发 rebuild 2、Flutter 决定「复用旧 Element」 3、新 widget != old widget(配置发生变化) 少一个都不会进 didUpdateWidget如果widget是 const 修饰,不会进入该...…
-
三棵树和渲染原理⭐️⭐️
目录 Widget介绍 三棵树 是如何更新的 一个典型示例 结合三棵树来说说CPU和GPU是如何工作的 iOS原生渲染和Flutter渲染有什么不同⭐️Widget介绍一、Widget的种类按继承关系分类 维度 StatelessWidget StatefulWidget RenderObjectWidget ProxyWidget 是否有状态 ❌ 无 ✅ 有(S...…
-
Future的用法⭐️
目录 普通用法 async和await 依赖分析 使用场景 Future.await的使用 微任务普通用法future的使用void futureUse1() { print('1'); Future(() { print('异步任务'); }); print('2'); /* flutter: 1 flutter: 2 flutter: 异步任务 */}future的使用void futureUse3() { print('1'); F...…
-
6 布局
目录 普通布局 横向布局 纵向布局普通布局Alignment(0.0, 0.0),flutter的坐标原点在屏幕中间。(-1,-1)是左上角Container( color: Colors.green, width: 300, height: 300, alignment: const Alignment(0, 0), child: Container( color: Colors.blue, height: 150, child: const Aspec...…
-
5 常用控件
目录 架子介绍 常用Widget 重要Widget架子介绍程序的入口函数,runApp() 相当于UIApplicationMain()方法void main() { runApp(const MyApp());}Widget 小部件 有状态:Stateful 可变,比如颜色 无状态:Stateless 不可变 build方法 -> 渲染方法。build方法返回什么,就渲染什么常用Widget一、容器相当于UIViewContainer( width: 100, h...…
-
4 常用
目录 timer的使用 获取设备宽高 计算文本宽度 函数防抖timer的使用倒计时Timer timer = Timer(const Duration(seconds: 2), () { debugPrint('倒计时结束');});// 在合适的时机取消timer// timer.cancel();定时器int count = 5;Timer.periodic(const Duration(seconds: 1), (Timer timer) { debugPrint('定时...…
-
3 对象类型
目录 对象 类的继承 抽象类对象一、普通对象class Person { String name; int age; final bool? sexy; //final修饰的属性必须有初始值 String? _hobby; //私有属性外部无法访问 int? _height; static int? num; //静态属性 //默认构造函数 // Person(); //构造函数:在形参的位置,只有构造函数能使用this // : 初始化列表,可以对final修饰...…
-
2 基本类型
目录 有哪些类型 常量 变量 布尔 数值 字符串 list map operator 函数 闭包有哪些类型常量:const final变量:var布尔类型:bool数值型:num : int & double字符串:String列表:list键值对:map常量int testSum() { return 10;}// 编译时需要确定常量的值,一旦确定便不能更改// const int a = testSum();// int 可以省略,dart会自动推断...…
-
1 介绍⭐️
目录 介绍 两个项目 相关指令 跨平台技术介绍一、Flutter 与 DartFlutter 是一种用于构建高性能、跨平台移动应用、Web 应用和桌面应用的开源框架. Flutter 框架,它提供了一组工具、库和组件,用于构建用户界面、处理用户输入、管理状态等。 Dart 是 Flutter 的官方编程语言,具有现代编程语言的特性,如强类型、异步编程支持、面向对象特性等。 Dart 作为其主要编程语言,你会使用 Dart 来编写应用程序的逻辑、业务逻...…
-
day02
目录 数据绑定 事件绑定 条件渲染 列表渲染 WXSS 模板样式 全局配置 页面配置 网络数据请求数据绑定1、在页面对应的 .js 文件中,把数据定义到 data 对象中即可:Page({ data: { info: 'init data', msgList: [ {msg: 'hello'}, {msg: 'world'} ], imgSrc: 'http://www.itheima.com/images/logo.png' ...…
-
day01
目录 介绍 注册小程序 开发工具安装 项目结构 项目中的配置文件 小程序的宿主环境 协同工作和发布介绍一、小程序与普通网页开发的区别1、运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中2、API 不同 由于运行环境的不同,所以小程序中,无法调用 DOM 和 BOM 的 API。 但是,小程序中可以调用微信环境提供的各种 API,例如:地理定位、扫码、支付3、开发模式不同 网页的开发模式:浏览器 + 代码编辑器 小程序有自己的一套标准开发模式: 申请小...…