├── .DS_Store
├── .gitignore
├── .idea
├── KCFlutter.iml
├── inspectionProfiles
│ └── Project_Default.xml
├── libraries
│ ├── Dart_Packages.xml
│ └── Dart_SDK.xml
├── modules.xml
├── vcs.xml
└── workspace.xml
├── LICENSE
├── README.md
├── flutter_01
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── lg
│ │ │ │ │ └── flutter_01
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
├── lib
│ ├── KCBar.dart
│ ├── KCBaseWidget.dart
│ ├── KCCar.dart
│ ├── KCListViewDemo.dart
│ ├── KCWidget.dart
│ └── main.dart
├── pubspec.yaml
└── test
│ └── widget_test.dart
├── flutter_02
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── lg
│ │ │ │ │ └── flutter_02
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
├── lib
│ └── main.dart
├── pubspec.yaml
└── test
│ └── widget_test.dart
├── wechat
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── lg
│ │ │ │ │ └── wecaht
│ │ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launch_image.jpeg
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── app_icon.png
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── images
│ ├── Hank.png
│ ├── add_status.png
│ ├── badge.png
│ ├── cooci.png
│ ├── icon_friends_add.png
│ ├── icon_right.png
│ ├── qrcode.png
│ ├── tabbar_chat.png
│ ├── tabbar_chat_hl.png
│ ├── tabbar_discover.png
│ ├── tabbar_discover_hl.png
│ ├── tabbar_friends.png
│ ├── tabbar_friends_hl.png
│ ├── tabbar_mine.png
│ ├── tabbar_mine_hl.png
│ ├── 五角星b.png
│ ├── 五角星w.png
│ ├── 公众号.png
│ ├── 发起群聊.png
│ ├── 圆加.png
│ ├── 小程序.png
│ ├── 微信卡包.png
│ ├── 微信支付.png
│ ├── 微信收藏.png
│ ├── 微信相册.png
│ ├── 微信表情.png
│ ├── 微信设置.png
│ ├── 扫一扫.png
│ ├── 扫一扫1.png
│ ├── 扫一扫2.png
│ ├── 搜一搜 2.png
│ ├── 搜一搜.png
│ ├── 搜一搜2.png
│ ├── 摇一摇.png
│ ├── 收付款.png
│ ├── 放大镜b.png
│ ├── 放大镜w.png
│ ├── 新的朋友.png
│ ├── 朋友圈.png
│ ├── 标星.png
│ ├── 标签.png
│ ├── 气泡.png
│ ├── 添加朋友.png
│ ├── 游戏.png
│ ├── 游戏2.png
│ ├── 相机.png
│ ├── 看一看.png
│ ├── 群聊.png
│ ├── 购物.png
│ └── 附近的人.png
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ ├── AppIcon60x60@3x.png
│ │ │ ├── Contents.json
│ │ │ └── Icon-App-1024x1024@1x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── launch_image.jpeg
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── main.m
├── lib
│ ├── kc_rootpage.dart
│ ├── main.dart
│ └── pages
│ │ ├── discover
│ │ ├── kc_discover_cell.dart
│ │ ├── kc_discover_childpage.dart
│ │ └── kc_discoverpage.dart
│ │ ├── kc_chatpage.dart
│ │ ├── kc_friendspage.dart
│ │ └── minePages
│ │ ├── kc_mine_detailpage.dart
│ │ ├── kc_mine_seticonpage.dart
│ │ └── kc_minepage.dart
├── pubspec.yaml
└── test
│ └── widget_test.dart
└── 图片资源
├── fluter_app_image.png
└── flutter650*280灰色.jpg
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://www.dartlang.org/guides/libraries/private-files
2 |
3 | # Files and directories created by pub
4 | .dart_tool/
5 | .packages
6 | build/
7 | # If you're building an application, you may want to check-in your pubspec.lock
8 | pubspec.lock
9 |
10 | # Directory created by dartdoc
11 | # If you don't generate documentation locally you can remove this line.
12 | doc/api/
13 |
14 | # Avoid committing generated Javascript files:
15 | *.dart.js
16 | *.info.json # Produced by the --dump-info flag.
17 | *.js # When generated by dart2js. Don't specify *.js if your
18 | # project includes source files written in JavaScript.
19 | *.js_
20 | *.js.deps
21 | *.js.map
22 |
--------------------------------------------------------------------------------
/.idea/KCFlutter.iml:
--------------------------------------------------------------------------------
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 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/libraries/Dart_Packages.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
--------------------------------------------------------------------------------
/.idea/libraries/Dart_SDK.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/workspace.xml:
--------------------------------------------------------------------------------
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 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 | 1612338539043
105 |
106 |
107 | 1612338539043
108 |
109 |
110 |
111 |
112 |
113 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Cooci
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # KCFlutter
2 |
3 | 
4 |
5 | ### 一、Flutter-从入门到项目 持续更新中
6 |
7 | > [Flutter-从入门到项目 01: Flutter重要性](https://juejin.cn/post/6907217804764643336)
8 | >
9 | > [Flutter-从入门到项目 02: 环境配置](https://juejin.cn/post/6907607707549696013)
10 | >
11 | > [Flutter-从入门到项目 03: Flutter初体验](https://juejin.cn/post/6909347907321724942)
12 | >
13 | > [Flutter-从入门到项目 04:Dart语法快速掌握(上)](https://juejin.cn/post/6915388720326082568)
14 | >
15 | > [Flutter-从入门到项目 05:Dart语法快速掌握(下)](https://juejin.cn/post/6920553769122037767)
16 |
17 | ### 二、Flutter的特性
18 |
19 | | Flutter招聘公司 | 薪资水平| Flutter招聘公司 | 薪资水平 |
20 | |:-------------:|:--------:|:-------------:|:--------:|
21 | | 网易 | 25-50K | 中德智慧 | 15-25K |
22 | | 京东 | 20-40K |新华智云科技 | 15-25K |
23 | | 达达 | 15-25K |腾讯 | 20-40K |
24 | | 漪链科技 | 15-25K |思车网 | 15-30K |
25 | | 百度 | 20-40K |阿里 | 15-30K |
26 | | 倍儿爽 | 20-30K | 测测星座 | 15-25K|
27 | | 得物APP | 25-50K |小马 | 11-22K |
28 | | 小盒科技 | 20-30K |三把斧 | 15-25K |
29 | | **逻辑教育** | 10-20K |... | ...|
30 |
31 | * 可以让开发者对 `UI` 实现像素级的控制
32 |
33 | * `UI 渲染性能`很好: `Flutter` 开发的移动应用即使在低配手机上也能实现**每秒 60 帧的 UI 渲染速度**。
34 |
35 | * `Flutter` 引擎使用 `C++` 编写,包括高效的 `Skia 2D 渲染引擎`,`Dart` 运行时和文本渲染库。这个引擎使得 `Flutter` 框架可以自由、灵活、高效地绘制 `UI 组件`
36 |
37 | * `Flutter` 广受好评的 `Hot Reload` (热重载) 功能可以在 1 秒内实现代码到 UI 的更新,使得开发操作周期被大幅缩短
38 |
39 | * `Flutter` 是开放的,它是一个完全开源的项目
40 |
41 | * 在 `StackOverflow 2019` 年的全球开发者问卷调查中,`Flutter` 被选为最受开发者欢迎的框架之一,超过了 `TensorFlow` 和 `Node.js`。
42 |
43 | 
44 |
45 |
46 | > 持续更新中,喜欢的可以点赞收藏.
--------------------------------------------------------------------------------
/flutter_01/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | **/ios/Flutter/.last_build_id
26 | .dart_tool/
27 | .flutter-plugins
28 | .flutter-plugins-dependencies
29 | .packages
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Web related
35 | lib/generated_plugin_registrant.dart
36 |
37 | # Symbolication related
38 | app.*.symbols
39 |
40 | # Obfuscation related
41 | app.*.map.json
42 |
--------------------------------------------------------------------------------
/flutter_01/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 78910062997c3a836feee883712c241a5fd22983
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/flutter_01/README.md:
--------------------------------------------------------------------------------
1 | # flutter_01
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/flutter_01/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/flutter_01/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 plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion 29
30 |
31 | sourceSets {
32 | main.java.srcDirs += 'src/main/kotlin'
33 | }
34 |
35 | lintOptions {
36 | disable 'InvalidPackage'
37 | }
38 |
39 | defaultConfig {
40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
41 | applicationId "com.lg.flutter_01"
42 | minSdkVersion 16
43 | targetSdkVersion 29
44 | versionCode flutterVersionCode.toInteger()
45 | versionName flutterVersionName
46 | }
47 |
48 | buildTypes {
49 | release {
50 | // TODO: Add your own signing config for the release build.
51 | // Signing with the debug keys for now, so `flutter run --release` works.
52 | signingConfig signingConfigs.debug
53 | }
54 | }
55 | }
56 |
57 | flutter {
58 | source '../..'
59 | }
60 |
61 | dependencies {
62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
63 | }
64 |
--------------------------------------------------------------------------------
/flutter_01/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
8 |
12 |
19 |
23 |
27 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
43 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/kotlin/com/lg/flutter_01/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.lg.flutter_01
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_01/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/flutter_01/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_01/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.50'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:3.5.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/flutter_01/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/flutter_01/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/flutter_01/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/flutter_01/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/flutter_01/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/flutter_01/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/flutter_01/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/flutter_01/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 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/flutter_01/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 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | flutter_01
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/flutter_01/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/flutter_01/lib/KCBar.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'KCWidget.dart';
3 |
4 |
5 | class KCBar extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return MaterialApp(
9 | debugShowCheckedModeBanner: false,
10 | home: Scaffold(
11 | // 类似 nav
12 | appBar: AppBar(
13 | // 导航栏
14 | title: Text(
15 | 'KCFlutterBar',
16 | style: TextStyle(color: Colors.white),
17 | ),
18 | ),
19 | body: KCWidget(),
20 | floatingActionButton: FloatingActionButton(),
21 | floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
22 | floatingActionButtonAnimator: FloatingActionButtonAnimator.scaling,
23 | ),
24 | theme: ThemeData(primaryColor: Colors.orange),
25 | );
26 | }
27 | }
28 |
29 |
30 |
--------------------------------------------------------------------------------
/flutter_01/lib/KCBaseWidget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class KCRichTextDemo extends StatelessWidget {
4 | final TextStyle _textStyle = TextStyle(
5 | fontSize: 16.0,
6 | );
7 | String _lector = 'cooci';
8 | String _title = 'Flutter 从入门到项目';
9 | String _line = '--';
10 |
11 | @override
12 | Widget build(BuildContext context) {
13 | return RichText(
14 | text: TextSpan(
15 | text: _title,
16 | style: TextStyle(
17 | fontSize: 30,
18 | color: Colors.black,
19 | ),
20 | children: [
21 | TextSpan(
22 | text: _line,
23 | style: TextStyle(
24 | fontSize: 20,
25 | color: Colors.red,
26 | )),
27 | TextSpan(
28 | text: _lector,
29 | style: TextStyle(
30 | fontSize: 20,
31 | color: Colors.blue,
32 | )),
33 | ]));
34 | }
35 | }
36 |
37 | // 基本文本信息
38 | class KCBaseText extends StatelessWidget {
39 | final TextStyle _textStyle = TextStyle(
40 | fontSize: 16.0,
41 | );
42 | String _lector = 'cooci';
43 | String _title = 'Flutter 从入门到项目';
44 |
45 | @override
46 | Widget build(BuildContext context) {
47 | return Text(
48 | '<$_title> -- $_lector 从事软件编程行业8年,从塞班走向iOS. 曾在某企架构业务管理系统以及APP开发'
49 | '.在社交,'
50 | '金融,直播,'
51 | '智能家居以及移动办公都有较深的研究.多年的开发经验,最终灵魂安置教育.老不正经的人格出色地完成一次又一次的研发和教学任务'
52 | '.因其风趣幽默的授课方式,深受学员喜爱.收到一致好评.',
53 | textAlign: TextAlign.center,
54 | style: _textStyle,
55 | overflow: TextOverflow.ellipsis,
56 | maxLines: 6,
57 | );
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/flutter_01/lib/KCCar.dart:
--------------------------------------------------------------------------------
1 | class KCCar{
2 | const KCCar({
3 | this.imageUrl,
4 | this.name
5 | });
6 |
7 | final String name;
8 | final String imageUrl;
9 | }
--------------------------------------------------------------------------------
/flutter_01/lib/KCListViewDemo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'KCCar.dart';
3 |
4 | class KCListView extends StatelessWidget {
5 |
6 | Widget _itemForRow(BuildContext context, int index) {
7 | return Container(
8 | color: Colors.white,
9 | margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
10 | child: Column(
11 | children: [
12 | Image.network(carDatas[index].imageUrl),
13 | SizedBox(height: 10),
14 | Text(
15 | carDatas[index].name,
16 | style: TextStyle(
17 | fontSize: 18.0,
18 | fontWeight: FontWeight.w800,
19 | fontStyle: FontStyle.values[1]),
20 | ),
21 | SizedBox(height: 10),
22 | ],
23 | ),
24 | );
25 | }
26 | @override
27 | Widget build(BuildContext context) {
28 | return ListView.builder(
29 | itemBuilder: _itemForRow,
30 | itemCount: carDatas.length,
31 | );
32 | }
33 | }
34 |
35 | // 模型数组
36 | final List carDatas = [
37 | KCCar(
38 | name: '保时捷918 Spyder',
39 | imageUrl:
40 | 'https://upload-images.jianshu.io/upload_images/2990730-7d8be6ebc4c7c95b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
41 | ),
42 | KCCar(
43 | name: '兰博基尼Aventador',
44 | imageUrl:
45 | 'https://upload-images.jianshu.io/upload_images/2990730-e3bfd824f30afaac?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
46 | ),
47 | KCCar(
48 | name: '法拉利Enzo',
49 | imageUrl:
50 | 'https://upload-images.jianshu.io/upload_images/2990730-a1d64cf5da2d9d99?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
51 | ),
52 | KCCar(
53 | name: 'Zenvo ST1',
54 | imageUrl:
55 | 'https://upload-images.jianshu.io/upload_images/2990730-bf883b46690f93ce?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
56 | ),
57 | KCCar(
58 | name: '迈凯伦F1',
59 | imageUrl:
60 | 'https://upload-images.jianshu.io/upload_images/2990730-5a7b5550a19b8342?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
61 | ),
62 | KCCar(
63 | name: '萨林S7',
64 | imageUrl:
65 | 'https://upload-images.jianshu.io/upload_images/2990730-2e128d18144ad5b8?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
66 | ),
67 | KCCar(
68 | name: '科尼赛克CCR',
69 | imageUrl:
70 | 'https://upload-images.jianshu.io/upload_images/2990730-01ced8f6f95219ec?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
71 | ),
72 | KCCar(
73 | name: '布加迪Chiron',
74 | imageUrl:
75 | 'https://upload-images.jianshu.io/upload_images/2990730-7fc8359eb61adac0?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
76 | ),
77 | KCCar(
78 | name: '轩尼诗Venom GT',
79 | imageUrl:
80 | 'https://upload-images.jianshu.io/upload_images/2990730-d332bf510d61bbc2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
81 | ),
82 | KCCar(
83 | name: '西贝尔Tuatara',
84 | imageUrl:
85 | 'https://upload-images.jianshu.io/upload_images/2990730-3dd9a70b25ae6bc9?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240',
86 | )
87 | ];
88 |
--------------------------------------------------------------------------------
/flutter_01/lib/KCWidget.dart:
--------------------------------------------------------------------------------
1 |
2 | import 'package:flutter/material.dart';
3 |
4 | // Widget (小部件) 有的状态的 StateFul 无状态的Stateles
5 | // 自定义的Widget
6 | class KCWidget extends StatelessWidget {
7 | @override
8 | Widget build(BuildContext context) {
9 | return Center(
10 | child: Text(
11 | '和谐学习,不急不躁', // 文本
12 | textDirection: TextDirection.ltr, // 对齐方式
13 | style: TextStyle(
14 | fontSize: 40.0, // 字体大小
15 | color: Colors.red, // 红色字体
16 | fontWeight: FontWeight.w400, // 字体的粗细
17 | ),
18 | ));
19 | }
20 | }
--------------------------------------------------------------------------------
/flutter_01/lib/main.dart:
--------------------------------------------------------------------------------
1 | // 导入系统包 : 作用类似 #import
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_01/KCListViewDemo.dart';
4 | import 'KCBar.dart';
5 | import 'KCBaseWidget.dart';
6 | import 'KCWidget.dart';
7 | import 'KCCar.dart';
8 |
9 | // 程序运行的 main 函数 (入口)
10 | // 应用程序运行的函数 类比: UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
11 | // 因为在 Flutter 世界里面 都是各种部件
12 | // Demo1 自定义了小部件
13 | // void main() => runApp(KCWidget());
14 |
15 | // Demo2 导航栏样式界面
16 | // void main() => runApp(KCBar());
17 |
18 | // Demo3 ListView 展示数据
19 | // Demo4 富文本
20 | void main() => runApp(ListViewApp());
21 |
22 | class ListViewApp extends StatelessWidget {
23 | @override
24 | Widget build(BuildContext context) {
25 | return MaterialApp(
26 | debugShowCheckedModeBanner: false,
27 | home: ListViewHome(),
28 | theme: ThemeData(primaryColor: Colors.orange),
29 | );
30 | }
31 | }
32 |
33 | class ListViewHome extends StatelessWidget {
34 | @override
35 | Widget build(BuildContext context) {
36 | return Scaffold(
37 | backgroundColor: Colors.grey[100],
38 | appBar: AppBar(
39 | title: Text('KCCarList', style: TextStyle(color: Colors.white)),
40 | ),
41 | body: KCRichTextDemo()
42 | );
43 | }
44 | }
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/flutter_01/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: flutter_01
2 | description: A new Flutter application.
3 |
4 | # The following line prevents the package from being accidentally published to
5 | # pub.dev using `pub publish`. This is preferred for private packages.
6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
7 |
8 | # The following defines the version and build number for your application.
9 | # A version number is three numbers separated by dots, like 1.2.43
10 | # followed by an optional build number separated by a +.
11 | # Both the version and the builder number may be overridden in flutter
12 | # build by specifying --build-name and --build-number, respectively.
13 | # In Android, build-name is used as versionName while build-number used as versionCode.
14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
16 | # Read more about iOS versioning at
17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18 | version: 1.0.0+1
19 |
20 | environment:
21 | sdk: ">=2.7.0 <3.0.0"
22 |
23 | dependencies:
24 | flutter:
25 | sdk: flutter
26 |
27 |
28 | # The following adds the Cupertino Icons font to your application.
29 | # Use with the CupertinoIcons class for iOS style icons.
30 | cupertino_icons: ^1.0.0
31 |
32 | dev_dependencies:
33 | flutter_test:
34 | sdk: flutter
35 |
36 | # For information on the generic Dart part of this file, see the
37 | # following page: https://dart.dev/tools/pub/pubspec
38 |
39 | # The following section is specific to Flutter.
40 | flutter:
41 |
42 | # The following line ensures that the Material Icons font is
43 | # included with your application, so that you can use the icons in
44 | # the material Icons class.
45 | uses-material-design: true
46 |
47 | # To add assets to your application, add an assets section, like this:
48 | # assets:
49 | # - images/a_dot_burr.jpeg
50 | # - images/a_dot_ham.jpeg
51 |
52 | # An image asset can refer to one or more resolution-specific "variants", see
53 | # https://flutter.dev/assets-and-images/#resolution-aware.
54 |
55 | # For details regarding adding assets from package dependencies, see
56 | # https://flutter.dev/assets-and-images/#from-packages
57 |
58 | # To add custom fonts to your application, add a fonts section here,
59 | # in this "flutter" section. Each entry in this list should have a
60 | # "family" key with the font family name, and a "fonts" key with a
61 | # list giving the asset and other descriptors for the font. For
62 | # example:
63 | # fonts:
64 | # - family: Schyler
65 | # fonts:
66 | # - asset: fonts/Schyler-Regular.ttf
67 | # - asset: fonts/Schyler-Italic.ttf
68 | # style: italic
69 | # - family: Trajan Pro
70 | # fonts:
71 | # - asset: fonts/TrajanPro.ttf
72 | # - asset: fonts/TrajanPro_Bold.ttf
73 | # weight: 700
74 | #
75 | # For details regarding fonts from package dependencies,
76 | # see https://flutter.dev/custom-fonts/#from-packages
77 |
--------------------------------------------------------------------------------
/flutter_01/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:flutter_01/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/flutter_02/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | **/ios/Flutter/.last_build_id
26 | .dart_tool/
27 | .flutter-plugins
28 | .flutter-plugins-dependencies
29 | .packages
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Web related
35 | lib/generated_plugin_registrant.dart
36 |
37 | # Symbolication related
38 | app.*.symbols
39 |
40 | # Obfuscation related
41 | app.*.map.json
42 |
--------------------------------------------------------------------------------
/flutter_02/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 78910062997c3a836feee883712c241a5fd22983
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/flutter_02/README.md:
--------------------------------------------------------------------------------
1 | # flutter_02
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/flutter_02/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/flutter_02/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 plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion 29
30 |
31 | sourceSets {
32 | main.java.srcDirs += 'src/main/kotlin'
33 | }
34 |
35 | lintOptions {
36 | disable 'InvalidPackage'
37 | }
38 |
39 | defaultConfig {
40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
41 | applicationId "com.lg.flutter_02"
42 | minSdkVersion 16
43 | targetSdkVersion 29
44 | versionCode flutterVersionCode.toInteger()
45 | versionName flutterVersionName
46 | }
47 |
48 | buildTypes {
49 | release {
50 | // TODO: Add your own signing config for the release build.
51 | // Signing with the debug keys for now, so `flutter run --release` works.
52 | signingConfig signingConfigs.debug
53 | }
54 | }
55 | }
56 |
57 | flutter {
58 | source '../..'
59 | }
60 |
61 | dependencies {
62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
63 | }
64 |
--------------------------------------------------------------------------------
/flutter_02/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
8 |
12 |
19 |
23 |
27 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
43 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/kotlin/com/lg/flutter_02/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.lg.flutter_02
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/flutter_02/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/flutter_02/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_02/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.50'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:3.5.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/flutter_02/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 | android.enableR8=true
5 |
--------------------------------------------------------------------------------
/flutter_02/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/flutter_02/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/flutter_02/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/flutter_02/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/flutter_02/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/flutter_02/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/flutter_02/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 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/flutter_02/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 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | flutter_02
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/flutter_02/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/flutter_02/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/foundation.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | // Copyright 2015 the Dart project authors. All rights reserved.
5 | // Use of this source code is governed by a BSD-style license
6 | // that can be found in the LICENSE file.
7 |
8 | class KCClass {
9 | void sayHello() {
10 | print('Hello Dart');
11 | }
12 | }
13 |
14 | // main入口函数
15 | void main() {
16 | // 面向对象
17 | KCClass cls = new KCClass();
18 | cls.sayHello();
19 | // 变量声明初始化测试
20 | varibleFunc();
21 | // 关于num 类型测试
22 | numFunc();
23 | // 关于string 类型测试
24 | stringFunc();
25 | // 关于bool 类型测试
26 | boolFunc();
27 | // Lists 类型测试
28 | listsFunc();
29 | // Sets 类型测试
30 | setsFunc();
31 | // Maps 类型测试
32 | mapsFunc();
33 | // 函数测试
34 | funcFunc3(bold: true);
35 | // 可选参数 默认值测试
36 | funcFunc4();
37 | // 位置参数
38 | funcFunc5("KC","和谐学习,不急不躁");
39 | funcFunc5("KC","和谐学习,不急不躁","等风来不如追风去");
40 | // 函数做参数 - 函数式思想
41 | funcFunc7();
42 | // 匿名函数
43 | funcFunc8();
44 | // 控制流语法
45 | ControlFunc();
46 | // 类的相关语法
47 | classFunc();
48 | // 方法相关测试
49 | methodFunc();
50 | // 重载操作符
51 | vectorFunc();
52 | // 隐式接口
53 | imposterFunc();
54 | // 枚举测试
55 | enumFunc();
56 | }
57 |
58 | // 变量
59 | void varibleFunc() {
60 | var name = 'cooci';
61 | dynamic nickName = 'KC';
62 | Object person = '酷C';
63 |
64 | // 显示声明将被推断类型, 可以使用String显示声明字符串类型
65 | String company = 'LG';
66 | print('i am: $name,$nickName,$person ,$company');
67 |
68 | // 默认值
69 | int age;
70 | assert(age == null);
71 | print(age); //打印结果为null,证明数字类型初始化值是null
72 |
73 | // Final and const
74 | final student = 'JZ';
75 | final String studentName = '家振';
76 | print('student = ,${[student, studentName]}');
77 | // 被 final 或 const 修饰的变量无法再去修改其值。
78 | // student = 'chen'; // a final variable, can only be set once
79 | const teacher = 'Kody';
80 | // 这样写,编译器提示:Constant variables can't be assigned a value
81 | // teacher = 'Cat';
82 |
83 | // flnal 或者 const 不能和 var 同时使用
84 | // Members can't be declared to be both 'const' and 'var'
85 | // const var String teacherName = 'CC';
86 | // final var String teacherName = 'hank';
87 | // 常量如果是类级别的,请使用 static const
88 | // static const String lector = 'sky';
89 | }
90 |
91 | // 关于num 类型测试
92 | void numFunc() {
93 | int a = 1;
94 | print(a);
95 |
96 | double b = 1.12;
97 | print(b);
98 |
99 | // String -> int
100 | int one = int.parse('1');
101 | // 输出3
102 | print(one + 2);
103 |
104 | // String -> double
105 | var onePointOne = double.parse('1.1');
106 | // 输出3.1
107 | print(onePointOne + 2);
108 |
109 | // int -> String
110 | String oneAsString = 1.toString();
111 | // The argument type 'int' can't be assigned to the parameter type 'String'
112 | //print(oneAsString + 2);
113 | // 输出 1 + 2
114 | print('$oneAsString + 2');
115 | // 输出 1 2
116 | print('$oneAsString 2');
117 |
118 | // double -> String 注意括号中要有小数点位数,否则报错
119 | String piAsString = 3.14159.toStringAsFixed(2);
120 | // 截取两位小数, 输出3.14
121 | print(piAsString);
122 |
123 | String aString = 1.12618.toStringAsFixed(2);
124 | // 检查是否四舍五入,输出1.13,发现会做四舍五入
125 | print(aString);
126 | }
127 |
128 | // 关于string 类型测试
129 | void stringFunc() {
130 | // `Dart字符串` 是由UTF-16编码单元组成的序列。可以使用`单引号`或`双引号`创建字符串:
131 | var s1 = '和谐学习,不急不躁';
132 | var s2 = "等风来不如追风去,总有那么一个人在风景正好的季节来到你的身边,并且懂得你全部的好!!!";
133 | var s3 = '我是Cooci';
134 | var s4 = 'cooci';
135 |
136 | assert('$s3' == '我是' + 'Cooci');
137 | assert('${s4.toUpperCase()}' == 'COOCI');
138 |
139 | // 可以使用相邻的字符串字直接连接在一起 或者 `+操作符` 来连接字符串:
140 | var s5 = 'LG_' 'Cooci_' "和谐学习不急不躁";
141 | assert(s5 == 'LG_Cooci_和谐学习不急不躁');
142 |
143 | var s6 = 'LG_' + 'Cooci';
144 | assert(s6 == 'LG_Cooci');
145 |
146 | // 另一种创建多行字符串的方法是:`使用带有单引号` 或 `双引号的三引号:`
147 | var s7 = '''
148 | 单引号创建多行字符串
149 | 注意要各行哦''';
150 | var s8 = """双引号创建多行字符串
151 | 注意要各行哦""";
152 | print(s7);
153 | print(s8);
154 |
155 | // 单引号或者双引号里面嵌套使用引号。
156 | // 用 或{} 来计算字符串中变量的值,需要注意的是如果是表达式需要${表达式}
157 |
158 | // 单引号嵌套双引号
159 | String s9 = '$s1 a "LG" ${s3}';
160 | // 输出 和谐学习,不急不躁 a "LG" 我是Cooci
161 | print(s9);
162 | // 双引号嵌套单引号
163 | String s10 = "${s4.toUpperCase()} abc 'LG' $s4.toUpperCase()";
164 | // 输出 COOCI abc 'aaa' cooci.toUpperCase(),
165 | // 可以看出 '$s4.toUpperCase()' 没有加'{}',导致输出结果是'cooci.toUpperCase()'
166 | print(s10);
167 | }
168 |
169 | // 关于bool 类型测试
170 | void boolFunc() {
171 | // Check for an empty string.
172 | var fullName = '';
173 | assert(fullName.isEmpty);
174 |
175 | // Check for zero.
176 | var hitPoints = 0;
177 | assert(hitPoints <= 0);
178 |
179 | // Check for null.
180 | var unicorn;
181 | assert(unicorn == null);
182 |
183 | // Check for NaN.
184 | var iMeantToDoThis = 0 / 0;
185 | assert(iMeantToDoThis.isNaN);
186 | }
187 |
188 | // Lists 类型测试
189 | void listsFunc(){
190 | // Dart推断list的类型为list
191 | // 如果尝试将非整数对象添加到此列表中,分析器或运行时将引发错误
192 | var list = [1, 2, 3];
193 | // 要创建一个编译时常量的列表,在列表字面量之前添加const:
194 | var constantList = const [1, 2, 3];
195 | // constantList[1] = 1; // 报错
196 |
197 | // spread operator (...) 的用法
198 | var list1 = [1, 2, 3];
199 | var list2 = [0, ...list1];
200 | print(list2); // [0, 1, 2, 3]
201 | // 注意插入空的情况 那么就需要 `(...?)`
202 | var list3 ;
203 | var list4 = [0, ...?list3];
204 | print(list4); // [0]
205 |
206 | // list 增删改查
207 | var list5 = [1, 2, 3];
208 | list5.add(4); print(list5); // [1, 2, 3, 4]
209 | // 删除元素
210 | list5.remove(4); print(list5); // [1, 2, 3]
211 | list5.removeAt(0); print(list5); // [2, 3]
212 | // 修改元素
213 | list5[1] = 100; print(list5); // [2, 100]
214 | // 查询
215 | print(list5.indexOf(2)); // 0
216 | print(list5.elementAt(1)); // 100
217 | print(list5.contains(666)); // false
218 |
219 | // 在List的定义过程中可以同for和if语法连用,十分灵活的感觉。
220 |
221 | const s1 = true;
222 | const s2 = false;
223 | List list6 = ["cooci","hank"];
224 |
225 | List list7 = [
226 | '1',
227 | if(s1) 'hank',
228 | if(s2) 'cc',
229 | for (var i in list6) 'list7-$i'
230 | ];
231 | print(list7); // [1, hank, list7-cooci, list7-hank]
232 |
233 | list7.forEach((element) {print('list7-element');});
234 | }
235 |
236 | // Sets 类型测试
237 | void setsFunc(){
238 | var names = {}; // 或者 Set names = {};
239 | // ⚠️ var names = {}; // 创建的是一个 map, 不是 set.
240 | names.add('teachers');
241 | print(names); // {teachers}
242 | var persons = {'hank', 'cooci', 'kody', 'cc', 'cat'};
243 | names.addAll(persons);
244 | print('$names,${names.length}'); // {teachers, hank, cooci, kody, cc, cat}, 6
245 | }
246 |
247 | // Maps 类型测试
248 | void mapsFunc(){
249 | var person = {
250 | // Key: Value
251 | 'age': 18,
252 | 'name': 'cooci',
253 | 'hobby': '女',
254 | 'height': 1.85
255 | };
256 | print(person); // {age: 18, name: cooci, hobby: 女, height: 1.85}
257 | print('${person.keys},${person.values}'); // (age, name, hobby, height),(18, cooci, 女, 1.85)
258 |
259 | // Map的赋值,中括号中是Key,这里可不是数组
260 | person['age'] = '20';
261 | //Map中的键值对是唯一的
262 | //同Set不同,第二次输入的Key如果存在,Value会覆盖之前的数据
263 | person['name'] = 'hank';
264 | // map里面的value可以相同
265 | person['hobby'] = 'cooci';
266 | // map里面value可以为空字符串
267 | person['hobby'] = '';
268 | // map里面的value可以为null
269 | person['height'] = null;
270 | print(person); // {age: 20, name: hank, hobby: , height: null}
271 |
272 | // map 遍历
273 | person.forEach((key, value) => print('key=$key, value=$value'));
274 | /**
275 | flutter: key=age, value=20
276 | flutter: key=name, value=hank
277 | flutter: key=hobby, value=
278 | flutter: key=height, value=null
279 | * */
280 | }
281 |
282 | // 函数 类型测试
283 | // void 代表返回值类型
284 | // funcFunc 代表函数名称
285 | // () 参数
286 | void funcFunc(){}
287 | // 还可以省略 : 没有声明类型也是可以的
288 | funcFunc1(){}
289 | // 对于仅含有一个表达式的方法,你可以使用一种简写的语法:
290 | funcFunc2() => print("=> 表达式;语法是{ return 表达式 }的简写");
291 |
292 | /// 将 bold 和 hidden 作为你声明的参数的值
293 | funcFunc3({bool bold, bool hidden}) {
294 | print('$bold,$hidden'); // true,null
295 | }
296 |
297 | /// 将 bold 和 hidden 作为你声明的参数的值 默认值分别是 false 和 true
298 | funcFunc4({bool bold = false, bool hidden = true}) {
299 | print('$bold,$hidden'); // false,true
300 | }
301 |
302 | // 可选的位置参数,用[]它们标记为可选的位置参数:
303 | String funcFunc5(String person , String word, [String device]) {
304 | var result = "$person say : $word"; // KC say : 和谐学习,不急不躁
305 | if (device != null){
306 | result = "$person say : $device"; // KC say : 等风来不如追风去
307 | }
308 | print(result);
309 | return result;
310 | }
311 |
312 | // 函数式编程思想
313 | funcFunc6(int num) => print(num);
314 |
315 | funcFunc7(){
316 | var list = [1,2,3,4];
317 | list.forEach(funcFunc6);
318 | /**
319 | flutter: 1
320 | flutter: 2
321 | flutter: 3
322 | flutter: 4
323 | */
324 | }
325 | // 匿名函数
326 | funcFunc8(){
327 | var list = ['KC', 'Hank', 'kody'];
328 | list.forEach((item) {
329 | print('${list.indexOf(item)}: $item');
330 | });
331 | }
332 |
333 | // 控制流语句
334 | void ControlFunc(){
335 | // if - else
336 | var result = "KC";
337 | if(result == "Cooci"){
338 | print("和谐学习,不急不躁");
339 | }else if (result == "Hank"){
340 | print("终生学习,人人为师");
341 | }else{
342 | print("等风来,不如追风去");
343 | }
344 |
345 | // For
346 | var message = new StringBuffer("Dart is fun");
347 | for(var i =0 ;i<5;i++){
348 | message.write("!");
349 | }
350 | print(message); // Dart is fun!!!!!
351 |
352 | // Dart的for循环中的闭包能获取循环变量的值,
353 | var callbacks = [];
354 | for(var i=0;i<2;i++){
355 | callbacks.add(() => print(i));
356 | }
357 | callbacks.forEach((c) =>c()); // 0 // 1
358 |
359 | // while 和 do-while
360 | var isDone = true;
361 | while(!isDone){
362 | print(message);
363 | }
364 |
365 | do{
366 | print(message);
367 | }while(!isDone);
368 |
369 | // break 和 continue
370 | // 使用break来结束循环:
371 | while(true){
372 | if(isDone)break;
373 | print(message);
374 | }
375 |
376 | // 使用continue来跳过本次循环,进入下次循环:
377 | var list = [1,2,3,4,5];
378 | for(int i=0;i();
428 | names.addAll(['Hank', 'Cooci', 'CC']);
429 | // names.add(100); // 这里就会报错,因为通过泛型就确定了list 的内容的类型
430 | }
431 |
432 | // 泛型可以让你能共享多个类型的一个接口和实现方式,
433 | // 它在调试模式以及静态分析的错误预警中仍然很有优势
434 | abstract class KCObjectCache{
435 | Object getByKey(String key);
436 | setByKey(String key,Object value);
437 | }
438 | // 你发现你想要一个字符串专用的接口,所以你创建了另外一个接口:
439 | abstract class KCStringCache{
440 | String getByKey(String key);
441 | setByKey(String key,String value);
442 | }
443 | // 接下来,你决定你想要一个这种接口的数字专用的接口...你想到了这个方法.
444 | // 泛型类型可以减少你创建这些接口的困难。取而代之的是,你只需要创建一个带有一个类型参数的接口即可:
445 | // 泛型接下来就牛逼了
446 | abstract class Cache{
447 | // 在这个代码中,T是一个替代类型,即占位符,你可以将他视为后续被开发者定义的类型。
448 | T getByKey(String key);
449 | setByKey(String key,T value);
450 | }
451 |
452 | // 类相关测试
453 | class LGPerson {
454 | int age;
455 | String name;
456 | String hobby;
457 | double height;
458 | }
459 |
460 | // 类相关测试
461 | class LGStudent {
462 | int age;
463 | String name;
464 | String hobby;
465 | double height;
466 |
467 | // LGStudent(int age, String name, String hobby){
468 | // // height 没有构造赋值
469 | // this.age = age;
470 | // this.name = name;
471 | // this.hobby = hobby;
472 | // }
473 | // this关键字指向了当前类的实例, 上面的代码可以简化为:
474 | LGStudent(this.age,this.name,this.hobby);
475 | // 重定向构造函数
476 | LGStudent.rediconstructor(int age, String name, String hobby) : this(age,
477 | "哭C", hobby);
478 |
479 | // 命名构造函数
480 | LGStudent.fromMap(Map stuMap){
481 | age = stuMap['age'];
482 | name = stuMap['name'];
483 | hobby = stuMap['hobby'];
484 | height = stuMap['height'];
485 | }
486 | // 初始化列表
487 | LGStudent.fromMaplist(Map stuMap):
488 | age = stuMap['age'],
489 | name = stuMap['name'],
490 | hobby = stuMap['hobby'],
491 | height = stuMap['height']{
492 | // age = 18, name = 酷C, hobby = 大师底层, height = 180.0
493 | print("age = $age, name = $name, hobby = $hobby, height = $height");
494 | }
495 | }
496 |
497 | // 静态构造函数
498 | class LGTeacher{
499 | final num age;
500 | final String name;
501 | const LGTeacher(this.age, this.name);
502 | static final LGTeacher teacher = LGTeacher(300,"不急不躁");
503 | }
504 |
505 | // 工厂构造函数
506 | class LGCar{
507 | String name;
508 | // 普通构造函数
509 | LGCar.func(this.name);
510 |
511 | static final Map _cache = {};
512 |
513 | factory LGCar(String name){
514 | if (_cache.containsKey(name)){
515 | return _cache[name];
516 | }else{
517 | final car = LGCar.func(name);
518 | _cache[name] = car;
519 | return car;
520 | }
521 | }
522 | }
523 |
524 | // 类相关测试
525 | void classFunc(){
526 | // 实例变量创建测试
527 | var person1 = LGPerson();
528 | person1.age = 18;
529 | person1.name = "Cooci";
530 | person1.height = 182.0;
531 | person1.hobby = "iOS";
532 | print(person1.runtimeType); // LGPerson
533 |
534 | var person2 = LGPerson();
535 | person2.hobby = "Flutter"; // Use the setter method for hobby.
536 | print(person2.hobby); // Use the getter method for hobby.
537 | print("age = ${person2.age}, name = ${person2.name}"); //age = null, name = null
538 |
539 | // 构造函数
540 | var student1 = LGStudent(18, "KC", "构造函数");
541 | print("age = ${student1.age}, name = ${student1.name}"); // age = 18, name = KC
542 |
543 | var stuMap = {'age': 18,'name': '酷C','hobby': "大师底层",'height': 180.0,};
544 | var student2 = LGStudent.fromMap(stuMap);
545 | print("age = ${student2.age}, name = ${student2.name}"); // age = 18, name = 酷C
546 |
547 | var student3 = LGStudent.fromMaplist(stuMap);
548 |
549 | var student4 = LGStudent.rediconstructor(20, "KC", '185.');
550 | print("age = ${student4.age}, name = ${student4.name}, hobby = ${student4
551 | .hobby}"); // age = 20, name = 哭C, hobby = 185.
552 |
553 | // 静态构造函数
554 | var teacher1 = LGTeacher(100, "和谐学习");
555 | // teacher1.age = 200; // Error: The setter 'age' isn't defined for the class 'LGTeacher'静态无法修改
556 | teacher1 = LGTeacher(200, "和谐学习");
557 | print("age = ${teacher1.age}, name = ${teacher1.name}"); //age = 200, name = 和谐学习
558 |
559 | var teacher2 = LGTeacher.teacher;
560 | // teacher2 = LGTeacher(200, "和谐学习"); // age = 200, name = 和谐学习
561 | print("age = ${teacher2.age}, name = ${teacher2.name}"); //age = 300, name = 不急不躁
562 |
563 | // 工厂构造函数
564 | var car = new LGCar("法拉利");
565 | print("name = ${car.name}"); // name = 法拉利
566 |
567 | }
568 |
569 | class LGRectangle {
570 | num left;
571 | num top;
572 | num width;
573 | num height;
574 |
575 | LGRectangle(this.left, this.top, this.width, this.height);
576 |
577 | // 定义两个计算属性: right and bottom.
578 | num get right => left + width;
579 | set right(num value) => left = value - width;
580 | num get bottom => top + height;
581 | set bottom(num value) => top = value - height;
582 | }
583 |
584 | // 方法测试
585 | void methodFunc(){
586 | var rectangle = LGRectangle(10, 20, 100, 300);
587 | print('right = ${rectangle.right}, bottom = ${rectangle.bottom}');// right = 110, bottom = 320
588 |
589 | }
590 |
591 | // 抽象方法
592 | abstract class LGDoer {
593 | // ...定义实例变量和方法...
594 | void doSomething(); // 定义一个抽象方法。
595 | }
596 |
597 | class LGEffectiveDoer extends LGDoer {
598 | void doSomething() {
599 | // ...提供一个实现,所以这里的方法不是抽象的...
600 | print("hello word");
601 | }
602 | }
603 |
604 | // 重载操作符
605 | class Vector {
606 | final int x;
607 | final int y;
608 | const Vector(this.x, this.y);
609 |
610 | /// Overrides + (a + b).
611 | Vector operator +(Vector v) {
612 | return new Vector(x + v.x, y + v.y);
613 | }
614 |
615 | /// Overrides - (a - b).
616 | Vector operator -(Vector v) {
617 | return new Vector(x - v.x, y - v.y);
618 | }
619 | }
620 |
621 | void vectorFunc() {
622 | final v = new Vector(2, 3);
623 | final w = new Vector(2, 2);
624 | // v == (2, 3)
625 | assert(v.x == 2 && v.y == 3);
626 | // v + w == (4, 5)
627 | assert((v + w).x == 4 && (v + w).y == 5);
628 | // v - w == (0, 1)
629 | assert((v - w).x == 0 && (v - w).y == 1);
630 | }
631 |
632 | // 隐式接口
633 | // 一个 KCPerson ,包含 greet() 的隐式接口。
634 | class KCPerson {
635 | // 在这个接口中,只有库中可见。
636 | final _name;
637 | // 不在接口中,因为这是个构造函数。
638 | KCPerson(this._name);
639 | // 在这个接口中。
640 | String greet(who) => 'Hello, $who. I am $_name.';
641 | }
642 |
643 | // KCPerson 接口的一个实现。
644 | class KCImposter implements KCPerson {
645 | // 我们不得不定义它,但不用它。
646 | final _name = "";
647 | String greet(who) => 'Hi $who. Do you know who I am?';
648 | }
649 |
650 | greetBob(KCPerson person) => person.greet('bob');
651 |
652 | imposterFunc() {
653 | print(greetBob(new KCPerson('KC')));
654 | print(greetBob(new KCImposter()));
655 | }
656 |
657 | // 枚举测试
658 | enum LGColor{
659 | blue,
660 | green,
661 | orange
662 | }
663 |
664 | // 在枚举中每个值都有一个 index getter 方法,它返回一个在枚举声明中从 0 开始的位置。例如,第一个值索引值为 0 ,第二个值索引值为 1 。
665 | void enumFunc(){
666 | assert(LGColor.blue.index == 0);
667 | assert(LGColor.green.index == 1);
668 | assert(LGColor.orange.index == 2);
669 |
670 | List colors = LGColor.values;
671 | print(colors); // [LGColor.blue, LGColor.green, LGColor.orange]
672 |
673 | LGColor color1 = LGColor.blue;
674 | switch(color1) {
675 | case LGColor.blue:
676 | print("blue");
677 | break;
678 | case LGColor.green:
679 | print("green");
680 | break;
681 | default:
682 | print("orange");
683 | }
684 | }
685 |
686 |
687 |
688 |
689 |
--------------------------------------------------------------------------------
/flutter_02/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: flutter_02
2 | description: A new Flutter application.
3 |
4 | # The following line prevents the package from being accidentally published to
5 | # pub.dev using `pub publish`. This is preferred for private packages.
6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
7 |
8 | # The following defines the version and build number for your application.
9 | # A version number is three numbers separated by dots, like 1.2.43
10 | # followed by an optional build number separated by a +.
11 | # Both the version and the builder number may be overridden in flutter
12 | # build by specifying --build-name and --build-number, respectively.
13 | # In Android, build-name is used as versionName while build-number used as versionCode.
14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
16 | # Read more about iOS versioning at
17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18 | version: 1.0.0+1
19 |
20 | environment:
21 | sdk: ">=2.7.0 <3.0.0"
22 |
23 | dependencies:
24 | flutter:
25 | sdk: flutter
26 |
27 |
28 | # The following adds the Cupertino Icons font to your application.
29 | # Use with the CupertinoIcons class for iOS style icons.
30 | cupertino_icons: ^1.0.0
31 |
32 | dev_dependencies:
33 | flutter_test:
34 | sdk: flutter
35 |
36 | # For information on the generic Dart part of this file, see the
37 | # following page: https://dart.dev/tools/pub/pubspec
38 |
39 | # The following section is specific to Flutter.
40 | flutter:
41 |
42 | # The following line ensures that the Material Icons font is
43 | # included with your application, so that you can use the icons in
44 | # the material Icons class.
45 | uses-material-design: true
46 |
47 | # To add assets to your application, add an assets section, like this:
48 | # assets:
49 | # - images/a_dot_burr.jpeg
50 | # - images/a_dot_ham.jpeg
51 |
52 | # An image asset can refer to one or more resolution-specific "variants", see
53 | # https://flutter.dev/assets-and-images/#resolution-aware.
54 |
55 | # For details regarding adding assets from package dependencies, see
56 | # https://flutter.dev/assets-and-images/#from-packages
57 |
58 | # To add custom fonts to your application, add a fonts section here,
59 | # in this "flutter" section. Each entry in this list should have a
60 | # "family" key with the font family name, and a "fonts" key with a
61 | # list giving the asset and other descriptors for the font. For
62 | # example:
63 | # fonts:
64 | # - family: Schyler
65 | # fonts:
66 | # - asset: fonts/Schyler-Regular.ttf
67 | # - asset: fonts/Schyler-Italic.ttf
68 | # style: italic
69 | # - family: Trajan Pro
70 | # fonts:
71 | # - asset: fonts/TrajanPro.ttf
72 | # - asset: fonts/TrajanPro_Bold.ttf
73 | # weight: 700
74 | #
75 | # For details regarding fonts from package dependencies,
76 | # see https://flutter.dev/custom-fonts/#from-packages
77 |
--------------------------------------------------------------------------------
/flutter_02/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:flutter_02/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/wechat/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | **/ios/Flutter/.last_build_id
26 | .dart_tool/
27 | .flutter-plugins
28 | .flutter-plugins-dependencies
29 | .packages
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Web related
35 | lib/generated_plugin_registrant.dart
36 |
37 | # Symbolication related
38 | app.*.symbols
39 |
40 | # Obfuscation related
41 | app.*.map.json
42 |
--------------------------------------------------------------------------------
/wechat/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 9b2d32b605630f28625709ebd9d78ab3016b2bf6
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/wechat/README.md:
--------------------------------------------------------------------------------
1 | # wecaht
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/wechat/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/wechat/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 29
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.lg.wecaht"
37 | minSdkVersion 16
38 | targetSdkVersion 29
39 | versionCode flutterVersionCode.toInteger()
40 | versionName flutterVersionName
41 | }
42 |
43 | buildTypes {
44 | release {
45 | // TODO: Add your own signing config for the release build.
46 | // Signing with the debug keys for now, so `flutter run --release` works.
47 | signingConfig signingConfigs.debug
48 | }
49 | }
50 | }
51 |
52 | flutter {
53 | source '../..'
54 | }
55 |
--------------------------------------------------------------------------------
/wechat/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/wechat/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
8 |
12 |
19 |
23 |
27 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
43 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/wechat/android/app/src/main/java/com/lg/wecaht/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.lg.wecaht;
2 |
3 | import io.flutter.embedding.android.FlutterActivity;
4 |
5 | public class MainActivity extends FlutterActivity {
6 | }
7 |
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | -
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-hdpi/launch_image.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-hdpi/launch_image.jpeg
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-xxhdpi/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-xxhdpi/app_icon.png
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/wechat/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/wechat/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/wechat/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.5.0'
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 |
--------------------------------------------------------------------------------
/wechat/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 | android.enableR8=true
5 |
--------------------------------------------------------------------------------
/wechat/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/wechat/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/wechat/images/Hank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/Hank.png
--------------------------------------------------------------------------------
/wechat/images/add_status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/add_status.png
--------------------------------------------------------------------------------
/wechat/images/badge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/badge.png
--------------------------------------------------------------------------------
/wechat/images/cooci.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/cooci.png
--------------------------------------------------------------------------------
/wechat/images/icon_friends_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/icon_friends_add.png
--------------------------------------------------------------------------------
/wechat/images/icon_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/icon_right.png
--------------------------------------------------------------------------------
/wechat/images/qrcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/qrcode.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_chat.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_chat_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_chat_hl.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_discover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_discover.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_discover_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_discover_hl.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_friends.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_friends.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_friends_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_friends_hl.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_mine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_mine.png
--------------------------------------------------------------------------------
/wechat/images/tabbar_mine_hl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/tabbar_mine_hl.png
--------------------------------------------------------------------------------
/wechat/images/五角星b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/五角星b.png
--------------------------------------------------------------------------------
/wechat/images/五角星w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/五角星w.png
--------------------------------------------------------------------------------
/wechat/images/公众号.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/公众号.png
--------------------------------------------------------------------------------
/wechat/images/发起群聊.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/发起群聊.png
--------------------------------------------------------------------------------
/wechat/images/圆加.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/圆加.png
--------------------------------------------------------------------------------
/wechat/images/小程序.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/小程序.png
--------------------------------------------------------------------------------
/wechat/images/微信卡包.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/微信卡包.png
--------------------------------------------------------------------------------
/wechat/images/微信支付.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/微信支付.png
--------------------------------------------------------------------------------
/wechat/images/微信收藏.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/微信收藏.png
--------------------------------------------------------------------------------
/wechat/images/微信相册.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/微信相册.png
--------------------------------------------------------------------------------
/wechat/images/微信表情.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/微信表情.png
--------------------------------------------------------------------------------
/wechat/images/微信设置.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/微信设置.png
--------------------------------------------------------------------------------
/wechat/images/扫一扫.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/扫一扫.png
--------------------------------------------------------------------------------
/wechat/images/扫一扫1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/扫一扫1.png
--------------------------------------------------------------------------------
/wechat/images/扫一扫2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/扫一扫2.png
--------------------------------------------------------------------------------
/wechat/images/搜一搜 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/搜一搜 2.png
--------------------------------------------------------------------------------
/wechat/images/搜一搜.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/搜一搜.png
--------------------------------------------------------------------------------
/wechat/images/搜一搜2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/搜一搜2.png
--------------------------------------------------------------------------------
/wechat/images/摇一摇.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/摇一摇.png
--------------------------------------------------------------------------------
/wechat/images/收付款.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/收付款.png
--------------------------------------------------------------------------------
/wechat/images/放大镜b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/放大镜b.png
--------------------------------------------------------------------------------
/wechat/images/放大镜w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/放大镜w.png
--------------------------------------------------------------------------------
/wechat/images/新的朋友.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/新的朋友.png
--------------------------------------------------------------------------------
/wechat/images/朋友圈.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/朋友圈.png
--------------------------------------------------------------------------------
/wechat/images/标星.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/标星.png
--------------------------------------------------------------------------------
/wechat/images/标签.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/标签.png
--------------------------------------------------------------------------------
/wechat/images/气泡.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/气泡.png
--------------------------------------------------------------------------------
/wechat/images/添加朋友.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/添加朋友.png
--------------------------------------------------------------------------------
/wechat/images/游戏.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/游戏.png
--------------------------------------------------------------------------------
/wechat/images/游戏2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/游戏2.png
--------------------------------------------------------------------------------
/wechat/images/相机.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/相机.png
--------------------------------------------------------------------------------
/wechat/images/看一看.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/看一看.png
--------------------------------------------------------------------------------
/wechat/images/群聊.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/群聊.png
--------------------------------------------------------------------------------
/wechat/images/购物.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/购物.png
--------------------------------------------------------------------------------
/wechat/images/附近的人.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/images/附近的人.png
--------------------------------------------------------------------------------
/wechat/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/wechat/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/wechat/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/wechat/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/wechat/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 flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
32 | end
33 |
34 | post_install do |installer|
35 | installer.pods_project.targets.each do |target|
36 | flutter_additional_ios_build_settings(target)
37 | end
38 | end
39 |
--------------------------------------------------------------------------------
/wechat/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Flutter (1.0.0)
3 | - image_picker (0.0.1):
4 | - Flutter
5 |
6 | DEPENDENCIES:
7 | - Flutter (from `Flutter`)
8 | - image_picker (from `.symlinks/plugins/image_picker/ios`)
9 |
10 | EXTERNAL SOURCES:
11 | Flutter:
12 | :path: Flutter
13 | image_picker:
14 | :path: ".symlinks/plugins/image_picker/ios"
15 |
16 | SPEC CHECKSUMS:
17 | Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
18 | image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
19 |
20 | PODFILE CHECKSUM: 8e679eca47255a8ca8067c4c67aab20e64cb974d
21 |
22 | COCOAPODS: 1.10.0
23 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/wechat/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/wechat/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/wechat/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 | #import "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 |
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "2x",
6 | "size" : "20x20"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "3x",
11 | "size" : "20x20"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "1x",
16 | "size" : "29x29"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "scale" : "2x",
21 | "size" : "29x29"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "scale" : "3x",
26 | "size" : "29x29"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "scale" : "2x",
31 | "size" : "40x40"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "scale" : "3x",
36 | "size" : "40x40"
37 | },
38 | {
39 | "filename" : "AppIcon60x60@2x.png",
40 | "idiom" : "iphone",
41 | "scale" : "2x",
42 | "size" : "60x60"
43 | },
44 | {
45 | "filename" : "AppIcon60x60@3x.png",
46 | "idiom" : "iphone",
47 | "scale" : "3x",
48 | "size" : "60x60"
49 | },
50 | {
51 | "idiom" : "ipad",
52 | "scale" : "1x",
53 | "size" : "20x20"
54 | },
55 | {
56 | "idiom" : "ipad",
57 | "scale" : "2x",
58 | "size" : "20x20"
59 | },
60 | {
61 | "idiom" : "ipad",
62 | "scale" : "1x",
63 | "size" : "29x29"
64 | },
65 | {
66 | "idiom" : "ipad",
67 | "scale" : "2x",
68 | "size" : "29x29"
69 | },
70 | {
71 | "idiom" : "ipad",
72 | "scale" : "1x",
73 | "size" : "40x40"
74 | },
75 | {
76 | "idiom" : "ipad",
77 | "scale" : "2x",
78 | "size" : "40x40"
79 | },
80 | {
81 | "idiom" : "ipad",
82 | "scale" : "1x",
83 | "size" : "76x76"
84 | },
85 | {
86 | "idiom" : "ipad",
87 | "scale" : "2x",
88 | "size" : "76x76"
89 | },
90 | {
91 | "idiom" : "ipad",
92 | "scale" : "2x",
93 | "size" : "83.5x83.5"
94 | },
95 | {
96 | "filename" : "Icon-App-1024x1024@1x.png",
97 | "idiom" : "ios-marketing",
98 | "scale" : "1x",
99 | "size" : "1024x1024"
100 | }
101 | ],
102 | "info" : {
103 | "author" : "xcode",
104 | "version" : 1
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "launch_image.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "LaunchImage@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "LaunchImage@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/launch_image.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/wechat/ios/Runner/Assets.xcassets/LaunchImage.imageset/launch_image.jpeg
--------------------------------------------------------------------------------
/wechat/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 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/wechat/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 |
--------------------------------------------------------------------------------
/wechat/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | 微信
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | NSCameraUsageDescription
26 | KC_WeChat请求相机权限
27 | NSMicrophoneUsageDescription
28 | KC_WeChat请求麦克风权限
29 | NSPhotoLibraryUsageDescription
30 | KC_WeChat请求相册权限
31 | UILaunchStoryboardName
32 | LaunchScreen
33 | UIMainStoryboardFile
34 | Main
35 | UISupportedInterfaceOrientations
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationLandscapeLeft
39 | UIInterfaceOrientationLandscapeRight
40 |
41 | UISupportedInterfaceOrientations~ipad
42 |
43 | UIInterfaceOrientationPortrait
44 | UIInterfaceOrientationPortraitUpsideDown
45 | UIInterfaceOrientationLandscapeLeft
46 | UIInterfaceOrientationLandscapeRight
47 |
48 | UIViewControllerBasedStatusBarAppearance
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/wechat/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 |
--------------------------------------------------------------------------------
/wechat/lib/kc_rootpage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:wecaht/pages/kc_chatpage.dart';
3 | import 'package:wecaht/pages/discover/kc_discoverpage.dart';
4 | import 'package:wecaht/pages/kc_friendspage.dart';
5 | import 'package:wecaht/pages/minePages/kc_minepage.dart';
6 |
7 | class KCRootPage extends StatefulWidget {
8 | @override
9 | _KCRootPageState createState() => _KCRootPageState();
10 | }
11 |
12 | class _KCRootPageState extends State {
13 | int _currentIndex = 3;
14 | List _pages = [KCChatPage(),KCFriendsPage(),KCDiscoverPage(),
15 | KCMinePage()];
16 | @override
17 | Widget build(BuildContext context) {
18 | return Scaffold(
19 | body: _pages[_currentIndex],
20 | bottomNavigationBar: BottomNavigationBar(
21 | onTap: (index){
22 | setState(() {
23 | _currentIndex = index;
24 | });
25 | },
26 | selectedFontSize: 12.0,
27 | currentIndex: _currentIndex,
28 | fixedColor: Colors.green,
29 | type: BottomNavigationBarType.fixed,
30 | items: [
31 | BottomNavigationBarItem(
32 | icon: Image.asset(
33 | 'images/tabbar_chat.png',
34 | height: 20,
35 | width: 20,
36 | ),
37 | activeIcon: Image.asset(
38 | 'images/tabbar_chat_hl.png',
39 | height: 20,
40 | width: 20,
41 | ),
42 | label: '微信'),
43 | BottomNavigationBarItem(
44 | icon: Image.asset(
45 | 'images/tabbar_friends.png',
46 | height: 20,
47 | width: 20,
48 | ),
49 | activeIcon: Image.asset(
50 | 'images/tabbar_friends_hl.png',
51 | height: 20,
52 | width: 20,
53 | ),
54 | label: '通讯录'),
55 | BottomNavigationBarItem(
56 | icon: Image.asset(
57 | 'images/tabbar_discover.png',
58 | height: 20,
59 | width: 20,
60 | ),
61 | activeIcon: Image.asset(
62 | 'images/tabbar_discover_hl.png',
63 | height: 20,
64 | width: 20,
65 | ),
66 | label: '发现'),
67 | BottomNavigationBarItem(
68 | icon: Image.asset(
69 | 'images/tabbar_mine.png',
70 | height: 20,
71 | width: 20,
72 | ),
73 | activeIcon: Image.asset(
74 | 'images/tabbar_mine_hl.png',
75 | height: 20,
76 | width: 20,
77 | ),
78 | label: '我'),
79 | ],
80 | ),
81 | );
82 | }
83 | }
--------------------------------------------------------------------------------
/wechat/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter/services.dart';
3 | import 'package:wecaht/kc_rootpage.dart';
4 |
5 | void main() {
6 | runApp(MyApp());
7 | SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
8 | }
9 |
10 | class MyApp extends StatelessWidget {
11 | // This widget is the root of your application.
12 | @override
13 | Widget build(BuildContext context) {
14 | return MaterialApp(
15 | title: 'WeChat',
16 | theme: ThemeData(
17 | highlightColor: Color.fromARGB(1, 0, 0, 0),
18 | splashColor: Color.fromARGB(1, 0, 0, 0),
19 | visualDensity: VisualDensity.adaptivePlatformDensity,
20 | ),
21 | home: KCRootPage(),
22 | );
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/wechat/lib/pages/discover/kc_discover_cell.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:wecaht/pages/discover/kc_discover_childpage.dart';
3 | import 'package:wecaht/pages/minePages/kc_mine_seticonpage.dart';
4 |
5 | class KCDiscoverCell extends StatefulWidget {
6 | final String title;
7 | final String subTitle;
8 | final String imageName;
9 | final String subImageName;
10 | final String linetype;
11 | // subImageType = 2 个人信息 带头像 3 二维码
12 | final String subImageType;
13 | // 纪录头像
14 | Image subImage;
15 |
16 |
17 | KCDiscoverCell({
18 | this.title,
19 | this.subTitle,
20 | this.imageName,
21 | this.subImageName,
22 | this.linetype,
23 | this.subImageType,
24 | this.subImage,
25 | });
26 |
27 | @override
28 | _KCDiscoverCellState createState() => _KCDiscoverCellState();
29 | }
30 |
31 | class _KCDiscoverCellState extends State {
32 |
33 | Color _currentColor = Colors.white;
34 |
35 | @override
36 | Widget build(BuildContext context) {
37 |
38 | double margin = widget.linetype == '1' ? 10 : 1;
39 | double padding = widget.linetype == '1' ? 0 : 45;
40 |
41 | return GestureDetector(
42 | onTap: (){
43 | Widget page = KCDiscoverChildPage(tittle: widget.title);
44 | if (widget.title == '头像'){
45 | page = KCMineSetIconPage(iconImage: widget.subImage);
46 | }
47 |
48 | Navigator.of(context).push(
49 | MaterialPageRoute(builder: (BuildContext context) => page));
50 | setState(() {
51 | _currentColor = Colors.white;
52 | });
53 | },
54 |
55 | onTapDown: (TapDownDetails details){
56 | setState(() {
57 | _currentColor = Colors.grey;
58 | });
59 | },
60 |
61 | onTapCancel: (){
62 | setState(() {
63 | _currentColor = Colors.white;
64 | });
65 | },
66 |
67 | child: Container(
68 | color: _currentColor,
69 | height: (widget.subImageType == '2') ? 80 : (widget.linetype == "1"? 64
70 | : 54.0),
71 | child: Column(
72 | mainAxisAlignment: MainAxisAlignment.start,
73 | children: [
74 | Expanded(child: Row(
75 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
76 | children: [
77 | //left
78 | Container(
79 | padding: EdgeInsets.fromLTRB(10, 0, 10, margin/2),
80 | child: Row(
81 | children: [
82 | widget.imageName != null ? Image(image: AssetImage(widget.imageName), width: 20,): Container(),
83 | SizedBox(width: 15),
84 | Text(widget.title),
85 | ],
86 | ),
87 | ),
88 | // right
89 | Container(
90 | padding: EdgeInsets.fromLTRB(10, 0, 10, margin/2),
91 | child: Row(
92 | children: [
93 | widget.subTitle != null ? Text(widget.subTitle) : Text(''),
94 | widget.subImageName != null ? Image(image: AssetImage(widget.subImageName),
95 | width: (widget.subImageType == '2') ? 40 : (widget
96 | .subImageType == '3') ? 20 : 10,)
97 | : Container(),
98 | Image(image: AssetImage('images/icon_right.png'),width: 15,),
99 | ],
100 | )
101 | ),
102 | ],
103 | )),
104 | Divider(height: 1.0,thickness: margin,
105 | indent: padding,color:
106 | Color.fromRGBO(220, 220, 220, 1)),
107 | ],
108 | ),
109 | ),
110 | );
111 | }
112 | }
113 |
114 |
115 |
--------------------------------------------------------------------------------
/wechat/lib/pages/discover/kc_discover_childpage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class KCDiscoverChildPage extends StatelessWidget {
4 |
5 | final String tittle;
6 | KCDiscoverChildPage({this.tittle});
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return Scaffold(
11 | appBar: AppBar(
12 | title: Text(tittle),
13 | ),
14 | body: Center(
15 | child: Text(tittle),
16 | ),
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/wechat/lib/pages/discover/kc_discoverpage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:wecaht/pages/discover/kc_discover_cell.dart';
3 |
4 | class KCDiscoverPage extends StatefulWidget {
5 | @override
6 | _KCDiscoverPageState createState() => _KCDiscoverPageState();
7 | }
8 |
9 | class _KCDiscoverPageState extends State {
10 | Color _themeColor = Color.fromRGBO(220, 220, 220, 1.0);
11 | @override
12 | Widget build(BuildContext context) {
13 | return Scaffold(
14 | appBar: AppBar(
15 | backgroundColor: _themeColor,
16 | centerTitle: true,
17 | elevation: 0.0,
18 | title: Text('发现'),
19 | ),
20 | body: Container(
21 | color: _themeColor,
22 | child: ListView(
23 | children: [
24 | KCDiscoverCell(
25 | imageName: 'images/朋友圈.png',
26 | title: '朋友圈',
27 | linetype: '1',
28 | ),
29 | KCDiscoverCell(
30 | imageName: 'images/扫一扫.png',
31 | title: '扫一扫',
32 | linetype: '1',
33 | ),
34 | KCDiscoverCell(
35 | imageName: 'images/摇一摇.png',
36 | title: '摇一摇',
37 | ),
38 | KCDiscoverCell(
39 | imageName: 'images/看一看.png',
40 | title: '看一看',
41 | ),
42 | KCDiscoverCell(
43 | imageName: 'images/搜一搜.png',
44 | title: '搜一搜',
45 | linetype: '1',
46 | ),
47 | KCDiscoverCell(
48 | imageName: 'images/附近的人.png',
49 | title: '附近的人',
50 | linetype: '1',
51 | ),
52 | KCDiscoverCell(
53 | imageName: 'images/购物.png',
54 | title: '购物',
55 | subTitle: '618限时特价',
56 | subImageName: 'images/badge.png',
57 | ),
58 | KCDiscoverCell(
59 | imageName: 'images/游戏.png',
60 | title: '游戏',
61 | linetype: '1',
62 | ),
63 | KCDiscoverCell(
64 | imageName: 'images/小程序.png',
65 | title: '小程序',
66 | ),
67 | ],
68 | ),
69 | ),
70 | );
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/wechat/lib/pages/kc_chatpage.dart:
--------------------------------------------------------------------------------
1 |
2 | import 'package:flutter/material.dart';
3 |
4 | class KCChatPage extends StatefulWidget {
5 | @override
6 | _KCChatPageState createState() => _KCChatPageState();
7 | }
8 |
9 | class _KCChatPageState extends State {
10 | @override
11 | Widget build(BuildContext context) {
12 | return Scaffold(
13 | appBar: AppBar(
14 | title: Text('微信'),
15 | ),
16 | body: Center(
17 | child: Text('微信'),
18 | ),
19 | );
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/wechat/lib/pages/kc_friendspage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class KCFriendsPage extends StatefulWidget {
4 | @override
5 | _KCFriendsPageState createState() => _KCFriendsPageState();
6 | }
7 |
8 | class _KCFriendsPageState extends State {
9 | @override
10 | Widget build(BuildContext context) {
11 | return Scaffold(
12 | appBar: AppBar(
13 | title: Text('通讯录'),
14 | ),
15 | body: Center(
16 | child: Text('通讯录'),
17 | ),
18 | );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/wechat/lib/pages/minePages/kc_mine_detailpage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:wecaht/pages/discover/kc_discover_cell.dart';
3 |
4 | class KCMineDetailPage extends StatelessWidget {
5 | Color _themeColor = Color.fromRGBO(220, 220, 220, 1.0);
6 | @override
7 | Widget build(BuildContext context) {
8 | return Scaffold(
9 | appBar: AppBar(
10 | brightness: Brightness.light,
11 | iconTheme: IconThemeData(
12 | color: Colors.black
13 | ),
14 | backgroundColor: _themeColor,
15 | centerTitle: true,
16 | elevation: 0.0,
17 | title: Text('个人信息',style: TextStyle(color: Colors.black),),
18 | ),
19 | body: Container(
20 | color: Color.fromRGBO(220, 220, 220, 1),
21 | child: ListView(
22 | children: [
23 | KCDiscoverCell(
24 | title: '头像',
25 | linetype: '1',
26 | subImageType: '2',
27 | subImageName: 'images/cooci.png',
28 | ),
29 | KCDiscoverCell(
30 | title: '名字',
31 | subTitle: 'Cooci',
32 | ),
33 | KCDiscoverCell(
34 | title: '拍一拍',
35 | ),
36 | KCDiscoverCell(
37 | title: '微信号',
38 | subTitle: 'KC_Cooci',
39 | ),
40 | KCDiscoverCell(
41 | title: '我的二维码',
42 | subImageType: '3',
43 | subImageName:'images/qrcode.png',
44 | ),
45 | KCDiscoverCell(
46 | title: '更多',
47 | linetype: '1',
48 | ),
49 | KCDiscoverCell(
50 | title: '微信豆',
51 | linetype: '1',
52 | ),
53 | KCDiscoverCell(
54 | title: '我的地址',
55 | ),
56 | KCDiscoverCell(
57 | title: '我的发票抬头',
58 | linetype: '1',
59 | ),
60 | ],
61 | ),
62 | ),
63 | );
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/wechat/lib/pages/minePages/kc_mine_seticonpage.dart:
--------------------------------------------------------------------------------
1 |
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter/services.dart';
4 | import 'package:image_picker/image_picker.dart';
5 |
6 | class KCMineSetIconPage extends StatefulWidget {
7 |
8 | final Image iconImage;
9 | KCMineSetIconPage({this.iconImage});
10 |
11 | @override
12 | _KCMineSetIconPageState createState() => _KCMineSetIconPageState();
13 | }
14 | class _KCMineSetIconPageState extends State {
15 | Color _themeColor = Color.fromRGBO(220, 220, 220, 1);
16 |
17 | // File _image;
18 | ///记录每次选择的图片
19 | List _images = [];
20 | // List _images = [];
21 | Future getImage(String type) async {
22 | Navigator.pop(context);
23 | try {
24 | var image = await ImagePicker.pickImage(
25 | source: type == "拍照" ? ImageSource.camera :ImageSource.gallery
26 | );
27 | if (image == null) {
28 | return;
29 | } else {
30 | setState(() {
31 | // _image = image;
32 | _images.add(image);
33 | });
34 | }
35 | } catch (e) {
36 | print("模拟器不支持相机!");
37 | }
38 | }
39 |
40 | @override Widget build(BuildContext context) {
41 | final _screenWidth = MediaQuery.of(context).size.width;
42 | final _screenHeight = MediaQuery.of(context).size.height;
43 | final double topPadding = MediaQuery.of(context).padding.top;
44 | final double bottomPadding = MediaQuery.of(context).padding.bottom;
45 | final double navbarHeight = 56.0;
46 |
47 |
48 | return Scaffold(
49 | appBar: AppBar(
50 | title: Text('个人头像', style: TextStyle(color: _themeColor)),
51 | backgroundColor: Colors.black,
52 | brightness: Brightness.dark,
53 | centerTitle: true,
54 | elevation: 0.0,
55 | iconTheme:IconThemeData(
56 | color: _themeColor,
57 | ),
58 | actions: [
59 | IconButton(icon: Icon(Icons.more_horiz),color: _themeColor,
60 | onPressed: (){
61 | print(' 点击设置头像');
62 | _showBottomSheet();
63 | }),
64 | ],
65 | ),
66 | body: new Container(
67 | color: Colors.black,
68 | child: Image(image: AssetImage('images/cooci.png'),width:
69 | _screenWidth, height: _screenWidth),
70 | padding: EdgeInsets.only(bottom:
71 | (_screenHeight-_screenWidth)
72 | /2),
73 | height: _screenHeight-navbarHeight-topPadding,
74 | width: _screenWidth,
75 | ),
76 | );
77 | }
78 |
79 | // 弹框
80 | _showBottomSheet(){
81 | showModalBottomSheet(context: context, builder: (context) => Container(
82 | height: 160,
83 | child: Column(
84 | children: [
85 | Container(),
86 | _takePhotoItem('拍照'),
87 | _takePhotoItem('从手机相册选择'),
88 | ],
89 | ),
90 | ));
91 | }
92 |
93 | // 拍照 / 从相册获取
94 | _takePhotoItem(String type){
95 | print(type);
96 | return GestureDetector(
97 | child: ListTile(
98 | title: Text(type),
99 | onTap: (){
100 |
101 | if (type == '取消'){
102 |
103 | }else if (type == '保存图片'){
104 |
105 | }else{
106 | getImage(type);
107 | }
108 |
109 | },
110 | ),
111 | );
112 | }
113 |
114 |
115 | }
116 |
117 |
118 |
--------------------------------------------------------------------------------
/wechat/lib/pages/minePages/kc_minepage.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:wecaht/pages/discover/kc_discover_cell.dart';
3 | import 'package:wecaht/pages/minePages/kc_mine_detailpage.dart';
4 |
5 | class KCMinePage extends StatefulWidget {
6 | @override
7 | _KCMinePageState createState() => _KCMinePageState();
8 | }
9 |
10 | class _KCMinePageState extends State {
11 |
12 | // 头部试图
13 | Widget headerWidget(){
14 | return GestureDetector(
15 | onTap: (){
16 | Navigator.of(context).push(
17 | MaterialPageRoute(builder: (BuildContext context) =>
18 | KCMineDetailPage()));
19 | },
20 | child: Container(
21 | color: Colors.white,
22 | height: 200,
23 | child: Container(
24 | margin: EdgeInsets.only(top: 100, bottom: 20),
25 | child: Container(
26 | margin: EdgeInsets.only(left: 20),
27 | child: Row(
28 | crossAxisAlignment: CrossAxisAlignment.start,
29 | children: [
30 | Container(
31 | height: 50,
32 | width: 50,
33 | decoration: BoxDecoration(
34 | borderRadius: BorderRadius.circular(5),
35 | image: DecorationImage(
36 | image: AssetImage('images/cooci.png'),
37 | ),
38 | ),
39 | ),// 头像
40 | Container(
41 | width: MediaQuery.of(context).size.width - 90,
42 | margin: EdgeInsets.only(left: 10,top: 5,right: 10),
43 | child: Column(
44 | crossAxisAlignment: CrossAxisAlignment.start,
45 | mainAxisAlignment: MainAxisAlignment.start,
46 | children: [
47 | Container(
48 | child: Text(
49 | 'Cooci',
50 | style: TextStyle(fontSize: 20,color: Colors.black),
51 | ),//昵称
52 | ),
53 | Container(
54 | margin: EdgeInsets.only(top: 5),
55 | child: Row(
56 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
57 | crossAxisAlignment: CrossAxisAlignment.center,
58 | children: [
59 | Text(
60 | '微信号: KC_Cooci',
61 | style: TextStyle(fontSize: 14,color: Colors
62 | .grey),
63 | ),//微信号
64 | Container(
65 | child: Row(
66 | mainAxisAlignment: MainAxisAlignment.end,
67 | children: [
68 | Image(image: AssetImage('images/qrcode.png'),
69 | width: 15,),
70 | SizedBox(width: 20,),
71 | Image(image: AssetImage('images/icon_right.png'),width: 15,),
72 | ],
73 | ),
74 | )
75 | ],
76 | ),
77 | ), // 微信号 + 二维码 + 箭头
78 | Container(
79 | child: Image(image: AssetImage('images/add_status'
80 | '.png'),width: 50,),
81 | ), // + 状态
82 | ],
83 | )
84 | ), // 右边
85 | ],
86 | ),
87 | ),
88 | ),
89 | ),
90 | );
91 | }
92 |
93 | @override
94 | Widget build(BuildContext context) {
95 | return Scaffold(
96 | body: Stack(
97 | children: [
98 | Container(
99 | color: Color.fromRGBO(220, 220, 220, 1),
100 | child: MediaQuery.removePadding(
101 | context: context,
102 | removeTop: true,
103 | child: ListView(
104 | children: [
105 | headerWidget(),
106 | SizedBox(height: 10,),
107 | KCDiscoverCell(title: '支付', imageName: 'images/微信支付.png',
108 | linetype: '1'),
109 | KCDiscoverCell(title: '收藏', imageName: 'images/微信收藏.png'),
110 | KCDiscoverCell(title: '朋友圈', imageName: 'images/朋友圈.png'),
111 | KCDiscoverCell(title: '卡包', imageName: 'images/微信卡包.png'),
112 | KCDiscoverCell(title: '表情', imageName: 'images/微信表情.png',
113 | linetype: '1'),
114 | KCDiscoverCell(title: '设置', imageName: 'images/微信设置.png',linetype: '1'),
115 | ],
116 | ),
117 | )
118 | ),
119 | ],
120 | )
121 | );
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/wechat/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: wecaht
2 | description: A new Flutter application.
3 |
4 | # The following line prevents the package from being accidentally published to
5 | # pub.dev using `pub publish`. This is preferred for private packages.
6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
7 |
8 | # The following defines the version and build number for your application.
9 | # A version number is three numbers separated by dots, like 1.2.43
10 | # followed by an optional build number separated by a +.
11 | # Both the version and the builder number may be overridden in flutter
12 | # build by specifying --build-name and --build-number, respectively.
13 | # In Android, build-name is used as versionName while build-number used as versionCode.
14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
16 | # Read more about iOS versioning at
17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18 | version: 1.0.0+1
19 |
20 | environment:
21 | sdk: ">=2.7.0 <3.0.0"
22 |
23 | dependencies:
24 | flutter:
25 | sdk: flutter
26 |
27 |
28 | # The following adds the Cupertino Icons font to your application.
29 | # Use with the CupertinoIcons class for iOS style icons.
30 | cupertino_icons: ^1.0.0
31 |
32 | image_picker: ^0.6.6
33 |
34 | dev_dependencies:
35 | flutter_test:
36 | sdk: flutter
37 |
38 | # For information on the generic Dart part of this file, see the
39 | # following page: https://dart.dev/tools/pub/pubspec
40 |
41 | # The following section is specific to Flutter.
42 | flutter:
43 |
44 | # The following line ensures that the Material Icons font is
45 | # included with your application, so that you can use the icons in
46 | # the material Icons class.
47 | uses-material-design: true
48 |
49 | # To add assets to your application, add an assets section, like this:
50 | assets:
51 | - images/
52 |
53 | # An image asset can refer to one or more resolution-specific "variants", see
54 | # https://flutter.dev/assets-and-images/#resolution-aware.
55 |
56 | # For details regarding adding assets from package dependencies, see
57 | # https://flutter.dev/assets-and-images/#from-packages
58 |
59 | # To add custom fonts to your application, add a fonts section here,
60 | # in this "flutter" section. Each entry in this list should have a
61 | # "family" key with the font family name, and a "fonts" key with a
62 | # list giving the asset and other descriptors for the font. For
63 | # example:
64 | # fonts:
65 | # - family: Schyler
66 | # fonts:
67 | # - asset: fonts/Schyler-Regular.ttf
68 | # - asset: fonts/Schyler-Italic.ttf
69 | # style: italic
70 | # - family: Trajan Pro
71 | # fonts:
72 | # - asset: fonts/TrajanPro.ttf
73 | # - asset: fonts/TrajanPro_Bold.ttf
74 | # weight: 700
75 | #
76 | # For details regarding fonts from package dependencies,
77 | # see https://flutter.dev/custom-fonts/#from-packages
78 |
--------------------------------------------------------------------------------
/wechat/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:wecaht/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/图片资源/fluter_app_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/图片资源/fluter_app_image.png
--------------------------------------------------------------------------------
/图片资源/flutter650*280灰色.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LGCooci/KCFlutter/e1248ad2d8093117556393a9998a2106709b1f8b/图片资源/flutter650*280灰色.jpg
--------------------------------------------------------------------------------