搭建Flutter开发环境、从零基础到精通(文末送书【北大出版社】)

目录

搭建开发环境

1. 下载Flutter SDK

2. 设置镜像地址及环境变量

3. 安装与设置Android Studio

4. 安装Visual Studio Code与Flutter开发插件

5. IDE的使用和配置

6. 安装Xcode

7. 检查Flutter开发环境

好书推荐

内容简介

作者简介


搭建开发环境

Flutter可以跨平台运行在Windows、macOS、Linux等系统上。接下来介绍如何在Windows、macOS系统上搭建Flutter的开发环境,以及检查Flutter开发环境。

搭建开发环境分为以下 7 步。

(1)下载Flutter SDK。

(2)设置镜像地址及环境变量。

(3)安装与设置Android Studio。

(4)安装Visual Studio Code与Flutter开发插件。

(5)IDE的使用和配置。

(6)安装Xcode。

(7)检查Flutter开发环境。



1. 下载Flutter SDK

到Flutter官网下载最新的SDK,macOS版本下载界面如图所示。

图片


Windows版本下载界面如图所示。

图片

由于在国内访问Flutter官网有时会受到限制造成无法访问,因此可以去Flutter GitHub主页下载SDK,地址是https://github.com/flutter/flutter/releases,选择下载最新的ZIP包即可。

图片

下载ZIP包后,把ZIP安装包解压到想要安装Flutter SDK的文件目录(如C:\src\flutter)下即可,切记不要把Flutter SDK安装到需要某些高级权限的路径上,如C:\Program Files\或C:\Program Files(x86)。



2. 设置镜像地址及环境变量

由于在国内访问Flutter官网有时会受到限制,Flutter官方为国内开发者搭建了临时镜像,需要添加如下环境变量。

export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

注意,此镜像为临时镜像,不能保证一直可用,读者可以参考Flutter GitHub主页https://github.com/flutter/flutter/wiki来获得有关镜像服务器的最新动态。

想要运行Flutter命令,还需要将Flutter SDK的全路径(如\flutter\bin)设置到环境变量PATH中,具体设置方法如下。

在macOS中设置镜像地址,具体步骤如下。

(1)打开macOS自带终端,并输入命令行vi./.bash_profile。

(2)添加下面的Flutter相关工具到PATH中。

export PATH=$PATH: [ 你计算机本地安装 Flutter 的路径 ]/flutter/bin

(3)设置完上述变量后,输入使其生效的命令。

Source ./.bash_profile

(4)检查设置是否成功,输入以下命令行。

echo $PATH


3. 安装与设置Android Studio

安装与设置Android Studio的具体步骤如下。

(1)去Android开发者官网下载并安装Android Studio。安装完成后,启动Android Studio,根据安装向导的指示步骤安装最新的Android SDK及与Flutter相关的工具。

(2)进入Android Studio的设置界面,选择“Android Studio → Preferences... → Plugins”选项,安装Flutter Plugin和Dart Plugin。

图片

(3)在Plugins设置界面中,搜索“flutter”,单击“Install”按钮进行安装。

图片

(4)接着继续在Plugins设置界面中搜索“dart”,单击“Install”按钮进行安装。

(5)安装完成后,重启Android Studio,会出现一个“Create New Flutter Project”选项,说明已经安装成功了,可以直接创建Flutter项目了。

图片



4. 安装Visual Studio Code与Flutter开发插件

安装与设置Visual Studio Code(简称VS Code)的具体步骤如下。

(1)去VS Code官网根据计算机系统下载并安装对应的VS Code,Windows和macOS的安装步骤大同小异,这里不再赘述。安装完成后,启动VS Code,打开的界面如图所示。

图片

(2)进入VS Code的打开界面后,选择左侧的“Extensions → Search Extensions”选项,搜索“flutter”,单击“安装”(或“Install”)按钮安装Flutter开发插件。

图片

(3)同理,继续在Search Extensions设置界面中搜索“dart”,单击“安装”(或“Install”)按钮进行安装。



5. IDE的使用和配置

Flutter官方推荐的编辑器有两个——VS Code和Android Studio,以便获得更好的开发体验。

通过IDE和插件可以实现代码补全、语法高亮、编辑辅助、运行和调试等功能,极大地提高了开发效率。

对于Flutter官方推荐的上述两个编辑器,根据程序调试及开发的便捷性,建议使用AndroidStudio编辑器。



6. 安装Xcode

如果要给iOS开发Flutter应用程序,需要一台macOS系统的计算机,并且安装Xcode。在macOS系统上安装Xcode的步骤很简单,直接在macOS系统自带的App Stroe上搜索“Xcode”,然后一键安装即可。



7. 检查Flutter开发环境

经过上述几节的安装操作,关于Flutter开发环境的搭建工作已经结束,但是在开启Flutter开发旅程前,需要检查一下Flutter开发环境是否正常。在终端中输入命令行flutter doctor,会在终端窗口中显示如下报告信息。

Doctor summary (to see all details, run flutter doctor -v):[√] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-x64, localezh-Hans-CN)[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)[√] Xcode - develop for iOS and macOS[√] Chrome - develop for the web[√] Android Studio (version 4.1)[√] VS Code (version 1.57.1)[√] Connected device (1 available)·No issues found!

输出结果显示没有缺少的环境,若出现红色叉号,就需要我们解决环境问题。



好书推荐


内容简介

本书由浅入深地带领读者进入Flutter开发的世界,从Flutter的起源讲起,逐步深入Flutter进阶实战,并在最后配合项目实战案例,让读者不但可以系统地学习Flutter编程的相关知识,而且还能对Flutter应用开发有更为深入的理解。

本书分为三部分:

第一部分为入门篇(第1~4章),主要介绍Flutter技术的诞生背景、特点、语言及常用组件的使用,通过对本篇的学习,读者可以掌握如何使用Flutter来搭建UI界面;

第二部分为进阶篇(第5~11章),主要包含Flutter的手势和事件处理、动画、自定义组件、文件操作和网络请求、路由导航和存储、混合跨平台开发、国际化等,通过对本篇的学习,读者可以对Flutter的整体流程及原理有一个深入的认识;

第三部分为实战篇(第12~14章),主要通过一个实战项目把前面介绍的内容整合起来,并且结合Flutter应用发布和Flutter App升级等一条线流程,让读者对开发一个完整的Flutter App有一个整体的了解。

本书内容不仅包含大量示例、图片、表格,还有对应的配套示例源代码,可帮助读者循序渐进地掌握Flutter开发技术,而且通俗易懂,内容丰富,实用性强,特别适合Flutter语言的入门读者和进阶读者阅读,也适合移动开发的其他编程爱好者阅读。另外,本书还适合作为相关培训机构的教材使用。


作者简介

陈政,笔名:三掌柜,CSDN博客专家,CSDN上海城市开发者社区主理人,CSDN人工智能技术开发者社区主理人,InfoQ写作平台首批签约作者,阿里云技术社区专家博主,51CTO社区博客专家,腾讯云开发者社区2022年度“优秀作者”,友盟问答官。

大前端领域优质创作者,“大前端系列”专栏,文章内容通俗易懂,由浅入深,旨在帮助有需要的人;深耕大前端领域多年,理论结合实践,有着丰富的大前端开发经验。

当当购买链接:http://product.dangdang.com/29612754.html

京东购买链接:https://item.jd.com/13820697.html



抽奖方式:评论区随机抽取若干名小伙伴送出!!

参与方式:关注博主、点赞、收藏、评论区评论“网络安全,《Kali Linux高级渗透测试》”

(切记要点赞 + 收藏,否则中奖无效,每人最多评论三次!!)

Kali Linux送书文字(点击跳转,参与活动)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/773254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenium完结篇,补充知识点

1、前两期没看的建议先去看前两期博客 2、选择框的勾选 getAttribute("type")是获取属性的意思 List<WebElement> webElementswebDriver.findElements(By.cssSelector("input"));for(int i0;i<webElements.size();i){if(webElements.get(i).getA…

使用npm i进行admin依赖安装的时候出现问题

提示&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…

C# get set 访问器

在C#中get 访问器set 访问器属性的优势例子 在C#中 get 和 set 是访问器&#xff08;accessors&#xff09;的关键词&#xff0c;它们用于定义属性的读取和写入行为。属性是一种特殊的类成员&#xff0c;它提供了对字段&#xff08;field&#xff09;或计算结果的灵活访问。 …

Vue2进阶——组件通信

文章目录 一、props配置项二、组件自定义事件三、全局事件总线四、消息订阅与发布 一、props配置项 作用&#xff1a;组件间通信传递数据 <Demo name"xxx"/>接收数据 1. 只接收 props:[name] 2. 限制类型 props&#xff1a;{name:string } 3.限制类型&#…

Salesforce宣布将停用Workflow Rules和Process Builder!

在近期的公告中&#xff0c;Salesforce透露在2025年12月31日之后将不再支持Workflow Rules和Process Builder。 Salesforce敦促用户在截止日期前将其自动化流程迁移到Flow Builder&#xff0c;以确保不间断的支持和漏洞修复。此举正值Salesforce将重点转向更现代、可扩展、低代…

rust中常用cfg属性和cfg!宏的使用说明,实现不同系统的条件编译

cfg有两种使用方式&#xff0c;一种是属性&#xff1a; #[cfg()]&#xff0c;一种是宏&#xff1a;cfg! &#xff0c;这两个都是非常常用的功能。 #[cfg()]是 Rust 中的一个属性 用于根据配置条件来选择性地包含或排除代码。cfg 是 "configuration" 的缩写&#xf…

Web举例:防火墙二层,上下行连接交换机的主备备份组网

Web举例&#xff1a;防火墙二层&#xff0c;上下行连接交换机的主备备份组网 介绍了业务接口工作在二层&#xff0c;上下行连接交换机的主备备份组网的Web举例。 组网需求 如图1所示&#xff0c;两台FW的业务接口都工作在二层&#xff0c;上下行分别连接交换机。FW的上下行业…

修改android11的默认桌面

要修改 Android 11 的默认桌面&#xff0c;通常需要使用第三方的启动器&#xff08;Launcher&#xff09;应用程序来替换系统默认的启动器。以下是一般步骤&#xff1a; 下载第三方启动器应用&#xff1a; 在 Google Play 商店或其他应用商店中搜索并下载你喜欢的第三方启动器应…

云服务器配置 docker-spark

云服务器配置 docker-spark 1. 安装2. 启动3. 查看4. 验证5. 其他 1. 安装 我的服务器是腾讯云轻量应用服务器&#xff0c;2 核 2 G&#xff0c;已经内置了 docker&#xff0c; 配置大概如下&#xff1a; ubuntuVM-20-5-ubuntu --------------------- OS: Ubuntu 22.04 LTS x…

中小型集群部署,Docker Swarm(集群)使用及部署应用介绍

1、Docker Swarm简介 说到集群&#xff0c;第一个想到的就是k8s&#xff0c;但docker官方也提供了集群和编排解决方案&#xff0c;它允许你将多个 Docker 主机连接在一起&#xff0c;形成一个“群集”&#xff08;Swarm&#xff09;&#xff0c;并可以在这个 Swarm 上运行和管…

企业安全建设与安全架构实践资料合集(附下载)

企业安全建设与安全架构实践资料合集&#xff0c;供大家参考学习。 知识星球下载&#xff1a;https://t.zsxq.com/18Kq8s0ov 一、企业安全建设与最佳实践 云时代企业安全建设.pdf 云安全服务管理指南.pdf 企业信息安全建设策略与实践.pdf 企业网络安全设计方案.pdf 企业安全建…

pytest和unittest 如何选择?

目录 如何选择?pytest和unittest哪个更强大pytest和unittest是否可同时应用如何选择? pytest和unittest都是Python中常用的测试框架,它们各自具有一些特点和优势,选择哪一个取决于你的具体需求和偏好。以下是一些关于这两个框架的对比和选择建议: 易用性和简洁性: pytes…

Go语言学习Day4:函数(上)

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

【零基础C语言】文件操作

目录 理解文件操作 什么是文件 程序文件 数据文件 文件名字 二进制文件和文本文件 文件的打开和关闭 文件的打开和关闭操作 实验1&#xff0c;打开一个文件并且输入26个字母 打开读取文件text.txt ,并且将它拷贝进text_cpy.txt 使用 fputs 和 fgets 函数 使用 fprintf函…

设计模式|发布-订阅模式(Publish-Subscribe Pattern)

文章目录 初识发布-订阅模式发布-订阅模式的关键概念发布订阅模式的优缺点示例代码&#xff08;使用 Java 实现&#xff09;有哪些知名框架使用了发布-订阅模式常见面试题 初识发布-订阅模式 发布-订阅模式&#xff08;Publish-Subscribe Pattern&#xff09;是一种软件架构设…

【python】(14)理解Python中的pypinyin库

系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何使用python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、…

【计算机网络】IP 协议

网络层IP协议 一、认识 IP 地址二、IP 协议报头格式三、网段划分1. 初识子网划分2. 理解子网划分3. 子网掩码4. 特殊的 IP 地址5. IP 地址的数量限制6. 私有 IP 地址和公网 IP 地址7. 理解全球网络&#xff08;1&#xff09;理解公网&#xff08;2&#xff09;理解私网&#xf…

华为汽车图谱

极狐 极狐&#xff08;ARCFOX&#xff09;是由北汽、华为、戴姆勒、麦格纳等联合打造。总部位于北京蓝谷。 问界 华为与赛力斯&#xff08;东风小康&#xff09;合作的成果。 阿维塔 阿维塔&#xff08;AVATR&#xff09;是由长安汽车、华为、宁德时代三方联合打造。公司总部位…

51单片机超声波测距代码

超声波测距代码&#xff1a; #include<reg52.h>sbit echoP2^0 ; //回声接收端口 sbit trigP2^1 ;//超声波触发端口sbit wei1P2^4; sbit wei2P2^5; sbit wei3P2^6; sbit wei4P2^7;sbit inP2^2;#define dula P0 #define uchar unsigned char #define uint unsigned intlo…

代码随想录Day58:每日温度、下一个更大元素 I

每日温度 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> result(temperatures.size(), 0);for(int i 0; i < temperatures.size(); i){while(!st.empty() && tempe…