Flutter 环境搭建

Flutter 环境搭建

  • 下载安装Flutter SDK

1 Flutter 官网下载地址:https://flutter.io/docs/development/tools/sdk/archive#macos

2 Flutter GitHub 下载地址:https://github.com/flutter/flutter/releases

  • 解压安装包到你想要安装的目录

    cd /Users/ksj/Desktop/flutter/

  • 添加Flutter 相关工具到Path中:

    export PATH='pwd'/flutter/bin:$PATH

  • 运行Flutter命令安装各种依赖

    flutter doctor

    <u>注意:这时候需要权限,可能会提示没有权限的问题,下面是提示的问题</u>

    [✗] Android toolchain - develop for Android devices
        ✗ Unable to locate Android SDK.
          Install Android Studio from:
          https://developer.android.com/studio/index.html
          On first launch it will assist you in installing the Android SDK
          components.
          (or visit https://flutter.dev/setup/#android-setup for detailed
          instructions).
          If the Android SDK has been installed to a custom location, set
          ANDROID_HOME to that location.
          You may also want to add it to your PATH environment variable.
    
    [!] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
        ✗ Verify that all connected devices have been paired with this computer in
          Xcode.
          If all devices have been paired, libimobiledevice and ideviceinstaller may
          require updating.
          To update with Brew, run:
            brew update
            brew uninstall --ignore-dependencies libimobiledevice
            brew uninstall --ignore-dependencies usbmuxd
            brew install --HEAD usbmuxd
            brew unlink usbmuxd
            brew link usbmuxd
            brew install --HEAD libimobiledevice
            brew install ideviceinstaller
    [!] Android Studio (not installed)
    [!] Connected device
        ! No devices available
    
    ! Doctor found issues in 4 categories.
    
  • 添加环境变量

    • 使用vim 命令打开~/.bash_profile 文件,添加以下内容:

      export ANDROID_HOME=~/Library/Android/sdk
      export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
      export PUB_HOSTED_URL=https://pub.flutter-io.cn
      export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
      export PATH=/Users/paramida/Desktop/flutter/bin:$PATH
      export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
      
  • 终端运行 source HOME/.bash_profile刷新当前终端窗口,可以使用echoPATH来验证flutter/bin是否已在PATH中。

<u> 注意:这时候如果电脑没有安装Homebrew工具,要去下载安装,地址:</u> https://brew.sh

Flutter新建项目

# bash
flutter create myapp
cd myapp
flutter run -d <deviceID>

以上就已经创建并运行项目。

使用/添加第三方依赖

  • 在pubspec.yaml中加入english_words依赖:

  • dependencies:
      flutter:
        sdk: flutter
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.2
      english_words: ^3.1.0
    
  • 执行命令下载安装依赖

  • flutter packages get
    
  • 修改main.dart:

  • import "package:flutter/material.dart";
    // 添加依赖
    import "package:english_words/english_words.dart";
    
    void main() => runApp(new MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        // 随机生成一个wordPair文字
        final wordPair = new WordPair.random();
        return new MaterialApp(
          title: "Welcom to Flutter",
          home: new Scaffold(
            appBar: new AppBar(
              title: new Text("Welcom To Flutter"),
            ),
            body: new Center(
              // 使用wordPair生成的文字
              child: new Text(wordPair.asPascalCase),
            ),
          )
        );
      }
    }
    

Flutter与已有iOS工程混合开发

  1. 在已有项目的目录下面创建一个名称为my_flutter 模块文件。

    $ cd /Users/haoran1/Desktop/项目/VideoListApp
    $ flutter create -t module my_flutter
    
  2. 然后在Podfile文件里面添加如下两行代码: flutter_application_path:flutter模块的路径,执行 pod install 。

    flutter_application_path = '/Users/haoran1/Desktop/项目/VideoListApp/my_flutter'
      eval(File.read(File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')), binding)
    
  3. 然后添加New Run Script Phase。

    "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
    "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
    
  4. 然后去AppDelegate.h 里面,#import <Flutter/Flutter.h>,让AppDelegate继承于FlutterAppDelegate,在m文件里面,修改didFinishLaunchingWithOptions,添加 [GeneratedPluginRegistrant registerWithRegistry:self];这样就可以跳转Flutter 界面。

  5. flutter支持热重载,修改代码后能立马看到效果。 终端执行

    $ cd /Users/haoran1/Desktop/项目/VideoListApp/my_flutter
    $ flutter attach
    

6.Flutter与Native通信的几种方式,Flutter与Native通信都是双向通道,可以互相调用和消息传递

Flutter与Native通信有三种方式,这里只简单介绍下:

  1. MethodChannel:方法调用
  2. EventChannel:事件监听
  3. BasicMessageChannel:消息传递
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,252评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,886评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,814评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,869评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,888评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,475评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,010评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,924评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,469评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,552评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,680评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,362评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,037评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,519评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,621评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,099评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,691评论 2 361