略过其他,直接按照《Flutter实战》第3篇(第15章)的内容实践
15.1示例
了解本小例概况
15.2代码结构
按要求创建工程和相应文件夹,工程名不可含有大写字母
15.3定义Model类
根据文章要求获取并创建相关JSON文件
我是win10系统,安装curl参考这篇文章,最后在新的命令行中输入
curl --help
若能正常显示,即安装成功
通过GitHub API获取GitHub账号信息
curl https://api.github.com/users/用户名
通过GitHub API获取GitHub个人项目信息
curl https://api.github.cm/users/用户名/repos
这里获取的是用户名下的所有项目列表,根据文章要求,取其中一个就行
具体API的功能参见官方文档,或这篇
首先添加json_model依赖项,在flutter包资源网站上搜索json_model,查询相应版本信息,本文使用0.0.2版本
在项目根目录下文件pubspec.yaml中添加依赖,在dev_dependencies:下添加,注意对齐
json_model:^0.0.2
在命令行切换到项目根目录,输入
flutter pub get
更新依赖库,再输入
flutter packages pub run json_model
自动生成
注意:在2021年6月2日输入此行命令将会报错,在此处有讨论,个人怀疑是第三方库太久没有更新版本,和新的flutter sdk出现冲突,暂无解决办法,建议直接从源代码库下载后插入
此时会报错
Non-nullable instance field 'xxx' must be initialized.
因为flutter2.0添加了Sound null safety空安全声明,最简单的解决方法是对dart类文件中每个属性的数据类型后添加一个“?”,表示这个属性可以为null
或者直接使用我修改完的(尚未上传)
在项目根目录下文件pubspec.yaml中添加依赖,在dev_dependencies:下添加,注意对齐,目前这些版本的依赖相互之间暂时没有冲突
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^1.0.2
dev_dependencies:
flutter_test:
sdk: flutter
json_model: #latest version
json_serializable: ^2.0.0
build_runner: ^1.0.0
shared_preferences: ^0.5.6
cached_network_image: ^2.1.0+1
dio: ^3.0.9
provider: ^4.0.5
oktoast: ^2.3.2
flukit: ^1.0.2
json_annotation: ^2.0.0
fluttertoast: ^8.0.7
15.4全局变量和共享变量
全局变量是app内不变的变量,共享变量则会影响所有相关的Widget,并随Widget变化而变化
这部分原代码依然存在空安全声明问题,同样处理即可。