热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

万事起于配置开发环境

前言技术的更新迭代越来越快,一直都有原生开发被取代的声音,作为一个纯原生开发者来说,跨平台开发,是一种新的尝试。为什么要选择 Flutter ,因为毕竟是谷爹的

前言

技术的更新迭代越来越快,一直都有原生开发被取代的声音,作为一个纯原生开发者来说,跨平台开发,是一种新的尝试。为什么要选择 Flutter ,因为毕竟是谷爹的亲儿子, Android 也是亲儿子,说起来也都是兄弟,加深下兄弟之间纯真的友谊,还是很有很有必要的。

Flutter 是什么?

Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且 Flutter 完全免费、并且开源,对开发者十分友好。

上面是我从官网上摘抄来的,总结来说,我只记住了三个关键词:

  • 热重载

  • 跨平台

  • UI框架

相信接下来学习中会逐渐体验这几点。接下来开始第一步配置 Flutter 开发环境。

准备 Flutter 开发环境

Flutter 可以选择纯命令方式开发,也可以选择 IDE ,IDE 可以使用 Android Studio,Xcode,VScode 等等,毕竟使用 IDE 开发比较直观,所以我选择了已经安装的 Android Studio。但是无论是那种方式开发,都需要下载 Flutter SDK,所以配置的步骤为:

  1. 下载 Flutter SDK。

  2. 配置 Flutter 环境变量

  3. IDE 安装 Flutter 相关插件

下载 Flutter SDK

由于在国内访问有时可能会受到限制,Flutter 官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到电脑用户环境变量中:

# Flutter镜像 国内用户需要设置
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

配置 Flutter 环境变量

# Flutter命令行工具
export PATH=/flutter/bin:$PATH
# 注意要将  换成自己的地址,例如我的:
export PATH=/Users/duanrui/Documents/youzan/flutter/flutter/bin:$PATH

Android Studio 安装插件。

需要安装的插件有两个:flutter 和 dart,安装之后需要重启Android Studio 使插件生效。


安装之后需要重启 Android Studio 使插件生效,生效后开始页面出现 New Flutter project 选项,


从 Hello World 开始

环境配置好了,现在可以开始编写我们的第一个 Flutter 项目了。点击 New Flutter project ,起个你喜欢的名字,下一步,直到项目创建成功。

项目结构如下:

暂时不要管它是为啥这样,运行起来先。

  • 选择一个设备,我选择创建了一个 Android 模拟器

  • 选择 main.dart

  • Just Run!

运行成功后,会在模拟器上看到这样的画面:

如果失败了,没有关系,成功过程中不可避免会遇到种种磨难,下面记录了很多人都遇到的几个问题:

1.一直在Initializing gradle… ,仿佛卡住了。

原因:伟大的墙阻隔了 gradle 的下载。
解决:将项目依赖的 gradle 版本换成本地已下载的版本。

如果不记得本地已下载的 Gradle 版本是什么,可以通过以下的方法查看:

方法一:打开之前的项目,查看该项目的 gradle 版本配置。

方法二:Android Studio 中新建项目成功后会自动下载项目中定义版本的Gradle,存储在制定目录中,去这个目录就可以看到,有的同学可能有很多个版本,选择其中一个就好了,推荐选择其中最新的版本,比较靠谱。

Mac平台默认下载目录: /Users//.gradle/wrapper/dists
Win平台默认下载目录:C:\Users.gradle\wrapper\dists

2.一直在Resolving dependencies…,仿佛又卡住了。

原因:是的,还是伟大的墙,这次阻隔的是下载依赖的仓库地址。
解决:将仓库地址换成阿里云的镜像地址。

//        google()
//        jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }

开始体验 Flutter

经过上个步骤,第一个 Flutter 项目已经成功运行了,现在来体验下 Flutter 的几个特色功能:

热重载

1.修改 main.dart 文件中一个字符串


2.保存代码或点击热重载按钮 (就是闪电⚡️按钮),然后发现模拟器上面的页面也自动变化了,而且是保存着我之前操作的状态,数字仍然为 4,不是初始化的 0。


从 Console 窗口中的运行日志中,看出以上操作就是热重载过程。



跨平台

以上是 Android 设备上的展现,在 iOS 设备 iPhone XR上的运行效果是这个样纸的,看下面:


基本上是一模一样的,没有改动任何代码,就达到了两个平台UI和逻辑的统一。

MAC OS 上部署到 iOS设备的步骤:

  1. 下载安装 Xcode

  2. 配置 Xcode 命令行工具

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer 

  1. 运行以下命令,安装 libimobiledevice,这是一个横跨 Mac,Windows,Linux三大桌面平台的非官方版本USB接口协议库,可以用它来管理连接的iOS设备。

brew update   
brew install --HEAD libimobiledevice   
brew install ideviceinstaller ios-deploy cocoapods   
pod setup

  1. 打开一个 iOS 模拟器,如果顺利, Android Studio 的设备列表已经可以看到刚才打开的 iOS 设备了。
    已经安装了Xcode,iOS模拟器不需要另外再安装,命令行打开 iOS 设备的步骤是:

//列出你安装的所有可用的设备
xcrun instruments -s
//开启指定模拟器
xcrun instruments -w "iPhone XR (12.1)"

  1. 选择 iOS 设备,运行项目。

过程中如果遇到其他问题,运行命令行  flutter doctor -v
 和网络搜索基本都能解决。

UI框架

Flutter 提供了很多组件,可以很轻松实现很多漂亮的 UI 设计,这一点,相信在后面的学习中,可以慢慢体验到。

结语

以上就是全部内容了,Flutter 的基础开发环境已经配置完毕,接下来会通过一些简单的页面小 Demo 去了解更多的知识,有兴趣的可以一起学习哈,下篇文章见。



期待与你一起成长


推荐阅读
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • 在 Android Studio 中创建新项目时 Flutter 未显示的解决方法
    在 Android Studio 中创建新项目时,如果 Flutter 选项未显示,可以通过检查 Flutter 插件安装情况、配置 Flutter SDK 路径以及重启 IDE 等方法来解决。此外,加入 Go 语言社区和 Golang 程序员人脉圈也有助于获取更多技术支持和经验分享。 ... [详细]
  • 经过半年的精心整理,我们汇总了当前市场上最全面的Android面试题解析,为移动开发人员的晋升和加薪提供了宝贵的参考资料。本书详细涵盖了从基础到高级的各类面试题,帮助读者全面提升技术实力和面试表现。章节目录包括:- 第一章:Android基础面试题- 第二章:... ... [详细]
  • 解决发布版APK构建失败的问题 ... [详细]
  • C基本语法C程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象-对象具有状态和行为 ... [详细]
  • 配置PicGo与Gitee结合Typora打造高效写作环境
    本文详细介绍了如何通过PicGo和Gitee搭建个人图床,并结合Typora实现高效的文章撰写。包括创建图床项目、生成访问令牌、安装配置PicGo和Typora等步骤。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
author-avatar
mobiledu2502910885
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有