这是一个使用flutter写的天气预报APP,主要使用了以下几个插件,入门级练练手。 dio :网络请求插件,用于获取天气信息 fluttertoast :弹出toast提示信息 shared_preferences :简单的数据存储,用于保存设置过的天气预报信息 intl :日期格式化 项目GitHub地址: d9l_weather

界面

首先搜集一些天气预报APP的设计稿,确定一下自己的界面。看到有很多好看的,但是并不想做的太复杂。于是选择了一些简洁的,背景图也都去掉了。然后在PS里大概出一个界面,如下:

然后分析一下这个页面,大主体就是一个Column布局排列下来,中间穿插Row布局。详细的布局这里就不写,可以查看源码

home_page.dart

界面堆好之后,再做一个搜索城市的页面,一个搜索框加列表就可以了,怎么简单怎么来。页面通过右上角的设置按钮进入。

接口

页面都写好之后就需要把数据替换成真实数据了,这里使用了和风天气的API获取天气数据,注册之后就能使用。但是普通用户有些接口是不能用的,但是对这个APP来说,能够查到天气信息以及足够了。 新建一个 dio_client.dart 文件,里面放所有API请求方法,这里写成单例模式,如下。

class DioClient {

factory DioClient() => _getInstance();

static DioClient get instance => _getInstance();

static DioClient _instance; // 单例对象

static DioClient _getInstance() {

if (_instance == null) {

_instance = DioClient._internal();

}

return _instance;

}

DioClient._internal();

}

复制代码

在main函数中初始化单例对象

DioClient();

复制代码

使用方法

DioClient().getRealTimeWeather();

复制代码

如获取实时天气的方法如下:

Future getRealTimeWeather(String cid) async {

String url = rootUrl + '/now';

try {

Response response = await Dio().get(url, options: options, queryParameters: {

'location': cid, // 查询的城市id

'key': key,

});

// 根据API返回的参数定义的model

RealTimeWeather realTimeWeather;

realTimeWeather = RealTimeWeather.fromJson(response.data['HeWeather6'].first);

if (realTimeWeather.status.contains('permission')) {

return realTimeWeather;

}

realTimeWeather.basic = Basic.fromJson(realTimeWeather.mBasic);

realTimeWeather.update = Update.fromJson(realTimeWeather.mUpdate);

realTimeWeather.now = Now.fromJson(realTimeWeather.mNow);

return realTimeWeather;

} catch (e) {

print('getRealTimeWeather error= $e');

return null;

}

}

复制代码

shared_preferences

在搜索完一个城市的天气后,需要把这个城市的 id 保存在 shared_preferences 中,这样关闭app下次再打开的时候才能显示上一次查询的城市天气,或者需要保存多个城市天气预报的时候,也可以保存。 保存只需要一行代码:

SpClient.sp.setString('cid', cid);

复制代码

shared_preferences 的使用也是使用了单例模式,和 dio_client.dart 一样

flutter天气_flutter天气预报APP相关推荐

  1. Flutter实战(一)写一个天气查询的APP

    先上效果图: 代码github地址:github.com/koudle/GDG_- 1.创建工程 在Android Studio中,File -> New ->New Flutter Pr ...

  2. flutter天气_牛笔!自己用Flutter撸一个天气APP

    这是一款简约风格的 flutter 天气项目,提供实时.多日.24 小时.台风路径以及生活指数等服务,支持定位.删除.搜索等操作. 下图为主页效果: 开始 本身作为天气 APP,自定义绘制自然少不了, ...

  3. 用于android天气开发的背景图,Android开发天气预报APP的设计与实现毕业设计.pdf

    摘要 随着移动互联网技术和通信技术的发展,智能手机几乎成为人们 生活的必需品.近年来,Android系统已经成为智能手机中用户量最 多的操作系统.通过Android程序开发和设计天气预报手机应用,可 ...

  4. android app 天气功能,Android天气预报app改进版

    最近总是有人来和我说我以前写的一个小app无法正常获取数据~Android简易版天气预报app 今天就又运行了下来查找问题,发现或许是接口有限制吧,不能在多台手机使用同个apikey 然后,发现了我写 ...

  5. 用Swift实现一款天气预报APP(三)

    这个系列的目录: 用Swift实现一款天气预报APP(一) 用Swift实现一款天气预报APP(二) 用Swift实现一款天气预报APP(三) 通过前面的学习,一个天气预报的APP已经基本可用了.至少 ...

  6. android入门学习-天气预报app(一)

    引言 学习<android第一行代码>根据书本开发的天气预报app,主要用于熟练操作android开发(android studio3.0平台). 今天主要分享一下从服务器上获取天气信息, ...

  7. 天津天气预报软件测试,可以查询节气的天气预报app

    查看 生活服务|0KB 更新时间:2021-07-21 12:49:38 评分:9.4 概要:啦朴天气是一款查询天气的软件,软件的天气都是实时更新的,每天都会更新天气的,这里的天气数据非常的准确,如果 ...

  8. android实现天气预报App(0)

    首先 来看看目录结构 activity:主要是天气预报的各个页面 db:存放省.市.县三种数据的实体类 gson:存放获取的天气相关的json实体类 service:天气等数据更新相关代码的存储 ut ...

  9. Androi天气预报app制作(作业)

    环境: JDK1.8 Android SDK Tools 26.1.1 平台:Android 开发工具:Android Studio 项目:天气预报APP 功能点: 1)显示当前城市当日天气 2)显示 ...

最新文章

  1. qt qgis linux,QGIS初识-Qt编译环境配置
  2. Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示
  3. scala break continue
  4. 第六周项目四-静态成员应用
  5. damage framework can be used by economics
  6. 任务调度-java普通工程通过Timer实现
  7. Linux下内存buffer和cache的区别
  8. 添加库文件_S7200的库文件导至200SMART正确操作
  9. oa系统租用云服务器安全吗,oa系统放在云服务器上安全吗
  10. linux下简单好用的端口映射转发工具rinetd
  11. codesys采用G代码实现圆弧插补和螺旋插补的可视化仿真
  12. 自动化测试框架cucumber_10分钟学会 Cucumber+Watir 自动化测试框架
  13. 华为2017年营收突破6000亿;阿里巴巴全球总经理离职;亚马逊将关闭音乐存储服务丨价值早报
  14. Xftp5 安装教程
  15. 小猿圈IT自学分享-自学编程需要克服的困难
  16. ᑋᵉᑊᑊᵒ ᵕ̈ᰔᩚ
  17. HTML中禁止自动完成和禁用输入法
  18. 【信奥赛一本通】1183:病人排队(详细代码)
  19. I9000小技巧收集
  20. python datetime 时区_Python datetime 如何处理时区信息

热门文章

  1. 贾母和贾政的战略之争
  2. C++ 链栈实现10进制转换为2、8、16进制(详细)
  3. 学习 Python 之 Pygame 开发魂斗罗(十四)
  4. java8的stream中的toMap
  5. 实现简单的带头双向循环链表
  6. 大神指导代码问题(二)
  7. 微信读书小队组队专用群招募
  8. 国标结构专业图集大全 电子版
  9. 机器学习-使用决策树DecisionTreeRegressor模型对水果蔬菜价格预测
  10. 原来网上还有;网络学堂