Total Pageviews

Showing posts with label flutter. Show all posts
Showing posts with label flutter. Show all posts

Sunday, 12 January 2025

为 Flutter 应用创建 Windows 安装包

 

近期需要为应用的 Windows 版本创建 MSIX 安装包,这里简单记录一下打包流程和遇到的一些问题。

1. 配置 MSIX 打包流程

首先使用 fluter pub add msix --devmsix 包引入项目,该 Package 封装了 MSIX 打包流程, 我们就不需要自己编写脚本来手动打包了。

msix 中有很多选项,具体可以在文档中查看,下面只提及一些重要构建的选项, 签名选项将放在下一章节:

1.1。 display_name / –display-name / -d

应用名,就是安装后用户可以看到的应用名称。

1.2. identity_name / –identity-name / -i

程序的唯一标识名,类似安装上的包名,在 Windows 上包名一般使用类型 Company.Suite.AppName 的形式。 标识名将关系到应用存储数据的位置(),因此请务必按照规范设置。

如果应用需要在 Microsoft Store 中进行发布,请注意改配置需要与 Dashboard 中配置一致。

1.3. msix_version / –version

一般不需要配置,不配置的话会使用 pubspec.yaml 中的 version 字段。

具体生效顺序请参考这里.

1.4. capabilities / –capabilities / -e

根据 “App capability declarations” 中说明,按自己项目需要进行配置。

1.5. output_name / –output-name / -n

用于配置生成的安装包名称,不需要后缀。这里提供一个自己使用的安装文件名称脚本:

set VERSION="unknown"
for /f "tokens=2 delims=:" %%a in ('findstr /R "^version:" pubspec.yaml') do set VERSION=%%a
set VERSION=%VERSION: =%

echo "Building %VERSION%"
dart run msix:create --output-name mhabit_%VERSION%_x64

2. 构建 MSIX 签名

Windows 使用 SignTool.exe 为安装包添加签名,我们不直接使用该工具,而 msix 将使用该工具进行签名。

msix 默认会生成一个测试签名,如果测试用的话可以直接使用而无需单独配置。 不过如果我们需要自己发布安装包的话,一个固定的签名(不管是公共或者个人)是必要的。 签名需要证书,而证书的获取方式分为:

  1. 发布到 Microsoft Store,商店会自动为应用程序提供证书。
  2. 购买一个微软认证证书。
  3. 自签名。

发布到商店就不说,只说说后两者。

购买证书是一笔不小的花费,不过使用该证书签名的安装包相当于被微软认证,可以正常安装到其他计算机上。

自签名的安装包默认是不能安装到计算机上的,如果计算机已经安装了签名对应的证书,或者使用不签名的方式进行安装。

由于应用还没有到需要买一个证书的体量,因此这里选择了自签名。

2.1. 创建 Certificate

我们有多种方式创建证书,一种简单的方式是使用 Powershell 简单的创建一个自签名的证书:

$cert = New-SelfSignedCertificate -DnsName $YourWebsite -Type CodeSigning -CertStoreLocation Cert:\CurrentUser\My
$CertPassword = ConvertTo-SecureString -String $YourPassword -Force -AsPlainText
Export-PfxCertificate -Cert "cert:\CurrentUser\My\$($cert.Thumbprint)" -FilePath "publish.pfx" -Password $CertPassword

可以使用 OpenSSL 的标准流程:

openssl genrsa -out publish.key 4096
openssl req -new -key publish.key -out publish.csr
openssl x509 -in publish.csr -out publish.crt -req -signkey publish.key
openssl pkcs12 -export -out publish.pfx -inkey publish.key -in publish.crt  # set Export-Password

2.2. 配置 Certificate

msix 提供了一系列选项进行配置,这里也只提出以下重要的:

2.2.1. certificate_path / –certificate-path / -c

即上一步生成 pfx 文件。

注意:该选项如果使用 pfx 文件时,需要与 [certificate_password] 一起使用。

注意:如果使用 crt,需确保计算机上已存在并能够读取到对应的私钥。

2.2.2. certificate_password / –certificate-password / -p

pfx 文件对应的密码,在生成时填入。

对于使用 Powershell 流程:ConvertTo-SecureString 中填入的密码。

对于使用 OpenSSL 流程:pkcs12 -export 中填入的密码。

2.2.3. install_certificate / –install-certificate

如果填写 true 的话,这会在签名是出现一个字符交互,提示是否需要向当前计算机安装证书。

注意:在 CI 流程中,一定要将该选项设置为 false,因为 CI 环境中无法进行交互。 一般打包时不需要安装证书,但如有特殊需求请使用相关命令提前进行安装:

Import-Certificate -FilePath "public.crt" -CertStoreLocation Cert:\LocalMachine\Root

Import-PfxCertificate -FilePath "public.pfx" -Password $YourPassword -CertStoreLocation Cert:\LocalMachine\Root

3. 开始打包

使用一下命令进行打包:

dart run msix:create
# 如果不需要 create 过程中自动构建 (flutter build windows --release)
# 使用 --build-windows false 跳过应用构建流程
#dart run msix:create --build-windows false

等待打包流程完毕,可以在 build/windows/x64/runner/Release/<output_name>.msix 中获取打包完毕的安装包。

至此,打包流程完毕。

F1. 最佳实践(非常主观的)

# pubspec.yaml
msix_config:
  display_name: Table Habit
  identity_name: Github.FriesI23.TableHabit
  enable_at_startup: false
  logo_path: ./assets/logo/macos-1024x1024.png
  capabilities: internetClient
# build process
echo "$" | base64 --decode > windows/certificate/publish.pfx
dart run msix:create \
  --architecture x64 \
  --output-name mhabit_x64 \
  --certificate-path windows/certificate/publish.pfx \
  --certificate-password '$'

F2. 一些问题

Q1. 为什么使用 MSIX 而不是 MSI 或 EXE 安装包

可以参考 Comparing MSI vs. MSIX。简而言之,MSI 是现在,MSIX 是未来,也是 Microsoft Store 中使用的格式, 考虑到后面会讲应用发布在 Store,直接使用 MSIX 也是更方便的选择。

至于 EXE,我没有自定义的需求,因此没有理由单独写一个安装程序。

Q2. 为什么出现 “No certificates were found that met all the given criteria.”

该错误由 SignTool.exe 抛出,具体原因多种多样,这里记录一个自己遇到的问题。

我在自己的计算机上使用 OpenSLL 创建证书后,使用 crt 作为 --certificate-path 进行打包,此时一切正常。 不过在编写 Github Action 并测试 CI 构建时,缺出现如上报错。

后面才想起来,自己本地在生成证书时,Windows 已将私钥进行存储,因此本地可以使用 crt。 但打包脚本所在的机器没有改私钥,因此无法直接使用。解决的方法有两个:

  1. 在打包前将私钥安装到打包机上
  2. 使用 pfx 打包

果断使用 pfx,毕竟手动安装证书和使用 pfx 没有本质区别,而后者更方便。

置于隐私问题,根据 “Using secrets in GitHub Actions” 中教程,将 pfx 文件进行编码:

# macos
# base64 -i cert.der -o cert.base64
# linux
base64 -w 0 cert.der > cert.base64

# upload to github
gh secret set REPLACE_TO_YOUR_SECRET_NAME < cert.base64

Friday, 3 January 2025

issue_blog,使用Flutter Web开发的github issues blog程序

抓取 GitHub 上的 Issues,结合 GitHub Pages 搭建个人博客站点,支持 GitHub 登录和评论

appdev.github.io/

一套代码支持 Android、iOS、Web、Desktop,点击进行预览

使用方法

分类、评论

使用issue label作为分类标签 关于评论: 因为flutter web 现在还不能使用社会化评论 所以目前评论功能缺失。 考虑使用某个社会化评论接口来实现

本地运行

1.安装依赖

flutter pub get

2.在浏览器中运行

flutter run -d chrome

3.修改个人配置「issue_blog/lib/utils/config.dart」

class Config {
  // 配置个人 GitHub 名称
  static final gitHubUsername = 'appdev';

  // 根据 GitHub 名称自动组装存放 issues 的仓库
  static final repo = '$gitHubUsername/$gitHubUsername.github.io';

  // 配置个人链接图片映射
  static final personalLinkMap = {
    'images/github.png': 'https://github.com/appdev',
    'images/git.png': ,
  };

}

发布到 GitHub Pages

1.打包

flutter build web

2.发布

拷贝「./build/web」目录里的所有文件到「GitHub Pages」的根目录下
并将「GitHub Pages」仓库 PUSH 到 GitHub 上

绑定域名到 GitHub Pages

1.在「GitHub Pages」根目录下添加文件名为「CNAME」的文件,文件内容就是你的二级域名

www.apkdv.com

2.登录你的域名控制台添加域名解析

「记录类型」选择「CNAME」
「主机记录」填「www」
「记录值」填「GitHub用户名.github.io」,例如我的是「appdev.github.io」

3.发布文章

直接在gitHubUsername.github.io 仓库的issue中写文章

存在的问题

flutter web 不能像普通网页一样复制!!!! 目前还没有好的解决办法。

from https://github.com/appdev/issue_blog 

------------------------------------------------------

类似的项目:https://github.com/hhstore/issuer

 

Thursday, 17 October 2024

awesome-saas-boilerplates

 

Flutter (Dart)

Jetpack Compose (Kotlin)

iOS (Swift / SwiftUI)

Ruby on Rails

Vue

Node.js (Javascript)

Laravel (PHP)

NestJs (Typescript)

Symfony (PHP)

SvelteKit (Javascript)

WordPress (PHP)

Django (Python)

Flask (Python)

FastAPI (Python)

.NET (ASP.NET Core / .NET 6+)

Java

Go

Next.js

React Native

Plasmo (React)

Rare

Remix

Ionic Framework

AWS

Firebase

from https://github.com/smirnov-am/awesome-saas-boilerplates

Friday, 12 July 2024

Guitar_Assistant

 Guitar Assistant / 吉他助手 节拍器.

作为一个 Flutter的入门练手应用,顺便解决找不到干净好用的节拍器的问题。

前期主要关注 macOS 和 Android 平台。

功能特性:

  • 节拍器(WIP)
    • BPM 简易展示和调整
    • 拍号展示和调整
    • 当前拍展示
    • 记住设置
    • 支持更多音效
    • 滑动调节 BPM
  • 调音器(TODO)

运行效果:

下载

https://github.com/mzlogin/guitar_assistant/releases

编译打包

Android:

flutter build apk --release

macOS:

flutter build macos --release
appdmg appdmg.json macos.dmg

iOS:

真机调试:https://flutter.cn/docs/get-started/install/macos#deploy-to-ios-devices

简而言之是需要先 open ios/Runner.xcworkspace,在 Xcode 配置好签名配置,构建运行 APP 后还需要在手机上「设置-通用-VPN 与设备管理」里信任开发者 APP。

iOS 模拟器:https://flutter.cn/docs/get-started/install/macos#set-up-the-ios-simulator,可以在 IDE 里启动或者执行命令 open -a Simulator

一切准备妥当,并连接设备/启动模拟器后:

flutter run

已知问题

  • BPM 高了以后,节奏不稳,有的拍子听不到声

参考

from https://github.com/mzlogin/guitar_assistant

 

Saturday, 8 June 2024

Movies-App-Flutter

 MoviesApp based on themoviedb API.

Hi, do you like movies? 😁 Try MoviesApp here, or if you are a developer click here. There are currently 4 themes in the app. Search for your favourite movie and add it to your favourites.

 Web 1280 – 1LicenseWeb 1280 – 1

Operating Principle

The app sends requests and receives responses from the themoviedb API.
To learn more about APIs and the Multitier architecture click here.

Dependencies

Getting Started

This application is using api of themoviedb, so before using it you have to create an api from themoviedb and generate an API and apply it to this application, follow the below step to connect api with this app.

First go to https://www.themoviedb.org/documentation/api, and follow the API Documentation, you will get the API Code.

  • go to secret/the_moviedb_api.dart
  • you will see the code like this
const String themoviedbApi = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  • replace the all xx.. to your API, like this
const String themoviedbApi = 'your_api_code_here';
  • enjoy coding

Contributors Changes

10/09/22 - Pravin Nichal: Added a new screen, which listed the similar movie gernes. screens/genre_wise_screen.dart Great Work!

11/09/21 - Rohit Chouhan: Added the missing secret/the_moviedb_api.dart file for running the project and the exact documentation for its correct use of the api file.

from https://github.com/vellt/Movies-App-Flutter

 

Wednesday, 17 January 2024

ProxyPin-开源的Http、Https抓包工具


ProxyPin

ProxyPin是一款跨平台免费开源Http、Https抓包工具,支持Windows、Mac、Android、IOS 全平台,工具使用flutter框架开发,支持手机扫码连接,不用手动配置Wifi代理,包括配置同步。所有终端都可以互相扫码连接转发流量,iOS是测试版,有名额限制,感兴趣的可以下载体验。

免费开源Http、Https抓包工具下载地址

iOS用户(测试版,有名额限制):https://testflight.apple.com/join/gURGH6B4

安卓用户:ProxyPin-Android.apk

Mac用户:ProxyPin-Mac.zip

Windows用户: ProxyPin-Windows.zip

GitHub页面:https://github.com/wanghongenpin/network_proxy_flutter

 

Monday, 25 December 2023

开源本地笔记软件 AppFlowy,会是 Notion 的代替品?



目前笔记工具都流行起了  All-in-One 的模式,一个笔记软件搞定一切,即管理任务、笔记、项目、数据、思维导图……

之前给大家分享过的 Notion、Wolai、FlowUs、VERSE 等笔记软件都不能本地化使用,很多小伙伴担心哪天服务商挂了,导致自己辛辛苦苦写的笔记内容丢失,所以想寻找能本地化或者免费开源的项目。

而在最近有个笔记开源项目「AppFlowy」刚发布一周就获得了 8k Star 评分,截至本文已经获得高达 26.4k Stars,可见这个项目非常优秀,据说旨在成为 Notion 的开源替代品。

AppFlowy介绍

据说开发团队表示文档笔记隐私和私有化非常重要,所以「AppFlowy」是 100% 开源的,使用 Flutter 和 Rust 构建。目前发布了 macOS / Linux / Windows 版。

目前「AppFlowy」的功能 Notion 非常像,也是采用模块化编辑,作为最初的项目,功能不齐全,但目前用来笔记或者管理任务都没有问题。

因为开源的原因,未来也许会有更多的扩展性功能。截至目前已知原生的跨平台支持、能够自行托管、数据隐私、简约界面、支持深色模式、支持离线模式、插件、主题等。

使用 Rust 和 Flutter 构建,在提供现代用户体验优于其它笔记软件,例如可以在 Linux 上获得良好的原生体验。

Linux上安装

去「AppFlowy」项目地址里面下载最新的安装包,然后运行终端,输入下面的命令即可:

安装 AppFlowy

tar -xzvf AppFlowy-linux-x86.tar.gzcd AppFlowy

运行 AppFlowy

./app_flowy

总结

现阶段的「AppFlowy」还有很多不足,不过作为一个开源项目未来应该还有很大的扩展性。

另外除了「AppFlowy」还支持本地化的笔记还有思源、FocalBoard,这三款之中,可以说只有思源比较完善,可以满足日常的需求。之前也给大家评测过思源笔记,感兴趣的可以看看相关文章。

最后如果你实在考虑到隐私安全等问题,不想笔记内容托管在别人的服务器,其实也可以考虑用 WordPress 搭建一个博客,我自己就是这样做,通过一些扩展插件也可以实现各种功能。

    项目地址:
    https://github.com/appflowy-io/appflowy
    官方网站:
    https://www.appflowy.io

Friday, 22 December 2023

拟物风格音乐/视频播放器:拟声



新拟物设计风格的出现,给目前流行的扁平化设计增加了一种新的设计形式,今天要分享的这款音乐播放器「拟声」就采用了这种新拟物设计风格,并且动画效果很优雅。

拟声介绍

目前「拟声」音乐播放器提供了 Windows 、Web(开源)、安卓版本,并且作者还贴心的对老旧安卓设备进行了适配,包括 arm32 的安卓机子也能安装。

播放器支持音视频的本地播放,作者提供了账号注册功能,登录后可以获得自动同步 歌单、歌词等功能。


开启插件拟声++ 还可以获得 Bilibili、音乐云盘、webdav、屏幕遮罩、个性化主题功能等。不过这个插件需要捐助作者后才能启用。

音乐播放方面支持播放绝大多数格式、拥有固定输出采样率、独占输出、内置均衡器、音调调整等功能。

支持歌词弹幕、状态栏歌词、桌面歌词,高容错的歌词解析能力,支持歌词制作、显示翻译歌词等。

歌词样式也提供了丰富个性化设置,可以调整字体大小、正在播放字体大小、字体颜色、行距等。

在功能设置里面你还可以对音质选择,另外「拟声」支持视频 MV、Anime4K 实时画质提升、逐帧播放。

安卓端也跟 Windows 端一样采用新拟物风格,不过安卓端的界面操作逻辑比电脑端好些,感兴趣的自己下载试试看。

功能特色

    支持播放绝大多数格式、拥有独占输出、内置均衡器、音调调整;
    支持安卓和电脑多端无限制登录、同步歌单、歌词;
    支持歌词制作、状态栏歌词、显示翻译歌词,以及歌词样式自定义;
    4.拥有沉浸模式、丰富的动画和Q弹的滚动效果;
    5.拟物、扁平、简约,多种风格主题,并支持 跟随系统、跟随时间 切换;
    6.支持真/伪随机播放,视频插件 Anime4K 实时画质提升;

下载地址

    项目地址:
    https://github.com/coolight7/MimicryMusic
    官方网站:
    https://download.music.mimicry.cool
    安卓版本:
    https://www.123pan.com/s/c8zA-idqN3.html
    WIN版本:
    https://www.123pan.com/s/c8zA-tdqN3.html

一款免费开源的多功能媒体娱乐应用程序:Miru



一款免费开源的多功能媒体娱乐应用「Miru」它主要通过扩展源插件的方式来提供观看视频、观看动漫、阅读小说、阅读漫画等的聚合软件,所以如果你会开发的话也可以贡献扩展,作者在官方网站上有提供开发指南。

Miru介绍

据作者介绍「Miru」使用 Flutter 开发,扩展使用 QuickJS 引擎驱动。客户端方面支持安卓、Windows、网页版。主要注意的是由于是网页限制的原因,能体验的功能有限,所以最好下载客户端版。

安装好「Miru」后点开扩展仓库,目前已经提供了一些扩展源,包括有视频、漫画、动漫、小说各个网站平台,选择你需要的源安装。

在搜索栏目就可以看到你添加安装的扩展源了,支持按分类筛选内容,支持按源来分类。

内置的播放器支持倍速播放,最高支持 2 倍速;支持选择本地字幕文件,支持显示播放列表。

其它功能方面,支持设置扩展仓库源地址,开启 BT 边下边播放服务、支持选择本地其它播放器(VLC/PotPlayer)等等。

总结

对于喜欢聚合类的小伙伴来说「Miru」这款工具能满足你的需求,实现多平台的统一,主要支持各种扩展源,另外还支持保存观看进度,作者也表示目前正在逐步实现功能,感兴趣的可以下载用看看。
下载地址

    官方网站:
    https://miru.js.org/download
    开发指南:
    https://miru.js.org/developer
    项目地址:
    https://github.com/miru-project/miru-app

Sunday, 24 July 2022

前端目前一些流行的主流技术汇总

 

作为一名前端工程师,目前国际上仍然流行的前端主流技术岂能不可不知?如果只是会一些基本的 HTML、CSS、JavaScript 或者 jQuery 等等,岂不是 OUT 了?本篇文章为大家汇总了一些目前仍然流行且是主流的前端技术,分享给大家。

内容详情

React

这个工具以需要最少的编码工作而闻名。React 专注于开发有效的用户界面(UI),以帮助在所
有平台上固定应用程序。与其他传统的重型JavaScript框架相比,前端开发人员也承认该工
具对 SEO 友好。

ReactJs 创建的应用程序是基本的,可以在本地工具的帮助下随时阅读和帮助开发人员调试他
们的代码。开发的应用程序拥有更多的功能,而且由于可复用的代码组件,它们更容易维
护。

当前端开发人员使用 ReactJs时,创建动态且不断变化的应用程序变得更易于管理,因
为其他工具需要复杂的编码。

React 是由科技集团 Facebook 创建的 Javascript 库,使用该工具的开发人员自推出以来呈指数
级增长。一个小团队可以轻松使用这种认端技术,而且使用时只有一个方向的数据流。

这反过来又提供了稳定的代码,并且生成的接口更受欢迎。

React Native

这个前端技术工具于2015年公开推出,以提供卓越的应用程序性能而闻名。它将 React 与原生开发的最佳组件相结合。可以使用该工具开发适用于 Android、 iOS 和 windows 的应用程序。

原生开发是指开发人员专门专注于为任何给定平台构建移动应用程序。由于该工具可以在 Android 和 iOS 上创建引人入胜的用户界面,因此许多开发人员都在使用它。除此之外,使用此工具生成的代码很容易测试。每次更新功能都会节省时间。

从这里列出的前端技术来看,鉴于可用功能的多样性,React Native 受到该领域专业人土的强烈推荐。

Vue.js

它是最好的 Javascript 框架之一,于2014年首次推出。它不仅专注于开发 web 界面,还专注于移动和桌面上的各种应用程序。

像 Adobe 这样的科技巨头采用了这种前端技术,因为 HTML 扩展使其成为现代 Web 开发中的首选工具之一。

Vue.js 最重要的优点之一是体积小。下载的 zip 文件大小 18 KB,前端开发人员可以通过远程访问 Internel 快速下载和安装,前端技术对开发和搜索引擎优化的用户体验方面产生了积极影响。

这种前端技术相对于具他技术的另一个优势是,开发人员在使用3种不同的语言(HTML、JavaScript 和 CSS)进行编码时不必创建单独的文件。Vue.js 与现有应用程序集成的能力相对容易,证明了它作为一种有效的前端开发工具的灵活性。

Flutter

这款前端技术工具由全球公司 Google 推出,该套件为前端开发人员提供了个加分项——它节省了生成代码所需的时间。一项用户体验调查显示,这种前端技术更直接的界面带来了一致的满意度。

这些工具还有助于简化跨平台应用程序开发,因此它比其他常用工具具有关键优势。Flutter 的框架还扩展为包含其他有用的功能,例如对 web 应用程序的开发支持。

有时,即便代码简单且富有创意,但其在不同屏幕上的呈现会受到像素质量的影响,从而对用户体验产生负面影啊。但是,Flutter 的出现改变了这种状态,随看Flutter 代码编译成各种客户端机器代码语言,用户可以在所用的任何设备或屏幕上完美地查看 web 应用程序。关于这个工具包的一个关健点是这个应用程序无需后端

Bootstrap

是一个开源的 CSS 框架,得到很多前端开发者的欢迎,是使用率最高的前端技术之一。它有一个一致的框架,支持几乎所有类型的浏览器,开发人员称它是一个高度可定制的轻量级工具。

这种前端技术所拥有的结构和风格是交互式且布局合理的布局。在当今时代,一个人可以使用至少3种不同类型的屏幕来检查同一个应用程序,因此必须有一个平滑的流体网格来适应不断变化的大小,使用的各种设备都有特定的布局,Bootstrap 在此过程中提供了极大的帮助。

Bootstrop 有易读的文档,社区对 CSS 兼容性修复的支持也不错,因此,这种前端技术被广泛使用。

-------------------------

介绍的这个Flutter开发语言则是更加强大,除了可以开发web端应用,还可以开发Windows,MacOS以及Linux应用,趁着这次Flutter2发布,咱们来一起了解一下。

官方网站  https://flutter.dev/

内容详情

Flutter 2是Google跨平台UI工具包的重大更新,稳定了Web支持并添加了新平台,包括可折叠,嵌入式和台式机。同时,新的Dart 2.12带来了空安全性和Dart外部功能接口(FFI)

通过 Flutter 2,开发者可以使用相同的代码库为 iOS、Android、Windows、macOS 和 Linux 五种操作系统构建原生应用,以及为 Chrome、Firefox、Safari 和 Edge 等浏览器打造 web 体验。

在相对较长的技术预​​览阶段,Google通过使用Web Assembly构建新的Canvas Kit驱动的渲染引擎,为提高Flutter的Web性能进行了广泛的工作,同时还确保了为Web构建的体验可以在台式机和移动设备上无缝运行。最初,Flutter专注于两种Web场景,包括渐进式Web应用程序(PWA)和单页应用程序(SPA)。

谷歌数据显示,仅 Google Play 商店就已有超过 15 万款 Flutter 应用,而现在应用可以在无需重写的情况下部署到桌面设备和 web 平台。

可以直接在官网学习相关知识,以及如何编写自己的第一个Flutter应用哦。

----------------------------------

https://docs.flutter.dev/get-started/install/linux

Make Linux desktop apps | Flutter

(linux版的下载地址:https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.1-stable.tar.xz)

https://docs.flutter.dev/get-started/install/macos

https://docs.flutter.dev/get-started/install/windows (windows版不好用。建议放弃windows版)

https://docs.flutter.dev/reference/tutorials

https://docs.flutter.dev/tools/devtools/overview

(https://docs.flutter.dev/tools/devtools/cli)

https://docs.flutter.dev/cookbook 

https://pub.dev/

-------------------------


谷歌的开源跨平台移动UI框架程序Flutter

Flutter是Google推出的跨平台开源移动 UI 框架,支持iOS、Android系统开发构建高质量用户界面,UI框架,包括UI控件、渲染逻辑甚至开发语言。渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用支持AOT的Dart语言,支持 Android Studio、Visual Studio Code 和 IntelliJ。所有功能都可以通过组合多个Widget来实现,包括对齐方式、按行排列、按列排列、网格排列甚至事件处理等等。

----------------------

https://github.com/OpenFlutter/Flutter-Notebook

https://github.com/simc/awesome-flutter-packages