FlutterBan WanAndroid App.
Ben Xiang Mu Bao Han Qi Dong Ye ,Yin Dao Ye ,Zhu Ti Se ,Guo Ji Hua ,Bloc,RxDart. Yong You Jiao Hao De Xiang Mu Jie Gou ,Bi Jiao Gui Fan De Dai Ma . AppYong You Jing Zhi De UIJie Mian ,Tong Yi De Jiao Hu ,Ce Hua Tui Chu ,Lie Biao He WebJie Mian Jun Ti Gong Kuai Su Gun Dong Zhi Ding Bu Gong Neng .
You Guan Xiang Mu Zui Xin Dong Tai ,Ke Yi Guan Zhu AppNei Di Yi Tiao Hot ItemXin Xi .
A GitHub client app developed with Flutter, which supports Android iOS Web.
Web :Flutter Web.
Yun Xing Ben Xiang Mu Zhu Yi !!!
Support [] Flutter (Channel stable, v1.17.0).
You Yu Zai Guo Nei Fang Wen FlutterYou Shi Ke Neng Hui Shou Dao Xian Zhi ,cloneXiang Mu Hou ,Qing Wu Zhi Jie packages get,Jian Yi Yun Xing Ru Xia Mu Lu Xing :
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
flutter packages get
flutter run --release
v0.2.6 (2020.05.08)
Support [] Flutter (Channel stable, v1.17.0).
Ban Ben Sheng Ji Gong Neng (Jin Gong Can Kao )
- base_library FlutterJi Chu Zu Jian Ku ,Fang Bian Duo Ge Xiang Mu Gong Yong .
- login_demo Guan Yu AppQi Dong Shi ,Wei Deng Lu Tiao Deng Lu Ye ,Yi Deng Lu Jin Zhu Ye .
- flutter_gallery Ye Xu Shi GoogleGuan Fang Zui Hou Yi Ge Ban Ben De gallery(Jiu Ban ).
AppMu Lu Jie Gou
- |--lib
- |-- blocs (blocXiang Guan )
- |-- common (Chang Yong Lei ,Li Ru Chang Liang Constant)
- |-- data (Wang Luo Shu Ju Ceng )
- |-- db (Shu Ju Ku )
- |-- demos (flutter demos)
- |-- event (Shi Jian Lei )
- |-- models (Shi Ti Lei )
- |-- res (Zi Yuan Wen Jian ,string,colors,dimens,styles)
- |-- ui (Jie Mian Xiang Guan page,dialog,widgets)
- |-- utils (Gong Ju Lei )
dataWang Luo Shu Ju Ceng
- |--data
- |-- api (urlZi Duan )
- |-- net (Dan Li DioUtil)
- |-- protocol (Qing Qiu Yu Fan Hui Shi Ti Lei )
- |-- repository (Jie Kou Qing Qiu &Jie Xi )
api
/// Shou Ye banner http://www.wanandroid.com/banner/json
static const String BANNER = "banner";
static const String USER_REGISTER = "user/register"; //Zhu Ce
static const String USER_LOGIN = "user/login"; //Deng Lu
static const String USER_LOGOUT = "user/logout"; //Tui Chu
// Pin Jie url
static String getPath({String path: '', int page, String resType: 'json'}) {
StringBuffer sb = new StringBuffer(path);
if (page != null) {
sb.write('/$page');
}
if (resType != null && resType.isNotEmpty) {
sb.write('/$resType');
}
return sb.toString();
}
}
Wang Luo Qing Qiu Gong Ju Lei DioUtil
DioUtil.openDebug();
// Pei Zhi Wang Luo Can Shu .
Options options = DioUtil.getDefOptions();
options.baseUrl = "http://www.wanandroid.com/";
HttpConfig config = new HttpConfig(options: options);
DioUtil().setConfig(config);
// Liang Chong Dan Li Qing Qiu Fang Shi .
DioUtil().request<List>(Method.get, "banner/json");
DioUtil.getInstance().request(Method.get, "banner/json");
//Shi Li
LoginReq req = new LoginReq('username', 'password');
DioUtil().request(Method.post, "user/login",data: req.toJson());
//Shi Li
FormData formData = new FormData.from({
"username": "username",
"password": "password",
});
DioUtil().requestR(Method.post, "user/login",data: rformData);
Qing Qiu Yu Fan Hui Shi Ti Lei protocol
String username;
String password;
LoginReq(this.username, this.password);
LoginReq.fromJson(Map<String, dynamic> json)
: username = json['username'],
password = json['password'];
Map<String, dynamic> toJson() => {
'username': username,
'password': password,
};
@override
String toString() {
StringBuffer sb = new StringBuffer('{');
sb.write("\"username\":\"$username\"");
sb.write(",\"password\":$password");
sb.write('}');
return sb.toString();
}
}
Jie Kou Qing Qiu &Jie Xi repository
Future<List<BannerModel>> getBanner() async {
BaseResp<List> baseResp = await DioUtil().request<List>(
Method.get, WanAndroidApi.getPath(path: WanAndroidApi.BANNER));
List<BannerModel> 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;
}
}
Zi Yuan Wen Jian res
- |--res
- |-- colors.dart
- |-- dimens.dart
- |-- strings.dart
- |-- styles.dart
colors.dart
static const Color app_main = Color(0xFF666666);
static const Color text_dark = Color(0xFF333333);
static const Color text_normal = Color(0xFF666666);
static const Color text_gray = Color(0xFF999999);
}
dimens.dart
static const double font_sp12 = 12;
static const double font_sp14 = 14;
static const double font_sp16 = 16;
static const double gap_dp5 = 5;
static const double gap_dp10 = 10;
}
strings.dart
static const String titleHome = 'title_home';
}
Map<String, Map<String, Map<String, String>>> localizedValues = {
'en': {
'US': {
Ids.titleHome: 'Home',
}
},
'zh': {
'CN': {
Ids.titleHome: 'Zhu Ye ',
},
'HK': {
Ids.titleHome: 'Zhu Ye ',
},
'TW': {
Ids.titleHome: 'Zhu Ye ',
}
}
};
styles.dart
static TextStyle listTitle = TextStyle(
fontSize: Dimens.font_sp16,
color: Colours.text_dark,
fontWeight: FontWeight.bold,
);
static TextStyle listContent = TextStyle(
fontSize: Dimens.font_sp14,
color: Colours.text_normal,
);
static TextStyle listExtra = TextStyle(
fontSize: Dimens.font_sp12,
color: Colours.text_gray,
);
}
// Jian Ge
class Gaps {
// Shui Ping Jian Ge
static Widget hGap5 = new SizedBox(width: Dimens.gap_dp5);
static Widget hGap10 = new SizedBox(width: Dimens.gap_dp10);
// Chui Zhi Jian Ge
static Widget vGap5 = new SizedBox(height: Dimens.gap_dp5);
static Widget vGap10 = new SizedBox(height: Dimens.gap_dp10);
}
Flutter Guo Ji Hua Xiang Guan fluintl
fluintlShi Yi Ge Wei Ying Yong Ti Gong Guo Ji Hua De Ku ,Ke Kuai Su Ji Cheng Shi Xian Ying Yong Duo Yu Yan . Gai Ku Feng Zhuang Liao Yi Ge Guo Ji Hua Zhi Chi Lei ,Tong Guo Ti Gong Tong Yi Fang Fa getString(id)Huo Qu Zi Fu Chuan .
setLocalizedValues(localizedValues); //Pei Zhi Duo Yu Yan Zi Yuan
// Zai MaterialAppZhi Ding localizationsDelegatesHe supportedLocales
MaterialApp(
home: MyHomePage(),
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
CustomLocalizations.delegate //She Zhi Ben Di Hua Dai Li
],
supportedLocales: CustomLocalizations.supportedLocales,//She Zhi Zhi Chi Ben Di Hua Yu Yan Ji He
);
// Zi Fu Chuan Huo Qu
IntlUtil.getString(context, Ids.titleHome);
CustomLocalizations.of(context).getString(StringIds.titleHome);
// Zhi Chi Fu Yong . Ti Huan Zi Fu Chuan Ge Shi Yao Qiu :'%\${index}\$s' ,{index} Di Ji Ge Can Shu ,Cong 0Kai Shi .
Ids.click_times: '%\$0\$sDian Ji Liao %\$1\$sCi ',
IntlUtil.getString(context, Ids.click_times, params: ['Tom', '$_counter'])
// print: TomDian Ji Liao 0Ci
Flutter Ping Mu Gua Pei ScreenUtil
Fang An Yi , Bu Yi Lai context
// Ru Guo She Ji Gao Chi Cun Mo Ren Pei Zhi Yi Zhi ,Wu Xu Gai She Zhi . Pei Zhi She Ji Gao Chi Cun Mo Ren 360.0 / 640.0 / 3.0
setDesignWHD(_designW,_designH,_designD);
// Bu Zou 2
// Zai MainPageState build Diao Yong MediaQuery.of(context)
class MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
// Zai MainPageState build Diao Yong MediaQuery.of(context)
MediaQuery.of(context);
return new Scaffold(
appBar: new AppBar(),
);
}
}
// Bu Zou 3
ScreenUtil.getInstance().screenWidth
ScreenUtil.getInstance().screenHeight
//Ping Mu Gua Pei Xiang Guan
ScreenUtil.getInstance().getWidth(size); //Fan Hui Gen Ju Ping Mu Kuan Gua Pei Hou Chi Cun (Dan Wei dp or pt)
ScreenUtil.getInstance().getHeight(size); //Fan Hui Gen Ju Ping Mu Gao Gua Pei Hou Chi Cun (Dan Wei dp or pt)
ScreenUtil.getInstance().getWidthPx(sizePx); //sizePx Dan Wei px
ScreenUtil.getInstance().getHeightPx(sizePx); //sizePx Dan Wei px
ScreenUtil.getInstance().getSp(fontSize); //Fan Hui Gen Ju Ping Mu Kuan Gua Pei Hou Zi Ti Chi Cun
double adapterSize = ScreenUtil.getInstance().getAdapterSize(100);
Fang An Er , Yi Lai context
setDesignWHD(_designW,_designH,_designD);
ScreenUtil.getScreenW(context); //Ping Mu Kuan
ScreenUtil.getScreenH(context); //Ping Mu Gao
//Ping Mu Gua Pei Xiang Guan
ScreenUtil.getScaleW(context, size); //Fan Hui Gen Ju Ping Mu Kuan Gua Pei Hou Chi Cun (Dan Wei dp or pt)
ScreenUtil.getScaleH(context, size); //Fan Hui Gen Ju Ping Mu Gao Gua Pei Hou Chi Cun (Dan Wei dp or pt)
ScreenUtil.getScaleSp(context, size) ;//Fan Hui Gen Ju Ping Mu Kuan Gua Pei Hou Zi Ti Chi Cun
double adapterSize = ScreenUtil.getAdapterSizeCtx(context, 100)
Flutter Shu Ju Cun Chu SpUtil
Dan Li "Tong Bu " SharedPreferences Gong Ju Lei .
Zhi Chi getHuo Qu Mo Ren Can Shu , Zhi Chi Cun Chu Shi Ti Dui Xiang , Zhi Chi Cun Chu Shi Ti Dui Xiang Shu Zu .
await SpUtil.getInstance();
SpUtil.getString('key', defValue: '');
SpUtil.getInt('key', defValue: 0);
/// save object example.
/// Cun Chu Shi Ti Dui Xiang Shi Li .
City city = new City();
city.name = "Cheng Du Shi ";
SpUtil.putObject("loc_city", city);
City hisCity = SpUtil.getObj("loc_city", (v) => City.fromJson(v));
print("thll Str: " + (hisCity == null ? "null" : hisCity.toString()));
/// save object list example.
/// Cun Chu Shi Ti Dui Xiang ListShi Li .
List<City> list = new List();
list.add(new City(name: "Cheng Du Shi "));
list.add(new City(name: "Bei Jing Shi "));
SpUtil.putObjectList("loc_city_list", list);
List<City> _cityList = SpUtil.getObjList("loc_city_list", (v) => City.fromJson(v));
print("thll List: " + (_cityList == null ? "null" : _cityList.toString()));
Flutter Demos
- |--demos
- |-- city_select_page.dart Cheng Shi Lie Biao (Suo Yin &Xuan Ting )Shi Li
- |-- date_page.dart Ri Qi Ge Shi Hua Shi Li
- |-- image_size_page.dart Huo Qu Tu Pian Chi Cun Shi Li
- |-- money_page.dart Jin E (Yuan Zhuan Fen /Fen Zhuan Yuan )Shi Li
- |-- pinyin_page.dart Yi Zi Zhuan Pin Yin Shi Li
- |-- regex_page.dart Zheng Ze Gong Ju Lei Shi Li
- |-- round_portrait_page.dart Yuan Xing Yuan Jiao Tou Xiang Shi Li
- |-- timeline_page.dart Shi Jian Zhou Shi Li
- |-- timer_page.dart Dao Ji Shi /Ding Shi Ren Wu Shi Li
- |-- widget_page.dart Huo Qu WidgetChi Cun /Ping Mu Zuo Biao Shi Li
Screenshots
Jie Tu Wu Fa Cha Kan ?
Jue Jin Di Zhi
Jian Shu Di Zhi
| Zhu Jie Mian | Qi Dong Ye | Ce Hua Back |
|---|---|---|
| Kuai Su Gun Dong Dao Ding Bu | Fen Lei Ye Mian | Guo Ji Hua |
| Zhu Ti Se | Shan Ping Yan Gao Ye | Yin Dao Ye |
Thanks
1 Gan Xie Hong Yang Da Lao Ti Gong De Kai Yuan api
2 Jie Mian Can Kao gitme
3 Github Trending Api
4 Streams-Block-Reactive-Programming-in-Flutter
Xiang Mu Wen Ti Hui Zong
Q1:FlutterGuo Ji Hua Xi Tong Qie Huan iOSBu Sheng Xiao Wen Ti ?
A1:Zai XcodeXiang Mu LocalizationsXia Tian Jia Zhi Chi Yu Yan Ji Ke ,Yuan Wen .
App
Apk:flutter_wanandroid.apk
iOS:Qing Zi Xing cloneXiang Mu Dai Ma Yun Xing .
Guan Yu Zuo Zhe
GitHub : Sky24n
Jian Shu : Sky24n
Jue Jin : Sky24n
Email : 863764940@qq.com
A GitHub client app developed with Flutter, which supports Android iOS Web.
Web :Flutter Web.