当前位置:   article > 正文

flutter开发实用技巧_flutter开发技巧

flutter开发技巧

IDE技巧

1. 修改pubspec.lock文件解决依赖冲突

pubspec.lockflutter pub get过程中生成的依赖库图谱文件,文件中列出的依赖库及版本号才是真实打包使用的版本号。直接修改该文件中依赖库的版本号,然后执行pub get命令,可以下载使用对应版本三方库。

2. 哪些文件不需要加入VCS

flutter工程中需要加入VCS的文件其实都列在.gitignore文件中了,但是有时候不全,重点关注下pubspec.lock这个文件,其实也是编译生成物,不需要加入VCS。

3. dart SDK目录

老生畅谈的问题,但是还是截个图备忘一下,根据flutter SDK实际存放位置进行配置:
在这里插入图片描述

4. flutter工程没有logcat窗口

打开:Project Structure>Facets,点击新建按钮,选择android,保持默认配置,点击确认即可。

命令行技巧

1. 重新生成flutter项目目录

进入项目目录,执行:

flutter create .
# 如果是插件,新版的flutter sdk需要你指定插件的平台
flutter create --platforms=ios,android .
  • 1
  • 2
  • 3

会根据flutter create原来的配置创建对应的工程目录。比如当你删除android或ios目录时,使用这个命令可以将缺失的目录重新生成。

2. 为package工程创建example

进入项目目录,执行:

flutter create example
  • 1

会生成对应的example代码,然后在example的pubspec.yaml中引用lib代码即可。

3. flutter插件工程安装apk

乍一看这个需求非常鸡肋,但是经过实践发现实际上直接运行flutter的example和通过命令行gradle命令编译安装apk效果还是不一样的,有写情况下需要通过gradle命令来编译和安装apk:

# 进入example下android目录
cd example/android
# 编译example:app,生成apk,这步可以跳过,按需即可
gradlew :app:assembleDebug
# 安装apk
gradlew :app:installDebug
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

上述步骤可以实现与右键打开Open Android module in Android Studio并运行项目一样的效果,而不用重新打开一个项目工程。
在这里插入图片描述

4. flutter SDK配置代理

在内网开发环境下,可能一些库无法正常下载,flutter pub get执行失败。可以通过配置代理来解决,flutter下载依赖库实际上借助了git和batch/shell中的下载命令,因此需要为git配置和命令行都配置代理:

Git配置代理方法:

# 代理可以是http://127.0.0.1:1080,或者不带协议127.0.0.1:1080,按实际情况
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
# 取消代理
git config --global --unset http.proxy 
git config --global --unset https.proxy 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

更多Git使用技巧:Git常用操作

命令行配置代理方法(只对当前命令行窗口生效):

# 代理无用户名密码
set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080

# 具有用户名密码
set HTTP_PROXY=http://proxy.com:port
set HTTP_PROXY_USER=username
set HTTP_PROXY_PASS=password

set HTTPS_PROXY=http://proxy.com:port
set HTTPS_PROXY_USER=username
set HTTPS_PROXY_PASS=password

# 取消网络代理
netsh winhttp reset proxy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

更多batch使用方法:bat脚本:快速入门

5. dart pub global

dart pub global命令可以添加/移除dart脚本到dart全局脚本库中,添加后即可在命令行执行脚本package中bin目录下的脚本的命令。可以利用此特性开发一些常用的flutter脚本工作,并发布到仓库供他人使用。

# 添加启用脚本
dart pub global activate <pub.dartlang package>
# 移除脚本
dart pub global deactivate <pub.dartlang package>
  • 1
  • 2
  • 3
  • 4

6. Pigeon多端接口一致性实现方案

  • 创建插件工程
flutter create --org com.exmple --template plugin flutterPigeonDemo
  • 1
  • 添加pigeon依赖
dev_dependencies:
  flutter_test:
    sdk: flutter
  pigeon:
    version: 0.1.7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 创建接口及定义输出配置

pigeons/pigeonDemoMessage.dart为例:

import 'package:pigeon/pigeon.dart';

class DemoReply {
  String result;
}

class DemoRequest {
  String methodName;
}

// 需要实现的api
@HostApi()
abstract class PigeonDemoApi {
  DemoReply getMessage(DemoRequest params);
}

// 输出配置
void configurePigeon(PigeonOptions opts) {
  opts.dartOut = './lib/PigeonDemoMessage.dart';
  opts.objcHeaderOut = 'ios/Classes/PigeonDemoMessage.h';
  opts.objcSourceOut = 'ios/Classes/PigeonDemoMessage.m';
  opts.objcOptions.prefix = 'FLT';
  opts.javaOut =
  'android/src/main/kotlin/com/example/flutter_pigeon_demo/PigeonDemoMessage.java';
  opts.javaOptions.package = 'package com.example.flutter_pigeon_demo';
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 生成接口模版
flutter pub run pigeon --input pigeons/pigeonDemoMessage.dart
  • 1

生成的模版代码文件:
在这里插入图片描述

7. 代码混淆

flutter < 1.16.2:Obfuscating Dart Code
flutter >= 1.16.2:Obfuscating Dart Code

flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>
  • 1

在我的工程中,开启和关闭--obfuscate前后的release包体积分别为:42436KB41452KB,减少了984KB,体积缩小了2.3%,原生代码体量比较大的缘故,差别不是很大。

参考资料

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/227227
推荐阅读
相关标签
  

闽ICP备14008679号