-
Git概要
参考:玩转Git三剑客目录 速记 名词解释 1、Git介绍 2、Git基础 3、Git基础(二) 4、Git基础(三) 5、Git基础(四) 6、Git独自使用 7、Git独自使用(二) 8、Git独自使用(三) 9、分支操作 10、Git与GitHub简单同步 11、Git多人协作 12、Git集成使用禁忌 13、分支开发工作流速记一、查看相关指令 git命令 说明 git help -a...…
-
Net概要
目录 0、速记 1、基本概念 2、基本概念(二) 3、MAC_IP地址 4、路由 5、网络分层(物理层、链路层) 6、网络层 7、传输层 8、TCP_可靠传输 9、TCP_流量控制、拥塞控制 10、TCP_序号、确认号 11、连接、释放连接 12、应用层 13、HTTP 14、HTTP(二) 15、HTTP(三) 16、HTTP(四) 17、HTTP(五) 18、网络安全 19、HTTPS 20、HTTP的升级改进 21、其它协议 22、补充0...…
-
Language
目录 常量 变量与数据类型 分支结构 循环结构 面向过程和面向对象常量Object-Cconst int a = 10;Swiftlet a: Int = 10 //不要求编译时确定,如果声明时没有值需要指定类型let a = 10 //可以省略类型说明和结尾的分号JavaScriptconst a = 10Flutterconst int a = 10; //编译时确定const a = 10; //int 可以省略finial int a = 10; //运...…
-
Base
目录 运行环境 编译过程 Build 和 Archive 从头开发一个app都需要什么 随记运行环境xy:软件的运行、脚本的运行都需要一个运行环境,运行环境提供了软件和脚本运行所需的一切。“运行环境”(Runtime Environment)是指在计算机科学中,程序或应用程序执行时所需的硬件和软件的集合。 这个环境提供了程序运行所需的一切,包括操作系统、依赖库、语言运行时等。关于运行环境的要点包括:操作系统: 程序需要在特定的操作系统上运行。例如,Windows、Linux、ma...…
-
启动优化(二)
参考文章:抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15%目录 Pagefault调试 LinkMap 二进制重排 Clang插庄Pagefault调试程序在启动的时候首先会载入内存,这个时候会发生Pagefault(缺页异常),我们怎么来看下发生缺页的次数呢?使用xcode提供的 Instruments –> system trace 工具来看下程序的冷启动和热启动发生的缺页次数。一、冷启动的缺页次数查看将APP杀掉,启动6-9个其它APP后,点击...…
-
启动优化
目录 main函数之前 main函数之后 虚拟内存main函数之前一、冷启动与热启动我们一般认为杀掉程序,再次启动程序就是冷启动。程序在后台时再回到前台就是热启动。但实际上杀掉进程后再启动进程并不是真正的冷启动,因为程序已经加载到内存中,我们杀掉程序并不能清除内存中已加载的部分。杀掉进程,启动5-6个其它进程,覆盖之前的内存,再次启动该进程才能保证是百分百的冷启动。二、配置环境变量配置了该环境变量后程序在启动时就会打印启动时间 Total pre-main ti...…
-
待整理内容
目录 待整理待整理1、channel 的调用与回调2、future 的用法3、go_router的使用…
-
Flutter调试失败
目录 Flutter调试失败Flutter调试失败1、FLUTTER_BUILD_MODE是否设置了Debug2、电脑和手机是否连接了同一网络(是否影响还不确定)3、如果运行了 flutter attach –app-id com.lixiaoyi.demo –verbose 一直处在等待vm service … 在不停止attach指令的情况下,可以在xcode杀掉app,再重新启动试一试4、在IDE上点击 flutter attach 按钮时,报dart版本错误。请在 set...…
-
重点收集⭐️
目录 如何在不同的项目使用不同的flutter sdk A push B 的时候为什么会调用A的build方法 flutter的页面栈,如何拦截手势返回如何在不同的项目使用不同的flutter sdk一、安装 direnv// 通过 brew 安装 brew install direnv// 并在 shell 中启用(zsh):echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc// 重新加载:source ~/.zshrc二、创建...…
-
状态管理对比
目录 介绍 各方案原理与优缺点 横向对比 主流方案与选型建议介绍一、为什么需要这篇对比前面几篇分别介绍了 setState / InheritedWidget、Provider、Riverpod、BLoC、GetX。 本篇把它们放到同一张桌子上,从原理、优缺点、适用规模三个维度横向对比,最后给出当前主流方案与选型结论。二、评估维度① 原理机制 :状态存在哪、怎么通知、怎么重建② 样板代码 :完成一个计数器/一个网络请求页面要写多少代码③ 学习成本 :...…
-
GetX
目录 介绍 核心概念 基本用法 最佳实践介绍一、什么是 GetX?GetX 是一个轻量级且功能全面的 Flutter 框架,它不止是状态管理库,而是三合一解决方案: GetX │ ┌─────────┼─────────┐ │ │ │ 状态管理 路由管理 依赖注入① 状态管理:响应式(Rx + Obx)与简单状态(GetBuilder)两种方案。 ② 路由管理:无需 context ...…
-
BLoC
目录 介绍 核心概念 基本用法 最佳实践介绍一、什么是 BLoC?BLoC(Business Logic Component,业务逻辑组件)由 Google 工程师 Paolo Soares 在 DartConf 2018 提出,最初是为了让 Flutter 与 AngularDart 共享业务逻辑代码。后来社区将其发展为一套完整的状态管理框架:bloc 与 flutter_bloc。它的核心思想是: UI 只负责展示和收集输入,所有业务逻辑都放进 BLoC;两者之间通过 Ev...…
-
go_router
目录 介绍 最佳实践介绍一、为什么需要 GoRouter?在 Flutter 中,页面导航最初通常通过 Navigator.push() 和 Navigator.pop() 实现。Navigator.push( context, MaterialPageRoute( builder: (_) => const DetailPage(), ),);这种方式适合简单应用,但随着项目规模增大,路由配置分散、参数传递、登录拦截、深度链接以及多 Tab 导航...…
-
flutter_riverpod
目录 介绍 基本使用 关键配置 最佳实践介绍一、区分两个包 riverpod:纯 Dart 版本,无 Flutter 依赖,可在 Dart 命令行。 flutter_riverpod:基于 riverpod,绑定 Flutter,提供 Widget 扩展,实际项目绝大多数用这个。 flutter_riverpod 是 三方为Flutter提供的状态管理库,是 Provider 的升级版,二、优缺点 优点 脱离 BuildContext,不依赖Widget...…
-
Provider最佳实践️️
目录 应该怎么选 Notifier 应该如何拆分?(企业级架构)应该怎么选Consumer、Selector、Widget 拆分、const,应该怎么选择?当页面发生重建时,应该优先用哪种优化方式?1、选择顺序 需要监听数据? │ ▼ 能拆 Widget 吗? │ │ 能 ...…
-
状态管理️⭐️⭐️
目录 setState InheritedWidget Provider Consumer 和 SelectorState 表示的是整个 Widget 当前所拥有的运行时状态。State│├── 数据├── 控件状态├── 动画状态├── Controller└── 生命周期setState一、介绍Flutter 只刷新需要更新的 Widget,而不是整个页面。widget内的更新。setState 的本质不是修改数据,而是通知 Framework我修改了状态,请重新计算 UI。二...…
-
flutter中的路由⭐
目录 一个路由系统应该具有什么样的功能 iOS 和 flutter 混合路由的搭建一个路由系统应该具有什么样的功能 功能 说明 举例 页面跳转 跳转到指定页面(页面入栈)带参数跳转新页面位于栈顶 页面返回 栈顶页面出栈能够向上一级页面传递参数 路由拦截 跳转新页面之前进行拦截返回上一级页面之前进行拦截 ...…
-
混合应用创建与调试⭐️
目录 iOS 与 Flutter module 混合应用 调试iOS 与 Flutter module 混合应用内容待整理启动与调试一、启动1、iOS 端加载 Flutter module App 启动时或某个特定页面打开时,初始化 Flutter 引擎(FlutterEngine)。 Flutter engine 启动后,就会载入并执行dart代码(调用main函数)。2、iOS 启动 Dart VM Service 服务 F...…
-
flutter与原生应用⭐️
目录 flutter页面的加载 channel的调用流程 Plugin介绍 鸿蒙与flutter的相互调用flutter页面的加载以DF应用为例+ (instancetype)getFlutterViewControllerWithEntryPoint:(NSString *)entryPoint params:(NSDictionary *)params { // 初始化一个新的 FlutterEngine,并为其分配一个唯一的名称。 // 通过这种方式,可以创建多个...…
-
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...…