热门标签 | 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 去了解更多的知识,有兴趣的可以一起学习哈,下篇文章见。



期待与你一起成长


推荐阅读
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • Git管理工具SourceTree安装与使用指南
    本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
  • QBlog开源博客系统:Page_Load生命周期与参数传递优化(第四部分)
    本教程将深入探讨QBlog开源博客系统的Page_Load生命周期,并介绍一种简洁的参数传递重构方法。通过视频演示和详细讲解,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
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社区 版权所有