From a4527fbb73cdbc8f4c9128aa4b1ee2dabae04c9d Mon Sep 17 00:00:00 2001 From: Komek Hayytnazarov Date: Tue, 23 Jul 2024 09:27:35 +0500 Subject: [PATCH] first commit --- .gitignore | 43 ++ .metadata | 45 ++ README.md | Bin 0 -> 582 bytes analysis_options.yaml | 28 + android/.gitignore | 13 + android/app/build.gradle | 58 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 45 ++ .../kotlin/com/example/cargo/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 18 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 25 + assets/images/boxes.png | Bin 0 -> 70741 bytes assets/images/trucks.png | Bin 0 -> 74805 bytes assets/svg/boxes.svg | 99 +++ assets/svg/logo/logo.svg | 4 + assets/svg/splash.svg | 18 + assets/svg/trucks.svg | 14 + ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/configs/app.dart | 18 + lib/configs/app_dimensions.dart | 75 +++ lib/configs/app_typography.dart | 54 ++ lib/configs/app_typography_ext.dart | 41 ++ lib/configs/configs.dart | 8 + lib/configs/space.dart | 67 ++ lib/configs/space_ext.dart | 36 + lib/configs/ui.dart | 64 ++ lib/core/app/app.dart | 17 + lib/core/constants/api.dart | 3 + lib/core/constants/assets.dart | 11 + lib/core/constants/colors.dart | 9 + lib/core/constants/constants.dart | 5 + lib/core/constants/strings.dart | 11 + lib/core/core.dart | 5 + lib/core/errors/errors.dart | 2 + lib/core/errors/exceptions.dart | 10 + lib/core/errors/failures.dart | 19 + lib/core/observer/bloc_observer.dart | 30 + lib/core/observer/observer.dart | 1 + lib/core/router/app_router.dart | 87 +++ lib/core/router/router.dart | 1 + lib/main.dart | 23 + lib/presentation/presentation.dart | 2 + lib/presentation/screens/login.dart | 159 +++++ lib/presentation/screens/screens.dart | 3 + lib/presentation/screens/splash.dart | 78 +++ lib/presentation/screens/splash2.dart | 86 +++ lib/presentation/widgets/button.dart | 37 ++ lib/presentation/widgets/widgets.dart | 1 + pubspec.lock | 506 ++++++++++++++ pubspec.yaml | 64 ++ 100 files changed, 3140 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/cargo/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/images/boxes.png create mode 100644 assets/images/trucks.png create mode 100644 assets/svg/boxes.svg create mode 100644 assets/svg/logo/logo.svg create mode 100644 assets/svg/splash.svg create mode 100644 assets/svg/trucks.svg create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/configs/app.dart create mode 100644 lib/configs/app_dimensions.dart create mode 100644 lib/configs/app_typography.dart create mode 100644 lib/configs/app_typography_ext.dart create mode 100644 lib/configs/configs.dart create mode 100644 lib/configs/space.dart create mode 100644 lib/configs/space_ext.dart create mode 100644 lib/configs/ui.dart create mode 100644 lib/core/app/app.dart create mode 100644 lib/core/constants/api.dart create mode 100644 lib/core/constants/assets.dart create mode 100644 lib/core/constants/colors.dart create mode 100644 lib/core/constants/constants.dart create mode 100644 lib/core/constants/strings.dart create mode 100644 lib/core/core.dart create mode 100644 lib/core/errors/errors.dart create mode 100644 lib/core/errors/exceptions.dart create mode 100644 lib/core/errors/failures.dart create mode 100644 lib/core/observer/bloc_observer.dart create mode 100644 lib/core/observer/observer.dart create mode 100644 lib/core/router/app_router.dart create mode 100644 lib/core/router/router.dart create mode 100644 lib/main.dart create mode 100644 lib/presentation/presentation.dart create mode 100644 lib/presentation/screens/login.dart create mode 100644 lib/presentation/screens/screens.dart create mode 100644 lib/presentation/screens/splash.dart create mode 100644 lib/presentation/screens/splash2.dart create mode 100644 lib/presentation/widgets/button.dart create mode 100644 lib/presentation/widgets/widgets.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29a3a50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..cbf1dc0 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: android + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: ios + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: linux + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: macos + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: web + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: windows + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0579f55e1dd67c33e45b2b903e2bfa09d79be45a GIT binary patch literal 582 zcmaKpL2JV>4269T$ft&sn|W#^ z7Z@x>DPDkj9KAD|9fcXX11oY76HU=z0w(B@;fJO(2Rm>UIE%<5Y@pLYZEn40ajBa=4vyy&LG<5q;%vw7^chC1}RUCq#YqVHDT2Hq3e z$zR2jK8zmI4W?Os6;N3`NE8G5F|Rl$w5Y+!@o + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") +if (flutterVersionCode == null) { + flutterVersionCode = "1" +} + +def flutterVersionName = localProperties.getProperty("flutter.versionName") +if (flutterVersionName == null) { + flutterVersionName = "1.0" +} + +android { + namespace = "com.example.cargo" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.cargo" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.debug + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..f67e80b --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/cargo/MainActivity.kt b/android/app/src/main/kotlin/com/example/cargo/MainActivity.kt new file mode 100644 index 0000000..f54aefe --- /dev/null +++ b/android/app/src/main/kotlin/com/example/cargo/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.cargo + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..d2ffbff --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..3b5b324 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e1ca574 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..536165d --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/assets/images/boxes.png b/assets/images/boxes.png new file mode 100644 index 0000000000000000000000000000000000000000..14c01add7e800e796eb116248d8dfbf70882154c GIT binary patch literal 70741 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
!c~Xn;POlM@dXp(Bw6!h6c*Y%0e<^$ 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 literal 0 HcmV?d00001 diff --git a/assets/images/trucks.png b/assets/images/trucks.png new file mode 100644 index 0000000000000000000000000000000000000000..9b95e721e0e24c47572d8119cf49f9da7c2db11e GIT binary patch literal 74805 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 literal 0 HcmV?d00001 diff --git a/assets/svg/boxes.svg b/assets/svg/boxes.svg new file mode 100644 index 0000000..341e1d2 --- /dev/null +++ b/assets/svg/boxes.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/logo/logo.svg b/assets/svg/logo/logo.svg new file mode 100644 index 0000000..10ea7b1 --- /dev/null +++ b/assets/svg/logo/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/splash.svg b/assets/svg/splash.svg new file mode 100644 index 0000000..5ba9015 --- /dev/null +++ b/assets/svg/splash.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/trucks.svg b/assets/svg/trucks.svg new file mode 100644 index 0000000..f1da38c --- /dev/null +++ b/assets/svg/trucks.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..d9ac9c7 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.cargo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.cargo.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.cargo.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.cargo.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.cargo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.cargo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..8e3ca5d --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..9074fee --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..797d452e458972bab9d994556c8305db4c827017 GIT binary patch literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed2d933e1120817fe9182483a228007b18ab6ae GIT binary patch literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd7b0099ca80c806f8fe495613e8d6c69460d76 GIT binary patch literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe730945a01f64a61e2235dbe3f45b08f7729182 GIT binary patch literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..502f463a9bc882b461c96aadf492d1729e49e725 GIT binary patch literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec303439225b78712f49115768196d8d76f6790 GIT binary patch literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5fea27c705180eb716271f41b582e76dcbd90 GIT binary patch literal 1674 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8 GIT binary patch literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +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. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..4b82aaf --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Cargo + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + cargo + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/configs/app.dart b/lib/configs/app.dart new file mode 100644 index 0000000..c28e7e6 --- /dev/null +++ b/lib/configs/app.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +import 'space.dart'; +import 'app_typography.dart'; +import 'app_dimensions.dart'; +import 'ui.dart'; + +class App { + static bool? isLtr; + + static init(BuildContext context) { + UI.init(context); + AppDimensions.init(); + Space.init(); + AppText.init(); + isLtr = Directionality.of(context) == TextDirection.ltr; + } +} diff --git a/lib/configs/app_dimensions.dart b/lib/configs/app_dimensions.dart new file mode 100644 index 0000000..4045a76 --- /dev/null +++ b/lib/configs/app_dimensions.dart @@ -0,0 +1,75 @@ +import 'package:flutter/material.dart'; +import 'dart:ui' as ui; +import 'ui.dart'; + +class AppDimensions { + static double? maxContainerWidth; + static double? miniContainerWidth; + + static bool? isLandscape; + static double? padding; + static double ratio = 0; + + static Size? size; + + static init() { + ratio = UI.width! / UI.height!; + double pixelDensity = UI.mediaQuery().devicePixelRatio; + ratio = (ratio) + ((pixelDensity + ratio) / 2); + + if (UI.width! <= 380 && pixelDensity >= 3) { + ratio *= 0.85; + } + + _initLargeScreens(); + _initSmallScreensHighDensity(); + + padding = ratio * 3; + } + + static _initLargeScreens() { + const safe = 2.4; + + ratio *= 1.5; + + if (ratio > safe) { + ratio = safe; + } + } + + static _initSmallScreensHighDensity() { + if (!UI.sm! && ratio > 2.0) { + ratio = 2.0; + } + if (!UI.xs! && ratio > 1.6) { + ratio = 1.6; + } + if (!UI.xxs! && ratio > 1.4) { + ratio = 1.4; + } + } + + static String inString() { + final x = UI.width! / UI.height!; + final ps = ui.window.physicalSize; + return ''' + Width: ${UI.width} | ${ps.width} + Height: ${UI.height} | ${ps.height} + app_ratio: $ratio + ratio: $x + pixels: ${UI.mediaQuery().devicePixelRatio} + '''; + } + + static double space([double multiplier = 1.0]) { + return AppDimensions.padding! * 3 * multiplier; + } + + static double normalize(double unit) { + return (AppDimensions.ratio * unit * 0.77) + unit; + } + + static double font(double unit) { + return (AppDimensions.ratio * unit * 0.125) + unit * 1.90; + } +} diff --git a/lib/configs/app_typography.dart b/lib/configs/app_typography.dart new file mode 100644 index 0000000..c4ed51f --- /dev/null +++ b/lib/configs/app_typography.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; + +import 'app_dimensions.dart'; +//import 'core_theme.dart'; + +class AppText { + static TextStyle? btn; + + // Headings + static TextStyle? h1; + static TextStyle? h1b; + static TextStyle? h2; + static TextStyle? h2b; + static TextStyle? h3; + static TextStyle? h3b; + + // Body + static TextStyle? b1; + static TextStyle? b1b; + static TextStyle? b2; + static TextStyle? b2b; + + // Label + static TextStyle? l1; + static TextStyle? l1b; + static TextStyle? l2; + static TextStyle? l2b; + + static init() { + const b = FontWeight.bold; + const baseStyle = TextStyle(/*fontFamily: fontFamily*/); + + h1 = baseStyle.copyWith(fontSize: AppDimensions.font(12.0)); + h1b = h1!.copyWith(fontWeight: b); + + h2 = baseStyle.copyWith(fontSize: AppDimensions.font(10)); + h2b = h2!.copyWith(fontWeight: b); + + h3 = baseStyle.copyWith(fontSize: AppDimensions.font(8)); + h3b = h3!.copyWith(fontWeight: b); + + b1 = baseStyle.copyWith(fontSize: AppDimensions.font(7)); + b1b = b1!.copyWith(fontWeight: b); + + b2 = baseStyle.copyWith(fontSize: AppDimensions.font(6.25)); + b2b = b2!.copyWith(fontWeight: b); + + l1 = baseStyle.copyWith(fontSize: AppDimensions.font(5)); + l1b = l1!.copyWith(fontWeight: b); + + l2 = baseStyle.copyWith(fontSize: AppDimensions.font(4)); + l2b = l2!.copyWith(fontWeight: b); + } +} diff --git a/lib/configs/app_typography_ext.dart b/lib/configs/app_typography_ext.dart new file mode 100644 index 0000000..7de8081 --- /dev/null +++ b/lib/configs/app_typography_ext.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +extension SuperTextStyles on TextStyle { + TextStyle cl(Color color) { + return copyWith( + color: color, + ); + } + + TextStyle s([double? size]) { + return copyWith( + fontSize: size ?? fontSize, + ); + } + + TextStyle tsc([double multiplier = 1.0]) { + return copyWith( + fontSize: fontSize! * multiplier, + ); + } + + TextStyle w(int i) { + FontWeight w = FontWeight.w400; + + if (i == 3) { + w = FontWeight.w300; + } + if (i == 5) { + w = FontWeight.w500; + } + if (i == 6) { + w = FontWeight.w600; + } + if (i == 7) { + w = FontWeight.w700; + } + return copyWith( + fontWeight: w, + ); + } +} diff --git a/lib/configs/configs.dart b/lib/configs/configs.dart new file mode 100644 index 0000000..9ce9071 --- /dev/null +++ b/lib/configs/configs.dart @@ -0,0 +1,8 @@ +export 'app_dimensions.dart'; +export 'app_typography.dart'; +export 'app_typography_ext.dart'; +export 'space.dart'; +export 'space_ext.dart'; +export 'ui.dart'; + + diff --git a/lib/configs/space.dart b/lib/configs/space.dart new file mode 100644 index 0000000..81a2897 --- /dev/null +++ b/lib/configs/space.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import 'ui.dart'; +import 'app_dimensions.dart'; + +class Space { + static Widget? x; + static Widget? y; + static Widget? x1; + static Widget? y1; + static Widget? x2; + static Widget? y2; + static Widget? xm; + static Widget? ym; + + static EdgeInsets? z; + static EdgeInsets? h; + static EdgeInsets? v; + static EdgeInsets? h1; + static EdgeInsets? v1; + static EdgeInsets? h2; + static EdgeInsets? v2; + + static Widget? top; + static Widget? bottom; + + static void init() { + x = SizedBox(width: AppDimensions.space(0.5)); + y = SizedBox(height: AppDimensions.space(0.5)); + + x1 = SizedBox(width: AppDimensions.space()); + y1 = SizedBox(height: AppDimensions.space()); + + x2 = SizedBox(width: AppDimensions.space(2)); + y2 = SizedBox(height: AppDimensions.space(2)); + + xm = const Expanded(child: SizedBox(width: double.infinity)); + ym = const Expanded(child: SizedBox(height: double.infinity)); + + z = EdgeInsets.zero; + h = EdgeInsets.symmetric(horizontal: AppDimensions.space(0.5)); + v = EdgeInsets.symmetric(vertical: AppDimensions.space(0.5)); + + h1 = EdgeInsets.symmetric(horizontal: AppDimensions.space()); + v1 = EdgeInsets.symmetric(vertical: AppDimensions.space()); + + h2 = EdgeInsets.symmetric(horizontal: AppDimensions.space(2)); + v2 = EdgeInsets.symmetric(vertical: AppDimensions.space(2)); + + top = SizedBox(height: UI.padding!.top); + bottom = SizedBox(height: UI.padding!.bottom); + } + + static Widget xf([double no = 1]) => SizedBox(width: AppDimensions.space(no)); + static Widget yf([double no = 1]) => SizedBox(height: AppDimensions.space(no)); + + static EdgeInsets hf([double no = 1]) => EdgeInsets.symmetric( + horizontal: AppDimensions.space(no), + ); + static EdgeInsets vf([double no = 1]) => EdgeInsets.symmetric( + vertical: AppDimensions.space(no), + ); + + static EdgeInsets all([double h = 0.5, double? v]) => EdgeInsets.symmetric( + vertical: AppDimensions.space(v ?? h), + horizontal: AppDimensions.space(h), + ); +} diff --git a/lib/configs/space_ext.dart b/lib/configs/space_ext.dart new file mode 100644 index 0000000..00826f3 --- /dev/null +++ b/lib/configs/space_ext.dart @@ -0,0 +1,36 @@ +import 'package:flutter/material.dart'; +import 'app_dimensions.dart'; +import 'ui.dart'; + +extension SuperEdgeInsets on EdgeInsets { + EdgeInsets sv() { + return copyWith( + top: top + UI.padding!.top, + bottom: bottom + UI.padding!.bottom, + ); + } + + EdgeInsets st() { + return copyWith(top: top + UI.padding!.top); + } + + EdgeInsets sb() { + return copyWith(bottom: bottom + UI.padding!.bottom); + } + + EdgeInsets b(double no) { + return copyWith(bottom: AppDimensions.space(no)); + } + + EdgeInsets t(double no) { + return copyWith(top: AppDimensions.space(no)); + } + + EdgeInsets l(double no) { + return copyWith(left: AppDimensions.space(no)); + } + + EdgeInsets r(double no) { + return copyWith(right: AppDimensions.space(no)); + } +} diff --git a/lib/configs/ui.dart b/lib/configs/ui.dart new file mode 100644 index 0000000..da548c8 --- /dev/null +++ b/lib/configs/ui.dart @@ -0,0 +1,64 @@ +import 'dart:math'; +import 'package:flutter/widgets.dart'; + +class UI { + static MediaQueryData? _mediaQueryData; + static double? width; + static double? height; + static double? horizontal; + static double? vertical; + static EdgeInsets? padding; + static EdgeInsets? vi; + + static double? _safeAreaHorizontal; + static double? _safeAreaVertical; + static double? safeWidth; + static double? safeHeight; + + static double? diagonal; + + static bool? xxs; + static bool? xs; + static bool? sm; + static bool? md; + static bool? xmd; + static bool? lg; + static bool? xl; + static bool? xlg; + static bool? xxlg; + + static void init(BuildContext context) { + _mediaQueryData = MediaQuery.of(context); + initChecks(_mediaQueryData!); + + padding = _mediaQueryData!.padding; + vi = _mediaQueryData!.viewInsets; + width = _mediaQueryData!.size.width; + height = _mediaQueryData!.size.height; + horizontal = width! / 100; + vertical = height! / 100; + + _safeAreaHorizontal = _mediaQueryData!.padding.left + _mediaQueryData!.padding.right; + _safeAreaVertical = _mediaQueryData!.padding.top + _mediaQueryData!.padding.bottom; + safeWidth = (width! - _safeAreaHorizontal!); + safeHeight = (height! - _safeAreaVertical!); + } + + static initChecks(MediaQueryData query) { + var size = query.size; + diagonal = sqrt((size.width * size.width) + (size.height * size.height)); + xxs = size.width > 300; + xs = size.width > 360; + sm = size.width > 480; + md = size.width > 600; + xmd = size.width > 720; + lg = size.width > 980; + xl = size.width > 1160; + xlg = size.width > 1400; + xxlg = size.width > 1700; + } + + static MediaQueryData mediaQuery() => _mediaQueryData!; + + static Size getSize() => _mediaQueryData!.size; +} diff --git a/lib/core/app/app.dart b/lib/core/app/app.dart new file mode 100644 index 0000000..c1abfef --- /dev/null +++ b/lib/core/app/app.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; + +import '../core.dart'; + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return const MaterialApp( + debugShowCheckedModeBanner: false, + title: appTitle, + onGenerateRoute: AppRouter.onGenerateRoute, + initialRoute: AppRouter.splash, + ); + } +} diff --git a/lib/core/constants/api.dart b/lib/core/constants/api.dart new file mode 100644 index 0000000..872ed5c --- /dev/null +++ b/lib/core/constants/api.dart @@ -0,0 +1,3 @@ +const String baseUrl = 'https://rich-jade-mackerel-kit.cyclic.app'; +const String defaultApiKey = ''; +const String defaultSources = ''; diff --git a/lib/core/constants/assets.dart b/lib/core/constants/assets.dart new file mode 100644 index 0000000..cddb313 --- /dev/null +++ b/lib/core/constants/assets.dart @@ -0,0 +1,11 @@ +sealed class AppAssets { + //svg + + static const String Logo = 'assets/svg/logo/logo.svg'; + static const String BoxesSvg = 'assets/svg/boxes.svg'; + static const String Trucks = 'assets/svg/trucks.svg'; + + //png + static const String BoxesPng = 'assets/images/boxes.png'; + static const String TrucksPng = 'assets/images/trucks.png'; +} diff --git a/lib/core/constants/colors.dart b/lib/core/constants/colors.dart new file mode 100644 index 0000000..aaa6dd2 --- /dev/null +++ b/lib/core/constants/colors.dart @@ -0,0 +1,9 @@ +import 'package:flutter/material.dart'; + +sealed class AppColors { + static const Color primary = Color(0xFF343FDE); + static const Color yellow = Color(0xFFFFC71E); + static const Color CommonCyan = Color(0xff68C4C6); + static const Color GreyText = Color(0xff575757); + static const Color LightGrey = Color(0xfff1f1f1); +} diff --git a/lib/core/constants/constants.dart b/lib/core/constants/constants.dart new file mode 100644 index 0000000..2e21be6 --- /dev/null +++ b/lib/core/constants/constants.dart @@ -0,0 +1,5 @@ +export 'api.dart'; +export 'assets.dart'; +export 'colors.dart'; +export 'constants.dart'; +export 'strings.dart'; diff --git a/lib/core/constants/strings.dart b/lib/core/constants/strings.dart new file mode 100644 index 0000000..8176d88 --- /dev/null +++ b/lib/core/constants/strings.dart @@ -0,0 +1,11 @@ +// App +const String appTitle = 'Cargo App'; + +const String infoText = + "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Let"; + +const String phoneNumber = "+201016381636"; // Replace with the recipient's phone number + +// Storage and Databases +const String articlesTableName = ''; +const String databaseName = ''; diff --git a/lib/core/core.dart b/lib/core/core.dart new file mode 100644 index 0000000..7051ee5 --- /dev/null +++ b/lib/core/core.dart @@ -0,0 +1,5 @@ +export 'app/app.dart'; +export 'constants/constants.dart'; +export 'errors/errors.dart'; +export 'router/router.dart'; +export 'observer/observer.dart'; diff --git a/lib/core/errors/errors.dart b/lib/core/errors/errors.dart new file mode 100644 index 0000000..e91b97c --- /dev/null +++ b/lib/core/errors/errors.dart @@ -0,0 +1,2 @@ +export 'failures.dart'; +export 'exceptions.dart'; diff --git a/lib/core/errors/exceptions.dart b/lib/core/errors/exceptions.dart new file mode 100644 index 0000000..e122fa6 --- /dev/null +++ b/lib/core/errors/exceptions.dart @@ -0,0 +1,10 @@ +//date +class ServerException implements Exception {} + +class CacheException implements Exception {} + +//route +class RouteException implements Exception { + final String message; + const RouteException(this.message); +} diff --git a/lib/core/errors/failures.dart b/lib/core/errors/failures.dart new file mode 100644 index 0000000..3dc64bc --- /dev/null +++ b/lib/core/errors/failures.dart @@ -0,0 +1,19 @@ +import 'package:equatable/equatable.dart'; + +abstract class Failure extends Equatable { + @override + List get props => []; +} + +// General failures +class ServerFailure extends Failure {} + +class CacheFailure extends Failure {} + +class NetworkFailure extends Failure {} + +class ExceptionFailure extends Failure {} + +class CredentialFailure extends Failure {} + +class AuthenticationFailure extends Failure {} diff --git a/lib/core/observer/bloc_observer.dart b/lib/core/observer/bloc_observer.dart new file mode 100644 index 0000000..c5a356a --- /dev/null +++ b/lib/core/observer/bloc_observer.dart @@ -0,0 +1,30 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +class MyBlocObserver extends BlocObserver { + @override + void onCreate(BlocBase bloc) { + super.onCreate(bloc); + debugPrint('onCreate -- ${bloc.runtimeType}'); + } + + @override + void onChange(BlocBase bloc, Change change) { + super.onChange(bloc, change); + debugPrint('onChange -- ${bloc.runtimeType}, $change'); + } + + @override + void onError(BlocBase bloc, Object error, StackTrace stackTrace) { + debugPrint('onError -- ${bloc.runtimeType}, $error'); + super.onError(bloc, error, stackTrace); + } + + @override + void onClose(BlocBase bloc) { + super.onClose(bloc); + debugPrint('onClose -- ${bloc.runtimeType}'); + } +} diff --git a/lib/core/observer/observer.dart b/lib/core/observer/observer.dart new file mode 100644 index 0000000..b25d6bb --- /dev/null +++ b/lib/core/observer/observer.dart @@ -0,0 +1 @@ +export 'bloc_observer.dart'; diff --git a/lib/core/router/app_router.dart b/lib/core/router/app_router.dart new file mode 100644 index 0000000..7368ba0 --- /dev/null +++ b/lib/core/router/app_router.dart @@ -0,0 +1,87 @@ +import 'package:flutter/material.dart'; + +import '../../presentation/presentation.dart'; +import '../errors/exceptions.dart'; + +sealed class AppRouter { + static const String splash = '/'; + static const String splash2 = '/splash2'; + static const String login = '/login'; + // static const String root = '/root'; + // static const String productDetails = '/product-details'; + // static const String search = '/search'; + // static const String filter = '/filter'; + // static const String signup = '/signup'; + // static const String login = '/login'; + // static const String addresses = '/addresses'; + // static const String addadress = '/addadress'; + // static const String checkout = '/checkout'; + // static const String contact = '/contact'; + // static const String appinfo = '/appinfo'; + // static const String cart = '/cart'; + // static const String wishlist = '/wishlist'; + // static const String ordersuccess = '/ordersuccess'; + // static const String orderfailure = '/orderfailure'; + // static const String orders = '/orders'; + // static const String notifications = '/notifications'; + + static Route onGenerateRoute(RouteSettings routeSettings) { + debugPrint('onGenerateRoute ${routeSettings.name}'); + switch (routeSettings.name) { + case splash: + return MaterialPageRoute(builder: (_) => const SplashScreen()); + case splash2: + return MaterialPageRoute(builder: (_) => const Splash2Screen()); + case login: + return MaterialPageRoute(builder: (_) => const LoginScreen()); + // case root: + // return MaterialPageRoute(builder: (_) => const RootScreen()); + // case search: + // return MaterialPageRoute(builder: (_) => const SearchScreen()); + // case filter: + // return MaterialPageRoute(builder: (_) => const FilterScreen()); + // case productDetails: + // ProductEntity product = routeSettings.arguments as ProductEntity; + // return MaterialPageRoute(builder: (_) => ProductDetailsScreen(product: product)); + // case signup: + // return MaterialPageRoute(builder: (_) => const SignUpScreen()); + + // case contact: + // return MaterialPageRoute(builder: (_) => ContactScreen()); + // case cart: + // return MaterialPageRoute(builder: (_) => const CartScreen()); + // case addresses: + // return MaterialPageRoute(builder: (_) => const AddressesScreen()); + // case addadress: + // DeliveryInfo? deliveryInfo = routeSettings.arguments as DeliveryInfo?; + // return MaterialPageRoute( + // builder: (_) => AddAddressScreen( + // deliveryInfo: deliveryInfo, + // )); + // case checkout: + // List items = routeSettings.arguments as List; + // return MaterialPageRoute( + // builder: (_) => CheckOutScreen( + // items: items, + // )); + // case appinfo: + // String screenTitle = routeSettings.arguments as String; + // return MaterialPageRoute( + // builder: (_) => AppInfoScreen( + // screenTitle: screenTitle, + // )); + // case wishlist: + // return MaterialPageRoute(builder: (_) => const WishListScreen()); + // case ordersuccess: + // return MaterialPageRoute(builder: (_) => const OrderSuccessScreen()); + // case orderfailure: + // return MaterialPageRoute(builder: (_) => const OrderFailureScreen()); + // case orders: + // return MaterialPageRoute(builder: (_) => const OrdersScreen()); + // case notifications: + // return MaterialPageRoute(builder: (_) => const NotificationsScreen()); + default: + throw const RouteException('Route not found!'); + } + } +} diff --git a/lib/core/router/router.dart b/lib/core/router/router.dart new file mode 100644 index 0000000..a143312 --- /dev/null +++ b/lib/core/router/router.dart @@ -0,0 +1 @@ +export 'app_router.dart'; diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..39fe459 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_phoenix/flutter_phoenix.dart'; + +import 'core/core.dart'; + +Future main() async { + WidgetsFlutterBinding.ensureInitialized(); + + // await GetStorage.init(); + + // await di.init(); + + Bloc.observer = MyBlocObserver(); + + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + ]); + + runApp(Phoenix(child: const MyApp())); +} diff --git a/lib/presentation/presentation.dart b/lib/presentation/presentation.dart new file mode 100644 index 0000000..170f21f --- /dev/null +++ b/lib/presentation/presentation.dart @@ -0,0 +1,2 @@ +export 'screens/screens.dart'; +export 'widgets/widgets.dart'; diff --git a/lib/presentation/screens/login.dart b/lib/presentation/screens/login.dart new file mode 100644 index 0000000..af6ef3b --- /dev/null +++ b/lib/presentation/screens/login.dart @@ -0,0 +1,159 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +import '../../configs/app.dart'; +import '../../configs/configs.dart'; +import '../../core/core.dart'; +import '../widgets/button.dart'; + +class LoginScreen extends StatelessWidget { + const LoginScreen({super.key}); + + @override + Widget build(BuildContext context) { + App.init(context); + return Scaffold( + body: SingleChildScrollView( + child: Column( + children: [ + /// image part + Container( + height: AppDimensions.normalize(155), + color: AppColors.primary, + child: SingleChildScrollView( + physics: const NeverScrollableScrollPhysics(), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Container( + padding: const EdgeInsets.only(top: 60, bottom: 20), + child: Column( + children: [ + SvgPicture.asset( + AppAssets.Logo, + height: AppDimensions.normalize(30), + ), + Space.yf(0.80), + Text( + appTitle, + style: AppText.h1b?.copyWith( + color: Colors.white, + ), + ), + Space.yf(0.30), + Text( + 'Довезём всё!', + style: AppText.b1?.copyWith( + color: AppColors.yellow, + ), + ), + Image.asset( + AppAssets.TrucksPng, + height: AppDimensions.normalize(52), + width: double.infinity, + fit: BoxFit.fill, + ), + ], + ), + ), + ], + ), + ), + ), + + /// form part + SizedBox( + height: AppDimensions.normalize(145), + child: Stack( + clipBehavior: Clip.none, + children: [ + Positioned( + top: -20, + left: 0, + right: 0, + bottom: 0, + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(16), + topRight: Radius.circular(16), + ), + ), + child: Padding( + padding: Space.hf().copyWith(top: 30), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Şahsy otaga giriş', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + + const Text( + 'özüňize berlen logini we açar sözi giriziň', + style: TextStyle( + color: Colors.grey, + ), + ), + + /// gap + Space.yf(), + + /// username field + const Text('Login'), + Space.yf(0.30), + const TextField( + decoration: InputDecoration( + hintText: 'Öz loginiňizi ýazyň', + prefixIcon: Icon(Icons.person_outline), + // suffixIcon: Icon(Icons.visibility_off), + border: OutlineInputBorder(), + ), + ), + + /// gap + Space.yf(), + + /// password field + const Text('Açar sözi'), + Space.yf(0.30), + const TextField( + obscureText: true, + decoration: InputDecoration( + hintText: 'Öz açar sözüňi ýazyň', + prefixIcon: Icon(Icons.lock_outline), + suffixIcon: Icon(Icons.visibility_off), + border: OutlineInputBorder(), + ), + ), + + /// gap + Space.yf(), + + SizedBox( + width: double.infinity, + child: AppButton( + textColor: AppColors.primary, + btnColor: AppColors.yellow, + onPressed: () {}, + text: 'Yzarlap başlaň', + ), + ) + ], + ), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/presentation/screens/screens.dart b/lib/presentation/screens/screens.dart new file mode 100644 index 0000000..e3aaf81 --- /dev/null +++ b/lib/presentation/screens/screens.dart @@ -0,0 +1,3 @@ +export 'splash.dart'; +export 'splash2.dart'; +export 'login.dart'; diff --git a/lib/presentation/screens/splash.dart b/lib/presentation/screens/splash.dart new file mode 100644 index 0000000..7040441 --- /dev/null +++ b/lib/presentation/screens/splash.dart @@ -0,0 +1,78 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +import '../../configs/app.dart'; +import '../../configs/configs.dart'; +import '../../core/core.dart'; + +class SplashScreen extends StatefulWidget { + const SplashScreen({super.key}); + + @override + State createState() => _SplashScreenState(); +} + +class _SplashScreenState extends State { + void _nextScreen() { + Future.delayed(const Duration(seconds: 1), () { + Navigator.of(context).pushNamedAndRemoveUntil( + AppRouter.splash2, + (route) => false, + ); + }); + } + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + _nextScreen(); + }); + super.initState(); + } + + @override + Widget build(BuildContext context) { + App.init(context); + return Scaffold( + body: Container( + decoration: const BoxDecoration( + gradient: RadialGradient( + center: Alignment.center, + radius: 1.0, + colors: [ + Color(0xFF5468FF), // Lighter blue in the center + AppColors.primary, // Darker blue at the edges + ], + ), + ), + child: SafeArea( + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + AppAssets.Logo, + height: AppDimensions.normalize(30), + ), + Space.yf(0.80), + Text( + appTitle, + style: AppText.h1b?.copyWith( + color: Colors.white, + ), + ), + Space.yf(0.30), + Text( + 'Довезём всё!', + style: AppText.b1?.copyWith( + color: AppColors.yellow, + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/presentation/screens/splash2.dart b/lib/presentation/screens/splash2.dart new file mode 100644 index 0000000..d02dc2c --- /dev/null +++ b/lib/presentation/screens/splash2.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; + +import '../../configs/app.dart'; +import '../../configs/configs.dart'; +import '../../core/core.dart'; +import '../presentation.dart'; + +class Splash2Screen extends StatelessWidget { + const Splash2Screen({super.key}); + + void _onFollowTapped(BuildContext context) { + Navigator.of(context).pushNamedAndRemoveUntil( + AppRouter.login, + (route) => false, + ); + } + + @override + Widget build(BuildContext context) { + App.init(context); + return Scaffold( + body: Container( + decoration: const BoxDecoration( + gradient: RadialGradient( + center: Alignment.center, + radius: 1.0, + colors: [ + Color(0xFF5468FF), // Lighter blue in the center + AppColors.primary, // Darker blue at the edges + ], + ), + ), + child: SafeArea( + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Cargo goşundy', + style: AppText.h1b?.copyWith( + color: Colors.white, + fontSize: 40, + ), + ), + + /// gap + Space.yf(0.60), + + /// text + Text( + 'Öz sargydyňyzy yzarlaň', + style: AppText.b1?.copyWith( + color: AppColors.yellow, + fontSize: 22, + ), + ), + + /// gap + Space.yf(3), + + /// images + Image.asset( + AppAssets.BoxesPng, + height: AppDimensions.normalize(90), + ), + Space.yf(), + Padding( + padding: Space.hf(), + child: SizedBox( + width: double.infinity, + child: AppButton( + textColor: AppColors.primary, + btnColor: AppColors.yellow, + onPressed: () => _onFollowTapped(context), + text: 'Yzarlap başlaň', + ), + ), + ) + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/presentation/widgets/button.dart b/lib/presentation/widgets/button.dart new file mode 100644 index 0000000..94729b3 --- /dev/null +++ b/lib/presentation/widgets/button.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + +import '../../core/core.dart'; + +class AppButton extends StatelessWidget { + final VoidCallback onPressed; + final String text; + final Color textColor; + final Color btnColor; + + const AppButton({ + super.key, + required this.onPressed, + required this.text, + this.textColor = Colors.white, + this.btnColor = AppColors.primary, + }); + + @override + Widget build(BuildContext context) { + return ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + foregroundColor: textColor, + backgroundColor: btnColor, + padding: const EdgeInsets.symmetric(horizontal: 50, vertical: 15), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: Text( + text, + style: const TextStyle(fontSize: 16), + ), + ); + } +} diff --git a/lib/presentation/widgets/widgets.dart b/lib/presentation/widgets/widgets.dart new file mode 100644 index 0000000..cb85cd4 --- /dev/null +++ b/lib/presentation/widgets/widgets.dart @@ -0,0 +1 @@ +export 'button.dart'; diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..67f42ab --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,506 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + bloc: + dependency: transitive + description: + name: bloc + sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + url: "https://pub.dev" + source: hosted + version: "8.1.4" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dartz: + dependency: "direct main" + description: + name: dartz + sha256: e6acf34ad2e31b1eb00948692468c30ab48ac8250e0f0df661e29f12dd252168 + url: "https://pub.dev" + source: hosted + version: "0.10.1" + equatable: + dependency: "direct main" + description: + name: equatable + sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + url: "https://pub.dev" + source: hosted + version: "2.0.5" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a + url: "https://pub.dev" + source: hosted + version: "8.1.6" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + flutter_phoenix: + dependency: "direct main" + description: + name: flutter_phoenix + sha256: "39589dac934ea476d0e43fb60c1ddfba58f14960743640c8250dea11c4333378" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + url: "https://pub.dev" + source: hosted + version: "2.0.10+1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + get_it: + dependency: "direct main" + description: + name: get_it + sha256: d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1 + url: "https://pub.dev" + source: hosted + version: "7.7.0" + http: + dependency: "direct main" + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + internet_connection_checker: + dependency: "direct main" + description: + name: internet_connection_checker + sha256: "1c683e63e89c9ac66a40748b1b20889fd9804980da732bf2b58d6d5456c8e876" + url: "https://pub.dev" + source: hosted + version: "1.0.0+1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" + source: hosted + version: "0.8.0" + meta: + dependency: transitive + description: + name: meta + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + url: "https://pub.dev" + source: hosted + version: "1.0.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "034650b71e73629ca08a0bd789fd1d83cc63c2d1e405946f7cef7bc37432f93a" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + url: "https://pub.dev" + source: hosted + version: "14.2.1" + web: + dependency: transitive + description: + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" + source: hosted + version: "0.5.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" +sdks: + dart: ">=3.4.1 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..e45e1ae --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,64 @@ +name: cargo +description: "A new Flutter project." + +publish_to: "none" # Remove this line if you wish to publish to pub.dev + +version: 1.0.0+1 + +environment: + sdk: ">=3.4.1 <4.0.0" + +dependencies: + flutter: + sdk: flutter + + cupertino_icons: ^1.0.6 + flutter_bloc: ^8.1.6 + get_it: ^7.7.0 + equatable: ^2.0.5 + dartz: ^0.10.1 + shared_preferences: ^2.2.3 + http: ^1.2.2 + internet_connection_checker: ^1.0.0+1 + flutter_phoenix: ^1.1.1 + flutter_svg: ^2.0.10+1 + +dev_dependencies: + flutter_test: + sdk: flutter + + flutter_lints: ^3.0.0 + +flutter: + uses-material-design: true + + assets: + - assets/svg/ + - assets/svg/logo/ + - assets/images/ + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages