# flutter_trips **Repository Path**: Codyfjm/flutter_trips ## Basic Information - **Project Name**: flutter_trips - **Description**: 用flutter开发的携程app,适用在android和ios平台的app - **Primary Language**: Dart - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-02-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flutter_trips #### 项目描述 用flutter开发的携程app,适用在android和ios平台的app 目前主要四个模块: 1.首页模块 2.搜索模块 3.旅拍模块 4.我的模块 #### 项目介绍 1.接口更新说明 由于本项目是在2020年3月左右开发的,距离教程发布的时间过去1年多了,所以教程中的接口有变动 这里特地去官网对比,其中接口做部分改动以实现功能(主要是参考携程Html5网页版F12抓取接口,另一部分接口是抓包抓取接口) 携程官网:https://m.ctrip.com/html5/ 搜索接口: 教程接口:https://m.ctrip.com/restapi/h5api/searchapp/search?source=mobileweb&action=autocomplete&contentType=json&keyword= 2020年新接口:https://m.ctrip.com/restapi/h5api/globalsearch/search?action=online&source=globalonline&keyword= 推荐一个好用的在线JSON工具:http://www.bejson.com/ 推荐一个好用的接口数据json转化成dart的工具:https://javiercbk.github.io/json_to_dart/ 推荐一个请求接口的好用工具:postman(安装包会放在视频教程中) 我的页面新网址:https://m.ctrip.com/webapp/myctrip 包大小图片压缩工具:https://tinypng.com/ UI网推荐:http://www.xueui.cn/ 图标工场:http://icon.wuruihong.com/ flutter安装包下载:https://flutter.dev/docs/development/tools/sdk/releases flutter签名打包文档: android: https://flutter.dev/docs/deployment/android iOS: https://flutter.dev/docs/deployment/ios 2.flutter版本说明 由于本项目是2019年3月份录制的,笔者开发的时候已经过去一年了,其中flutter sdk经过1.12版本的改动,flutter和native的通信api有较大的 改动,所以为了适配教程的代码和功能的实现,本课程用的是flutter1.2版本,和教程的版本是对应的,在运行本项目的时候可以将flutter版本换成1.2 版本,在资源里面有flutter1.2.1的安装包(window和mac) 3.flutter项目优化 3.1 代码优化: 3.1.1 冗余代码的封装 3.1.2 删除无效代码 3.2 包大小 3.2.1 压缩本地图片 3.2.2 使用单架构so 3.3 流畅度优化 3.3.1 按需创建页面 3.3.2 按需使用AutomaticKeepAliveClientMixin 3.3.3 耗时的计算放到独立的Isolate 3.4 内存优化 3.4.1 图片优化:根据控件大小加载指定分辨率的图片 3.4.2 列表优化:分页加载和使用List.build()来复用子控件 3.4.3 防止内存泄露,dispose需要销毁的listener等 4.打包 4.1 android打包 flutter build apk 4.2 ios打包 flutter build ios