[TS-999] Flutter 介绍

这个视频核心目的是扫盲,解答一些常见的 Flutter 相关的问题。

Flutter 跨平台开发支持哪些平台?

一般情况下说的是:生成产物可以运行在哪些平台,官方支持的是六大平台:Android、iOS、MacOS、Linux、Windows、Web。

开发平台支持使用四大平台:MacOS、Linux、Windows、ChromeOS。

容易被忽略的是 Flutter 是一个优秀的开源项目,良好的分层架构和可移植的 Dart 语言,让它本身就支持编译到任意一个嵌入式设备中,比如和丰田合作的车载系统、腾讯曾出过一个打印机系统、开源鸿蒙系统。

Flutter 是否支持鸿蒙开发?

正如上所示,Flutter 天生支持任何嵌入式设备开发,鸿蒙本质也是嵌入式设备。所以就技术本身而言,Flutter 是支持鸿蒙的。

就细而论,开源鸿蒙、鸿蒙Next、用户手上的鸿蒙,是否都可以用 Flutter 开发呢?还是那句话,技术本身是支持的,无论鸿蒙怎么变化。

Flutter 支持鸿蒙开发是官方吗?

不是的。华为和谷歌官方都没有宣称支持、或使用相关技术栈。而 Flutter 鸿蒙化是在国内开发者社区中实现的,可以在鸿蒙上运行的库也是由社区开发者移植的。

就生态而言,Flutter 支持鸿蒙,是第三方的,没有可用性保证的,而且你将只能基于 Flutter 3.7 的版本构建嵌入式鸿蒙环境,而此时 3.19 的 iOS 隐私政策问题会导致不得不维护两套代码的问题。所以如果想偷懒使用 Flutter 鸿蒙化,可能反而会费更多精力。

Flutter 鸿蒙化是否可以使用 Getx?

抛开 Getx 本身的问题不谈。Getx 由于存在网络请求库和持久化库的原因,非纯 Dart 库的迁移是需要解决这部分原生功能的移植的,所以不建议使用。

不抛开 Getx 本身的问题,你就是在鸿蒙上继续写屎山。

为什么无法打包苹果安装包?

由于苹果系统的封闭性,iOS 的打包、MacOS 的打包,都需要使用 MacOS 设备来实现。如果没有设备,则可能需要使用模拟器、第三方平台等方式解决打包问题。

为什么运行安卓的时候卡很久?

一律视作没有配置 Gradle 镜像导致的,这个问题太常见了,网上可以搜到很多解决方案,以下是常见的方案:

  • 科学上网(虽然有的初学者就是没有);
  • 配置项目的 gradle 镜像(记得开 git 记录修改);
  • 配置电脑全局的 gradle 镜像(一劳永逸,但是不便于合作开发);

注意,在没有科学上网的环境下,你配置安卓的镜像和配置 Flutter 的国内镜像,是两件事,而且都要去做。

为什么 flutter doctor 某项没有打勾?

遇到问题先看报错信息,不要急着到处问人。常见的错误都可以通过提示中的命令行,运行之后都可以一步一步解决。

Read more

[TS-001] Flutter 开发环境搭建思路

大家好,这里是优雅实践实验室,这一节将介绍如何搭建 Flutter 开发环境。 Flutter 开发环境是由什么组成的 eplab 只提供思路,不会手把手教学。 所以从思路出发。当提及配置 Flutter 开发环境的时候,我们到底在配置什么? 由 Flutter 的设计可知,Flutter 是编译后嵌入到目标平台的。 所以我们需要同时具备 Flutter 开发环境和目标平台的开发环境。 * Flutter 开发环境 * Flutter SDK * dart SDK * pub 命令 * IDE + Flutter 插件 * git 等环境杂项 * 目标平台的开发环境(按须配置) * 目标平台 SDK * 目标平台的模拟器(可选) Flutter 开发环境 需要配置基础的 Flutter SDK、IDE 及其插件、和一些杂项开发环境。

By lilua

[TS-000] Flutter 教学视频逐字稿介绍

这是优雅实践实验室产出视频之前的需要提前准备好的逐字稿脚本(Transcript),将会记录所有收集到的文档资料、代码片段、旁白台词和最终产出的视频。 💡注意:视频内容可能会过期,但是逐字稿会更新,在必要的时候重置当期对应的教学视频。 色彩搭配 主色 #042B59 #0553B1 #027DFD 辅色 #F25D50 #FFF275 #6200EE #1CDAC5 搭配方法 使用 Material Design 的配色,将主色和辅色两两搭配,得到一套主题,并遵循配色规范使用主题色卡。

By lilua

[QS-000] 快速上手系列介绍

本系列将给出一套完整、规范、无副作用的教程,旨在新手入门 Flutter 开发时更加轻松并减少出错,提高基础的编码门槛。 目标群体: 1. 被迫入门 Flutter,需要快速学习和实践; 2. 想学习 Flutter 的国内开发者,由于没有工具,导致无法从官方文档直接入手; 3. 想学习某一门技术,希望学习的不是鱼,而是渔,同样也可以从这个系列中快速举一反三。 为了达成目的,本教程将做到: 1. 对基础扫盲,构建基础的知识树,并在提问的时候可以合理的组织语言; 2. 提供某些疑点难点的解析,或者是来自外部的教程; 3. 给出泛用的学习方法,并确保在学习任何新技术的时候也适用; 本教程免责声明: 1. 基础的手机、电脑操作,不是本系列需要扫盲的,但会介绍 USB 调试开发; 2. 上网工具,不作为本系列的重点,但会介绍只使用镜像去开发的方法; 3. 基础的语法教程,不作为本系列的重点,

By lilua