天天看點

android flutter開發架構,一個完整的Flutter APP項目

Flutter版WanAndroid App,旨在打造一款完整的Flutter應用項目。

包含啟動頁,引導頁,主題色切換,應用國際化多語言,版本更新等功能,項目主架構采用響應式程式設計RxDart和BLoC,由于目前項目功能尚未完善,代碼還有待優化,後續項目重構整理好後,會全部開源出來,敬請期待!歡迎下載下傳體驗。

有關項目最新動态,可以關注App内第一條Hot Item資訊。

網絡架構DioUtil,螢幕适配ScreenUtil

v0.1.6(2018.12.20)

新增網絡請求工具DioUtil, 單例模式,可輸出請求日志。

// 打開debug模式.

DioUtil.openDebug();

// 配置網絡參數.

Options options = DioUtil.getDefOptions();

options.baseUrl = "http://www.wanandroid.com/";

HttpConfig config = new HttpConfig(options: options);

DioUtil().setConfig(config);

// 兩種單例請求方式.

DioUtil().request(Method.get, "banner/json");

DioUtil.getInstance().request(Method.get, "banner/json");

//示例

LoginReq req = new LoginReq('username', 'password');

DioUtil().request(Method.post, "user/login",data: req.toJson());

//示例

FormData formData = new FormData.from({

"username": "username",

"password": "password",

});

DioUtil().requestR(Method.post, "user/login",data: rformData);

//解析示例

class WanRepository {

Future> getBanner() async {

BaseResp baseResp = await DioUtil().request(

Method.get, WanAndroidApi.getPath(path: WanAndroidApi.BANNER));

List bannerList;

if (baseResp.code != Constant.STATUS_SUCCESS) {

return new Future.error(baseResp.msg);

}

if (baseResp.data != null) {

bannerList = baseResp.data.map((value) {

return BannerModel.fromJson(value);

}).toList();

}

return bannerList;

}

}

// 網絡請求日志

I/flutter ( 5922): ----------------Http Log----------------

I/flutter ( 5922): [statusCode]: 200

I/flutter ( 5922): [request ]: method: GET baseUrl: http://www.wanandroid.com/ path: lg/collect/list/0/json

I/flutter ( 5922): [reqdata ]: null

I/flutter ( 5922): [response ]: {data: {curPage: 1, datas: [], offset: 0, over: true, pageCount: 0, size: 20, total: 0}, errorCode: 0, errorMsg: }

v0.1.5(2018.12.14)

ScreenUtil 新增螢幕适配,不依賴context

//如果設計稿尺寸與預設配置一緻,無需該設定。 配置設計稿尺寸 預設 360.0 / 640.0 / 3.0

setDesignWHD(_designW,_designH,_designD);

//傳回根據螢幕寬适配後尺寸(機關 dp or pt)

ScreenUtil.getInstance().getWidth(100.0);

ScreenUtil().getWidth(100.0);

//傳回根據螢幕高适配後尺寸(機關 dp or pt)

ScreenUtil.getInstance().getHeight(100.0);

ScreenUtil().getHeight(100.0);

//傳回根據螢幕寬适配後字型尺寸

ScreenUtil.getInstance().getSp(12.0);

ScreenUtil().getSp(100.0);

已開源

① 網絡架構

② 閃屏廣告頁

③ 啟動頁

④ 引導頁

⑤ 主題色切換

⑥ 國際化

更新說明

v0.1.2 (2018.12.20)

① 網絡架構DioUtil

② 合并flutter_demos

v0.1.1 (2018.11.19)

① 新增啟動頁

② 新增引導頁

③ 修複banner無法點選bug,一些優化

v0.1.0 (2018.11.16)

① 堪稱完美的UI界面almost

② 支援國際化

③ 支援更換主題色

主界面

android flutter開發架構,一個完整的Flutter APP項目

主界面

引導頁

android flutter開發架構,一個完整的Flutter APP項目

引導頁

啟動頁

android flutter開發架構,一個完整的Flutter APP項目

啟動頁

閃屏廣告頁

android flutter開發架構,一個完整的Flutter APP項目

閃屏廣告頁

分類頁面

android flutter開發架構,一個完整的Flutter APP項目

分類頁面

Web頁輕按兩下Title滾動到頂部

android flutter開發架構,一個完整的Flutter APP項目

Web頁輕按兩下Title滾動到頂部

多語言

android flutter開發架構,一個完整的Flutter APP項目

多語言

設定主題色

android flutter開發架構,一個完整的Flutter APP項目

設定主題色