Code & Fun

起因

最近想开始写日记了,但是找了一圈发现好像好用又安全的App几乎没有,主要是怕不安全。很多App是不支持导出什么的,而且存在别人的服务器上总感觉不好,要是公司倒闭了,我们的日记岂不是全没有,就算有导出功能,要迁移到另一个App上好像也是很麻烦的样子。而那些支持保存到Webdev上基本是不加密的,也很危险啊。Whatever,我现在有点想做一个移动端的东西,也就是日记本。

调研了一圈,移动端基本上有三种选择:

  • Java + Android
  • React Native
  • Flutter

三者之中,Java + Android 应该是最稳的,毕竟有点 Java 基础;React Native 应该是最理想的,因为很容易就迁移到网页上啊;Flutter 应该算是一个比较激进的做法了,比较新技术,有许多坑,不过现在应该还是算挺多人在用了。作为一个有志向的开发者,踩坑才是最好玩的事情啊。whatever,我觉得用 Flutter 来实现这个东西了。BTW,写这篇东西一方面是为了记录安装中遇到的坑,另一方面也是立Flag(捂脸)。

安装 Flutter

我使用的环境是 Manjaro Linux,所以可以不按照官网上的方法下载包然后安装,直接:

1
sudo pacman -S flutter

安装完后显示下面这个东西,只需要按照他这里说明的进行一些配置即可。有一点要注意的是,这些命令全部都需要 root 权限,即在命令前面加 sudo 即可。

安装Flutter后的输出

基本上就安装成功了,可以按照flutter.cn中给出的安装教程一步步走即可。

国情带来的坑

在第一次运行flutter doctor之前记得把镜像源配置好,这里可以参考官方文档

1
2
export FLUTTER_STORAGE_BASE_URL=https://mirrors.tuna.tsinghua.edu.cn/flutter
export PUB_HOSTED_URL=https://mirrors.tuna.tsinghua.edu.cn/dart-pub

然后Gradle也有一个镜像源需要配置:

一个是项目中android/gradle/build.gradle:

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
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
// 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' }

}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

allprojects {
repositories {
// 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' }
}
}

还是有/opt/flutter/packags/flutter_tools/gradle/flutter.gradle

1
2
3
4
5
6
7
8
9
10
buildscript {
repositories {
// google()
// jcenter()

maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}

本文首发于Code & Fun