├── README.md
├── android
├── app
│ ├── build.gradle
│ ├── release
│ │ ├── app-release.apk
│ │ └── output.json
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── wx
│ │ │ │ └── mung_flutter
│ │ │ │ └── MainActivity.java
│ │ └── res
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── icon_splash.png
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── keystore
│ └── keystore.jks
└── settings.gradle
├── ios
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-120.png
│ │ ├── Icon-121.png
│ │ ├── Icon-180.png
│ │ ├── Icon-40.png
│ │ ├── Icon-58.png
│ │ ├── Icon-60.png
│ │ ├── Icon-80.png
│ │ └── Icon-87.png
│ ├── Contents.json
│ └── LaunchImage.launchimage
│ │ ├── Contents.json
│ │ ├── icon_spash1125-2436.png
│ │ ├── icon_spash1242-2209 2.png
│ │ ├── icon_spash1242-2209.png
│ │ ├── icon_spash1242-2210.png
│ │ ├── icon_spash640-1136.png
│ │ ├── icon_spash640-960.png
│ │ └── icon_spash750-1334.png
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── WorkspaceSettings.xcsettings
└── Runner
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-120.png
│ │ ├── Icon-121.png
│ │ ├── Icon-180.png
│ │ ├── Icon-40.png
│ │ ├── Icon-58.png
│ │ ├── Icon-60.png
│ │ ├── Icon-80.png
│ │ └── Icon-87.png
│ ├── Contents.json
│ └── LaunchImage.launchimage
│ │ ├── Contents.json
│ │ ├── icon_spash1242-2208 2.png
│ │ ├── icon_spash1242-2208.png
│ │ ├── icon_spash1242-2209.png
│ │ ├── icon_spash640-1136.png
│ │ ├── icon_spash640-960.png
│ │ ├── icon_spash750-1334.png
│ │ └── icon_spash750-1335.png
│ ├── Info.plist
│ ├── main.m
│ └── splash.png
├── lib
├── bloc
│ └── theme_bloc.dart
├── data
│ ├── const
│ │ └── constant.dart
│ ├── img
│ │ └── iconfont.ttf
│ └── net
│ │ ├── http_base.dart
│ │ └── http_movie.dart
├── main.dart
├── model
│ ├── detail_base_model.dart
│ ├── discuss_model.dart
│ ├── hot_model.dart
│ ├── list_model.dart
│ ├── loading_state.dart
│ └── stills_model.dart
├── pages
│ ├── detail_page.dart
│ ├── list_page.dart
│ ├── main_page.dart
│ ├── photo_detail_page.dart
│ ├── search_page.dart
│ └── theme_page.dart
├── style
│ ├── base_style.dart
│ └── colors.dart
├── utils
│ ├── route_util.dart
│ ├── sp_util.dart
│ └── ui_util.dart
└── widget
│ ├── loading_footer_widget.dart
│ └── loading_widget.dart
├── pubspec.lock
├── pubspec.yaml
└── test
└── widget_test.dart
/README.md:
--------------------------------------------------------------------------------
1 | ## [React版Mung](https://github.com/mochixuan/Mung-React)
2 | ## [React-Native版Mung](https://github.com/mochixuan/Mung)
3 | ## [Flutter版Mung](https://github.com/mochixuan/Mung-Flutter)
4 |
5 | # Mung-Flutter
6 |
7 | ### 1. Mung-Flutter:是一个基于Flutter编写,使用豆瓣开源API开发的一个项目。
8 |
9 | 
10 |
11 | ### 2. 功能概述
12 |
13 | - **启动页**:添加了启动页主要是让最开始进入时不至于显示白屏。
14 | - **数据保存** :支持断网加载缓存数据。
15 | - **主题换肤** :现在只支持切换主题颜色,本项目没几张图片。
16 | - **查看电影详情** :支持查看电影详情包括评论。
17 | - **一键搜索**: 支持标签和语句查找相关的电影。
18 | - **查看剧照**: 支持缩放图片。
19 | - **适配iphonx及以上**:适配了IphoneX及以上的头部和底部的安全区域问题。
20 |
21 | ### 3.1 动态演示(Android版)
22 | 
23 |
24 | ### 3.2 运行结果图
25 |
26 | 
27 | 
28 |
29 | ### 4. 使用到的框架
30 |
31 | - **flutter_swiper** :Banner栏图片轮播的效果。
32 | - **rxdart** :和Rxjava、RxJs、RxSwift差不多,这里主要用它的BehaviorSubject配合Bloc模式实现状态管理。
33 | - **shared_preferences** :简单的数据保存,比较细致的数据存储如列表等还是建议使用数据库。
34 | - **dio** :实现网络请求,一个非常不错的三方网络包,功能非常多,如果刚入门或者项目比较急建议使用这个。
35 | - **flutter_spinkit** : 加载时显示的加载组件,挺不错,建议看下。
36 | - **photo_view**: 图片缩放组件,因为安卓里的photoview正好选了,使用了一个简单的功能,暂时没发现问题。
37 |
38 | ### 5. 项目全局状态管理
39 | 现在据我了解的比较成熟的状态管理有。
40 |
41 | - 1. InheritedWidget(自带的其他三方好像都是基于它开发,只是封装了下,更加方便)
42 | - 2. scoped_model: 不错。
43 | - 3. redux和前端的redux是一个意思,但我写过demo用过,个人愚见:差远了。
44 | - 4. Bloc:(Business Logic Component)paolo soares 和 cong hui 在2018年Google dartconf上提出的,它其实是一个模式InheritedWidget+stream配合使用。
45 |
46 | 本项目使用的就是Bloc。
47 |
48 | ### 6. 思考
49 | 这个开发的第一个flutter,都有这个项目来说该用的主流框架都恰到好处的用了,因为项目太小,适合入门和快速开发。对于flutter个人感觉。
50 |
51 | - 1. 上个月看了一个消息Flutter团队好像在今年不会推出热更新功能,好像是基于安全和可实现性考虑,这里要说下flutter编译模式: 开发阶段使用的是 Kernel Snapshot 模式编译,生产模式使用AOT。
52 | - 2. flutter上月好像推出了web端和桌面的适配,这个应该对flutter发展有很大帮助。
53 | - 3. 我之前一年多一直使用React-Native开发项目,感觉Flutter的组件比RN多,而且多很多,组件兼容性更好,而且更精致,但是嵌套的模式真心丑,而且巨乱,我开发时把组件拆分成多个函数这样会让界面清新一点。
54 | - 4. 状态管理,暂时还没有一个绝对好的状态管理功能,现在有些项目使用bloc或者bloc+redux,但个人认为不久的将来会有一个好的状态管理功能占据绝对的地址,想RN的redux、mobx一样。
55 | - 5. 组件生命周期函数很少,尤其是开发大型项目时,之前使用RN开发时就觉得RN比原生安卓生命周期少,自己还得去添加全局监听去管理生命周期,flutter就更少了。
56 | - 6. 性能,应该flutter,网上一大堆对比文章一番一大把,个人使用也明显感觉到flutter性能很好,这是现实原理的问题,尤其是列表,比fRN好很多,而且动画等也多,自定义组件还没看,不做评价。
57 | - 7. 社区,毫无疑问RN社区会比Flutter对于现在这个时间段来说,而且RN支持热更新对原生加(RN、Flutter)来说,RN也更站优势,三方组件来说RN已经很多了,开源项目比较多。
58 |
59 | ### 7. 提示
60 | 2019-5-12左右豆瓣把开源API关了,现在使用的别的开发者的地址,项目Baser_url是抽出来的后期可以自己改,现在项目使用的是https://douban.uieee.com/v2,可以正常运行。
61 |
62 | ### 8.下载地址
63 | - [安卓版](https://fir.im/mungflutter)
64 | - ios版(没有企业账号-😊)
65 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
26 |
27 | android {
28 | compileSdkVersion 28
29 |
30 | lintOptions {
31 | disable 'InvalidPackage'
32 | }
33 |
34 | defaultConfig {
35 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
36 | applicationId "com.wx.mung_flutter"
37 | minSdkVersion 16
38 | targetSdkVersion 28
39 | versionCode flutterVersionCode.toInteger()
40 | versionName flutterVersionName
41 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
42 | }
43 |
44 | buildTypes {
45 | release {
46 | // TODO: Add your own signing config for the release build.
47 | // Signing with the debug keys for now, so `flutter run --release` works.
48 | signingConfig signingConfigs.debug
49 | }
50 | }
51 | }
52 |
53 | flutter {
54 | source '../..'
55 | }
56 |
57 | dependencies {
58 | testImplementation 'junit:junit:4.12'
59 | androidTestImplementation 'com.android.support.test:runner:1.0.2'
60 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
61 | }
62 |
--------------------------------------------------------------------------------
/android/app/release/app-release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/android/app/release/app-release.apk
--------------------------------------------------------------------------------
/android/app/release/output.json:
--------------------------------------------------------------------------------
1 | [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
10 |
17 |
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/wx/mung_flutter/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.wx.mung_flutter;
2 |
3 | import android.os.Bundle;
4 | import io.flutter.app.FlutterActivity;
5 | import io.flutter.plugins.GeneratedPluginRegistrant;
6 |
7 | public class MainActivity extends FlutterActivity {
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | GeneratedPluginRegistrant.registerWith(this);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | -
8 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/icon_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/android/app/src/main/res/mipmap-xxhdpi/icon_splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.2.1'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
7 |
--------------------------------------------------------------------------------
/android/keystore/keystore.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/android/keystore/keystore.jks
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-40.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-60.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-58.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-87.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-80.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-120.png",
37 | "scale" : "3x"
38 | },
39 | {
40 | "size" : "60x60",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-121.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-180.png",
49 | "scale" : "3x"
50 | },
51 | {
52 | "idiom" : "ios-marketing",
53 | "size" : "1024x1024",
54 | "scale" : "1x"
55 | }
56 | ],
57 | "info" : {
58 | "version" : 1,
59 | "author" : "xcode"
60 | }
61 | }
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-120.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-121.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-121.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-180.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-40.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-58.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-60.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-80.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/AppIcon.appiconset/Icon-87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/AppIcon.appiconset/Icon-87.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "12.0",
8 | "subtype" : "2688h",
9 | "scale" : "3x"
10 | },
11 | {
12 | "orientation" : "portrait",
13 | "idiom" : "iphone",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "12.0",
16 | "subtype" : "1792h",
17 | "scale" : "2x"
18 | },
19 | {
20 | "orientation" : "portrait",
21 | "idiom" : "iphone",
22 | "extent" : "full-screen",
23 | "minimum-system-version" : "11.0",
24 | "subtype" : "2436h",
25 | "scale" : "3x"
26 | },
27 | {
28 | "orientation" : "portrait",
29 | "idiom" : "iphone",
30 | "extent" : "full-screen",
31 | "minimum-system-version" : "8.0",
32 | "subtype" : "736h",
33 | "scale" : "3x"
34 | },
35 | {
36 | "orientation" : "portrait",
37 | "idiom" : "iphone",
38 | "extent" : "full-screen",
39 | "minimum-system-version" : "8.0",
40 | "subtype" : "667h",
41 | "scale" : "2x"
42 | },
43 | {
44 | "orientation" : "portrait",
45 | "idiom" : "iphone",
46 | "filename" : "icon_spash640-960.png",
47 | "extent" : "full-screen",
48 | "minimum-system-version" : "7.0",
49 | "scale" : "2x"
50 | },
51 | {
52 | "extent" : "full-screen",
53 | "idiom" : "iphone",
54 | "subtype" : "retina4",
55 | "filename" : "icon_spash640-1136.png",
56 | "minimum-system-version" : "7.0",
57 | "orientation" : "portrait",
58 | "scale" : "2x"
59 | },
60 | {
61 | "extent" : "full-screen",
62 | "idiom" : "iphone",
63 | "subtype" : "2688h",
64 | "filename" : "icon_spash1242-2210.png",
65 | "minimum-system-version" : "12.0",
66 | "orientation" : "portrait",
67 | "unassigned" : true,
68 | "scale" : "3x"
69 | },
70 | {
71 | "extent" : "full-screen",
72 | "idiom" : "iphone",
73 | "subtype" : "1792h",
74 | "filename" : "icon_spash1242-2209 2.png",
75 | "minimum-system-version" : "12.0",
76 | "orientation" : "portrait",
77 | "unassigned" : true,
78 | "scale" : "2x"
79 | },
80 | {
81 | "extent" : "full-screen",
82 | "idiom" : "iphone",
83 | "subtype" : "2436h",
84 | "filename" : "icon_spash1125-2436.png",
85 | "minimum-system-version" : "11.0",
86 | "orientation" : "portrait",
87 | "unassigned" : true,
88 | "scale" : "3x"
89 | },
90 | {
91 | "extent" : "full-screen",
92 | "idiom" : "iphone",
93 | "subtype" : "736h",
94 | "filename" : "icon_spash1242-2209.png",
95 | "minimum-system-version" : "8.0",
96 | "orientation" : "portrait",
97 | "unassigned" : true,
98 | "scale" : "3x"
99 | },
100 | {
101 | "extent" : "full-screen",
102 | "idiom" : "iphone",
103 | "subtype" : "667h",
104 | "filename" : "icon_spash750-1334.png",
105 | "minimum-system-version" : "8.0",
106 | "orientation" : "portrait",
107 | "unassigned" : true,
108 | "scale" : "2x"
109 | }
110 | ],
111 | "info" : {
112 | "version" : 1,
113 | "author" : "xcode"
114 | }
115 | }
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1125-2436.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1125-2436.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2209 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2209 2.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2209.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2209.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2210.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2210.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash640-1136.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash640-1136.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash640-960.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash640-960.png
--------------------------------------------------------------------------------
/ios/Images.xcassets/LaunchImage.launchimage/icon_spash750-1334.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Images.xcassets/LaunchImage.launchimage/icon_spash750-1334.png
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | # platform :ios, '9.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def parse_KV_file(file, separator='=')
14 | file_abs_path = File.expand_path(file)
15 | if !File.exists? file_abs_path
16 | return [];
17 | end
18 | pods_ary = []
19 | skip_line_start_symbols = ["#", "/"]
20 | File.foreach(file_abs_path) { |line|
21 | next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
22 | plugin = line.split(pattern=separator)
23 | if plugin.length == 2
24 | podname = plugin[0].strip()
25 | path = plugin[1].strip()
26 | podpath = File.expand_path("#{path}", file_abs_path)
27 | pods_ary.push({:name => podname, :path => podpath});
28 | else
29 | puts "Invalid plugin specification: #{line}"
30 | end
31 | }
32 | return pods_ary
33 | end
34 |
35 | target 'Runner' do
36 | # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
37 | # referring to absolute paths on developers' machines.
38 | system('rm -rf .symlinks')
39 | system('mkdir -p .symlinks/plugins')
40 |
41 | # Flutter Pods
42 | generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
43 | if generated_xcode_build_settings.empty?
44 | puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
45 | end
46 | generated_xcode_build_settings.map { |p|
47 | if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
48 | symlink = File.join('.symlinks', 'flutter')
49 | File.symlink(File.dirname(p[:path]), symlink)
50 | pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
51 | end
52 | }
53 |
54 | # Plugin Pods
55 | plugin_pods = parse_KV_file('../.flutter-plugins')
56 | plugin_pods.map { |p|
57 | symlink = File.join('.symlinks', 'plugins', p[:name])
58 | File.symlink(p[:path], symlink)
59 | pod p[:name], :path => File.join(symlink, 'ios')
60 | }
61 | end
62 |
63 | post_install do |installer|
64 | installer.pods_project.targets.each do |target|
65 | target.build_configurations.each do |config|
66 | config.build_settings['ENABLE_BITCODE'] = 'NO'
67 | end
68 | end
69 | end
70 |
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Flutter (1.0.0)
3 | - shared_preferences (0.0.1):
4 | - Flutter
5 |
6 | DEPENDENCIES:
7 | - Flutter (from `.symlinks/flutter/ios`)
8 | - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
9 |
10 | EXTERNAL SOURCES:
11 | Flutter:
12 | :path: ".symlinks/flutter/ios"
13 | shared_preferences:
14 | :path: ".symlinks/plugins/shared_preferences/ios"
15 |
16 | SPEC CHECKSUMS:
17 | Flutter: 58dd7d1b27887414a370fcccb9e645c08ffd7a6a
18 | shared_preferences: 1feebfa37bb57264736e16865e7ffae7fc99b523
19 |
20 | PODFILE CHECKSUM: aff02bfeed411c636180d6812254b2daeea14d09
21 |
22 | COCOAPODS: 1.6.1
23 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 10CD00252285721500F9FE78 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 10CD00242285721500F9FE78 /* Images.xcassets */; };
11 | 10FB784B228A46130081E413 /* splash.png in Resources */ = {isa = PBXBuildFile; fileRef = 10FB784A228A46130081E413 /* splash.png */; };
12 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
13 | 2EA3F4F1669A4C6DE181EECA /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A97C91E8EA998E1D2B44CF33 /* libPods-Runner.a */; };
14 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
15 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
16 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
17 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
18 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
19 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
20 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
21 | 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
22 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
23 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
24 | /* End PBXBuildFile section */
25 |
26 | /* Begin PBXCopyFilesBuildPhase section */
27 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
28 | isa = PBXCopyFilesBuildPhase;
29 | buildActionMask = 2147483647;
30 | dstPath = "";
31 | dstSubfolderSpec = 10;
32 | files = (
33 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
34 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
35 | );
36 | name = "Embed Frameworks";
37 | runOnlyForDeploymentPostprocessing = 0;
38 | };
39 | /* End PBXCopyFilesBuildPhase section */
40 |
41 | /* Begin PBXFileReference section */
42 | 10CD00242285721500F9FE78 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
43 | 10FB784A228A46130081E413 /* splash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splash.png; sourceTree = ""; };
44 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
45 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
46 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
47 | 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; };
48 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
49 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
50 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
51 | 7B7F968EFD88A7BA0BB0B71C /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
52 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
53 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
54 | 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; };
55 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
56 | 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
57 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
58 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
59 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
60 | A4A17D4EB10F5A6917993FE0 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
61 | A97C91E8EA998E1D2B44CF33 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
62 | B327EBD572D78911CC2A7489 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
63 | /* End PBXFileReference section */
64 |
65 | /* Begin PBXFrameworksBuildPhase section */
66 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
67 | isa = PBXFrameworksBuildPhase;
68 | buildActionMask = 2147483647;
69 | files = (
70 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
71 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
72 | 2EA3F4F1669A4C6DE181EECA /* libPods-Runner.a in Frameworks */,
73 | );
74 | runOnlyForDeploymentPostprocessing = 0;
75 | };
76 | /* End PBXFrameworksBuildPhase section */
77 |
78 | /* Begin PBXGroup section */
79 | 39E61A4217410A44DCAE04E5 /* Pods */ = {
80 | isa = PBXGroup;
81 | children = (
82 | A4A17D4EB10F5A6917993FE0 /* Pods-Runner.debug.xcconfig */,
83 | 7B7F968EFD88A7BA0BB0B71C /* Pods-Runner.release.xcconfig */,
84 | B327EBD572D78911CC2A7489 /* Pods-Runner.profile.xcconfig */,
85 | );
86 | path = Pods;
87 | sourceTree = "";
88 | };
89 | 9740EEB11CF90186004384FC /* Flutter */ = {
90 | isa = PBXGroup;
91 | children = (
92 | 3B80C3931E831B6300D905FE /* App.framework */,
93 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
94 | 9740EEBA1CF902C7004384FC /* Flutter.framework */,
95 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
96 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
97 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
98 | );
99 | name = Flutter;
100 | sourceTree = "";
101 | };
102 | 97C146E51CF9000F007C117D = {
103 | isa = PBXGroup;
104 | children = (
105 | 9740EEB11CF90186004384FC /* Flutter */,
106 | 97C146F01CF9000F007C117D /* Runner */,
107 | 97C146EF1CF9000F007C117D /* Products */,
108 | 39E61A4217410A44DCAE04E5 /* Pods */,
109 | DC64528F8F0562B46AAB98DB /* Frameworks */,
110 | );
111 | sourceTree = "";
112 | };
113 | 97C146EF1CF9000F007C117D /* Products */ = {
114 | isa = PBXGroup;
115 | children = (
116 | 97C146EE1CF9000F007C117D /* Runner.app */,
117 | );
118 | name = Products;
119 | sourceTree = "";
120 | };
121 | 97C146F01CF9000F007C117D /* Runner */ = {
122 | isa = PBXGroup;
123 | children = (
124 | 10FB784A228A46130081E413 /* splash.png */,
125 | 10CD00242285721500F9FE78 /* Images.xcassets */,
126 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
127 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
128 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
129 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
130 | 97C147021CF9000F007C117D /* Info.plist */,
131 | 97C146F11CF9000F007C117D /* Supporting Files */,
132 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
133 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
134 | );
135 | path = Runner;
136 | sourceTree = "";
137 | };
138 | 97C146F11CF9000F007C117D /* Supporting Files */ = {
139 | isa = PBXGroup;
140 | children = (
141 | 97C146F21CF9000F007C117D /* main.m */,
142 | );
143 | name = "Supporting Files";
144 | sourceTree = "";
145 | };
146 | DC64528F8F0562B46AAB98DB /* Frameworks */ = {
147 | isa = PBXGroup;
148 | children = (
149 | A97C91E8EA998E1D2B44CF33 /* libPods-Runner.a */,
150 | );
151 | name = Frameworks;
152 | sourceTree = "";
153 | };
154 | /* End PBXGroup section */
155 |
156 | /* Begin PBXNativeTarget section */
157 | 97C146ED1CF9000F007C117D /* Runner */ = {
158 | isa = PBXNativeTarget;
159 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
160 | buildPhases = (
161 | 7A937251D20D8494510A7C25 /* [CP] Check Pods Manifest.lock */,
162 | 9740EEB61CF901F6004384FC /* Run Script */,
163 | 97C146EA1CF9000F007C117D /* Sources */,
164 | 97C146EB1CF9000F007C117D /* Frameworks */,
165 | 97C146EC1CF9000F007C117D /* Resources */,
166 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
167 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
168 | B81A7BBF265A39B8BECB93BF /* [CP] Embed Pods Frameworks */,
169 | );
170 | buildRules = (
171 | );
172 | dependencies = (
173 | );
174 | name = Runner;
175 | productName = Runner;
176 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
177 | productType = "com.apple.product-type.application";
178 | };
179 | /* End PBXNativeTarget section */
180 |
181 | /* Begin PBXProject section */
182 | 97C146E61CF9000F007C117D /* Project object */ = {
183 | isa = PBXProject;
184 | attributes = {
185 | LastUpgradeCheck = 0910;
186 | ORGANIZATIONNAME = "The Chromium Authors";
187 | TargetAttributes = {
188 | 97C146ED1CF9000F007C117D = {
189 | CreatedOnToolsVersion = 7.3.1;
190 | DevelopmentTeam = SSA23VCT7A;
191 | };
192 | };
193 | };
194 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
195 | compatibilityVersion = "Xcode 3.2";
196 | developmentRegion = English;
197 | hasScannedForEncodings = 0;
198 | knownRegions = (
199 | en,
200 | Base,
201 | );
202 | mainGroup = 97C146E51CF9000F007C117D;
203 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
204 | projectDirPath = "";
205 | projectRoot = "";
206 | targets = (
207 | 97C146ED1CF9000F007C117D /* Runner */,
208 | );
209 | };
210 | /* End PBXProject section */
211 |
212 | /* Begin PBXResourcesBuildPhase section */
213 | 97C146EC1CF9000F007C117D /* Resources */ = {
214 | isa = PBXResourcesBuildPhase;
215 | buildActionMask = 2147483647;
216 | files = (
217 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
218 | 10CD00252285721500F9FE78 /* Images.xcassets in Resources */,
219 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
220 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
221 | 10FB784B228A46130081E413 /* splash.png in Resources */,
222 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
223 | );
224 | runOnlyForDeploymentPostprocessing = 0;
225 | };
226 | /* End PBXResourcesBuildPhase section */
227 |
228 | /* Begin PBXShellScriptBuildPhase section */
229 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
230 | isa = PBXShellScriptBuildPhase;
231 | buildActionMask = 2147483647;
232 | files = (
233 | );
234 | inputPaths = (
235 | );
236 | name = "Thin Binary";
237 | outputPaths = (
238 | );
239 | runOnlyForDeploymentPostprocessing = 0;
240 | shellPath = /bin/sh;
241 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
242 | };
243 | 7A937251D20D8494510A7C25 /* [CP] Check Pods Manifest.lock */ = {
244 | isa = PBXShellScriptBuildPhase;
245 | buildActionMask = 2147483647;
246 | files = (
247 | );
248 | inputFileListPaths = (
249 | );
250 | inputPaths = (
251 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
252 | "${PODS_ROOT}/Manifest.lock",
253 | );
254 | name = "[CP] Check Pods Manifest.lock";
255 | outputFileListPaths = (
256 | );
257 | outputPaths = (
258 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
259 | );
260 | runOnlyForDeploymentPostprocessing = 0;
261 | shellPath = /bin/sh;
262 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
263 | showEnvVarsInLog = 0;
264 | };
265 | 9740EEB61CF901F6004384FC /* Run Script */ = {
266 | isa = PBXShellScriptBuildPhase;
267 | buildActionMask = 2147483647;
268 | files = (
269 | );
270 | inputPaths = (
271 | );
272 | name = "Run Script";
273 | outputPaths = (
274 | );
275 | runOnlyForDeploymentPostprocessing = 0;
276 | shellPath = /bin/sh;
277 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
278 | };
279 | B81A7BBF265A39B8BECB93BF /* [CP] Embed Pods Frameworks */ = {
280 | isa = PBXShellScriptBuildPhase;
281 | buildActionMask = 2147483647;
282 | files = (
283 | );
284 | inputFileListPaths = (
285 | );
286 | inputPaths = (
287 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
288 | "${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework",
289 | );
290 | name = "[CP] Embed Pods Frameworks";
291 | outputFileListPaths = (
292 | );
293 | outputPaths = (
294 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
295 | );
296 | runOnlyForDeploymentPostprocessing = 0;
297 | shellPath = /bin/sh;
298 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
299 | showEnvVarsInLog = 0;
300 | };
301 | /* End PBXShellScriptBuildPhase section */
302 |
303 | /* Begin PBXSourcesBuildPhase section */
304 | 97C146EA1CF9000F007C117D /* Sources */ = {
305 | isa = PBXSourcesBuildPhase;
306 | buildActionMask = 2147483647;
307 | files = (
308 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */,
309 | 97C146F31CF9000F007C117D /* main.m in Sources */,
310 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
311 | );
312 | runOnlyForDeploymentPostprocessing = 0;
313 | };
314 | /* End PBXSourcesBuildPhase section */
315 |
316 | /* Begin PBXVariantGroup section */
317 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
318 | isa = PBXVariantGroup;
319 | children = (
320 | 97C146FB1CF9000F007C117D /* Base */,
321 | );
322 | name = Main.storyboard;
323 | sourceTree = "";
324 | };
325 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
326 | isa = PBXVariantGroup;
327 | children = (
328 | 97C147001CF9000F007C117D /* Base */,
329 | );
330 | name = LaunchScreen.storyboard;
331 | sourceTree = "";
332 | };
333 | /* End PBXVariantGroup section */
334 |
335 | /* Begin XCBuildConfiguration section */
336 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
337 | isa = XCBuildConfiguration;
338 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
339 | buildSettings = {
340 | ALWAYS_SEARCH_USER_PATHS = NO;
341 | CLANG_ANALYZER_NONNULL = YES;
342 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
343 | CLANG_CXX_LIBRARY = "libc++";
344 | CLANG_ENABLE_MODULES = YES;
345 | CLANG_ENABLE_OBJC_ARC = YES;
346 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
347 | CLANG_WARN_BOOL_CONVERSION = YES;
348 | CLANG_WARN_COMMA = YES;
349 | CLANG_WARN_CONSTANT_CONVERSION = YES;
350 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
351 | CLANG_WARN_EMPTY_BODY = YES;
352 | CLANG_WARN_ENUM_CONVERSION = YES;
353 | CLANG_WARN_INFINITE_RECURSION = YES;
354 | CLANG_WARN_INT_CONVERSION = YES;
355 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
356 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
357 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
358 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
359 | CLANG_WARN_STRICT_PROTOTYPES = YES;
360 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
361 | CLANG_WARN_UNREACHABLE_CODE = YES;
362 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
363 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
364 | COPY_PHASE_STRIP = NO;
365 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
366 | ENABLE_NS_ASSERTIONS = NO;
367 | ENABLE_STRICT_OBJC_MSGSEND = YES;
368 | GCC_C_LANGUAGE_STANDARD = gnu99;
369 | GCC_NO_COMMON_BLOCKS = YES;
370 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
371 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
372 | GCC_WARN_UNDECLARED_SELECTOR = YES;
373 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
374 | GCC_WARN_UNUSED_FUNCTION = YES;
375 | GCC_WARN_UNUSED_VARIABLE = YES;
376 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
377 | MTL_ENABLE_DEBUG_INFO = NO;
378 | SDKROOT = iphoneos;
379 | TARGETED_DEVICE_FAMILY = "1,2";
380 | VALIDATE_PRODUCT = YES;
381 | };
382 | name = Profile;
383 | };
384 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
385 | isa = XCBuildConfiguration;
386 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
387 | buildSettings = {
388 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
389 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
390 | DEVELOPMENT_TEAM = SSA23VCT7A;
391 | ENABLE_BITCODE = NO;
392 | FRAMEWORK_SEARCH_PATHS = (
393 | "$(inherited)",
394 | "$(PROJECT_DIR)/Flutter",
395 | );
396 | INFOPLIST_FILE = Runner/Info.plist;
397 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
398 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
399 | LIBRARY_SEARCH_PATHS = (
400 | "$(inherited)",
401 | "$(PROJECT_DIR)/Flutter",
402 | );
403 | PRODUCT_BUNDLE_IDENTIFIER = com.wx.mungFlutter;
404 | PRODUCT_NAME = "$(TARGET_NAME)";
405 | TARGETED_DEVICE_FAMILY = "1,2";
406 | VERSIONING_SYSTEM = "apple-generic";
407 | };
408 | name = Profile;
409 | };
410 | 97C147031CF9000F007C117D /* Debug */ = {
411 | isa = XCBuildConfiguration;
412 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
413 | buildSettings = {
414 | ALWAYS_SEARCH_USER_PATHS = NO;
415 | CLANG_ANALYZER_NONNULL = YES;
416 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
417 | CLANG_CXX_LIBRARY = "libc++";
418 | CLANG_ENABLE_MODULES = YES;
419 | CLANG_ENABLE_OBJC_ARC = YES;
420 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
421 | CLANG_WARN_BOOL_CONVERSION = YES;
422 | CLANG_WARN_COMMA = YES;
423 | CLANG_WARN_CONSTANT_CONVERSION = YES;
424 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
425 | CLANG_WARN_EMPTY_BODY = YES;
426 | CLANG_WARN_ENUM_CONVERSION = YES;
427 | CLANG_WARN_INFINITE_RECURSION = YES;
428 | CLANG_WARN_INT_CONVERSION = YES;
429 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
430 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
431 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
432 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
433 | CLANG_WARN_STRICT_PROTOTYPES = YES;
434 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
435 | CLANG_WARN_UNREACHABLE_CODE = YES;
436 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
437 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
438 | COPY_PHASE_STRIP = NO;
439 | DEBUG_INFORMATION_FORMAT = dwarf;
440 | ENABLE_STRICT_OBJC_MSGSEND = YES;
441 | ENABLE_TESTABILITY = YES;
442 | GCC_C_LANGUAGE_STANDARD = gnu99;
443 | GCC_DYNAMIC_NO_PIC = NO;
444 | GCC_NO_COMMON_BLOCKS = YES;
445 | GCC_OPTIMIZATION_LEVEL = 0;
446 | GCC_PREPROCESSOR_DEFINITIONS = (
447 | "DEBUG=1",
448 | "$(inherited)",
449 | );
450 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
451 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
452 | GCC_WARN_UNDECLARED_SELECTOR = YES;
453 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
454 | GCC_WARN_UNUSED_FUNCTION = YES;
455 | GCC_WARN_UNUSED_VARIABLE = YES;
456 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
457 | MTL_ENABLE_DEBUG_INFO = YES;
458 | ONLY_ACTIVE_ARCH = YES;
459 | SDKROOT = iphoneos;
460 | TARGETED_DEVICE_FAMILY = "1,2";
461 | };
462 | name = Debug;
463 | };
464 | 97C147041CF9000F007C117D /* Release */ = {
465 | isa = XCBuildConfiguration;
466 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
467 | buildSettings = {
468 | ALWAYS_SEARCH_USER_PATHS = NO;
469 | CLANG_ANALYZER_NONNULL = YES;
470 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
471 | CLANG_CXX_LIBRARY = "libc++";
472 | CLANG_ENABLE_MODULES = YES;
473 | CLANG_ENABLE_OBJC_ARC = YES;
474 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
475 | CLANG_WARN_BOOL_CONVERSION = YES;
476 | CLANG_WARN_COMMA = YES;
477 | CLANG_WARN_CONSTANT_CONVERSION = YES;
478 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
479 | CLANG_WARN_EMPTY_BODY = YES;
480 | CLANG_WARN_ENUM_CONVERSION = YES;
481 | CLANG_WARN_INFINITE_RECURSION = YES;
482 | CLANG_WARN_INT_CONVERSION = YES;
483 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
484 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
485 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
486 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
487 | CLANG_WARN_STRICT_PROTOTYPES = YES;
488 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
489 | CLANG_WARN_UNREACHABLE_CODE = YES;
490 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
491 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
492 | COPY_PHASE_STRIP = NO;
493 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
494 | ENABLE_NS_ASSERTIONS = NO;
495 | ENABLE_STRICT_OBJC_MSGSEND = YES;
496 | GCC_C_LANGUAGE_STANDARD = gnu99;
497 | GCC_NO_COMMON_BLOCKS = YES;
498 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
499 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
500 | GCC_WARN_UNDECLARED_SELECTOR = YES;
501 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
502 | GCC_WARN_UNUSED_FUNCTION = YES;
503 | GCC_WARN_UNUSED_VARIABLE = YES;
504 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
505 | MTL_ENABLE_DEBUG_INFO = NO;
506 | SDKROOT = iphoneos;
507 | TARGETED_DEVICE_FAMILY = "1,2";
508 | VALIDATE_PRODUCT = YES;
509 | };
510 | name = Release;
511 | };
512 | 97C147061CF9000F007C117D /* Debug */ = {
513 | isa = XCBuildConfiguration;
514 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
515 | buildSettings = {
516 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
517 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
518 | DEVELOPMENT_TEAM = SSA23VCT7A;
519 | ENABLE_BITCODE = NO;
520 | FRAMEWORK_SEARCH_PATHS = (
521 | "$(inherited)",
522 | "$(PROJECT_DIR)/Flutter",
523 | );
524 | INFOPLIST_FILE = Runner/Info.plist;
525 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
526 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
527 | LIBRARY_SEARCH_PATHS = (
528 | "$(inherited)",
529 | "$(PROJECT_DIR)/Flutter",
530 | );
531 | PRODUCT_BUNDLE_IDENTIFIER = com.wx.mungFlutter;
532 | PRODUCT_NAME = "$(TARGET_NAME)";
533 | TARGETED_DEVICE_FAMILY = "1,2";
534 | VERSIONING_SYSTEM = "apple-generic";
535 | };
536 | name = Debug;
537 | };
538 | 97C147071CF9000F007C117D /* Release */ = {
539 | isa = XCBuildConfiguration;
540 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
541 | buildSettings = {
542 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
543 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
544 | DEVELOPMENT_TEAM = SSA23VCT7A;
545 | ENABLE_BITCODE = NO;
546 | FRAMEWORK_SEARCH_PATHS = (
547 | "$(inherited)",
548 | "$(PROJECT_DIR)/Flutter",
549 | );
550 | INFOPLIST_FILE = Runner/Info.plist;
551 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
552 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
553 | LIBRARY_SEARCH_PATHS = (
554 | "$(inherited)",
555 | "$(PROJECT_DIR)/Flutter",
556 | );
557 | PRODUCT_BUNDLE_IDENTIFIER = com.wx.mungFlutter;
558 | PRODUCT_NAME = "$(TARGET_NAME)";
559 | TARGETED_DEVICE_FAMILY = "1,2";
560 | VERSIONING_SYSTEM = "apple-generic";
561 | };
562 | name = Release;
563 | };
564 | /* End XCBuildConfiguration section */
565 |
566 | /* Begin XCConfigurationList section */
567 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
568 | isa = XCConfigurationList;
569 | buildConfigurations = (
570 | 97C147031CF9000F007C117D /* Debug */,
571 | 97C147041CF9000F007C117D /* Release */,
572 | 249021D3217E4FDB00AE95B9 /* Profile */,
573 | );
574 | defaultConfigurationIsVisible = 0;
575 | defaultConfigurationName = Release;
576 | };
577 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
578 | isa = XCConfigurationList;
579 | buildConfigurations = (
580 | 97C147061CF9000F007C117D /* Debug */,
581 | 97C147071CF9000F007C117D /* Release */,
582 | 249021D4217E4FDB00AE95B9 /* Profile */,
583 | );
584 | defaultConfigurationIsVisible = 0;
585 | defaultConfigurationName = Release;
586 | };
587 | /* End XCConfigurationList section */
588 | };
589 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
590 | }
591 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
33 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
56 |
58 |
64 |
65 |
66 |
67 |
68 |
69 |
75 |
77 |
83 |
84 |
85 |
86 |
88 |
89 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildSystemType
6 | Original
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #include "AppDelegate.h"
2 | #include "GeneratedPluginRegistrant.h"
3 |
4 | @implementation AppDelegate
5 |
6 | - (BOOL)application:(UIApplication *)application
7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
8 | [GeneratedPluginRegistrant registerWithRegistry:self];
9 | // Override point for customization after application launch.
10 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
11 | }
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-40.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-60.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-58.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-87.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-80.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-120.png",
37 | "scale" : "3x"
38 | },
39 | {
40 | "size" : "60x60",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-121.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-180.png",
49 | "scale" : "3x"
50 | },
51 | {
52 | "idiom" : "ios-marketing",
53 | "size" : "1024x1024",
54 | "scale" : "1x"
55 | }
56 | ],
57 | "info" : {
58 | "version" : 1,
59 | "author" : "xcode"
60 | }
61 | }
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-120.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-121.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-121.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-180.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-40.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-58.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-60.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-80.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/AppIcon.appiconset/Icon-87.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "extent" : "full-screen",
5 | "idiom" : "iphone",
6 | "subtype" : "2688h",
7 | "filename" : "icon_spash1242-2209.png",
8 | "minimum-system-version" : "12.0",
9 | "orientation" : "portrait",
10 | "scale" : "3x"
11 | },
12 | {
13 | "extent" : "full-screen",
14 | "idiom" : "iphone",
15 | "subtype" : "1792h",
16 | "filename" : "icon_spash750-1335.png",
17 | "minimum-system-version" : "12.0",
18 | "orientation" : "portrait",
19 | "scale" : "2x"
20 | },
21 | {
22 | "extent" : "full-screen",
23 | "idiom" : "iphone",
24 | "subtype" : "2436h",
25 | "filename" : "icon_spash1242-2208 2.png",
26 | "minimum-system-version" : "11.0",
27 | "orientation" : "portrait",
28 | "scale" : "3x"
29 | },
30 | {
31 | "extent" : "full-screen",
32 | "idiom" : "iphone",
33 | "subtype" : "736h",
34 | "filename" : "icon_spash1242-2208.png",
35 | "minimum-system-version" : "8.0",
36 | "orientation" : "portrait",
37 | "scale" : "3x"
38 | },
39 | {
40 | "extent" : "full-screen",
41 | "idiom" : "iphone",
42 | "subtype" : "667h",
43 | "filename" : "icon_spash750-1334.png",
44 | "minimum-system-version" : "8.0",
45 | "orientation" : "portrait",
46 | "scale" : "2x"
47 | },
48 | {
49 | "orientation" : "portrait",
50 | "idiom" : "iphone",
51 | "filename" : "icon_spash640-960.png",
52 | "extent" : "full-screen",
53 | "minimum-system-version" : "7.0",
54 | "scale" : "2x"
55 | },
56 | {
57 | "extent" : "full-screen",
58 | "idiom" : "iphone",
59 | "subtype" : "retina4",
60 | "filename" : "icon_spash640-1136.png",
61 | "minimum-system-version" : "7.0",
62 | "orientation" : "portrait",
63 | "scale" : "2x"
64 | }
65 | ],
66 | "info" : {
67 | "version" : 1,
68 | "author" : "xcode"
69 | }
70 | }
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2208 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2208 2.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2208.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2208.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2209.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash1242-2209.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash640-1136.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash640-1136.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash640-960.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash640-960.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash750-1334.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash750-1334.png
--------------------------------------------------------------------------------
/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash750-1335.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/Images.xcassets/LaunchImage.launchimage/icon_spash750-1335.png
--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | Mung
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | mung_flutter
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(FLUTTER_BUILD_NAME)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | $(FLUTTER_BUILD_NUMBER)
25 | LSRequiresIPhoneOS
26 |
27 | UILaunchStoryboardName
28 | LaunchScreen
29 | UIMainStoryboardFile
30 | Main
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 | UIViewControllerBasedStatusBarAppearance
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/ios/Runner/main.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char* argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/ios/Runner/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mochixuan/Mung-Flutter/90b3ad0f55f829adeec18723e14065795b3e39f5/ios/Runner/splash.png
--------------------------------------------------------------------------------
/lib/bloc/theme_bloc.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:rxdart/rxdart.dart';
3 | import 'package:mung_flutter/utils/sp_util.dart';
4 | import 'package:mung_flutter/data/const/constant.dart';
5 |
6 | class ThemeBloc {
7 |
8 | int _themeColor = 0xffffffff;
9 | final _controller = BehaviorSubject();
10 |
11 | ThemeBloc() {
12 | _initThemeColor();
13 | }
14 |
15 | _initThemeColor() async {
16 | int preThemeColor = await SPUtil.getThemeColor();
17 | if (preThemeColor == null) {
18 | preThemeColor = Constant.ThemeItems[0]['color'];
19 | }
20 | changeTheme(preThemeColor);
21 | }
22 |
23 | ValueObservable get stream => _controller.stream;
24 |
25 | int get themeColor => _themeColor;
26 |
27 | changeTheme(int themeColor) {
28 | _themeColor = themeColor;
29 | _controller.add(themeColor);
30 | SPUtil.setThemeColor(themeColor); //存储数据
31 | }
32 |
33 | void dispose() {
34 | _controller.close();
35 | }
36 |
37 | }
38 |
39 | class ThemeProvider extends InheritedWidget {
40 |
41 | final ThemeBloc themeBloc;
42 |
43 | ThemeProvider({@required Widget child,@required ThemeBloc themeBloc})
44 | : themeBloc = themeBloc , super(child: child);
45 |
46 | @override
47 | bool updateShouldNotify(InheritedWidget oldWidget) {
48 | return true;
49 | }
50 |
51 | static ThemeBloc of(BuildContext context) =>
52 | (context.inheritFromWidgetOfExactType(ThemeProvider) as ThemeProvider).themeBloc;
53 |
54 | }
--------------------------------------------------------------------------------
/lib/data/const/constant.dart:
--------------------------------------------------------------------------------
1 | class Constant {
2 |
3 | static const List