├── .gitignore
├── .metadata
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── ouedyan
│ │ │ │ └── fluttermobiletemplate
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── 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-night
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── assets
├── icons
│ └── svg_menu.svg
└── translations
│ └── en.json
├── flutter_launcher_icons.yaml
├── flutter_native_splash.yaml
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Podfile
├── 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
└── src
│ ├── core
│ ├── base
│ │ ├── bloc
│ │ │ ├── app_bloc_observer.dart
│ │ │ └── auth
│ │ │ │ ├── auth_bloc.dart
│ │ │ │ ├── auth_event.dart
│ │ │ │ └── auth_state.dart
│ │ ├── functions
│ │ │ └── base_functions.dart
│ │ ├── models
│ │ │ ├── auth_response_model.dart
│ │ │ └── auth_response_model.g.dart
│ │ ├── services
│ │ │ └── auth
│ │ │ │ └── auth_service.dart
│ │ └── singleton
│ │ │ └── base_singleton.dart
│ ├── components
│ │ ├── animations
│ │ │ ├── animatedLists
│ │ │ │ ├── animated_grid_view.dart
│ │ │ │ ├── animated_horizontal_list_view.dart
│ │ │ │ ├── animated_list_view.dart
│ │ │ │ └── animated_scroll_view_item.dart
│ │ │ ├── animationUtils
│ │ │ │ ├── animate_in_effect.dart
│ │ │ │ ├── animated_scale.dart
│ │ │ │ ├── animated_text.dart
│ │ │ │ ├── animated_text_wrapper.dart
│ │ │ │ ├── auto_fade.dart
│ │ │ │ ├── fade_in_effect.dart
│ │ │ │ ├── gyroscope_effect_stream_builder.dart
│ │ │ │ ├── list_item_wrapper_widget.dart
│ │ │ │ └── mouse_region_effect.dart
│ │ │ └── provider
│ │ │ │ └── gyroscope_provider.dart
│ │ ├── appbar
│ │ │ └── custom_app_bar.dart
│ │ ├── button
│ │ │ └── button_widget.dart
│ │ ├── noNetwork
│ │ │ └── no_network_widget.dart
│ │ ├── popup
│ │ │ └── main_popup.dart
│ │ ├── scaffold
│ │ │ └── custom_scaffold.dart
│ │ ├── text
│ │ │ └── custom_text.dart
│ │ └── textFormField
│ │ │ ├── text_form_field_widget.dart
│ │ │ └── validate_operations.dart
│ ├── constants
│ │ ├── app
│ │ │ ├── app_constants.dart
│ │ │ └── color_constants.dart
│ │ └── enums
│ │ │ ├── icon_enums.dart
│ │ │ ├── network_enums.dart
│ │ │ ├── network_result_enums.dart
│ │ │ └── route_enums.dart
│ ├── extensions
│ │ ├── context_extensions.dart
│ │ ├── iterable_extensions.dart
│ │ ├── logging_extension.dart
│ │ ├── network_extensions.dart
│ │ ├── num_extensions.dart
│ │ └── string_extensions.dart
│ ├── init
│ │ ├── dependency_injector.dart
│ │ ├── local_storage
│ │ │ └── local_storage_manager.dart
│ │ ├── main_build
│ │ │ └── main_build.dart
│ │ ├── network
│ │ │ ├── network_change_manager.dart
│ │ │ └── vexana_manager.dart
│ │ ├── routes
│ │ │ └── routes.dart
│ │ ├── theme
│ │ │ └── app_theme.dart
│ │ └── utils
│ │ │ └── typedefs.dart
│ ├── locale_keys.g.dart
│ └── mixins
│ │ ├── launch_mixin.dart
│ │ ├── safe_context_mixin.dart
│ │ └── state_mixin.dart
│ └── view
│ ├── auth
│ ├── login
│ │ └── login_view.dart
│ └── register
│ │ └── register_view.dart
│ └── home
│ ├── bloc
│ ├── home_bloc.dart
│ ├── home_event.dart
│ └── home_state.dart
│ ├── home_view.dart
│ ├── model
│ ├── home_model.dart
│ └── home_model.g.dart
│ ├── service
│ └── home_service.dart
│ └── widgets
│ └── home_card.dart
├── pubspec.lock
├── pubspec.yaml
├── scripts
└── build.sh
└── test
└── auth
└── auth_service_test.dart
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 | migrate_working_dir/
12 |
13 | # IntelliJ related
14 | *.iml
15 | *.ipr
16 | *.iws
17 | .idea/
18 |
19 | # The .vscode folder contains launch configuration and tasks you configure in
20 | # VS Code which you may wish to be included in version control, so this line
21 | # is commented out by default.
22 | #.vscode/
23 |
24 | # Flutter/Dart/Pub related
25 | **/doc/api/
26 | **/ios/Flutter/.last_build_id
27 | .dart_tool/
28 | .flutter-plugins
29 | .flutter-plugins-dependencies
30 | .packages
31 | .pub-cache/
32 | .pub/
33 | /build/
34 |
35 | # Web related
36 | lib/generated_plugin_registrant.dart
37 |
38 | # Symbolication related
39 | app.*.symbols
40 |
41 | # Obfuscation related
42 | app.*.map.json
43 |
44 | # Android Studio will place build artifacts here
45 | /android/app/debug
46 | /android/app/profile
47 | /android/app/release
48 |
--------------------------------------------------------------------------------
/.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.
5 |
6 | version:
7 | revision: cd41fdd495f6944ecd3506c21e94c6567b073278
8 | channel: stable
9 |
10 | project_type: app
11 |
12 | # Tracks metadata for the flutter migrate command
13 | migration:
14 | platforms:
15 | - platform: root
16 | create_revision: cd41fdd495f6944ecd3506c21e94c6567b073278
17 | base_revision: cd41fdd495f6944ecd3506c21e94c6567b073278
18 | - platform: android
19 | create_revision: cd41fdd495f6944ecd3506c21e94c6567b073278
20 | base_revision: cd41fdd495f6944ecd3506c21e94c6567b073278
21 | - platform: ios
22 | create_revision: cd41fdd495f6944ecd3506c21e94c6567b073278
23 | base_revision: cd41fdd495f6944ecd3506c21e94c6567b073278
24 |
25 | # User provided section
26 |
27 | # List of Local paths (relative to this file) that should be
28 | # ignored by the migrate tool.
29 | #
30 | # Files that are not part of the templates will be ignored by default.
31 | unmanaged_files:
32 | - 'lib/main.dart'
33 | - 'ios/Runner.xcodeproj/project.pbxproj'
34 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Flutter Mobile App Project Template by Zalisoft (flutter_bloc, provider, riverpod, go_router, vexana, url_launcher, json_serializable, easy_localization bot_toast, flutter_secure_storage, connectivity_plus, intl, sizer, google_fonts, flutter_native_splash, flutter_launcher_icons and other generally used features and tools in production.)
2 |
3 | This is a battery included [Flutter](https://flutter.dev/) project template. To the default setup have been added:
4 |
5 | - [flutter_bloc](https://bloclibrary.dev/) - Predictable and Highly testable state management library for Dart.
6 | - [provider](https://pub.dev/packages/provider) - Functional state management library using InheritedWidget, which is the most preferred next to BLoC.
7 | - [go_router](https://pub.dev/packages/go_router) - Robust and customizable Flutter navigation package.
8 | - [vexana](https://pub.dev/packages/vexana) - A powerful http client package overwritten by the dio package.
9 | - [url_launcher](https://pub.dev/packages/url_launcher) - Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.
10 | - [connectivity_plus](https://pub.dev/packages/connectivity_plus) - This plugin allows Flutter apps to discover network connectivity and configure themselves accordingly. It can distinguish between cellular vs WiFi connection.
11 | - [json_serializable](https://pub.dev/packages/json_serializable) - Generates to/from json serialization code for our data models.
12 | - [easy_localization](https://pub.dev/packages/easy_localization) - Easy and Fast internationalization.
13 | - [bot_toast](https://pub.dev/packages/bot_toast) - Feature-Rich Toast/alert/notification/popup library for Flutter.
14 | - [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage) - A Flutter plugin to store data in secure storage (encrypted, not in plain text like shared_preferences). Eg. for storing user credentials, tokens...
15 | - [intl](https://pub.dev/packages/intl) - Provides internationalization and localization facilities, including message translation, plurals and genders, date/number formatting and parsing, and bidirectional text.
16 | - [sizer](https://pub.dev/packages/sizer) - A package for adapting screen and font size.
17 | - [flutter_svg](https://pub.dev/packages/flutter_svg) - For rendering SVG assets.
18 | - [google_fonts](https://pub.dev/packages/google_fonts) - A Flutter package to use fonts from fonts.google.com.
19 | - [auto_size_text](https://pub.dev/packages/auto_size_text) - Flutter widget that automatically resizes text to fit perfectly within its bounds.
20 | - [flutter_native_splash](https://pub.dev/packages/flutter_native_splash) - Generates iOS, Android, and Web-native code for customizing the native splash screen background color and splash image.
21 | - [flutter_launcher_icons](https://pub.dev/packages/flutter_launcher_icons) - Fully flexible toolset for updating your Flutter app's launcher icons (Android and Ios).
22 | - [rename](https://pub.dev/packages/rename) - Change your flutter project's AppName and BundleId (IOS, Android, macOS and Web).
23 | - [change_app_package_name](https://pub.dev/packages/change_app_package_name) - Complementary to **rename** package, for changing app package name in Android and renaming correctly directories (which **rename** doesn't do).
24 |
25 | ## Project Config roadmap (Just Informative. Don't repeat these steps.)
26 |
27 | All the necessary config and dependencies have already been set and ready for use but there is an explanation of each step if you want to know more about the pre-config or customize it.
28 |
29 | Initialize the Flutter project, add all the necessary dependencies mentioned above in the **pubspec.yaml** configuration file and run `pub get`.
30 |
31 | **pubspec.yaml**
32 | ```yaml
33 | dependencies:
34 | flutter:
35 | sdk: flutter
36 | cupertino_icons: ^1.0.5
37 |
38 | #Text
39 | google_fonts: ^3.0.1
40 | auto_size_text: ^3.0.0
41 |
42 | #Responsive
43 | sizer: ^2.0.15
44 |
45 | #Image
46 | flutter_svg: ^1.1.6
47 |
48 | #Design
49 | sensors_plus: ^1.4.0
50 |
51 | #JsonAnnotation
52 | json_annotation: ^4.7.0
53 |
54 | #Equality Operator
55 | equatable: ^2.0.5
56 |
57 | #Network
58 | vexana: ^3.0.1
59 | url_launcher: ^6.1.6
60 | connectivity_plus: ^2.3.5
61 |
62 | #Locale Storage
63 | flutter_secure_storage: ^6.0.0
64 |
65 | #Navigation
66 | go_router: ^5.1.1
67 |
68 | #Localization
69 | intl: ^0.17.0
70 | easy_localization: ^3.0.1
71 | bot_toast: ^4.0.3
72 |
73 | #State Management
74 | provider: ^6.0.4
75 | flutter_riverpod: ^2.1.3
76 | flutter_bloc: ^8.1.1
77 |
78 | #Native Splash Screen
79 | flutter_native_splash: ^2.2.13
80 |
81 | dev_dependencies:
82 | flutter_test:
83 | sdk: flutter
84 | flutter_lints: ^2.0.1
85 |
86 | # Code generation
87 | build_runner: ^2.2.0
88 |
89 | # Json serialization code generation
90 | json_serializable: ^6.3.1
91 |
92 | # Native Launcher Icons generator
93 | flutter_launcher_icons: ^0.10.0
94 |
95 | # Change app package name/bundle id and app name
96 | change_app_package_name: ^1.1.0
97 | rename: ^2.0.1
98 | ```
99 |
100 | Change the app name to your own one.
101 | ```bash
102 | flutter pub run rename --appname "YourAppName"
103 | ```
104 |
105 | Change the package name/bundle id to your own one.
106 | ```bash
107 | flutter pub run change_app_package_name:main com.company.name &&
108 | flutter pub run rename --bundleId com.company.name
109 | ```
110 |
111 | Add **flutter_native_splash.yaml** config file to the project root directory.
112 | _(See the concerned for more information)_
113 | ```yaml
114 | flutter_native_splash:
115 | # ...
116 | color: "#ffffff"
117 | background_image: "assets/background.png"
118 | image: assets/splash.png
119 | # ...
120 | ```
121 |
122 | Generate the splash screens after you have added your own configuration.
123 | ```bash
124 | flutter pub run flutter_native_splash:create
125 | ```
126 |
127 | Add **flutter_launchers_icons.yaml** config file to the project root directory.
128 | _(See the concerned for more information)_
129 | ```yaml
130 | flutter_icons:
131 | android: "launcher_icon"
132 | ios: true
133 | image_path: "assets/icons/launcher_icon.png"
134 | # Icons with alpha channel are not allowed in the Apple App Store.
135 | remove_alpha_ios: true
136 | # ...
137 | ```
138 |
139 | Generate the launcher icons after you have added your own configuration.
140 | ```bash
141 | flutter pub run flutter_launcher_icons:main
142 | ```
143 |
144 |
145 | The android minSdKVersion is set to **Android API level 21** to comply to modern libraries requirements support. Eg. flutter_secure_storage (requires Android API level 18).
146 |
147 | **android/app/build.gradle**
148 | ```groovy
149 | android {
150 | //...
151 | defaultConfig {
152 | //...
153 | minSdkVersion 21
154 | targetSdkVersion flutter.targetSdkVersion
155 | versionCode flutterVersionCode.toInteger()
156 | versionName flutterVersionName
157 | }
158 | //...
159 | }
160 | ```
161 |
162 | ## Scripts
163 |
164 | Change package name/bundle id
165 | ```bash
166 | flutter pub run change_app_package_name:main com.new.package.name && flutter pub run rename --bundleId com.new.package.name
167 | ```
168 |
169 | Change App Name
170 | ```bash
171 | flutter pub run rename --appname "NewAppName"
172 | ```
173 |
174 | Run build_runner to generate/regenerate code from code generating packages (easy_localization, json_serializable, etc.)
175 | ```bash
176 | flutter pub run build_runner build
177 | ```
178 | Generate while overriding old outputs
179 | ```bash
180 | flutter packages pub run build_runner build --delete-conflicting-outputs
181 | ```
182 | Watch and regenerate after each change
183 | ```bash
184 | flutter pub run build_runner watch
185 | ```
186 |
187 | Generate easy_localization translation string keys for usage in code
188 | ```bash
189 | flutter pub run easy_localization:generate -O lib/core/ -f keys -o locale_keys.g.dart --source-dir assets/translations
190 | ```
191 |
192 | Generate native launcher icons from config.
193 | ```bash
194 | flutter pub run flutter_launcher_icons:main
195 | ```
196 |
197 | Generate native splash screens from config
198 | ```bash
199 | flutter pub run flutter_native_splash:create
200 | ```
201 |
202 | ## Project directory structure
203 |
204 | Main folders structure
205 |
206 | ```
207 | 📂 assets
208 | 📂 icons
209 | 📂 images
210 | 📂 translations
211 | 📄 en.json
212 | ...📄 {locale}.json
213 |
214 | 📂 lib
215 | 📂 src
216 | 📂 core
217 | 📂 base
218 | 📂 bloc
219 | 📂 auth
220 | 📄 {auth_bloc}.dart
221 | 📄 {auth_event}.dart
222 | 📄 {auth_state}.dart
223 | 📄 app_bloc_observer.dart
224 | 📂 functions
225 | 📄 base_functions.dart
226 | 📂 models
227 | 📄 auth_response_model.dart
228 | 📄 auth_response_model.g.dart
229 | 📂 services
230 | 📂 auth
231 | 📄 auth_service.dart
232 | 📂 singleton
233 | 📄 base_singleton.dart
234 | 📂 components
235 | 📂 animations
236 | 📂 animatedLists
237 | 📄 animated_grid_view.dart
238 | 📄 animated_horizontal_list_view.dart
239 | 📄 animated_list_view.dart
240 | 📄 animated_scroll_view_item.dart
241 | 📂 animationUtils
242 | 📄 animate_in_effect.dart
243 | 📄 animated_scale.dart
244 | 📄 animated_text_wrapper.dart
245 | 📄 animated_text.dart
246 | 📄 auto_fade.dart
247 | 📄 fade_in_effect.dart
248 | 📄 gyroscope_effect_stream_builder.dart
249 | 📄 list_item_wrapper_widget.dart
250 | 📄 mouse_region_effect.dart
251 | 📂 provider
252 | 📂 appbar
253 | 📄 custom_app_bar.dart
254 | 📂 button
255 | 📄 button_widget.dart
256 | 📂 noNetwork
257 | 📄 no_network_widget.dart
258 | 📂 popup
259 | 📄 main_popup.dart
260 | 📂 scaffold
261 | 📄 custom_scaffold.dart
262 | 📂 text
263 | 📄 custom_text.dart
264 | 📂 textFormField
265 | 📄 text_form_field_widget.dart
266 | 📄 validate_operations.dart
267 | 📂 constants
268 | 📂 app
269 | 📄 app_constants.dart
270 | 📄 color_constants.dart
271 | 📂 enums
272 | 📄 icon_enums.dart
273 | 📄 network_enums.dart
274 | 📄 network_results_enums.dart
275 | 📄 route_enums.dart
276 | 📂 extensions
277 | 📄 context_extensions.dart
278 | 📄 iterable_extensions.dart
279 | 📄 logging_extension.dart
280 | 📄 network_extensions.dart
281 | 📄 num_extensions.dart
282 | 📄 string_extensions.dart
283 | 📂 init
284 | 📂 language
285 | 📂 local_storage
286 | 📄 local_storage_manager.dart
287 | 📂 main_build
288 | 📄 main_build.dart
289 | 📂 network
290 | 📄 network_change_manager.dart
291 | 📄 no_network_widget.dart
292 | 📄 vexana_manager.dart
293 | 📂 routes
294 | 📄 routes.dart
295 | 📂 theme
296 | 📄 app_theme.dart
297 | 📂 utils
298 | 📄 typedefs.dart
299 | 📄 dependency_injector.dart
300 | 📂 mixins
301 | 📄 launch_mixin.dart
302 | 📄 safe_context_mixin.dart
303 | 📄 state_mixin.dart
304 | 📄 locale_keys.g.dart
305 | 📂 view
306 | 📂 auth
307 | 📂 login
308 | 📄 login_view.dart
309 | 📂 register
310 | 📄 register_view.dart
311 | 📂 home
312 | 📂 bloc
313 | 📄 {home_bloc}.dart
314 | 📄 {home_event}.dart
315 | 📄 {home_state}.dart
316 | 📂 model
317 | 📄 home_model.dart
318 | 📄 home_model.g.dart
319 | 📂 service
320 | 📄 home_service.dart
321 | 📂 widgets
322 | 📄 home_card.dart
323 | 📄 home_view.dart
324 | 📄 main.dart
325 | 📂 scripts
326 | 📄 build.sh
327 |
328 | 📂 test
329 | 📂 auth
330 | 📄 auth_service_test.dart
331 |
332 | 📄 flutter_launcher_icons.yaml
333 |
334 | 📄 flutter_native_splash.yaml
335 |
336 | 📄 pubspec.yaml
337 |
338 | 📄 README.md
339 |
340 | ```
341 |
342 | ## Project tech stack useful resources
343 |
344 | ### Flutter
345 | - [Flutter](https://flutter.dev) - Flutter framework official website.
346 | - [Flutter Docs](https://docs.flutter.dev) - Flutter official documentation.
347 |
348 | ### Dart
349 | - [Dart](https://dart.dev) - Dart language official website.
350 | - [Dart Docs](https://dart.dev/guides) - Dart official documentation.
351 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | # This file configures the analyzer, which statically analyzes Dart code to
2 | # check for errors, warnings, and lints.
3 | #
4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6 | # invoked from the command line by running `flutter analyze`.
7 |
8 | # The following line activates a set of recommended lints for Flutter apps,
9 | # packages, and plugins designed to encourage good coding practices.
10 | include: package:flutter_lints/flutter.yaml
11 |
12 | linter:
13 | # The lint rules applied to this project can be customized in the
14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml`
15 | # included above or to enable additional rules. A list of all available lints
16 | # and their documentation is published at
17 | # https://dart-lang.github.io/linter/lints/index.html.
18 | #
19 | # Instead of disabling a lint rule for the entire project in the
20 | # section below, it can also be suppressed for a single line of code
21 | # or a specific dart file by using the `// ignore: name_of_lint` and
22 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file
23 | # producing the lint.
24 | rules:
25 | # avoid_print: false # Uncomment to disable the `avoid_print` rule
26 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
27 |
28 | # Additional information about this file can be found at
29 | # https://dart.dev/guides/language/analysis-options
30 |
--------------------------------------------------------------------------------
/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 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/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 33
30 | ndkVersion flutter.ndkVersion
31 |
32 | compileOptions {
33 | sourceCompatibility JavaVersion.VERSION_1_8
34 | targetCompatibility JavaVersion.VERSION_1_8
35 | }
36 |
37 | kotlinOptions {
38 | jvmTarget = '1.8'
39 | }
40 |
41 | sourceSets {
42 | main.java.srcDirs += 'src/main/kotlin'
43 | }
44 |
45 | defaultConfig {
46 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
47 | applicationId "com.ouedyan.fluttermobiletemplate"
48 | // You can update the following values to match your application needs.
49 | // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
50 | minSdkVersion 21
51 | targetSdkVersion flutter.targetSdkVersion
52 | versionCode flutterVersionCode.toInteger()
53 | versionName flutterVersionName
54 | }
55 |
56 | buildTypes {
57 | release {
58 | // TODO: Add your own signing config for the release build.
59 | // Signing with the debug keys for now, so `flutter run --release` works.
60 | signingConfig signingConfigs.debug
61 | }
62 | }
63 | }
64 |
65 | flutter {
66 | source '../..'
67 | }
68 |
69 | dependencies {
70 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
71 | }
72 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
15 |
19 |
23 |
24 |
25 |
26 |
27 |
28 |
30 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/ouedyan/fluttermobiletemplate/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.ouedyan.fluttermobiletemplate
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.1.2'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
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 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/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-7.4-all.zip
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/assets/icons/svg_menu.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/assets/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "appName" : "Flutter App Template"
3 | }
4 |
--------------------------------------------------------------------------------
/flutter_launcher_icons.yaml:
--------------------------------------------------------------------------------
1 | flutter_icons:
2 | android: "launcher_icon"
3 | ios: true
4 | # TODO: Change this to the correct path
5 | image_path: "assets/icons/launcher_icon.png"
6 | # Icons with alpha channel are not allowed in the Apple App Store.
7 | remove_alpha_ios: true
8 |
9 | # See https://pub.dev/packages/flutter_launcher_icons#mag-attributes for more information.
10 |
11 |
12 |
--------------------------------------------------------------------------------
/flutter_native_splash.yaml:
--------------------------------------------------------------------------------
1 | flutter_native_splash:
2 |
3 | # This package generates native code to customize Flutter's default white native splash screen
4 | # with background color and splash image.
5 | # Customize the parameters below, and run the following command in the terminal:
6 | # flutter pub run flutter_native_splash:create
7 | # To restore Flutter's default white splash screen, run the following command in the terminal:
8 | # flutter pub run flutter_native_splash:remove
9 |
10 | # color or background_image is the only required parameter. Use color to set the background
11 | # of your splash screen to a solid color. Use background_image to set the background of your
12 | # splash screen to a png image. This is useful for gradients. The image will be stretch to the
13 | # size of the app. Only one parameter can be used, color and background_image cannot both be set.
14 | color: "#ffffff"
15 | #background_image: "assets/background.png"
16 |
17 | # Optional parameters are listed below. To enable a parameter, uncomment the line by removing
18 | # the leading # character.
19 |
20 | # The image parameter allows you to specify an image used in the splash screen. It must be a
21 | # png file and should be sized for 4x pixel density.
22 | # TODO: Change this to the splash image
23 | image: assets/splash.png
24 |
25 | # The branding property allows you to specify an image used as branding in the splash screen.
26 | # It must be a png file. Currently, it is only supported for Android < v12 and iOS.
27 | #branding: assets/dart.png
28 |
29 | # To position the branding image at the bottom of the screen you can use bottom, bottomRight,
30 | # and bottomLeft. The default values is bottom if not specified or specified something else.
31 | #branding_mode: bottom
32 |
33 | # The color_dark, background_image_dark, image_dark, branding_dark are parameters that set the background
34 | # and image when the device is in dark mode. If they are not specified, the app will use the
35 | # parameters from above. If the image_dark parameter is specified, color_dark or
36 | # background_image_dark must be specified. color_dark and background_image_dark cannot both be
37 | # set.
38 | #color_dark: "#042a49"
39 | #background_image_dark: "assets/dark-background.png"
40 | #image_dark: assets/splash-invert.png
41 | #branding_dark: assets/dart_dark.png
42 |
43 | # Android 12 handles the splash screen differently than previous versions. Please visit
44 | # https://developer.android.com/guide/topics/ui/splash-screen
45 | # Following are Android 12 specific parameter.
46 | android_12:
47 | # The image parameter sets the splash screen icon image. If this parameter is not specified,
48 | # the app's launcher icon will be used instead.
49 | # Please note that the splash screen will be clipped to a circle on the center of the screen.
50 | # App icon with an icon background: This should be 960×960 pixels, and fit within a circle
51 | # 640 pixels in diameter.
52 | # App icon without an icon background: This should be 1152×1152 pixels, and fit within a circle
53 | # 768 pixels in diameter.
54 | #image: assets/android12splash.png
55 |
56 | # Splash screen background color.
57 | #color: "#42a5f5"
58 |
59 | # App icon background color.
60 | #icon_background_color: "#111111"
61 |
62 | # The image_dark parameter and icon_background_color_dark set the image and icon background
63 | # color when the device is in dark mode. If they are not specified, the app will use the
64 | # parameters from above.
65 | #image_dark: assets/android12splash-invert.png
66 | #color_dark: "#042a49"
67 | #icon_background_color_dark: "#eeeeee"
68 |
69 | # The android, ios and web parameters can be used to disable generating a splash screen on a given
70 | # platform.
71 | #android: false
72 | #ios: false
73 | #web: false
74 |
75 | # The position of the splash image can be set with android_gravity, ios_content_mode, and
76 | # web_image_mode parameters. All default to center.
77 | #
78 | # android_gravity can be one of the following Android Gravity (see
79 | # https://developer.android.com/reference/android/view/Gravity): bottom, center,
80 | # center_horizontal, center_vertical, clip_horizontal, clip_vertical, end, fill, fill_horizontal,
81 | # fill_vertical, left, right, start, or top.
82 | #android_gravity: center
83 | #
84 | # ios_content_mode can be one of the following iOS UIView.ContentMode (see
85 | # https://developer.apple.com/documentation/uikit/uiview/contentmode): scaleToFill,
86 | # scaleAspectFit, scaleAspectFill, center, top, bottom, left, right, topLeft, topRight,
87 | # bottomLeft, or bottomRight.
88 | #ios_content_mode: center
89 | #
90 | # web_image_mode can be one of the following modes: center, contain, stretch, and cover.
91 | #web_image_mode: center
92 |
93 | # The screen orientation can be set in Android with the android_screen_orientation parameter.
94 | # Valid parameters can be found here:
95 | # https://developer.android.com/guide/topics/manifest/activity-element#screen
96 | #android_screen_orientation: sensorLandscape
97 |
98 | # To hide the notification bar, use the fullscreen parameter. Has no effect in web since web
99 | # has no notification bar. Defaults to false.
100 | # NOTE: Unlike Android, iOS will not automatically show the notification bar when the app loads.
101 | # To show the notification bar, add the following code to your Flutter app:
102 | # WidgetsFlutterBinding.ensureInitialized();
103 | # SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom, SystemUiOverlay.top]);
104 | #fullscreen: true
105 |
106 | # If you have changed the name(s) of your info.plist file(s), you can specify the filename(s)
107 | # with the info_plist_files parameter. Remove only the # characters in the three lines below,
108 | # do not remove any spaces:
109 | #info_plist_files:
110 | # - 'ios/Runner/Info-Debug.plist'
111 | # - 'ios/Runner/Info-Release.plist'
112 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | **/dgph
2 | *.mode1v3
3 | *.mode2v3
4 | *.moved-aside
5 | *.pbxuser
6 | *.perspectivev3
7 | **/*sync/
8 | .sconsign.dblite
9 | .tags*
10 | **/.vagrant/
11 | **/DerivedData/
12 | Icon?
13 | **/Pods/
14 | **/.symlinks/
15 | profile
16 | xcuserdata
17 | **/.generated/
18 | Flutter/App.framework
19 | Flutter/Flutter.framework
20 | Flutter/Flutter.podspec
21 | Flutter/Generated.xcconfig
22 | Flutter/ephemeral/
23 | Flutter/app.flx
24 | Flutter/app.zip
25 | Flutter/flutter_assets/
26 | Flutter/flutter_export_environment.sh
27 | ServiceDefinitions.json
28 | Runner/GeneratedPluginRegistrant.*
29 |
30 | # Exceptions to above rules.
31 | !default.mode1v3
32 | !default.mode2v3
33 | !default.pbxuser
34 | !default.perspectivev3
35 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 9.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/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 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
16 | /* End PBXBuildFile section */
17 |
18 | /* Begin PBXCopyFilesBuildPhase section */
19 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
20 | isa = PBXCopyFilesBuildPhase;
21 | buildActionMask = 2147483647;
22 | dstPath = "";
23 | dstSubfolderSpec = 10;
24 | files = (
25 | );
26 | name = "Embed Frameworks";
27 | runOnlyForDeploymentPostprocessing = 0;
28 | };
29 | /* End PBXCopyFilesBuildPhase section */
30 |
31 | /* Begin PBXFileReference section */
32 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
33 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
34 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
35 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
36 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
37 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
38 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
39 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
40 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
41 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
42 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
43 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
44 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
45 | /* End PBXFileReference section */
46 |
47 | /* Begin PBXFrameworksBuildPhase section */
48 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
49 | isa = PBXFrameworksBuildPhase;
50 | buildActionMask = 2147483647;
51 | files = (
52 | );
53 | runOnlyForDeploymentPostprocessing = 0;
54 | };
55 | /* End PBXFrameworksBuildPhase section */
56 |
57 | /* Begin PBXGroup section */
58 | 9740EEB11CF90186004384FC /* Flutter */ = {
59 | isa = PBXGroup;
60 | children = (
61 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
62 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
63 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
64 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
65 | );
66 | name = Flutter;
67 | sourceTree = "";
68 | };
69 | 97C146E51CF9000F007C117D = {
70 | isa = PBXGroup;
71 | children = (
72 | 9740EEB11CF90186004384FC /* Flutter */,
73 | 97C146F01CF9000F007C117D /* Runner */,
74 | 97C146EF1CF9000F007C117D /* Products */,
75 | );
76 | sourceTree = "";
77 | };
78 | 97C146EF1CF9000F007C117D /* Products */ = {
79 | isa = PBXGroup;
80 | children = (
81 | 97C146EE1CF9000F007C117D /* Runner.app */,
82 | );
83 | name = Products;
84 | sourceTree = "";
85 | };
86 | 97C146F01CF9000F007C117D /* Runner */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
90 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
91 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
92 | 97C147021CF9000F007C117D /* Info.plist */,
93 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
94 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
95 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
96 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
97 | );
98 | path = Runner;
99 | sourceTree = "";
100 | };
101 | /* End PBXGroup section */
102 |
103 | /* Begin PBXNativeTarget section */
104 | 97C146ED1CF9000F007C117D /* Runner */ = {
105 | isa = PBXNativeTarget;
106 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
107 | buildPhases = (
108 | 9740EEB61CF901F6004384FC /* Run Script */,
109 | 97C146EA1CF9000F007C117D /* Sources */,
110 | 97C146EB1CF9000F007C117D /* Frameworks */,
111 | 97C146EC1CF9000F007C117D /* Resources */,
112 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
113 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
114 | );
115 | buildRules = (
116 | );
117 | dependencies = (
118 | );
119 | name = Runner;
120 | productName = Runner;
121 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
122 | productType = "com.apple.product-type.application";
123 | };
124 | /* End PBXNativeTarget section */
125 |
126 | /* Begin PBXProject section */
127 | 97C146E61CF9000F007C117D /* Project object */ = {
128 | isa = PBXProject;
129 | attributes = {
130 | LastUpgradeCheck = 1300;
131 | ORGANIZATIONNAME = "";
132 | TargetAttributes = {
133 | 97C146ED1CF9000F007C117D = {
134 | CreatedOnToolsVersion = 7.3.1;
135 | LastSwiftMigration = 1100;
136 | };
137 | };
138 | };
139 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
140 | compatibilityVersion = "Xcode 9.3";
141 | developmentRegion = en;
142 | hasScannedForEncodings = 0;
143 | knownRegions = (
144 | en,
145 | Base,
146 | );
147 | mainGroup = 97C146E51CF9000F007C117D;
148 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
149 | projectDirPath = "";
150 | projectRoot = "";
151 | targets = (
152 | 97C146ED1CF9000F007C117D /* Runner */,
153 | );
154 | };
155 | /* End PBXProject section */
156 |
157 | /* Begin PBXResourcesBuildPhase section */
158 | 97C146EC1CF9000F007C117D /* Resources */ = {
159 | isa = PBXResourcesBuildPhase;
160 | buildActionMask = 2147483647;
161 | files = (
162 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
163 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
164 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
165 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
166 | );
167 | runOnlyForDeploymentPostprocessing = 0;
168 | };
169 | /* End PBXResourcesBuildPhase section */
170 |
171 | /* Begin PBXShellScriptBuildPhase section */
172 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
173 | isa = PBXShellScriptBuildPhase;
174 | buildActionMask = 2147483647;
175 | files = (
176 | );
177 | inputPaths = (
178 | );
179 | name = "Thin Binary";
180 | outputPaths = (
181 | );
182 | runOnlyForDeploymentPostprocessing = 0;
183 | shellPath = /bin/sh;
184 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
185 | };
186 | 9740EEB61CF901F6004384FC /* Run Script */ = {
187 | isa = PBXShellScriptBuildPhase;
188 | buildActionMask = 2147483647;
189 | files = (
190 | );
191 | inputPaths = (
192 | );
193 | name = "Run Script";
194 | outputPaths = (
195 | );
196 | runOnlyForDeploymentPostprocessing = 0;
197 | shellPath = /bin/sh;
198 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
199 | };
200 | /* End PBXShellScriptBuildPhase section */
201 |
202 | /* Begin PBXSourcesBuildPhase section */
203 | 97C146EA1CF9000F007C117D /* Sources */ = {
204 | isa = PBXSourcesBuildPhase;
205 | buildActionMask = 2147483647;
206 | files = (
207 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
208 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
209 | );
210 | runOnlyForDeploymentPostprocessing = 0;
211 | };
212 | /* End PBXSourcesBuildPhase section */
213 |
214 | /* Begin PBXVariantGroup section */
215 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
216 | isa = PBXVariantGroup;
217 | children = (
218 | 97C146FB1CF9000F007C117D /* Base */,
219 | );
220 | name = Main.storyboard;
221 | sourceTree = "";
222 | };
223 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
224 | isa = PBXVariantGroup;
225 | children = (
226 | 97C147001CF9000F007C117D /* Base */,
227 | );
228 | name = LaunchScreen.storyboard;
229 | sourceTree = "";
230 | };
231 | /* End PBXVariantGroup section */
232 |
233 | /* Begin XCBuildConfiguration section */
234 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
235 | isa = XCBuildConfiguration;
236 | buildSettings = {
237 | ALWAYS_SEARCH_USER_PATHS = NO;
238 | CLANG_ANALYZER_NONNULL = YES;
239 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
240 | CLANG_CXX_LIBRARY = "libc++";
241 | CLANG_ENABLE_MODULES = YES;
242 | CLANG_ENABLE_OBJC_ARC = YES;
243 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
244 | CLANG_WARN_BOOL_CONVERSION = YES;
245 | CLANG_WARN_COMMA = YES;
246 | CLANG_WARN_CONSTANT_CONVERSION = YES;
247 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
248 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
249 | CLANG_WARN_EMPTY_BODY = YES;
250 | CLANG_WARN_ENUM_CONVERSION = YES;
251 | CLANG_WARN_INFINITE_RECURSION = YES;
252 | CLANG_WARN_INT_CONVERSION = YES;
253 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
254 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
255 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
256 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
257 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
258 | CLANG_WARN_STRICT_PROTOTYPES = YES;
259 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
260 | CLANG_WARN_UNREACHABLE_CODE = YES;
261 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
262 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
263 | COPY_PHASE_STRIP = NO;
264 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
265 | ENABLE_NS_ASSERTIONS = NO;
266 | ENABLE_STRICT_OBJC_MSGSEND = YES;
267 | GCC_C_LANGUAGE_STANDARD = gnu99;
268 | GCC_NO_COMMON_BLOCKS = YES;
269 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
270 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
271 | GCC_WARN_UNDECLARED_SELECTOR = YES;
272 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
273 | GCC_WARN_UNUSED_FUNCTION = YES;
274 | GCC_WARN_UNUSED_VARIABLE = YES;
275 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
276 | MTL_ENABLE_DEBUG_INFO = NO;
277 | SDKROOT = iphoneos;
278 | SUPPORTED_PLATFORMS = iphoneos;
279 | TARGETED_DEVICE_FAMILY = "1,2";
280 | VALIDATE_PRODUCT = YES;
281 | };
282 | name = Profile;
283 | };
284 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
285 | isa = XCBuildConfiguration;
286 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
287 | buildSettings = {
288 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
289 | CLANG_ENABLE_MODULES = YES;
290 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
291 | DEVELOPMENT_TEAM = 3W47XHSMWC;
292 | ENABLE_BITCODE = NO;
293 | INFOPLIST_FILE = Runner/Info.plist;
294 | LD_RUNPATH_SEARCH_PATHS = (
295 | "$(inherited)",
296 | "@executable_path/Frameworks",
297 | );
298 | PRODUCT_BUNDLE_IDENTIFIER = com.ouedyan.fluttermobiletemplate;
299 | PRODUCT_NAME = "$(TARGET_NAME)";
300 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
301 | SWIFT_VERSION = 5.0;
302 | VERSIONING_SYSTEM = "apple-generic";
303 | };
304 | name = Profile;
305 | };
306 | 97C147031CF9000F007C117D /* Debug */ = {
307 | isa = XCBuildConfiguration;
308 | buildSettings = {
309 | ALWAYS_SEARCH_USER_PATHS = NO;
310 | CLANG_ANALYZER_NONNULL = YES;
311 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
312 | CLANG_CXX_LIBRARY = "libc++";
313 | CLANG_ENABLE_MODULES = YES;
314 | CLANG_ENABLE_OBJC_ARC = YES;
315 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
316 | CLANG_WARN_BOOL_CONVERSION = YES;
317 | CLANG_WARN_COMMA = YES;
318 | CLANG_WARN_CONSTANT_CONVERSION = YES;
319 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
320 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
321 | CLANG_WARN_EMPTY_BODY = YES;
322 | CLANG_WARN_ENUM_CONVERSION = YES;
323 | CLANG_WARN_INFINITE_RECURSION = YES;
324 | CLANG_WARN_INT_CONVERSION = YES;
325 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
326 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
327 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
328 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
329 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
330 | CLANG_WARN_STRICT_PROTOTYPES = YES;
331 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
332 | CLANG_WARN_UNREACHABLE_CODE = YES;
333 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
334 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
335 | COPY_PHASE_STRIP = NO;
336 | DEBUG_INFORMATION_FORMAT = dwarf;
337 | ENABLE_STRICT_OBJC_MSGSEND = YES;
338 | ENABLE_TESTABILITY = YES;
339 | GCC_C_LANGUAGE_STANDARD = gnu99;
340 | GCC_DYNAMIC_NO_PIC = NO;
341 | GCC_NO_COMMON_BLOCKS = YES;
342 | GCC_OPTIMIZATION_LEVEL = 0;
343 | GCC_PREPROCESSOR_DEFINITIONS = (
344 | "DEBUG=1",
345 | "$(inherited)",
346 | );
347 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
348 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
349 | GCC_WARN_UNDECLARED_SELECTOR = YES;
350 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
351 | GCC_WARN_UNUSED_FUNCTION = YES;
352 | GCC_WARN_UNUSED_VARIABLE = YES;
353 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
354 | MTL_ENABLE_DEBUG_INFO = YES;
355 | ONLY_ACTIVE_ARCH = YES;
356 | SDKROOT = iphoneos;
357 | TARGETED_DEVICE_FAMILY = "1,2";
358 | };
359 | name = Debug;
360 | };
361 | 97C147041CF9000F007C117D /* Release */ = {
362 | isa = XCBuildConfiguration;
363 | buildSettings = {
364 | ALWAYS_SEARCH_USER_PATHS = NO;
365 | CLANG_ANALYZER_NONNULL = YES;
366 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
367 | CLANG_CXX_LIBRARY = "libc++";
368 | CLANG_ENABLE_MODULES = YES;
369 | CLANG_ENABLE_OBJC_ARC = YES;
370 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
371 | CLANG_WARN_BOOL_CONVERSION = YES;
372 | CLANG_WARN_COMMA = YES;
373 | CLANG_WARN_CONSTANT_CONVERSION = YES;
374 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
375 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
376 | CLANG_WARN_EMPTY_BODY = YES;
377 | CLANG_WARN_ENUM_CONVERSION = YES;
378 | CLANG_WARN_INFINITE_RECURSION = YES;
379 | CLANG_WARN_INT_CONVERSION = YES;
380 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
381 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
382 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
383 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
384 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
385 | CLANG_WARN_STRICT_PROTOTYPES = YES;
386 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
387 | CLANG_WARN_UNREACHABLE_CODE = YES;
388 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
389 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
390 | COPY_PHASE_STRIP = NO;
391 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
392 | ENABLE_NS_ASSERTIONS = NO;
393 | ENABLE_STRICT_OBJC_MSGSEND = YES;
394 | GCC_C_LANGUAGE_STANDARD = gnu99;
395 | GCC_NO_COMMON_BLOCKS = YES;
396 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
397 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
398 | GCC_WARN_UNDECLARED_SELECTOR = YES;
399 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
400 | GCC_WARN_UNUSED_FUNCTION = YES;
401 | GCC_WARN_UNUSED_VARIABLE = YES;
402 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
403 | MTL_ENABLE_DEBUG_INFO = NO;
404 | SDKROOT = iphoneos;
405 | SUPPORTED_PLATFORMS = iphoneos;
406 | SWIFT_COMPILATION_MODE = wholemodule;
407 | SWIFT_OPTIMIZATION_LEVEL = "-O";
408 | TARGETED_DEVICE_FAMILY = "1,2";
409 | VALIDATE_PRODUCT = YES;
410 | };
411 | name = Release;
412 | };
413 | 97C147061CF9000F007C117D /* Debug */ = {
414 | isa = XCBuildConfiguration;
415 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
416 | buildSettings = {
417 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
418 | CLANG_ENABLE_MODULES = YES;
419 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
420 | DEVELOPMENT_TEAM = 3W47XHSMWC;
421 | ENABLE_BITCODE = NO;
422 | INFOPLIST_FILE = Runner/Info.plist;
423 | LD_RUNPATH_SEARCH_PATHS = (
424 | "$(inherited)",
425 | "@executable_path/Frameworks",
426 | );
427 | PRODUCT_BUNDLE_IDENTIFIER = com.ouedyan.fluttermobiletemplate;
428 | PRODUCT_NAME = "$(TARGET_NAME)";
429 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
430 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
431 | SWIFT_VERSION = 5.0;
432 | VERSIONING_SYSTEM = "apple-generic";
433 | };
434 | name = Debug;
435 | };
436 | 97C147071CF9000F007C117D /* Release */ = {
437 | isa = XCBuildConfiguration;
438 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
439 | buildSettings = {
440 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
441 | CLANG_ENABLE_MODULES = YES;
442 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
443 | DEVELOPMENT_TEAM = 3W47XHSMWC;
444 | ENABLE_BITCODE = NO;
445 | INFOPLIST_FILE = Runner/Info.plist;
446 | LD_RUNPATH_SEARCH_PATHS = (
447 | "$(inherited)",
448 | "@executable_path/Frameworks",
449 | );
450 | PRODUCT_BUNDLE_IDENTIFIER = com.ouedyan.fluttermobiletemplate;
451 | PRODUCT_NAME = "$(TARGET_NAME)";
452 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
453 | SWIFT_VERSION = 5.0;
454 | VERSIONING_SYSTEM = "apple-generic";
455 | };
456 | name = Release;
457 | };
458 | /* End XCBuildConfiguration section */
459 |
460 | /* Begin XCConfigurationList section */
461 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
462 | isa = XCConfigurationList;
463 | buildConfigurations = (
464 | 97C147031CF9000F007C117D /* Debug */,
465 | 97C147041CF9000F007C117D /* Release */,
466 | 249021D3217E4FDB00AE95B9 /* Profile */,
467 | );
468 | defaultConfigurationIsVisible = 0;
469 | defaultConfigurationName = Release;
470 | };
471 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
472 | isa = XCConfigurationList;
473 | buildConfigurations = (
474 | 97C147061CF9000F007C117D /* Debug */,
475 | 97C147071CF9000F007C117D /* Release */,
476 | 249021D4217E4FDB00AE95B9 /* Profile */,
477 | );
478 | defaultConfigurationIsVisible = 0;
479 | defaultConfigurationName = Release;
480 | };
481 | /* End XCConfigurationList section */
482 | };
483 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
484 | }
485 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
37 |
38 |
39 |
40 |
41 |
42 |
52 |
54 |
60 |
61 |
62 |
63 |
69 |
71 |
77 |
78 |
79 |
80 |
82 |
83 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zalisoft-Mobile/flutter-mobile-app-template/08da4b97b86a2bbc58cdc1f20652432be3d47fab/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | Flutter Mobile Template
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | flutter_mobile_template
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(FLUTTER_BUILD_NAME)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | $(FLUTTER_BUILD_NUMBER)
25 | LSRequiresIPhoneOS
26 |
27 | UILaunchStoryboardName
28 | LaunchScreen
29 | UIMainStoryboardFile
30 | Main
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 | UIViewControllerBasedStatusBarAppearance
45 |
46 | CADisableMinimumFrameDurationOnPhone
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'dart:async';
2 | import 'package:bot_toast/bot_toast.dart';
3 | import 'package:flutter_bloc/flutter_bloc.dart';
4 | import 'package:flutter/material.dart';
5 | import 'package:easy_localization/easy_localization.dart';
6 | import 'package:flutter_riverpod/flutter_riverpod.dart';
7 | import 'package:intl/date_symbol_data_local.dart';
8 | import 'package:sizer/sizer.dart';
9 |
10 | import 'src/core/base/bloc/app_bloc_observer.dart';
11 | import 'src/core/base/singleton/base_singleton.dart';
12 | import 'src/core/init/dependency_injector.dart';
13 | import 'src/core/init/main_build/main_build.dart';
14 |
15 | Future main() async {
16 | await _init();
17 | Bloc.observer = AppBlocObserver.instance;
18 | runZoned(
19 | () => runApp(
20 | MultiRepositoryProvider(
21 | providers: DependencyInjector.instance.repositoryProviders,
22 | child: MultiBlocProvider(
23 | providers: DependencyInjector.instance.globalBlocProviders,
24 | child: const ProviderScope(
25 | child: MyApp(),
26 | ),
27 | ),
28 | ),
29 | ),
30 | );
31 | }
32 |
33 | Future _init() async {
34 | WidgetsFlutterBinding.ensureInitialized();
35 | initializeDateFormatting('tr');
36 | await EasyLocalization.ensureInitialized();
37 | }
38 |
39 | class MyApp extends StatelessWidget with BaseSingleton {
40 | const MyApp({Key? key}) : super(key: key);
41 |
42 | @override
43 | Widget build(BuildContext context) {
44 | initializeDateFormatting('tr');
45 | return Sizer(
46 | builder: (context, orientation, deviceType) {
47 | final botToastBuilder = BotToastInit();
48 | return MaterialApp.router(
49 | debugShowCheckedModeBanner: false,
50 | title: constants.appName,
51 | routerConfig: routes.routes,
52 | builder: (context, child) => botToastBuilder(
53 | context,
54 | MainBuild(child: child),
55 | ),
56 | theme: theme.appTheme,
57 | );
58 | },
59 | );
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/lib/src/core/base/bloc/app_bloc_observer.dart:
--------------------------------------------------------------------------------
1 | import 'dart:developer' as developer;
2 | import 'package:flutter_bloc/flutter_bloc.dart';
3 |
4 | class AppBlocObserver extends BlocObserver {
5 | static AppBlocObserver? _instance;
6 | static AppBlocObserver get instance {
7 | _instance ??= AppBlocObserver._init();
8 | return _instance!;
9 | }
10 |
11 | AppBlocObserver._init();
12 |
13 | @override
14 | void onEvent(Bloc bloc, Object? event) {
15 | super.onEvent(bloc, event);
16 | developer.log(event.toString());
17 | }
18 |
19 | @override
20 | void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
21 | developer.log(error.toString());
22 | super.onError(bloc, error, stackTrace);
23 | }
24 |
25 | @override
26 | void onChange(BlocBase bloc, Change change) {
27 | super.onChange(bloc, change);
28 | developer.log(change.toString());
29 | }
30 |
31 | @override
32 | void onTransition(
33 | Bloc bloc,
34 | Transition transition,
35 | ) {
36 | super.onTransition(bloc, transition);
37 | developer.log(transition.toString());
38 | developer.log(transition.event);
39 | developer.log(transition.currentState);
40 | developer.log(transition.nextState);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/lib/src/core/base/bloc/auth/auth_bloc.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/foundation.dart' show immutable;
2 | import 'package:flutter_bloc/flutter_bloc.dart';
3 | import 'package:equatable/equatable.dart';
4 |
5 | import '../../services/auth/auth_service.dart';
6 |
7 | part 'auth_event.dart';
8 | part 'auth_state.dart';
9 |
10 | class AuthBloc extends Bloc {
11 | final IAuthService authService;
12 | AuthBloc(this.authService) : super(AuthInitial()) {
13 | on((event, emit) {});
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/lib/src/core/base/bloc/auth/auth_event.dart:
--------------------------------------------------------------------------------
1 | part of 'auth_bloc.dart';
2 |
3 | abstract class AuthEvent extends Equatable {
4 | const AuthEvent();
5 |
6 | @override
7 | List