├── .gitattributes ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── io │ │ │ │ └── flutter │ │ │ │ └── plugins │ │ │ │ └── GeneratedPluginRegistrant.java │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── aasharef │ │ │ │ └── ecommerce │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ └── ic_launcher_foreground.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher_foreground.png │ │ │ ├── drawable-v21 │ │ │ └── launch_background.xml │ │ │ ├── drawable-xhdpi │ │ │ └── app_icon.png │ │ │ ├── drawable-xxhdpi │ │ │ └── app_icon.png │ │ │ ├── drawable-xxxhdpi │ │ │ └── app_icon.png │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ └── ic_launcher.xml │ │ │ ├── mipmap-hdpi │ │ │ └── app_icon.png │ │ │ ├── mipmap-mdpi │ │ │ └── app_icon.png │ │ │ ├── mipmap-xhdpi │ │ │ └── app_icon.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── app_icon.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── app_icon.png │ │ │ ├── values-night │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── assets ├── .DS_Store ├── fonts │ ├── Poppins-Medium.ttf │ ├── Poppins-Regular.ttf │ └── Poppins-SemiBold.ttf ├── images │ ├── app_icon.png │ ├── app_icon_foreground.png │ ├── no_data.png │ ├── product1.png │ ├── product2.png │ ├── product3.png │ ├── product4.png │ └── product5.png └── vectors │ ├── back_arrow.svg │ ├── bus.svg │ ├── cancel.svg │ ├── cart.svg │ ├── decrease.svg │ ├── fav_filled.svg │ ├── fav_outlined.svg │ ├── favorites.svg │ ├── fire.svg │ ├── forward_arrow.svg │ ├── help.svg │ ├── home.svg │ ├── increase.svg │ ├── language.svg │ ├── logout.svg │ ├── notifications.svg │ ├── settings.svg │ ├── theme.svg │ └── user.svg ├── build ├── c4a4fea81f1198f03ba390693e850798 │ ├── _composite.stamp │ ├── gen_dart_plugin_registrant.stamp │ └── gen_localizations.stamp └── ios │ ├── Debug-iphonesimulator │ ├── .last_build_id │ ├── App.framework │ │ ├── App │ │ ├── Info.plist │ │ ├── _CodeSignature │ │ │ └── CodeResources │ │ └── flutter_assets │ │ │ ├── AssetManifest.bin │ │ │ ├── AssetManifest.json │ │ │ ├── FontManifest.json │ │ │ ├── NOTICES.Z │ │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Poppins-Medium.ttf │ │ │ │ ├── Poppins-Regular.ttf │ │ │ │ └── Poppins-SemiBold.ttf │ │ │ ├── images │ │ │ │ ├── app_icon.png │ │ │ │ ├── app_icon_foreground.png │ │ │ │ ├── no_data.png │ │ │ │ ├── product1.png │ │ │ │ ├── product2.png │ │ │ │ ├── product3.png │ │ │ │ ├── product4.png │ │ │ │ └── product5.png │ │ │ └── vectors │ │ │ │ ├── back_arrow.svg │ │ │ │ ├── bus.svg │ │ │ │ ├── cancel.svg │ │ │ │ ├── cart.svg │ │ │ │ ├── decrease.svg │ │ │ │ ├── fav_filled.svg │ │ │ │ ├── fav_outlined.svg │ │ │ │ ├── favorites.svg │ │ │ │ ├── fire.svg │ │ │ │ ├── forward_arrow.svg │ │ │ │ ├── help.svg │ │ │ │ ├── home.svg │ │ │ │ ├── increase.svg │ │ │ │ ├── language.svg │ │ │ │ ├── logout.svg │ │ │ │ ├── notifications.svg │ │ │ │ ├── settings.svg │ │ │ │ ├── theme.svg │ │ │ │ └── user.svg │ │ │ ├── fonts │ │ │ └── MaterialIcons-Regular.otf │ │ │ ├── isolate_snapshot_data │ │ │ ├── kernel_blob.bin │ │ │ ├── packages │ │ │ └── cupertino_icons │ │ │ │ └── assets │ │ │ │ └── CupertinoIcons.ttf │ │ │ ├── shaders │ │ │ └── ink_sparkle.frag │ │ │ └── vm_snapshot_data │ ├── Flutter.framework │ │ ├── Flutter │ │ ├── Headers │ │ │ ├── Flutter.h │ │ │ ├── FlutterAppDelegate.h │ │ │ ├── FlutterBinaryMessenger.h │ │ │ ├── FlutterCallbackCache.h │ │ │ ├── FlutterChannels.h │ │ │ ├── FlutterCodecs.h │ │ │ ├── FlutterDartProject.h │ │ │ ├── FlutterEngine.h │ │ │ ├── FlutterEngineGroup.h │ │ │ ├── FlutterHeadlessDartRunner.h │ │ │ ├── FlutterMacros.h │ │ │ ├── FlutterPlatformViews.h │ │ │ ├── FlutterPlugin.h │ │ │ ├── FlutterPluginAppLifeCycleDelegate.h │ │ │ ├── FlutterTexture.h │ │ │ └── FlutterViewController.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ └── module.modulemap │ │ ├── _CodeSignature │ │ │ └── CodeResources │ │ └── icudtl.dat │ ├── Pods_Runner.framework │ │ ├── Headers │ │ │ └── Pods-Runner-umbrella.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ └── module.modulemap │ │ ├── Pods_Runner │ │ └── _CodeSignature │ │ │ ├── CodeDirectory │ │ │ ├── CodeRequirements │ │ │ ├── CodeRequirements-1 │ │ │ ├── CodeResources │ │ │ └── CodeSignature │ ├── Runner.app │ │ ├── AppFrameworkInfo.plist │ │ ├── Assets.car │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboardc │ │ │ │ ├── 01J-lp-oVM-view-Ze5-6b-2t3.nib │ │ │ │ ├── Info.plist │ │ │ │ └── UIViewController-01J-lp-oVM.nib │ │ │ └── Main.storyboardc │ │ │ │ ├── BYZ-38-t0r-view-8bC-Xf-vdC.nib │ │ │ │ ├── Info.plist │ │ │ │ └── UIViewController-BYZ-38-t0r.nib │ │ └── Runner │ ├── Runner.swiftmodule │ │ ├── Project │ │ │ └── arm64-apple-ios-simulator.swiftsourceinfo │ │ ├── arm64-apple-ios-simulator.abi.json │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ └── arm64-apple-ios-simulator.swiftmodule │ ├── integration_test │ │ └── integration_test.framework │ │ │ ├── Headers │ │ │ ├── FLTIntegrationTestRunner.h │ │ │ ├── IntegrationTestIosTest.h │ │ │ ├── IntegrationTestPlugin.h │ │ │ └── integration_test-umbrella.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ ├── _CodeSignature │ │ │ └── CodeResources │ │ │ └── integration_test │ └── shared_preferences_foundation │ │ └── shared_preferences_foundation.framework │ │ ├── Headers │ │ ├── shared_preferences_foundation-Swift.h │ │ └── shared_preferences_foundation-umbrella.h │ │ ├── Info.plist │ │ ├── Modules │ │ ├── module.modulemap │ │ └── shared_preferences_foundation.swiftmodule │ │ │ ├── Project │ │ │ ├── arm64-apple-ios-simulator.swiftsourceinfo │ │ │ └── x86_64-apple-ios-simulator.swiftsourceinfo │ │ │ ├── arm64-apple-ios-simulator.abi.json │ │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ │ ├── arm64-apple-ios-simulator.swiftmodule │ │ │ ├── x86_64-apple-ios-simulator.abi.json │ │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ │ └── x86_64-apple-ios-simulator.swiftmodule │ │ ├── _CodeSignature │ │ └── CodeResources │ │ └── shared_preferences_foundation │ ├── Pods.build │ └── Release-iphonesimulator │ │ ├── Flutter.build │ │ └── dgph │ │ ├── Pods-Runner.build │ │ └── dgph │ │ ├── integration_test.build │ │ └── dgph │ │ └── shared_preferences_foundation.build │ │ └── dgph │ └── pod_inputs.fingerprint ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Podfile.lock ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings ├── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-100.png │ │ │ ├── Icon-1024.png │ │ │ ├── Icon-114.png │ │ │ ├── Icon-120.png │ │ │ ├── Icon-128.png │ │ │ ├── Icon-144.png │ │ │ ├── Icon-152.png │ │ │ ├── Icon-16.png │ │ │ ├── Icon-167.png │ │ │ ├── Icon-172.png │ │ │ ├── Icon-180.png │ │ │ ├── Icon-196.png │ │ │ ├── Icon-20.png │ │ │ ├── Icon-256.png │ │ │ ├── Icon-29.png │ │ │ ├── Icon-32.png │ │ │ ├── Icon-40.png │ │ │ ├── Icon-48.png │ │ │ ├── Icon-50.png │ │ │ ├── Icon-512.png │ │ │ ├── Icon-55.png │ │ │ ├── Icon-57.png │ │ │ ├── Icon-58.png │ │ │ ├── Icon-60.png │ │ │ ├── Icon-64.png │ │ │ ├── Icon-72.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-80.png │ │ │ ├── Icon-87.png │ │ │ ├── Icon-88.png │ │ │ └── Icon-App-40x40@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h └── firebase_app_id_file.json ├── lib ├── app │ ├── components │ │ ├── custom_button.dart │ │ ├── custom_snackbar.dart │ │ ├── no_data.dart │ │ ├── product_item.dart │ │ └── screen_title.dart │ ├── data │ │ ├── local │ │ │ └── my_shared_pref.dart │ │ └── models │ │ │ └── product_model.dart │ ├── modules │ │ ├── base │ │ │ ├── bindings │ │ │ │ └── base_binding.dart │ │ │ ├── controllers │ │ │ │ └── base_controller.dart │ │ │ └── views │ │ │ │ └── base_view.dart │ │ ├── cart │ │ │ ├── bindings │ │ │ │ └── cart_binding.dart │ │ │ ├── controllers │ │ │ │ └── cart_controller.dart │ │ │ └── views │ │ │ │ ├── cart_view.dart │ │ │ │ └── widgets │ │ │ │ └── cart_item.dart │ │ ├── favorites │ │ │ ├── bindings │ │ │ │ └── favorites_binding.dart │ │ │ ├── controllers │ │ │ │ └── favorites_controller.dart │ │ │ └── views │ │ │ │ └── favorites_view.dart │ │ ├── home │ │ │ ├── bindings │ │ │ │ └── home_binding.dart │ │ │ ├── controllers │ │ │ │ └── home_controller.dart │ │ │ └── views │ │ │ │ └── home_view.dart │ │ ├── notifications │ │ │ ├── bindings │ │ │ │ └── notifications_binding.dart │ │ │ ├── controllers │ │ │ │ └── notifications_controller.dart │ │ │ └── views │ │ │ │ ├── notifications_view.dart │ │ │ │ └── widgets │ │ │ │ └── notification_item.dart │ │ ├── product_details │ │ │ ├── bindings │ │ │ │ └── product_details_binding.dart │ │ │ ├── controllers │ │ │ │ └── product_details_controller.dart │ │ │ └── views │ │ │ │ ├── product_details_view.dart │ │ │ │ └── widgets │ │ │ │ ├── rounded_button.dart │ │ │ │ └── size_item.dart │ │ ├── settings │ │ │ ├── bindings │ │ │ │ └── settings_binding.dart │ │ │ ├── controllers │ │ │ │ └── settings_controller.dart │ │ │ └── views │ │ │ │ ├── settings_view.dart │ │ │ │ └── widgets │ │ │ │ └── settings_item.dart │ │ └── splash │ │ │ ├── bindings │ │ │ └── splash_binding.dart │ │ │ ├── controllers │ │ │ └── splash_controller.dart │ │ │ └── views │ │ │ └── splash_view.dart │ └── routes │ │ ├── app_pages.dart │ │ └── app_routes.dart ├── config │ └── theme │ │ ├── dark_theme_colors.dart │ │ ├── light_theme_colors.dart │ │ ├── my_fonts.dart │ │ ├── my_styles.dart │ │ └── my_theme.dart ├── main.dart └── utils │ ├── constants.dart │ └── dummy_helper.dart ├── pubspec.lock └── pubspec.yaml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | 5 | 6 | * linguist-detectable 7 | *.* linguist-language=Dart 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | # This file configures the analyzer, which statically analyzes Dart code to 2 | # check for errors, warnings, and lints. 3 | # 4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled 5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be 6 | # invoked from the command line by running `flutter analyze`. 7 | 8 | # The following line activates a set of recommended lints for Flutter apps, 9 | # packages, and plugins designed to encourage good coding practices. 10 | include: package:flutter_lints/flutter.yaml 11 | 12 | linter: 13 | # The lint rules applied to this project can be customized in the 14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml` 15 | # included above or to enable additional rules. A list of all available lints 16 | # and their documentation is published at 17 | # https://dart-lang.github.io/linter/lints/index.html. 18 | # 19 | # Instead of disabling a lint rule for the entire project in the 20 | # section below, it can also be suppressed for a single line of code 21 | # or a specific dart file by using the `// ignore: name_of_lint` and 22 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file 23 | # producing the lint. 24 | rules: 25 | # avoid_print: false # Uncomment to disable the `avoid_print` rule 26 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule 27 | 28 | # Additional information about this file can be found at 29 | # https://dart.dev/guides/language/analysis-options 30 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 33 30 | 31 | compileOptions { 32 | sourceCompatibility JavaVersion.VERSION_1_8 33 | targetCompatibility JavaVersion.VERSION_1_8 34 | } 35 | 36 | kotlinOptions { 37 | jvmTarget = '1.8' 38 | } 39 | 40 | sourceSets { 41 | main.java.srcDirs += 'src/main/kotlin' 42 | } 43 | 44 | defaultConfig { 45 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 46 | applicationId "com.aasharef.ecommerce" 47 | minSdkVersion 21 48 | targetSdkVersion 33 49 | versionCode flutterVersionCode.toInteger() 50 | versionName flutterVersionName 51 | } 52 | 53 | buildTypes { 54 | release { 55 | // TODO: Add your own signing config for the release build. 56 | // Signing with the debug keys for now, so `flutter run --release` works. 57 | signingConfig signingConfigs.debug 58 | } 59 | } 60 | } 61 | 62 | flutter { 63 | source '../..' 64 | } 65 | 66 | dependencies { 67 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 68 | } 69 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java: -------------------------------------------------------------------------------- 1 | package io.flutter.plugins; 2 | 3 | import androidx.annotation.Keep; 4 | import androidx.annotation.NonNull; 5 | import io.flutter.Log; 6 | 7 | import io.flutter.embedding.engine.FlutterEngine; 8 | 9 | /** 10 | * Generated file. Do not edit. 11 | * This file is generated by the Flutter tool based on the 12 | * plugins that support the Android platform. 13 | */ 14 | @Keep 15 | public final class GeneratedPluginRegistrant { 16 | private static final String TAG = "GeneratedPluginRegistrant"; 17 | public static void registerWith(@NonNull FlutterEngine flutterEngine) { 18 | try { 19 | flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin()); 20 | } catch (Exception e) { 21 | Log.e(TAG, "Error registering plugin integration_test, dev.flutter.plugins.integration_test.IntegrationTestPlugin", e); 22 | } 23 | try { 24 | flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin()); 25 | } catch (Exception e) { 26 | Log.e(TAG, "Error registering plugin shared_preferences_android, io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin", e); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/aasharef/ecommerce/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.aasharef.ecommerce 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/drawable-xhdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/drawable-xxhdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/drawable-xxxhdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/mipmap-hdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/mipmap-mdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/mipmap-xhdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/mipmap-xxhdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.8.21' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:7.2.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | tasks.register("clean", Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip 5 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /assets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/.DS_Store -------------------------------------------------------------------------------- /assets/fonts/Poppins-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/fonts/Poppins-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/Poppins-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/fonts/Poppins-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Poppins-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/fonts/Poppins-SemiBold.ttf -------------------------------------------------------------------------------- /assets/images/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/app_icon.png -------------------------------------------------------------------------------- /assets/images/app_icon_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/app_icon_foreground.png -------------------------------------------------------------------------------- /assets/images/no_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/no_data.png -------------------------------------------------------------------------------- /assets/images/product1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/product1.png -------------------------------------------------------------------------------- /assets/images/product2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/product2.png -------------------------------------------------------------------------------- /assets/images/product3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/product3.png -------------------------------------------------------------------------------- /assets/images/product4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/product4.png -------------------------------------------------------------------------------- /assets/images/product5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/assets/images/product5.png -------------------------------------------------------------------------------- /assets/vectors/back_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/bus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/cancel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/cart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/decrease.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/fav_filled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/fav_outlined.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/favorites.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/fire.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/vectors/forward_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/help.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/vectors/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/increase.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/language.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/vectors/logout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/notifications.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/settings.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/theme.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/vectors/user.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /build/c4a4fea81f1198f03ba390693e850798/_composite.stamp: -------------------------------------------------------------------------------- 1 | {"inputs":[],"outputs":[]} -------------------------------------------------------------------------------- /build/c4a4fea81f1198f03ba390693e850798/gen_dart_plugin_registrant.stamp: -------------------------------------------------------------------------------- 1 | {"inputs":["/Users/ahmedabufayed/Downloads/I liked/flutter_ecommerce_app-master/.dart_tool/package_config_subset"],"outputs":["/Users/ahmedabufayed/Downloads/I liked/flutter_ecommerce_app-master/.dart_tool/flutter_build/dart_plugin_registrant.dart"]} -------------------------------------------------------------------------------- /build/c4a4fea81f1198f03ba390693e850798/gen_localizations.stamp: -------------------------------------------------------------------------------- 1 | {"inputs":[],"outputs":[]} -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/.last_build_id: -------------------------------------------------------------------------------- 1 | dc9fd2fd568b945e741effc47d67c495 -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/App: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/App -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 11.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/AssetManifest.bin: -------------------------------------------------------------------------------- 1 | assets/fonts/Poppins-Medium.ttf  assetassets/fonts/Poppins-Medium.ttf assets/fonts/Poppins-Regular.ttf  asset assets/fonts/Poppins-Regular.ttf!assets/fonts/Poppins-SemiBold.ttf  asset!assets/fonts/Poppins-SemiBold.ttfassets/images/app_icon.png  assetassets/images/app_icon.png%assets/images/app_icon_foreground.png  asset%assets/images/app_icon_foreground.pngassets/images/no_data.png  assetassets/images/no_data.pngassets/images/product1.png  assetassets/images/product1.pngassets/images/product2.png  assetassets/images/product2.pngassets/images/product3.png  assetassets/images/product3.pngassets/images/product4.png  assetassets/images/product4.pngassets/images/product5.png  assetassets/images/product5.pngassets/vectors/back_arrow.svg  assetassets/vectors/back_arrow.svgassets/vectors/bus.svg  assetassets/vectors/bus.svgassets/vectors/cancel.svg  assetassets/vectors/cancel.svgassets/vectors/cart.svg  assetassets/vectors/cart.svgassets/vectors/decrease.svg  assetassets/vectors/decrease.svgassets/vectors/fav_filled.svg  assetassets/vectors/fav_filled.svgassets/vectors/fav_outlined.svg  assetassets/vectors/fav_outlined.svgassets/vectors/favorites.svg  assetassets/vectors/favorites.svgassets/vectors/fire.svg  assetassets/vectors/fire.svg assets/vectors/forward_arrow.svg  asset assets/vectors/forward_arrow.svgassets/vectors/help.svg  assetassets/vectors/help.svgassets/vectors/home.svg  assetassets/vectors/home.svgassets/vectors/increase.svg  assetassets/vectors/increase.svgassets/vectors/language.svg  assetassets/vectors/language.svgassets/vectors/logout.svg  assetassets/vectors/logout.svg assets/vectors/notifications.svg  asset assets/vectors/notifications.svgassets/vectors/settings.svg  assetassets/vectors/settings.svgassets/vectors/theme.svg  assetassets/vectors/theme.svgassets/vectors/user.svg  assetassets/vectors/user.svg2packages/cupertino_icons/assets/CupertinoIcons.ttf  asset2packages/cupertino_icons/assets/CupertinoIcons.ttf -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/AssetManifest.json: -------------------------------------------------------------------------------- 1 | {"assets/fonts/Poppins-Medium.ttf":["assets/fonts/Poppins-Medium.ttf"],"assets/fonts/Poppins-Regular.ttf":["assets/fonts/Poppins-Regular.ttf"],"assets/fonts/Poppins-SemiBold.ttf":["assets/fonts/Poppins-SemiBold.ttf"],"assets/images/app_icon.png":["assets/images/app_icon.png"],"assets/images/app_icon_foreground.png":["assets/images/app_icon_foreground.png"],"assets/images/no_data.png":["assets/images/no_data.png"],"assets/images/product1.png":["assets/images/product1.png"],"assets/images/product2.png":["assets/images/product2.png"],"assets/images/product3.png":["assets/images/product3.png"],"assets/images/product4.png":["assets/images/product4.png"],"assets/images/product5.png":["assets/images/product5.png"],"assets/vectors/back_arrow.svg":["assets/vectors/back_arrow.svg"],"assets/vectors/bus.svg":["assets/vectors/bus.svg"],"assets/vectors/cancel.svg":["assets/vectors/cancel.svg"],"assets/vectors/cart.svg":["assets/vectors/cart.svg"],"assets/vectors/decrease.svg":["assets/vectors/decrease.svg"],"assets/vectors/fav_filled.svg":["assets/vectors/fav_filled.svg"],"assets/vectors/fav_outlined.svg":["assets/vectors/fav_outlined.svg"],"assets/vectors/favorites.svg":["assets/vectors/favorites.svg"],"assets/vectors/fire.svg":["assets/vectors/fire.svg"],"assets/vectors/forward_arrow.svg":["assets/vectors/forward_arrow.svg"],"assets/vectors/help.svg":["assets/vectors/help.svg"],"assets/vectors/home.svg":["assets/vectors/home.svg"],"assets/vectors/increase.svg":["assets/vectors/increase.svg"],"assets/vectors/language.svg":["assets/vectors/language.svg"],"assets/vectors/logout.svg":["assets/vectors/logout.svg"],"assets/vectors/notifications.svg":["assets/vectors/notifications.svg"],"assets/vectors/settings.svg":["assets/vectors/settings.svg"],"assets/vectors/theme.svg":["assets/vectors/theme.svg"],"assets/vectors/user.svg":["assets/vectors/user.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]} -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/FontManifest.json: -------------------------------------------------------------------------------- 1 | [{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"Poppins","fonts":[{"weight":300,"asset":"assets/fonts/Poppins-Regular.ttf"},{"weight":500,"asset":"assets/fonts/Poppins-Medium.ttf"},{"weight":700,"asset":"assets/fonts/Poppins-SemiBold.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}] -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/NOTICES.Z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/NOTICES.Z -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/fonts/Poppins-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/fonts/Poppins-Medium.ttf -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/fonts/Poppins-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/fonts/Poppins-Regular.ttf -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/fonts/Poppins-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/fonts/Poppins-SemiBold.ttf -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/app_icon.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/app_icon_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/app_icon_foreground.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/no_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/no_data.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product1.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product2.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product3.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product4.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/images/product5.png -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/back_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/bus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/cancel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/cart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/decrease.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/fav_filled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/fav_outlined.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/favorites.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/fire.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/forward_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/help.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/increase.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/language.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/logout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/notifications.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/settings.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/theme.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/assets/vectors/user.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/fonts/MaterialIcons-Regular.otf -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/isolate_snapshot_data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/isolate_snapshot_data -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/kernel_blob.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/kernel_blob.bin -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/shaders/ink_sparkle.frag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/shaders/ink_sparkle.frag -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/App.framework/flutter_assets/vm_snapshot_data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/vm_snapshot_data -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Flutter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Flutter.framework/Flutter -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Headers/Flutter.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef FLUTTER_FLUTTER_H_ 6 | #define FLUTTER_FLUTTER_H_ 7 | 8 | #import "FlutterAppDelegate.h" 9 | #import "FlutterBinaryMessenger.h" 10 | #import "FlutterCallbackCache.h" 11 | #import "FlutterChannels.h" 12 | #import "FlutterCodecs.h" 13 | #import "FlutterDartProject.h" 14 | #import "FlutterEngine.h" 15 | #import "FlutterEngineGroup.h" 16 | #import "FlutterHeadlessDartRunner.h" 17 | #import "FlutterMacros.h" 18 | #import "FlutterPlatformViews.h" 19 | #import "FlutterPlugin.h" 20 | #import "FlutterPluginAppLifeCycleDelegate.h" 21 | #import "FlutterTexture.h" 22 | #import "FlutterViewController.h" 23 | 24 | #endif // FLUTTER_FLUTTER_H_ 25 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Headers/FlutterAppDelegate.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef FLUTTER_FLUTTERAPPDELEGATE_H_ 6 | #define FLUTTER_FLUTTERAPPDELEGATE_H_ 7 | 8 | #import 9 | 10 | #import "FlutterMacros.h" 11 | #import "FlutterPlugin.h" 12 | 13 | /** 14 | * `UIApplicationDelegate` subclass for simple apps that want default behavior. 15 | * 16 | * This class implements the following behaviors: 17 | * * Status bar touches are forwarded to the key window's root view 18 | * `FlutterViewController`, in order to trigger scroll to top. 19 | * * Keeps the Flutter connection open in debug mode when the phone screen 20 | * locks. 21 | * 22 | * App delegates for Flutter applications are *not* required to inherit from 23 | * this class. Developers of custom app delegate classes should copy and paste 24 | * code as necessary from FlutterAppDelegate.mm. 25 | */ 26 | FLUTTER_DARWIN_EXPORT 27 | @interface FlutterAppDelegate 28 | : UIResponder 29 | 30 | @property(strong, nonatomic) UIWindow* window; 31 | 32 | @end 33 | 34 | #endif // FLUTTER_FLUTTERDARTPROJECT_H_ 35 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Headers/FlutterCallbackCache.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef FLUTTER_FLUTTERCALLBACKCACHE_H_ 6 | #define FLUTTER_FLUTTERCALLBACKCACHE_H_ 7 | 8 | #import 9 | 10 | #import "FlutterMacros.h" 11 | 12 | /** 13 | * An object containing the result of `FlutterCallbackCache`'s `lookupCallbackInformation` 14 | * method. 15 | */ 16 | FLUTTER_DARWIN_EXPORT 17 | @interface FlutterCallbackInformation : NSObject 18 | /** 19 | * The name of the callback. 20 | */ 21 | @property(copy) NSString* callbackName; 22 | /** 23 | * The class name of the callback. 24 | */ 25 | @property(copy) NSString* callbackClassName; 26 | /** 27 | * The library path of the callback. 28 | */ 29 | @property(copy) NSString* callbackLibraryPath; 30 | @end 31 | 32 | /** 33 | * The cache containing callback information for spawning a 34 | * `FlutterHeadlessDartRunner`. 35 | */ 36 | FLUTTER_DARWIN_EXPORT 37 | @interface FlutterCallbackCache : NSObject 38 | /** 39 | * Returns the callback information for the given callback handle. 40 | * This callback information can be used when spawning a 41 | * `FlutterHeadlessDartRunner`. 42 | * 43 | * @param handle The handle for a callback, provided by the 44 | * Dart method `PluginUtilities.getCallbackHandle`. 45 | * @return A `FlutterCallbackInformation` object which contains the name of the 46 | * callback, the name of the class in which the callback is defined, and the 47 | * path of the library which contains the callback. If the provided handle is 48 | * invalid, nil is returned. 49 | */ 50 | + (FlutterCallbackInformation*)lookupCallbackInformation:(int64_t)handle; 51 | 52 | @end 53 | 54 | #endif // FLUTTER_FLUTTERCALLBACKCACHE_H_ 55 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Headers/FlutterMacros.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef FLUTTER_FLUTTERMACROS_H_ 6 | #define FLUTTER_FLUTTERMACROS_H_ 7 | 8 | #if defined(FLUTTER_FRAMEWORK) 9 | 10 | #define FLUTTER_DARWIN_EXPORT __attribute__((visibility("default"))) 11 | 12 | #else // defined(FLUTTER_SDK) 13 | 14 | #define FLUTTER_DARWIN_EXPORT 15 | 16 | #endif // defined(FLUTTER_SDK) 17 | 18 | #ifndef NS_ASSUME_NONNULL_BEGIN 19 | #define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") 20 | #define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") 21 | #endif // defined(NS_ASSUME_NONNULL_BEGIN) 22 | 23 | /** 24 | * Indicates that the API has been deprecated for the specified reason. Code 25 | * that uses the deprecated API will continue to work as before. However, the 26 | * API will soon become unavailable and users are encouraged to immediately take 27 | * the appropriate action mentioned in the deprecation message and the BREAKING 28 | * CHANGES section present in the Flutter.h umbrella header. 29 | */ 30 | #define FLUTTER_DEPRECATED(msg) __attribute__((__deprecated__(msg))) 31 | 32 | /** 33 | * Indicates that the previously deprecated API is now unavailable. Code that 34 | * uses the API will not work and the declaration of the API is only a stub 35 | * meant to display the given message detailing the actions for the user to take 36 | * immediately. 37 | */ 38 | #define FLUTTER_UNAVAILABLE(msg) __attribute__((__unavailable__(msg))) 39 | 40 | #if __has_feature(objc_arc) 41 | #define FLUTTER_ASSERT_ARC 42 | #define FLUTTER_ASSERT_NOT_ARC #error ARC must be disabled ! 43 | #else 44 | #define FLUTTER_ASSERT_ARC #error ARC must be enabled ! 45 | #define FLUTTER_ASSERT_NOT_ARC 46 | #endif 47 | 48 | #endif // FLUTTER_FLUTTERMACROS_H_ 49 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Headers/FlutterPlatformViews.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef FLUTTER_FLUTTERPLATFORMVIEWS_H_ 6 | #define FLUTTER_FLUTTERPLATFORMVIEWS_H_ 7 | 8 | #import 9 | 10 | #import "FlutterCodecs.h" 11 | #import "FlutterMacros.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /** 16 | * Wraps a `UIView` for embedding in the Flutter hierarchy 17 | */ 18 | @protocol FlutterPlatformView 19 | /** 20 | * Returns a reference to the `UIView` that is wrapped by this `FlutterPlatformView`. 21 | */ 22 | - (UIView*)view; 23 | @end 24 | 25 | FLUTTER_DARWIN_EXPORT 26 | @protocol FlutterPlatformViewFactory 27 | /** 28 | * Create a `FlutterPlatformView`. 29 | * 30 | * Implemented by iOS code that expose a `UIView` for embedding in a Flutter app. 31 | * 32 | * The implementation of this method should create a new `UIView` and return it. 33 | * 34 | * @param frame The rectangle for the newly created `UIView` measured in points. 35 | * @param viewId A unique identifier for this `UIView`. 36 | * @param args Parameters for creating the `UIView` sent from the Dart side of the Flutter app. 37 | * If `createArgsCodec` is not implemented, or if no creation arguments were sent from the Dart 38 | * code, this will be null. Otherwise this will be the value sent from the Dart code as decoded by 39 | * `createArgsCodec`. 40 | */ 41 | - (NSObject*)createWithFrame:(CGRect)frame 42 | viewIdentifier:(int64_t)viewId 43 | arguments:(id _Nullable)args; 44 | 45 | /** 46 | * Returns the `FlutterMessageCodec` for decoding the args parameter of `createWithFrame`. 47 | * 48 | * Only needs to be implemented if `createWithFrame` needs an arguments parameter. 49 | */ 50 | @optional 51 | - (NSObject*)createArgsCodec; 52 | @end 53 | 54 | NS_ASSUME_NONNULL_END 55 | 56 | #endif // FLUTTER_FLUTTERPLATFORMVIEWS_H_ 57 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Headers/FlutterTexture.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef FLUTTER_FLUTTERTEXTURE_H_ 6 | #define FLUTTER_FLUTTERTEXTURE_H_ 7 | 8 | #import 9 | #import 10 | 11 | #import "FlutterMacros.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | FLUTTER_DARWIN_EXPORT 16 | /** 17 | * Represents a texture that can be shared with Flutter. 18 | * 19 | * See also: https://github.com/flutter/plugins/tree/master/packages/camera 20 | */ 21 | @protocol FlutterTexture 22 | /** Copy the contents of the texture into a `CVPixelBuffer`. */ 23 | - (CVPixelBufferRef _Nullable)copyPixelBuffer; 24 | 25 | /** 26 | * Called when the texture is unregistered. 27 | * 28 | * Called on the raster thread. 29 | */ 30 | @optional 31 | - (void)onTextureUnregistered:(NSObject*)texture; 32 | @end 33 | 34 | FLUTTER_DARWIN_EXPORT 35 | /** 36 | * A collection of registered `FlutterTexture`'s. 37 | */ 38 | @protocol FlutterTextureRegistry 39 | /** 40 | * Registers a `FlutterTexture` for usage in Flutter and returns an id that can be used to reference 41 | * that texture when calling into Flutter with channels. Textures must be registered on the 42 | * platform thread. On success returns the pointer to the registered texture, else returns 0. 43 | */ 44 | - (int64_t)registerTexture:(NSObject*)texture; 45 | /** 46 | * Notifies Flutter that the content of the previously registered texture has been updated. 47 | * 48 | * This will trigger a call to `-[FlutterTexture copyPixelBuffer]` on the raster thread. 49 | */ 50 | - (void)textureFrameAvailable:(int64_t)textureId; 51 | /** 52 | * Unregisters a `FlutterTexture` that has previously regeistered with `registerTexture:`. Textures 53 | * must be unregistered on the platform thread. 54 | * 55 | * @param textureId The result that was previously returned from `registerTexture:`. 56 | */ 57 | - (void)unregisterTexture:(int64_t)textureId; 58 | @end 59 | 60 | NS_ASSUME_NONNULL_END 61 | 62 | #endif // FLUTTER_FLUTTERTEXTURE_H_ 63 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | Flutter 9 | CFBundleIdentifier 10 | io.flutter.flutter 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Flutter 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 11.0 25 | FlutterEngine 26 | b8d35810e91ab8fc39ba5e7a41bff6f697e8e3a8 27 | ClangVersion 28 | b'Fuchsia clang version 17.0.0 (https://llvm.googlesource.com/llvm-project 6d667d4b261e81f325756fdfd5bb43b3b3d2451d)' 29 | 30 | 31 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Flutter { 2 | umbrella header "Flutter.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Flutter.framework/icudtl.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Flutter.framework/icudtl.dat -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/Headers/Pods-Runner-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_RunnerVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_RunnerVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Pods_Runner.framework/Info.plist -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_Runner { 2 | umbrella header "Pods-Runner-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/Pods_Runner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Pods_Runner.framework/Pods_Runner -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Headers/Pods-Runner-umbrella.h 8 | 9 | qwiYDWd9StHsFttCKLnCkouErV8= 10 | 11 | Info.plist 12 | 13 | +8jumnT5qHLfhRZP+Kxdos55TTE= 14 | 15 | Modules/module.modulemap 16 | 17 | fTjMFx0S8KBV991TY3+5DAzl1R0= 18 | 19 | 20 | files2 21 | 22 | Headers/Pods-Runner-umbrella.h 23 | 24 | hash 25 | 26 | qwiYDWd9StHsFttCKLnCkouErV8= 27 | 28 | hash2 29 | 30 | h9Q8dOdlbfVmyAwN0d7ym11XjgSop1/nJGh4JH8yc2c= 31 | 32 | 33 | Modules/module.modulemap 34 | 35 | hash 36 | 37 | fTjMFx0S8KBV991TY3+5DAzl1R0= 38 | 39 | hash2 40 | 41 | wuAmO8HNOlsSiQE1FebYfxZqLzXImN1XYTTH47H5HUs= 42 | 43 | 44 | 45 | rules 46 | 47 | ^.* 48 | 49 | ^.*\.lproj/ 50 | 51 | optional 52 | 53 | weight 54 | 1000 55 | 56 | ^.*\.lproj/locversion.plist$ 57 | 58 | omit 59 | 60 | weight 61 | 1100 62 | 63 | ^Base\.lproj/ 64 | 65 | weight 66 | 1010 67 | 68 | ^version.plist$ 69 | 70 | 71 | rules2 72 | 73 | .*\.dSYM($|/) 74 | 75 | weight 76 | 11 77 | 78 | ^(.*/)?\.DS_Store$ 79 | 80 | omit 81 | 82 | weight 83 | 2000 84 | 85 | ^.* 86 | 87 | ^.*\.lproj/ 88 | 89 | optional 90 | 91 | weight 92 | 1000 93 | 94 | ^.*\.lproj/locversion.plist$ 95 | 96 | omit 97 | 98 | weight 99 | 1100 100 | 101 | ^Base\.lproj/ 102 | 103 | weight 104 | 1010 105 | 106 | ^Info\.plist$ 107 | 108 | omit 109 | 110 | weight 111 | 20 112 | 113 | ^PkgInfo$ 114 | 115 | omit 116 | 117 | weight 118 | 20 119 | 120 | ^embedded\.provisionprofile$ 121 | 122 | weight 123 | 20 124 | 125 | ^version\.plist$ 126 | 127 | weight 128 | 20 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Pods_Runner.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/AppFrameworkInfo.plist -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Assets.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Assets.car -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/LaunchScreen.storyboardc/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/LaunchScreen.storyboardc/Info.plist -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/Main.storyboardc/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/Main.storyboardc/Info.plist -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.app/Runner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.app/Runner -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.swiftmodule/arm64-apple-ios-simulator.abi.json: -------------------------------------------------------------------------------- 1 | { 2 | "ABIRoot": { 3 | "kind": "Root", 4 | "name": "TopLevel", 5 | "printedName": "TopLevel", 6 | "json_format_version": 8 7 | }, 8 | "ConstValues": [] 9 | } -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/Runner.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/Runner.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/Headers/FLTIntegrationTestRunner.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | @import Foundation; 6 | 7 | @class UIImage; 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | typedef void (^FLTIntegrationTestResults)(SEL nativeTestSelector, BOOL success, NSString *_Nullable failureMessage); 12 | 13 | @interface FLTIntegrationTestRunner : NSObject 14 | 15 | /** 16 | * Any screenshots captured by the plugin. 17 | */ 18 | @property (copy, readonly) NSDictionary *capturedScreenshotsByName; 19 | 20 | /** 21 | * Starts dart tests and waits for results. 22 | * 23 | * @param testResult Will be called once per every completed dart test. 24 | */ 25 | - (void)testIntegrationTestWithResults:(NS_NOESCAPE FLTIntegrationTestResults)testResult; 26 | 27 | /** 28 | * An appropriate XCTest method name based on the dart test name. 29 | * 30 | * Example: dart test "verify widget-ABC123" becomes "testVerifyWidgetABC123" 31 | */ 32 | + (NSString *)testCaseNameFromDartTestName:(NSString *)dartTestName; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/Headers/IntegrationTestPlugin.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Flutter Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #import 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /** A Flutter plugin that's responsible for communicating the test results back 10 | * to iOS XCTest. */ 11 | @interface IntegrationTestPlugin : NSObject 12 | 13 | /** 14 | * Test results that are sent from Dart when integration test completes. Before the 15 | * completion, it is @c nil. 16 | */ 17 | @property(nonatomic, readonly, nullable) NSDictionary *testResults; 18 | 19 | /** 20 | * Mapping of screenshot images by suggested names, captured by the dart tests. 21 | */ 22 | @property (copy, readonly) NSDictionary *capturedScreenshotsByName; 23 | 24 | /** Fetches the singleton instance of the plugin. */ 25 | + (instancetype)instance; 26 | 27 | - (instancetype)init NS_UNAVAILABLE; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/Headers/integration_test-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "FLTIntegrationTestRunner.h" 14 | #import "IntegrationTestIosTest.h" 15 | #import "IntegrationTestPlugin.h" 16 | 17 | FOUNDATION_EXPORT double integration_testVersionNumber; 18 | FOUNDATION_EXPORT const unsigned char integration_testVersionString[]; 19 | 20 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/Info.plist -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module integration_test { 2 | umbrella header "integration_test-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Headers/FLTIntegrationTestRunner.h 8 | 9 | kpsgKvkFBgRLvgWRyII5sfzV9/s= 10 | 11 | Headers/IntegrationTestIosTest.h 12 | 13 | Q477+H0ynBNgoVWL+hdPdQMpLyg= 14 | 15 | Headers/IntegrationTestPlugin.h 16 | 17 | d+rA9r3406Ri8607i1a5ab1N0MI= 18 | 19 | Headers/integration_test-umbrella.h 20 | 21 | SBN2cFdxkN/c94Wxkj4I0CNzn9g= 22 | 23 | Info.plist 24 | 25 | Vlr++LI62Eic6roE4z4hbVHiG2I= 26 | 27 | Modules/module.modulemap 28 | 29 | lhX7AimHYA+/5CXa0WPWUnGbuJU= 30 | 31 | 32 | files2 33 | 34 | Headers/FLTIntegrationTestRunner.h 35 | 36 | hash2 37 | 38 | gChfhXI/SSJOVktLhyBGoboUu8t4GE3rF2+Si+2No6o= 39 | 40 | 41 | Headers/IntegrationTestIosTest.h 42 | 43 | hash2 44 | 45 | xpudfkQ8SyNZT5d4TmKnEEJKwqD9gRWT5eqtEdneKLI= 46 | 47 | 48 | Headers/IntegrationTestPlugin.h 49 | 50 | hash2 51 | 52 | XFmh+yWdTDja7/j3DoDBpTUphfTKzh9v6cxWWoDT36I= 53 | 54 | 55 | Headers/integration_test-umbrella.h 56 | 57 | hash2 58 | 59 | mhclBTkrS8o8K0RACZ8OSisM9XxRfbmZxOti3GcpTbg= 60 | 61 | 62 | Modules/module.modulemap 63 | 64 | hash2 65 | 66 | cfPP1SsIUz4kP75Q7JoPfRgsXtryb2q5OonL9wh39Jk= 67 | 68 | 69 | 70 | rules 71 | 72 | ^.* 73 | 74 | ^.*\.lproj/ 75 | 76 | optional 77 | 78 | weight 79 | 1000 80 | 81 | ^.*\.lproj/locversion.plist$ 82 | 83 | omit 84 | 85 | weight 86 | 1100 87 | 88 | ^Base\.lproj/ 89 | 90 | weight 91 | 1010 92 | 93 | ^version.plist$ 94 | 95 | 96 | rules2 97 | 98 | .*\.dSYM($|/) 99 | 100 | weight 101 | 11 102 | 103 | ^(.*/)?\.DS_Store$ 104 | 105 | omit 106 | 107 | weight 108 | 2000 109 | 110 | ^.* 111 | 112 | ^.*\.lproj/ 113 | 114 | optional 115 | 116 | weight 117 | 1000 118 | 119 | ^.*\.lproj/locversion.plist$ 120 | 121 | omit 122 | 123 | weight 124 | 1100 125 | 126 | ^Base\.lproj/ 127 | 128 | weight 129 | 1010 130 | 131 | ^Info\.plist$ 132 | 133 | omit 134 | 135 | weight 136 | 20 137 | 138 | ^PkgInfo$ 139 | 140 | omit 141 | 142 | weight 143 | 20 144 | 145 | ^embedded\.provisionprofile$ 146 | 147 | weight 148 | 20 149 | 150 | ^version\.plist$ 151 | 152 | weight 153 | 20 154 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/integration_test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/integration_test/integration_test.framework/integration_test -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Headers/shared_preferences_foundation-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double shared_preferences_foundationVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char shared_preferences_foundationVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Info.plist -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module shared_preferences_foundation { 2 | umbrella header "shared_preferences_foundation-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module shared_preferences_foundation.Swift { 9 | header "shared_preferences_foundation-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/arm64-apple-ios-simulator.abi.json: -------------------------------------------------------------------------------- 1 | { 2 | "ABIRoot": { 3 | "kind": "Root", 4 | "name": "TopLevel", 5 | "printedName": "TopLevel", 6 | "json_format_version": 8 7 | }, 8 | "ConstValues": [] 9 | } -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/x86_64-apple-ios-simulator.abi.json: -------------------------------------------------------------------------------- 1 | { 2 | "ABIRoot": { 3 | "kind": "Root", 4 | "name": "TopLevel", 5 | "printedName": "TopLevel", 6 | "json_format_version": 8 7 | }, 8 | "ConstValues": [] 9 | } -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/Modules/shared_preferences_foundation.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/shared_preferences_foundation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/build/ios/Debug-iphonesimulator/shared_preferences_foundation/shared_preferences_foundation.framework/shared_preferences_foundation -------------------------------------------------------------------------------- /build/ios/Pods.build/Release-iphonesimulator/Flutter.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 May 19 202314:21:36/Users ahmedabufayed DownloadsI likedflutter_ecommerce_app-masteriosPods -------------------------------------------------------------------------------- /build/ios/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 May 19 202314:21:36/Users ahmedabufayed DownloadsI likedflutter_ecommerce_app-masteriosPods -------------------------------------------------------------------------------- /build/ios/Pods.build/Release-iphonesimulator/integration_test.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 May 19 202314:21:36/Users ahmedabufayed DownloadsI likedflutter_ecommerce_app-masteriosPods -------------------------------------------------------------------------------- /build/ios/Pods.build/Release-iphonesimulator/shared_preferences_foundation.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 May 19 202314:21:36/Users ahmedabufayed DownloadsI likedflutter_ecommerce_app-masteriosPods -------------------------------------------------------------------------------- /build/ios/pod_inputs.fingerprint: -------------------------------------------------------------------------------- 1 | {"files":{"/Users/ahmedabufayed/Downloads/I liked/flutter_ecommerce_app-master/ios/Runner.xcodeproj/project.pbxproj":"b32451ac40584720483814f8a6cc0ea5","/Users/ahmedabufayed/Downloads/I liked/flutter_ecommerce_app-master/ios/Podfile":"de0c931a910df99288283c64c08ad0be","/Users/ahmedabufayed/development/flutter/packages/flutter_tools/bin/podhelper.rb":"af3a512eb831d2c2ac92467a86bb79a2"}} -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 11.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '11.0' 3 | 4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency. 5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true' 6 | 7 | project 'Runner', { 8 | 'Debug' => :debug, 9 | 'Profile' => :release, 10 | 'Release' => :release, 11 | } 12 | 13 | def flutter_root 14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) 15 | unless File.exist?(generated_xcode_build_settings_path) 16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" 17 | end 18 | 19 | File.foreach(generated_xcode_build_settings_path) do |line| 20 | matches = line.match(/FLUTTER_ROOT\=(.*)/) 21 | return matches[1].strip if matches 22 | end 23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" 24 | end 25 | 26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) 27 | 28 | flutter_ios_podfile_setup 29 | 30 | target 'Runner' do 31 | use_frameworks! 32 | use_modular_headers! 33 | 34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) 35 | # target 'RunnerTests' do 36 | # inherit! :search_paths 37 | # end 38 | end 39 | 40 | post_install do |installer| 41 | installer.pods_project.targets.each do |target| 42 | flutter_additional_ios_build_settings(target) 43 | end 44 | end 45 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Flutter (1.0.0) 3 | - integration_test (0.0.1): 4 | - Flutter 5 | - shared_preferences_foundation (0.0.1): 6 | - Flutter 7 | - FlutterMacOS 8 | 9 | DEPENDENCIES: 10 | - Flutter (from `Flutter`) 11 | - integration_test (from `.symlinks/plugins/integration_test/ios`) 12 | - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) 13 | 14 | EXTERNAL SOURCES: 15 | Flutter: 16 | :path: Flutter 17 | integration_test: 18 | :path: ".symlinks/plugins/integration_test/ios" 19 | shared_preferences_foundation: 20 | :path: ".symlinks/plugins/shared_preferences_foundation/darwin" 21 | 22 | SPEC CHECKSUMS: 23 | Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 24 | integration_test: 13825b8a9334a850581300559b8839134b124670 25 | shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 26 | 27 | PODFILE CHECKSUM: b17e1ecfe97aba85f3997d462fe23d9e4313a8d8 28 | 29 | COCOAPODS: 1.12.1 30 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 52 | 54 | 60 | 61 | 62 | 63 | 69 | 71 | 77 | 78 | 79 | 80 | 82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-Libya/E-commerce_clean_architecture/e9eedacf5397990cd1ed20bfba21d58805ee9b48/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | E-commerce App 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | E-commerce App 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | $(FLUTTER_BUILD_NAME) 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | $(FLUTTER_BUILD_NUMBER) 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | UIViewControllerBasedStatusBarAppearance 45 | 46 | CADisableMinimumFrameDurationOnPhone 47 | 48 | UIApplicationSupportsIndirectInputEvents 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /ios/firebase_app_id_file.json: -------------------------------------------------------------------------------- 1 | { 2 | "file_generated_by": "FlutterFire CLI", 3 | "purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory", 4 | "GOOGLE_APP_ID": "1:119264282603:ios:5af876596b1069174bfbae", 5 | "FIREBASE_PROJECT_ID": "bagala-51be9", 6 | "GCM_SENDER_ID": "119264282603" 7 | } -------------------------------------------------------------------------------- /lib/app/components/custom_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:get/get.dart'; 4 | 5 | class CustomButton extends StatelessWidget { 6 | final String text; 7 | final Color? foregroundColor; 8 | final Color? backgroundColor; 9 | final double? radius; 10 | final double? fontSize; 11 | final Gradient? gradient; 12 | final void Function()? onPressed; 13 | final FontWeight? fontWeight; 14 | final double? spacing; 15 | final Widget? icon; 16 | final Color? borderColor; 17 | final bool hasShadow; 18 | final Color? shadowColor; 19 | final double shadowOpacity; 20 | final double shadowBlurRadius; 21 | final double shadowSpreadRadius; 22 | final double? width; 23 | final double? verticalPadding; 24 | final bool disabled; 25 | 26 | const CustomButton({ 27 | Key? key, 28 | this.icon, 29 | this.spacing, 30 | required this.text, 31 | required this.onPressed, 32 | this.fontWeight, 33 | this.gradient, 34 | this.backgroundColor, 35 | this.fontSize, 36 | this.foregroundColor, 37 | this.radius, 38 | this.borderColor, 39 | this.hasShadow = true, 40 | this.shadowColor, 41 | this.shadowOpacity = 0.3, 42 | this.shadowBlurRadius = 3, 43 | this.shadowSpreadRadius = 1, 44 | this.width, 45 | this.verticalPadding, 46 | this.disabled = false, 47 | }) : super(key: key); 48 | 49 | @override 50 | Widget build(BuildContext context) { 51 | return Material( 52 | color: Colors.transparent, 53 | elevation: 0, 54 | borderRadius: BorderRadius.circular(radius ?? 5.r), 55 | child: Container( 56 | padding: hasShadow ? EdgeInsets.all(5.r) : EdgeInsets.zero, 57 | child: InkWell( 58 | borderRadius: BorderRadius.circular(radius ?? 5.r), 59 | onTap: !disabled ? onPressed : null, 60 | child: Ink( 61 | width: width ?? double.infinity, 62 | padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: verticalPadding ?? 14.h), 63 | decoration: BoxDecoration( 64 | borderRadius: BorderRadius.circular(radius ?? 10.r), 65 | border: Border.all(color: borderColor ?? Colors.transparent), 66 | color: !disabled ? backgroundColor ?? Get.theme.primaryColor : Get.theme.primaryColor.withOpacity(0.5), 67 | gradient: gradient, 68 | boxShadow: !hasShadow || disabled 69 | ? null 70 | : [ 71 | BoxShadow( 72 | color: ( shadowColor ?? Colors.black).withOpacity(shadowOpacity), 73 | spreadRadius: shadowSpreadRadius, 74 | blurRadius: shadowBlurRadius, 75 | offset: const Offset(0, 2), 76 | ), 77 | ], 78 | ), 79 | child: Row( 80 | mainAxisSize: MainAxisSize.max, 81 | mainAxisAlignment: MainAxisAlignment.center, 82 | children: [ 83 | Text( 84 | text, 85 | style: Get.theme.textTheme.bodyLarge?.copyWith( 86 | fontSize: fontSize, 87 | fontWeight: fontWeight, 88 | color: foregroundColor ?? Colors.white, 89 | ), 90 | ), 91 | if (icon != null) 92 | SizedBox( 93 | width: spacing ?? 10.w, 94 | ), 95 | if (icon != null) icon! 96 | ], 97 | ), 98 | ), 99 | ), 100 | ), 101 | ); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /lib/app/components/custom_snackbar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | class CustomSnackBar { 5 | static showCustomSnackBar({required String title, required String message,Duration? duration}) 6 | { 7 | Get.snackbar( 8 | title, 9 | message, 10 | duration: duration ?? const Duration(seconds: 3), 11 | margin: const EdgeInsets.only(top: 10,left: 10,right: 10), 12 | colorText: Colors.white, 13 | backgroundColor: Colors.green, 14 | icon: const Icon(Icons.check_circle, color: Colors.white,), 15 | ); 16 | } 17 | 18 | 19 | static showCustomErrorSnackBar({required String title, required String message,Color? color,Duration? duration}) 20 | { 21 | Get.snackbar( 22 | title, 23 | message, 24 | duration: duration ?? const Duration(seconds: 3), 25 | margin: const EdgeInsets.only(top: 10,left: 10,right: 10), 26 | colorText: Colors.white, 27 | backgroundColor: color ?? Colors.redAccent, 28 | icon: const Icon(Icons.error, color: Colors.white,), 29 | ); 30 | } 31 | 32 | 33 | 34 | static showCustomToast({String? title, required String message,Color? color,Duration? duration}){ 35 | Get.rawSnackbar( 36 | title: title, 37 | duration: duration ?? const Duration(seconds: 3), 38 | snackStyle: SnackStyle.GROUNDED, 39 | backgroundColor: color ?? Colors.green, 40 | onTap: (snack){ 41 | Get.closeAllSnackbars(); 42 | }, 43 | //overlayBlur: 0.8, 44 | message: message, 45 | ); 46 | } 47 | 48 | 49 | static showCustomErrorToast({String? title, required String message,Color? color,Duration? duration}){ 50 | Get.rawSnackbar( 51 | title: title, 52 | duration: duration ?? const Duration(seconds: 3), 53 | snackStyle: SnackStyle.GROUNDED, 54 | backgroundColor: color ?? Colors.redAccent, 55 | onTap: (snack){ 56 | Get.closeAllSnackbars(); 57 | }, 58 | //overlayBlur: 0.8, 59 | message: message, 60 | ); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /lib/app/components/no_data.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:get/get.dart'; 4 | 5 | import '../../utils/constants.dart'; 6 | 7 | class NoData extends StatelessWidget { 8 | final String? text; 9 | const NoData({Key? key, this.text}) : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Column( 14 | children: [ 15 | 80.verticalSpace, 16 | Image.asset(Constants.noData), 17 | 20.verticalSpace, 18 | Text(text ?? 'No Data', style: context.textTheme.displayMedium), 19 | ], 20 | ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/app/components/product_item.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_animate/flutter_animate.dart'; 3 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 4 | import 'package:flutter_svg/flutter_svg.dart'; 5 | import 'package:get/get.dart'; 6 | 7 | import '../../utils/constants.dart'; 8 | import '../data/models/product_model.dart'; 9 | import '../modules/base/controllers/base_controller.dart'; 10 | import '../routes/app_pages.dart'; 11 | 12 | class ProductItem extends StatelessWidget { 13 | final ProductModel product; 14 | const ProductItem({ 15 | Key? key, 16 | required this.product 17 | }) : super(key: key); 18 | 19 | @override 20 | Widget build(BuildContext context) { 21 | final theme = context.theme; 22 | return GestureDetector( 23 | onTap: () => Get.toNamed(Routes.PRODUCT_DETAILS, arguments: product), 24 | child: SizedBox( 25 | child: Column( 26 | crossAxisAlignment: CrossAxisAlignment.start, 27 | children: [ 28 | Stack( 29 | children: [ 30 | Container( 31 | width: double.infinity, 32 | height: 200.h, 33 | decoration: BoxDecoration( 34 | color: const Color(0xFFEDF1FA), 35 | borderRadius: BorderRadius.circular(25.r), 36 | ), 37 | ), 38 | Positioned( 39 | right: product.id == 2 ? 0 : 20.w, 40 | bottom: -80.h, 41 | child: Image.asset(product.image!, height: 260.h) 42 | .animate().slideX( 43 | duration: const Duration(milliseconds: 200), 44 | begin: 1, 45 | curve: Curves.easeInSine, 46 | ), 47 | ), 48 | Positioned( 49 | left: 15.w, 50 | bottom: 20.h, 51 | child: GetBuilder( 52 | id: 'FavoriteButton', 53 | builder: (controller) => GestureDetector( 54 | onTap: () => controller.onFavoriteButtonPressed( 55 | productId: product.id! 56 | ), 57 | child: CircleAvatar( 58 | radius: 18.r, 59 | backgroundColor: Colors.white, 60 | child: SvgPicture.asset( 61 | product.isFavorite! 62 | ? Constants.favFilledIcon 63 | : Constants.favOutlinedIcon, 64 | color: product.isFavorite! ? null : theme.primaryColor, 65 | ), 66 | ), 67 | ), 68 | ), 69 | ).animate().fade(), 70 | ], 71 | ), 72 | 10.verticalSpace, 73 | Text(product.name!, style: theme.textTheme.bodyMedium) 74 | .animate().fade().slideY( 75 | duration: const Duration(milliseconds: 200), 76 | begin: 1, 77 | curve: Curves.easeInSine, 78 | ), 79 | 5.verticalSpace, 80 | Text('\$${product.price}', style: theme.textTheme.displaySmall) 81 | .animate().fade().slideY( 82 | duration: const Duration(milliseconds: 200), 83 | begin: 2, 84 | curve: Curves.easeInSine, 85 | ), 86 | ], 87 | ), 88 | ), 89 | ); 90 | } 91 | } -------------------------------------------------------------------------------- /lib/app/components/screen_title.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:get/get.dart'; 4 | 5 | class ScreenTitle extends StatelessWidget { 6 | final String title; 7 | final double? dividerEndIndent; 8 | const ScreenTitle({ 9 | Key? key, 10 | required this.title, 11 | this.dividerEndIndent, 12 | }) : super(key: key); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Column( 17 | crossAxisAlignment: CrossAxisAlignment.start, 18 | children: [ 19 | Text(title, style: context.theme.textTheme.displayLarge?.copyWith( 20 | fontSize: 42.sp, 21 | )), 22 | Divider(thickness: 3, endIndent: dividerEndIndent ?? 250,), 23 | ], 24 | ); 25 | } 26 | } -------------------------------------------------------------------------------- /lib/app/data/local/my_shared_pref.dart: -------------------------------------------------------------------------------- 1 | import 'package:shared_preferences/shared_preferences.dart'; 2 | 3 | class MySharedPref { 4 | // prevent making instance 5 | MySharedPref._(); 6 | 7 | // get storage 8 | static late SharedPreferences _sharedPreferences; 9 | 10 | // STORING KEYS 11 | static const String _fcmTokenKey = 'fcm_token'; 12 | static const String _lightThemeKey = 'is_theme_light'; 13 | 14 | /// init get storage services 15 | static Future init() async { 16 | _sharedPreferences = await SharedPreferences.getInstance(); 17 | } 18 | 19 | static setStorage(SharedPreferences sharedPreferences) { 20 | _sharedPreferences = sharedPreferences; 21 | } 22 | 23 | /// set theme current type as light theme 24 | static Future setThemeIsLight(bool lightTheme) => 25 | _sharedPreferences.setBool(_lightThemeKey, lightTheme); 26 | 27 | /// get if the current theme type is light 28 | static bool getThemeIsLight() => 29 | _sharedPreferences.getBool(_lightThemeKey) ?? true; // todo set the default theme (true for light, false for dark) 30 | 31 | /// save generated fcm token 32 | static Future setFcmToken(String token) => 33 | _sharedPreferences.setString(_fcmTokenKey, token); 34 | 35 | /// get generated fcm token 36 | static String? getFcmToken() => 37 | _sharedPreferences.getString(_fcmTokenKey); 38 | 39 | /// clear all data from shared pref 40 | static Future clear() async => await _sharedPreferences.clear(); 41 | 42 | } -------------------------------------------------------------------------------- /lib/app/data/models/product_model.dart: -------------------------------------------------------------------------------- 1 | class ProductModel { 2 | int? id; 3 | String? image; 4 | String? name; 5 | int? quantity; 6 | double? price; 7 | double? rating; 8 | String? reviews; 9 | String? size; 10 | bool? isFavorite; 11 | ProductModel({ 12 | this.id, 13 | this.image, 14 | this.name, 15 | this.quantity, 16 | this.price, 17 | this.rating, 18 | this.reviews, 19 | this.size, 20 | this.isFavorite 21 | }); 22 | } -------------------------------------------------------------------------------- /lib/app/modules/base/bindings/base_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import '../../cart/controllers/cart_controller.dart'; 3 | import '../../favorites/controllers/favorites_controller.dart'; 4 | import '../../home/controllers/home_controller.dart'; 5 | import '../../notifications/controllers/notifications_controller.dart'; 6 | import '../../settings/controllers/settings_controller.dart'; 7 | import '../controllers/base_controller.dart'; 8 | 9 | class BaseBinding extends Bindings { 10 | @override 11 | void dependencies() { 12 | Get.lazyPut(() => BaseController()); 13 | Get.lazyPut(() => HomeController()); 14 | Get.lazyPut(() => FavoritesController()); 15 | Get.lazyPut(() => CartController()); 16 | Get.lazyPut(() => NotificationsController()); 17 | Get.lazyPut(() => SettingsController()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/app/modules/base/controllers/base_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../../utils/dummy_helper.dart'; 4 | import '../../favorites/controllers/favorites_controller.dart'; 5 | 6 | class BaseController extends GetxController { 7 | 8 | // current screen index 9 | int currentIndex = 0; 10 | 11 | /// change the selected screen index 12 | changeScreen(int selectedIndex) { 13 | currentIndex = selectedIndex; 14 | update(); 15 | } 16 | 17 | /// when the user press on the favorite button in the product 18 | onFavoriteButtonPressed({required int productId}) { 19 | var product = DummyHelper.products.firstWhere((product) => product.id == productId); 20 | if (product.isFavorite!) { 21 | // remove product from favorites 22 | product.isFavorite = false; 23 | Get.find().getFavoriteProducts(); 24 | } else { 25 | // add product to favorites 26 | product.isFavorite = true; 27 | Get.find().getFavoriteProducts(); 28 | } 29 | update(['FavoriteButton']); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /lib/app/modules/base/views/base_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:flutter_svg/flutter_svg.dart'; 4 | import 'package:get/get.dart'; 5 | 6 | import '../../../../utils/constants.dart'; 7 | import '../controllers/base_controller.dart'; 8 | import '../../cart/views/cart_view.dart'; 9 | import '../../favorites/views/favorites_view.dart'; 10 | import '../../home/views/home_view.dart'; 11 | import '../../notifications/views/notifications_view.dart'; 12 | import '../../settings/views/settings_view.dart'; 13 | 14 | class BaseView extends GetView { 15 | const BaseView({Key? key}) : super(key: key); 16 | 17 | @override 18 | Widget build(BuildContext context) { 19 | var theme = context.theme; 20 | return GetBuilder( 21 | builder: (_) => Scaffold( 22 | extendBody: true, 23 | body: SafeArea( 24 | bottom: false, 25 | child: IndexedStack( 26 | index: controller.currentIndex, 27 | children: const [ 28 | HomeView(), 29 | FavoritesView(), 30 | CartView(), 31 | NotificationsView(), 32 | SettingsView() 33 | ], 34 | ), 35 | ), 36 | bottomNavigationBar: Container( 37 | padding: EdgeInsets.only(top: 10.h, bottom: 20.h), 38 | decoration: BoxDecoration( 39 | color: theme.scaffoldBackgroundColor, 40 | borderRadius: BorderRadius.only( 41 | topLeft: Radius.circular(25.r), 42 | topRight: Radius.circular(25.r), 43 | ), 44 | boxShadow: const [ 45 | BoxShadow( 46 | color: Colors.black38, 47 | spreadRadius: 0, 48 | blurRadius: 10, 49 | ), 50 | ], 51 | ), 52 | child: ClipRRect( 53 | borderRadius: BorderRadius.only( 54 | topLeft: Radius.circular(25.r), 55 | topRight: Radius.circular(25.r), 56 | ), 57 | child: BottomNavigationBar( 58 | currentIndex: controller.currentIndex, 59 | type: BottomNavigationBarType.fixed, 60 | elevation: 0.0, 61 | backgroundColor: theme.scaffoldBackgroundColor, 62 | showSelectedLabels: false, 63 | showUnselectedLabels: false, 64 | selectedFontSize: 0.0, 65 | items: [ 66 | _mBottomNavItem( 67 | label: 'Home', 68 | icon: Constants.homeIcon, 69 | ), 70 | _mBottomNavItem( 71 | label: 'Favorites', 72 | icon: Constants.favoritesIcon, 73 | ), 74 | _mBottomNavItem( 75 | label: 'Cart', 76 | icon: Constants.cartIcon, 77 | ), 78 | _mBottomNavItem( 79 | label: 'Notifications', 80 | icon: Constants.notificationsIcon, 81 | ), 82 | _mBottomNavItem( 83 | label: 'Settings', 84 | icon: Constants.settingsIcon, 85 | ), 86 | ], 87 | onTap: controller.changeScreen, 88 | ), 89 | ), 90 | ), 91 | ), 92 | ); 93 | } 94 | 95 | _mBottomNavItem({required String label, required String icon}) { 96 | return BottomNavigationBarItem( 97 | label: label, 98 | icon: SvgPicture.asset(icon, color: Get.theme.iconTheme.color), 99 | activeIcon: SvgPicture.asset(icon, color: Get.theme.primaryColor), 100 | ); 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /lib/app/modules/cart/bindings/cart_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/cart_controller.dart'; 4 | 5 | class CartBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => CartController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/cart/controllers/cart_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../../utils/dummy_helper.dart'; 4 | import '../../../components/custom_snackbar.dart'; 5 | import '../../../data/models/product_model.dart'; 6 | import '../../base/controllers/base_controller.dart'; 7 | 8 | class CartController extends GetxController { 9 | 10 | // to hold the products in cart 11 | List products = []; 12 | 13 | // to hold the total price of the cart products 14 | var total = 0.0; 15 | 16 | @override 17 | void onInit() { 18 | getCartProducts(); 19 | super.onInit(); 20 | } 21 | 22 | /// when the user press on purchase now button 23 | onPurchaseNowPressed() { 24 | Get.find().changeScreen(0); 25 | CustomSnackBar.showCustomSnackBar( 26 | title: 'Purchased', 27 | message: 'Order placed with success' 28 | ); 29 | } 30 | 31 | /// when the user press on increase button 32 | onIncreasePressed(int productId) { 33 | var product = DummyHelper.products.firstWhere((p) => p.id == productId); 34 | product.quantity = product.quantity! + 1; 35 | getCartProducts(); 36 | update(['ProductQuantity']); 37 | } 38 | 39 | /// when the user press on decrease button 40 | onDecreasePressed(int productId) { 41 | var product = DummyHelper.products.firstWhere((p) => p.id == productId); 42 | if (product.quantity != 0) { 43 | product.quantity = product.quantity! - 1; 44 | getCartProducts(); 45 | update(['ProductQuantity']); 46 | } 47 | } 48 | 49 | /// when the user press on delete icon 50 | onDeletePressed(int productId) { 51 | var product = DummyHelper.products.firstWhere((p) => p.id == productId); 52 | product.quantity = 0; 53 | getCartProducts(); 54 | } 55 | 56 | /// get the cart products from the product list 57 | getCartProducts() { 58 | products = DummyHelper.products.where((p) => p.quantity! > 0).toList(); 59 | // calculate the total price 60 | total = products.fold(0, (p, c) => p + c.price! * c.quantity!); 61 | update(); 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /lib/app/modules/cart/views/widgets/cart_item.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:flutter_svg/flutter_svg.dart'; 4 | import 'package:get/get.dart'; 5 | 6 | import '../../../../../utils/constants.dart'; 7 | import '../../../../data/models/product_model.dart'; 8 | import '../../controllers/cart_controller.dart'; 9 | 10 | class CartItem extends GetView { 11 | final ProductModel product; 12 | const CartItem({ 13 | Key? key, 14 | required this.product, 15 | }) : super(key: key); 16 | 17 | @override 18 | Widget build(BuildContext context) { 19 | final theme = context.theme; 20 | return Padding( 21 | padding: EdgeInsets.only(bottom: 20.h), 22 | child: Row( 23 | crossAxisAlignment: CrossAxisAlignment.start, 24 | children: [ 25 | ClipRRect( 26 | borderRadius: BorderRadius.circular(25.r), 27 | child: Stack( 28 | children: [ 29 | Container( 30 | width: 105.w, 31 | height: 125.h, 32 | color: const Color(0xFFEDF1FA), 33 | ), 34 | Positioned( 35 | left: 15.w, 36 | bottom: -150.h, 37 | child: Image.asset( 38 | product.image!, 39 | height: 250.h, 40 | ), 41 | ), 42 | ], 43 | ), 44 | ), 45 | 20.horizontalSpace, 46 | Column( 47 | crossAxisAlignment: CrossAxisAlignment.start, 48 | children: [ 49 | 5.verticalSpace, 50 | Text( 51 | product.name!, 52 | style: theme.textTheme.displayMedium, 53 | overflow: TextOverflow.ellipsis, 54 | ), 55 | 5.verticalSpace, 56 | Text('Size: ${product.size}', style: theme.textTheme.bodyMedium?.copyWith(fontSize: 16.sp)), 57 | 5.verticalSpace, 58 | Text('\$${product.price}', style: theme.textTheme.displayLarge?.copyWith( 59 | fontSize: 18.sp, 60 | ),), 61 | 10.verticalSpace, 62 | GetBuilder( 63 | id: 'ProductQuantity', 64 | builder: (_) => Row( 65 | mainAxisAlignment: MainAxisAlignment.spaceAround, 66 | children: [ 67 | GestureDetector( 68 | onTap: () => controller.onIncreasePressed(product.id!), 69 | child: SvgPicture.asset(Constants.decreaseIcon), 70 | ), 71 | 10.horizontalSpace, 72 | Text('${product.quantity}', style: theme.textTheme.displaySmall), 73 | 10.horizontalSpace, 74 | GestureDetector( 75 | onTap: () => controller.onDecreasePressed(product.id!), 76 | child: SvgPicture.asset(Constants.increaseIcon), 77 | ), 78 | ], 79 | ), 80 | ), 81 | ], 82 | ), 83 | const Spacer(), 84 | InkWell( 85 | onTap: () => controller.onDeletePressed(product.id!), 86 | customBorder: const CircleBorder(), 87 | child: Container( 88 | padding: EdgeInsets.all(10.r), 89 | child: SvgPicture.asset( 90 | Constants.cancelIcon, 91 | width: 20.w, 92 | height: 20.h, 93 | color: theme.textTheme.bodyMedium!.color, 94 | ), 95 | ), 96 | ), 97 | ], 98 | ), 99 | ); 100 | } 101 | } -------------------------------------------------------------------------------- /lib/app/modules/favorites/bindings/favorites_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/favorites_controller.dart'; 4 | 5 | class FavoritesBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => FavoritesController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/favorites/controllers/favorites_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../../utils/dummy_helper.dart'; 4 | import '../../../data/models/product_model.dart'; 5 | 6 | class FavoritesController extends GetxController { 7 | 8 | // to hold the favorite products 9 | List products = []; 10 | 11 | @override 12 | void onInit() { 13 | getFavoriteProducts(); 14 | super.onInit(); 15 | } 16 | 17 | /// get the favorite products from the product list 18 | getFavoriteProducts() { 19 | products = DummyHelper.products.where((product) => product.isFavorite!).toList(); 20 | update(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/app/modules/favorites/views/favorites_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | 4 | import 'package:get/get.dart'; 5 | 6 | import '../../../components/no_data.dart'; 7 | import '../../../components/product_item.dart'; 8 | import '../../../components/screen_title.dart'; 9 | import '../controllers/favorites_controller.dart'; 10 | 11 | class FavoritesView extends GetView { 12 | const FavoritesView({Key? key}) : super(key: key); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Scaffold( 17 | body: Padding( 18 | padding: EdgeInsets.symmetric(horizontal: 20.w), 19 | child: ListView( 20 | children: [ 21 | 30.verticalSpace, 22 | const ScreenTitle( 23 | title: 'Favorites', 24 | dividerEndIndent: 200, 25 | ), 26 | 20.verticalSpace, 27 | GetBuilder( 28 | builder: (_) => controller.products.isEmpty 29 | ? const NoData(text: 'No Products in Favorite Yet!') 30 | : GridView.builder( 31 | gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( 32 | crossAxisCount: 2, 33 | crossAxisSpacing: 15.w, 34 | mainAxisSpacing: 15.h, 35 | mainAxisExtent: 260.h, 36 | ), 37 | shrinkWrap: true, 38 | primary: false, 39 | itemCount: controller.products.length, 40 | itemBuilder: (context, index) => ProductItem( 41 | product: controller.products[index], 42 | ), 43 | ), 44 | ), 45 | 10.verticalSpace, 46 | ], 47 | ), 48 | ), 49 | ); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/app/modules/home/bindings/home_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/home_controller.dart'; 4 | 5 | class HomeBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => HomeController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/home/controllers/home_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../../utils/dummy_helper.dart'; 4 | import '../../../data/models/product_model.dart'; 5 | 6 | class HomeController extends GetxController { 7 | 8 | List products = []; 9 | 10 | @override 11 | void onInit() { 12 | getProducts(); 13 | super.onInit(); 14 | } 15 | 16 | getProducts() { 17 | products = DummyHelper.products; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/app/modules/home/views/home_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | 4 | import 'package:get/get.dart'; 5 | import '../../../components/product_item.dart'; 6 | import '../../../components/screen_title.dart'; 7 | import '../controllers/home_controller.dart'; 8 | 9 | class HomeView extends GetView { 10 | const HomeView({Key? key}) : super(key: key); 11 | 12 | @override 13 | Widget build(BuildContext context) { 14 | return Scaffold( 15 | body: Padding( 16 | padding: EdgeInsets.symmetric(horizontal: 20.w), 17 | child: ListView( 18 | children: [ 19 | 30.verticalSpace, 20 | const ScreenTitle( 21 | title: 'Home', 22 | ), 23 | 20.verticalSpace, 24 | GridView.builder( 25 | gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( 26 | crossAxisCount: 2, 27 | crossAxisSpacing: 15.w, 28 | mainAxisSpacing: 15.h, 29 | mainAxisExtent: 260.h, 30 | ), 31 | shrinkWrap: true, 32 | primary: false, 33 | itemCount: controller.products.length, 34 | itemBuilder: (context, index) => ProductItem( 35 | product: controller.products[index], 36 | ), 37 | ), 38 | 10.verticalSpace, 39 | ], 40 | ), 41 | ), 42 | ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lib/app/modules/notifications/bindings/notifications_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/notifications_controller.dart'; 4 | 5 | class NotificationsBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => NotificationsController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/notifications/controllers/notifications_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | class NotificationsController extends GetxController {} 4 | -------------------------------------------------------------------------------- /lib/app/modules/notifications/views/notifications_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_animate/flutter_animate.dart'; 3 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 4 | 5 | import 'package:get/get.dart'; 6 | 7 | import '../../../components/screen_title.dart'; 8 | import '../controllers/notifications_controller.dart'; 9 | import 'widgets/notification_item.dart'; 10 | 11 | class NotificationsView extends GetView { 12 | const NotificationsView({Key? key}) : super(key: key); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Scaffold( 17 | body: Padding( 18 | padding: EdgeInsets.symmetric(horizontal: 20.w), 19 | child: ListView( 20 | children: [ 21 | 30.verticalSpace, 22 | const ScreenTitle( 23 | title: 'Notifications', 24 | dividerEndIndent: 150, 25 | ), 26 | 10.verticalSpace, 27 | ListView.builder( 28 | itemCount: 5, 29 | itemBuilder: (context, index) => const NotificationItem() 30 | .animate().fade().slideY( 31 | duration: const Duration(milliseconds: 300), 32 | begin: 1, 33 | curve: Curves.easeInSine, 34 | ), 35 | shrinkWrap: true, 36 | primary: false, 37 | ), 38 | ], 39 | ), 40 | ), 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /lib/app/modules/notifications/views/widgets/notification_item.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:flutter_svg/flutter_svg.dart'; 4 | import 'package:get/get.dart'; 5 | 6 | import '../../../../../utils/constants.dart'; 7 | 8 | class NotificationItem extends StatelessWidget { 9 | const NotificationItem({Key? key}) : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | final theme = context.theme; 14 | return Container( 15 | padding: EdgeInsets.symmetric(vertical: 5.h), 16 | margin: EdgeInsets.only(bottom: 15.h), 17 | decoration: BoxDecoration( 18 | color: theme.primaryColor.withOpacity(0.1), 19 | borderRadius: BorderRadius.circular(15.r), 20 | ), 21 | child: ListTile( 22 | title: Text( 23 | 'New Notification received\nyour cart waiting for checkout', 24 | style: theme.textTheme.displaySmall?.copyWith( 25 | fontWeight: FontWeight.normal, 26 | ), 27 | ), 28 | subtitle: Padding( 29 | padding: EdgeInsets.only(top: 5.h), 30 | child: Text( 31 | '10/06/2022 AT 05:30 PM', 32 | style: theme.textTheme.bodyMedium?.copyWith( 33 | fontSize: 12.sp, 34 | ), 35 | ), 36 | ), 37 | leading: Container( 38 | width: 60.w, 39 | height: 60.h, 40 | decoration: BoxDecoration( 41 | color: theme.primaryColor, 42 | borderRadius: BorderRadius.circular(12.r), 43 | ), 44 | child: Center( 45 | child: SvgPicture.asset( 46 | Constants.notificationsIcon, 47 | color: Colors.white, 48 | ), 49 | ), 50 | ), 51 | ), 52 | ); 53 | } 54 | } -------------------------------------------------------------------------------- /lib/app/modules/product_details/bindings/product_details_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/product_details_controller.dart'; 4 | 5 | class ProductDetailsBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => ProductDetailsController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/product_details/controllers/product_details_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../../utils/dummy_helper.dart'; 4 | import '../../../data/models/product_model.dart'; 5 | import '../../base/controllers/base_controller.dart'; 6 | import '../../cart/controllers/cart_controller.dart'; 7 | 8 | class ProductDetailsController extends GetxController { 9 | 10 | // get product details from arguments 11 | ProductModel product = Get.arguments; 12 | 13 | // for the product size 14 | var selectedSize = 'M'; 15 | 16 | /// when the user press on the favorite button 17 | onFavoriteButtonPressed() { 18 | Get.find().onFavoriteButtonPressed(productId: product.id!); 19 | update(['FavoriteButton']); 20 | } 21 | 22 | /// when the user press on add to cart button 23 | onAddToCartPressed() { 24 | var mProduct = DummyHelper.products.firstWhere((p) => p.id == product.id); 25 | mProduct.quantity = mProduct.quantity! + 1; 26 | mProduct.size = selectedSize; 27 | Get.find().getCartProducts(); 28 | Get.back(); 29 | } 30 | 31 | /// change the selected size 32 | changeSelectedSize(String size) { 33 | if (size == selectedSize) return; 34 | selectedSize = size; 35 | update(['Size']); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /lib/app/modules/product_details/views/widgets/rounded_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:get/get.dart'; 4 | 5 | class RoundedButton extends StatelessWidget { 6 | final void Function()? onPressed; 7 | final Widget child; 8 | const RoundedButton({ 9 | Key? key, 10 | required this.onPressed, 11 | required this.child, 12 | }) : super(key: key); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return GestureDetector( 17 | onTap: onPressed, 18 | child: Container( 19 | width: 40.w, 20 | height: 40.h, 21 | decoration: BoxDecoration( 22 | color: Get.theme.primaryColor, 23 | borderRadius: BorderRadius.circular(12.r), 24 | boxShadow: [ 25 | BoxShadow( 26 | color: const Color(0xFF0FDA89).withOpacity(0.3), 27 | blurRadius: 4, 28 | spreadRadius: 0, 29 | offset: const Offset(0, 2), 30 | ) 31 | ], 32 | ), 33 | child: child, 34 | ), 35 | ); 36 | } 37 | } -------------------------------------------------------------------------------- /lib/app/modules/product_details/views/widgets/size_item.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | import 'package:get/get.dart'; 4 | 5 | class SizeItem extends StatelessWidget { 6 | final void Function()? onPressed; 7 | final String label; 8 | final bool selected; 9 | const SizeItem({ 10 | Key? key, 11 | required this.onPressed, 12 | required this.label, 13 | this.selected = false, 14 | }) : super(key: key); 15 | 16 | @override 17 | Widget build(BuildContext context) { 18 | final theme = context.theme; 19 | return GestureDetector( 20 | onTap: onPressed, 21 | child: Container( 22 | width: 30.w, 23 | height: 30.h, 24 | decoration: BoxDecoration( 25 | color: selected ? theme.primaryColor : theme.colorScheme.background, 26 | borderRadius: BorderRadius.circular(12.r), 27 | boxShadow: !selected ? null : [ 28 | BoxShadow( 29 | color: const Color(0xFF0FDA89).withOpacity(0.3), 30 | blurRadius: 4, 31 | spreadRadius: 0, 32 | offset: const Offset(0, 2), 33 | ), 34 | ], 35 | ), 36 | child: Center( 37 | child: Text( 38 | label, 39 | style: theme.textTheme.displaySmall?.copyWith( 40 | fontSize: 12.sp, 41 | fontWeight: FontWeight.bold, 42 | color: selected ? Colors.white : null 43 | ), 44 | ), 45 | ), 46 | ), 47 | ); 48 | } 49 | } -------------------------------------------------------------------------------- /lib/app/modules/settings/bindings/settings_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/settings_controller.dart'; 4 | 5 | class SettingsBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => SettingsController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/settings/controllers/settings_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../../config/theme/my_theme.dart'; 4 | import '../../../data/local/my_shared_pref.dart'; 5 | 6 | class SettingsController extends GetxController { 7 | 8 | // get is light theme from shared pref 9 | var isLightTheme = MySharedPref.getThemeIsLight(); 10 | 11 | /// change the system theme 12 | changeTheme(bool value) { 13 | MyTheme.changeTheme(); 14 | isLightTheme = MySharedPref.getThemeIsLight(); 15 | update(['Theme']); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /lib/app/modules/settings/views/settings_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | 4 | import 'package:get/get.dart'; 5 | 6 | import '../../../../utils/constants.dart'; 7 | import '../../../components/screen_title.dart'; 8 | import '../controllers/settings_controller.dart'; 9 | import 'widgets/settings_item.dart'; 10 | 11 | class SettingsView extends GetView { 12 | const SettingsView({Key? key}) : super(key: key); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | final theme = context.theme; 17 | return Scaffold( 18 | body: Padding( 19 | padding: EdgeInsets.symmetric(horizontal: 20.w), 20 | child: ListView( 21 | children: [ 22 | 30.verticalSpace, 23 | const ScreenTitle( 24 | title: 'Settings', 25 | dividerEndIndent: 230, 26 | ), 27 | 20.verticalSpace, 28 | Text( 29 | 'Account', 30 | style: theme.textTheme.displayMedium?.copyWith( 31 | fontSize: 20.sp, 32 | fontWeight: FontWeight.normal, 33 | ) 34 | ), 35 | 20.verticalSpace, 36 | const SettingsItem( 37 | title: 'Mike Tyson', 38 | icon: Constants.userIcon, 39 | isAccount: true, 40 | ), 41 | 30.verticalSpace, 42 | Text( 43 | 'Settings', 44 | style: theme.textTheme.displayMedium?.copyWith( 45 | fontSize: 20.sp, 46 | fontWeight: FontWeight.normal, 47 | ) 48 | ), 49 | 20.verticalSpace, 50 | const SettingsItem( 51 | title: 'Dark Mode', 52 | icon: Constants.themeIcon, 53 | isDark: true, 54 | ), 55 | 25.verticalSpace, 56 | const SettingsItem( 57 | title: 'Language', 58 | icon: Constants.languageIcon, 59 | ), 60 | 25.verticalSpace, 61 | const SettingsItem( 62 | title: 'Help', 63 | icon: Constants.helpIcon, 64 | ), 65 | 25.verticalSpace, 66 | const SettingsItem( 67 | title: 'Sign Out', 68 | icon: Constants.logoutIcon, 69 | ), 70 | 20.verticalSpace, 71 | ], 72 | ), 73 | ), 74 | ); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /lib/app/modules/settings/views/widgets/settings_item.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter/cupertino.dart'; 3 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 4 | import 'package:flutter_svg/flutter_svg.dart'; 5 | import 'package:get/get.dart'; 6 | 7 | import '../../../../../utils/constants.dart'; 8 | import '../../controllers/settings_controller.dart'; 9 | 10 | class SettingsItem extends StatelessWidget { 11 | final String title; 12 | final String icon; 13 | final bool isAccount; 14 | final bool isDark; 15 | const SettingsItem({ 16 | Key? key, 17 | required this.title, 18 | required this.icon, 19 | this.isAccount = false, 20 | this.isDark = false, 21 | }) : super(key: key); 22 | 23 | @override 24 | Widget build(BuildContext context) { 25 | final theme = context.theme; 26 | return ListTile( 27 | title: Text(title, style: theme.textTheme.displayMedium?.copyWith( 28 | fontSize: 16.sp, 29 | )), 30 | subtitle: !isAccount ? null : Text( 31 | '+218 92 00 000 00', 32 | style: theme.textTheme.displaySmall, 33 | ), 34 | leading: CircleAvatar( 35 | radius: isAccount ? 30.r : 25.r, 36 | backgroundColor: theme.primaryColor, 37 | child: SvgPicture.asset(icon, fit: BoxFit.none), 38 | ), 39 | trailing: isDark 40 | ? GetBuilder( 41 | id: 'Theme', 42 | builder: (controller) => CupertinoSwitch( 43 | value: !controller.isLightTheme, 44 | onChanged: controller.changeTheme, 45 | activeColor: theme.primaryColor, 46 | ), 47 | ) 48 | : Container( 49 | width: 40.w, 50 | height: 40.h, 51 | decoration: BoxDecoration( 52 | color: theme.primaryColor, 53 | borderRadius: BorderRadius.circular(10.r), 54 | ), 55 | child: SvgPicture.asset( 56 | Constants.forwardArrowIcon, 57 | fit: BoxFit.none 58 | ), 59 | ), 60 | ); 61 | } 62 | } -------------------------------------------------------------------------------- /lib/app/modules/splash/bindings/splash_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../controllers/splash_controller.dart'; 4 | 5 | class SplashBinding extends Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => SplashController(), 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/app/modules/splash/controllers/splash_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../../../routes/app_pages.dart'; 4 | 5 | class SplashController extends GetxController { 6 | 7 | @override 8 | void onInit() async { 9 | await Future.delayed(const Duration(seconds: 2)); 10 | Get.offNamed(Routes.BASE); 11 | super.onInit(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /lib/app/modules/splash/views/splash_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_animate/flutter_animate.dart'; 3 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 4 | import 'package:get/get.dart'; 5 | 6 | import '../../../../utils/constants.dart'; 7 | import '../controllers/splash_controller.dart'; 8 | 9 | class SplashView extends GetView { 10 | const SplashView({Key? key}) : super(key: key); 11 | 12 | @override 13 | Widget build(BuildContext context) { 14 | Get.put(SplashController()); 15 | var theme = context.theme; 16 | return Scaffold( 17 | body: SafeArea( 18 | child: Center( 19 | child: Column( 20 | mainAxisAlignment: MainAxisAlignment.center, 21 | children: [ 22 | Image.asset( 23 | Constants.logo, 24 | width: 120.w, 25 | height: 90.h, 26 | ).animate().fade().slideY( 27 | duration: const Duration(milliseconds: 500), 28 | begin: 1, 29 | curve: Curves.easeInSine 30 | ), 31 | 20.verticalSpace, 32 | Padding( 33 | padding: EdgeInsets.only(left: 30.w), 34 | child: Text.rich( 35 | TextSpan( 36 | children: [ 37 | TextSpan( 38 | text: 'Online ', 39 | style: theme.textTheme.displayMedium?.copyWith( 40 | color: theme.primaryColor), 41 | ), 42 | TextSpan( 43 | text: 'Shopping ', 44 | style: theme.textTheme.displayMedium, 45 | ), 46 | ] 47 | ), 48 | ).animate().fade().slideY( 49 | duration: const Duration(milliseconds: 500), 50 | begin: 5, 51 | curve: Curves.easeInSine 52 | ), 53 | ), 54 | ], 55 | ), 56 | ), 57 | ), 58 | ); 59 | } 60 | } -------------------------------------------------------------------------------- /lib/app/routes/app_pages.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import '../modules/base/bindings/base_binding.dart'; 4 | import '../modules/base/views/base_view.dart'; 5 | import '../modules/cart/bindings/cart_binding.dart'; 6 | import '../modules/cart/views/cart_view.dart'; 7 | import '../modules/favorites/bindings/favorites_binding.dart'; 8 | import '../modules/favorites/views/favorites_view.dart'; 9 | import '../modules/home/bindings/home_binding.dart'; 10 | import '../modules/home/views/home_view.dart'; 11 | import '../modules/notifications/bindings/notifications_binding.dart'; 12 | import '../modules/notifications/views/notifications_view.dart'; 13 | import '../modules/product_details/bindings/product_details_binding.dart'; 14 | import '../modules/product_details/views/product_details_view.dart'; 15 | import '../modules/settings/bindings/settings_binding.dart'; 16 | import '../modules/settings/views/settings_view.dart'; 17 | import '../modules/splash/bindings/splash_binding.dart'; 18 | import '../modules/splash/views/splash_view.dart'; 19 | 20 | part 'app_routes.dart'; 21 | 22 | class AppPages { 23 | AppPages._(); 24 | 25 | static const INITIAL = Routes.SPLASH; 26 | 27 | static final routes = [ 28 | GetPage( 29 | name: _Paths.SPLASH, 30 | page: () => const SplashView(), 31 | binding: SplashBinding(), 32 | ), 33 | GetPage( 34 | name: _Paths.BASE, 35 | page: () => const BaseView(), 36 | binding: BaseBinding(), 37 | ), 38 | GetPage( 39 | name: _Paths.HOME, 40 | page: () => const HomeView(), 41 | binding: HomeBinding(), 42 | ), 43 | GetPage( 44 | name: _Paths.FAVORITES, 45 | page: () => const FavoritesView(), 46 | binding: FavoritesBinding(), 47 | ), 48 | GetPage( 49 | name: _Paths.CART, 50 | page: () => const CartView(), 51 | binding: CartBinding(), 52 | ), 53 | GetPage( 54 | name: _Paths.NOTIFICATIONS, 55 | page: () => const NotificationsView(), 56 | binding: NotificationsBinding(), 57 | ), 58 | GetPage( 59 | name: _Paths.SETTINGS, 60 | page: () => const SettingsView(), 61 | binding: SettingsBinding(), 62 | ), 63 | GetPage( 64 | name: _Paths.PRODUCT_DETAILS, 65 | page: () => const ProductDetailsView(), 66 | binding: ProductDetailsBinding(), 67 | transition: Transition.rightToLeft, 68 | transitionDuration: const Duration(milliseconds: 250), 69 | ), 70 | ]; 71 | } 72 | -------------------------------------------------------------------------------- /lib/app/routes/app_routes.dart: -------------------------------------------------------------------------------- 1 | part of 'app_pages.dart'; 2 | // DO NOT EDIT. This is code generated via package:get_cli/get_cli.dart 3 | 4 | abstract class Routes { 5 | Routes._(); 6 | static const SPLASH = _Paths.SPLASH; 7 | static const BASE = _Paths.BASE; 8 | static const HOME = _Paths.HOME; 9 | static const FAVORITES = _Paths.FAVORITES; 10 | static const CART = _Paths.CART; 11 | static const NOTIFICATIONS = _Paths.NOTIFICATIONS; 12 | static const SETTINGS = _Paths.SETTINGS; 13 | static const PRODUCT_DETAILS = _Paths.PRODUCT_DETAILS; 14 | } 15 | 16 | abstract class _Paths { 17 | _Paths._(); 18 | static const SPLASH = '/splash'; 19 | static const BASE = '/base'; 20 | static const HOME = '/home'; 21 | static const FAVORITES = '/favorites'; 22 | static const CART = '/cart'; 23 | static const NOTIFICATIONS = '/notifications'; 24 | static const SETTINGS = '/settings'; 25 | static const PRODUCT_DETAILS = '/product-details'; 26 | } 27 | -------------------------------------------------------------------------------- /lib/config/theme/dark_theme_colors.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class DarkThemeColors 4 | { 5 | //dark swatch 6 | static const Color primaryColor = Color(0xFF40DF9F); 7 | static const Color accentColor = Color(0xFFD9EDE1); 8 | 9 | //Appbar 10 | static const Color appbarColor = Colors.black; 11 | 12 | //SCAFFOLD 13 | static const Color scaffoldBackgroundColor = Color(0xFF1F2E35); 14 | static const Color backgroundColor = Color(0xFF30444E); 15 | static const Color dividerColor = primaryColor; 16 | static const Color cardColor = Color(0xFF1e2336); 17 | 18 | //ICONS 19 | static const Color appBarIconsColor = Colors.white; 20 | static const Color iconColor = Color(0xFF96A7AF); 21 | 22 | //BUTTON 23 | static const Color buttonColor = primaryColor; 24 | static const Color buttonTextColor = Colors.black; 25 | static const Color buttonDisabledColor = Colors.grey; 26 | static const Color buttonDisabledTextColor = Colors.black; 27 | 28 | //TEXT 29 | static const Color bodyTextColor = Color(0xFF96A7AF); 30 | static const Color displayTextColor = Colors.white; 31 | static const Color bodySmallTextColor = Color(0xFF96A7AF); 32 | static const Color hintTextColor = Color(0xff686868); 33 | 34 | //chip 35 | static const Color chipBackground = primaryColor; 36 | static const Color chipTextColor = Colors.black87; 37 | 38 | // progress bar indicator 39 | static const Color progressIndicatorColor = Color(0xFF40A76A); 40 | } -------------------------------------------------------------------------------- /lib/config/theme/light_theme_colors.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class LightThemeColors 4 | { 5 | //dark swatch 6 | static const Color primaryColor = Color(0xFF40DF9F); 7 | static const Color accentColor = Color(0xFFD9EDE1); 8 | 9 | //APPBAR 10 | static const Color appBarColor = primaryColor; 11 | 12 | //SCAFFOLD 13 | static const Color scaffoldBackgroundColor = Colors.white; 14 | static const Color backgroundColor = Color(0xFFEDF1FA); 15 | static const Color dividerColor = primaryColor; 16 | static const Color cardColor = Color(0xfffafafa); 17 | 18 | //ICONS 19 | static const Color appBarIconsColor = Colors.white; 20 | static const Color iconColor = Color(0xFF899A96); 21 | 22 | //BUTTON 23 | static const Color buttonColor = primaryColor; 24 | static const Color buttonTextColor = Colors.white; 25 | static const Color buttonDisabledColor = Colors.grey; 26 | static const Color buttonDisabledTextColor = Colors.black; 27 | 28 | //TEXT 29 | static const Color bodyTextColor = Color(0xFF30444E); 30 | static const Color displayTextColor = Colors.black; 31 | static const Color bodySmallTextColor = Color(0xFF30444E); 32 | static const Color hintTextColor = Color(0xff686868); 33 | 34 | //chip 35 | static const Color chipBackground = primaryColor; 36 | static const Color chipTextColor = Colors.white; 37 | 38 | // progress bar indicator 39 | static const Color progressIndicatorColor = Color(0xFF40DF9F); 40 | } -------------------------------------------------------------------------------- /lib/config/theme/my_fonts.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 3 | 4 | // todo configure text family and size 5 | class MyFonts 6 | { 7 | // return the right font depending on app language 8 | static TextStyle get getAppFontType => const TextStyle(fontFamily: 'Poppins'); 9 | 10 | // headlines text font 11 | static TextStyle get headlineTextStyle => getAppFontType; 12 | 13 | // body text font 14 | static TextStyle get bodyTextStyle => getAppFontType; 15 | 16 | // button text font 17 | static TextStyle get buttonTextStyle => getAppFontType; 18 | 19 | // app bar text font 20 | static TextStyle get appBarTextStyle => getAppFontType; 21 | 22 | // chips text font 23 | static TextStyle get chipTextStyle => getAppFontType; 24 | 25 | // appbar font size 26 | static double get appBarTittleSize => 18.sp; 27 | 28 | // headlines text font 29 | static TextStyle get displayTextStyle => getAppFontType; 30 | 31 | // body font size 32 | static double get bodySmallTextSize => 12.sp; 33 | static double get bodyMediumSize => 14.sp; // default font 34 | static double get bodyLargeSize => 20.sp; 35 | // display font size 36 | static double get displayLargeSize => 24.sp; 37 | static double get displayMediumSize => 18.sp; 38 | static double get displaySmallSize => 14.sp; 39 | 40 | // body font size 41 | static double get body1TextSize => 20.sp; 42 | static double get body2TextSize => 14.sp; 43 | 44 | //button font size 45 | static double get buttonTextSize => 16.sp; 46 | 47 | //caption font size 48 | static double get captionTextSize => 13.sp; 49 | 50 | //chip font size 51 | static double get chipTextSize => 10.sp; 52 | } -------------------------------------------------------------------------------- /lib/config/theme/my_theme.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | import '../../app/data/local/my_shared_pref.dart'; 5 | import 'dark_theme_colors.dart'; 6 | import 'light_theme_colors.dart'; 7 | import 'my_styles.dart'; 8 | 9 | class MyTheme { 10 | static getThemeData({required bool isLight}){ 11 | return ThemeData( 12 | useMaterial3: true, 13 | // main color (app bar,tabs..etc) 14 | primaryColor: isLight ? LightThemeColors.primaryColor : DarkThemeColors.primaryColor, 15 | // secondary color (for checkbox,float button, radio..etc) 16 | // secondary & background color 17 | colorScheme: ColorScheme.fromSwatch( 18 | accentColor: isLight ? LightThemeColors.accentColor : DarkThemeColors.accentColor, 19 | backgroundColor: isLight ? LightThemeColors.backgroundColor : DarkThemeColors.backgroundColor, 20 | brightness: isLight ? Brightness.light : Brightness.dark, 21 | ) 22 | .copyWith( 23 | secondary: isLight ? LightThemeColors.accentColor : DarkThemeColors.accentColor, 24 | ), 25 | // color contrast (if the theme is dark text should be white for example) 26 | brightness: isLight ? Brightness.light : Brightness.dark, 27 | // card widget background color 28 | cardColor: isLight ? LightThemeColors.cardColor : DarkThemeColors.cardColor, 29 | // hint text color 30 | hintColor: isLight ? LightThemeColors.hintTextColor : DarkThemeColors.hintTextColor, 31 | // divider color 32 | dividerTheme: DividerThemeData( 33 | color: isLight ? LightThemeColors.dividerColor : DarkThemeColors.dividerColor, 34 | ), 35 | // app background color 36 | scaffoldBackgroundColor: isLight ? LightThemeColors.scaffoldBackgroundColor : DarkThemeColors.scaffoldBackgroundColor, 37 | 38 | // progress bar theme 39 | progressIndicatorTheme: ProgressIndicatorThemeData( 40 | color: isLight ? LightThemeColors.primaryColor : DarkThemeColors.primaryColor, 41 | ), 42 | 43 | // appBar theme 44 | appBarTheme: MyStyles.getAppBarTheme(isLightTheme: isLight), 45 | 46 | // elevated button theme 47 | elevatedButtonTheme: MyStyles.getElevatedButtonTheme(isLightTheme: isLight), 48 | 49 | // text theme 50 | textTheme: MyStyles.getTextTheme(isLightTheme: isLight), 51 | 52 | // chip theme 53 | chipTheme: MyStyles.getChipTheme(isLightTheme: isLight), 54 | 55 | // icon theme 56 | iconTheme: MyStyles.getIconTheme(isLightTheme: isLight), 57 | ); 58 | } 59 | 60 | /// update app theme and save theme type to shared pref 61 | /// (so when the app is killed and up again theme will remain the same) 62 | static changeTheme(){ 63 | // *) check if the current theme is light (default is light) 64 | bool isLightTheme = MySharedPref.getThemeIsLight(); 65 | // *) store the new theme mode on get storage 66 | MySharedPref.setThemeIsLight(!isLightTheme); 67 | // *) let GetX change theme 68 | Get.changeThemeMode(!isLightTheme ? ThemeMode.light : ThemeMode.dark); 69 | } 70 | 71 | /// check if the theme is light or dark 72 | bool get getThemeIsLight => MySharedPref.getThemeIsLight(); 73 | } -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | import 'package:flutter/material.dart'; 25 | import 'package:flutter_screenutil/flutter_screenutil.dart'; 26 | import 'package:get/get.dart'; 27 | import 'config/theme/my_theme.dart'; 28 | import 'app/data/local/my_shared_pref.dart'; 29 | import 'app/routes/app_pages.dart'; 30 | 31 | 32 | Future main() async { 33 | WidgetsFlutterBinding.ensureInitialized(); 34 | await MySharedPref.init(); 35 | runApp( 36 | ScreenUtilInit( 37 | designSize: const Size(375, 812), 38 | minTextAdapt: true, 39 | splitScreenMode: true, 40 | rebuildFactor: (old, data) => true, 41 | useInheritedMediaQuery: true, 42 | builder: (context, widget) { 43 | return GetMaterialApp( 44 | 45 | useInheritedMediaQuery: true, 46 | title: "E-commerce App", 47 | debugShowCheckedModeBanner: false, 48 | builder: (context,widget) { 49 | bool themeIsLight = MySharedPref.getThemeIsLight(); 50 | return Theme( 51 | data: MyTheme.getThemeData(isLight: themeIsLight), 52 | child: MediaQuery( 53 | child: widget!, 54 | data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), 55 | ), 56 | ); 57 | }, 58 | initialRoute: AppPages.INITIAL, 59 | getPages: AppPages.routes, 60 | ); 61 | }, 62 | ), 63 | ); 64 | } 65 | -------------------------------------------------------------------------------- /lib/utils/constants.dart: -------------------------------------------------------------------------------- 1 | class Constants { 2 | 3 | // assets images 4 | static const logo = 'assets/images/app_icon.png'; 5 | 6 | static const homeIcon = 'assets/vectors/home.svg'; 7 | static const favoritesIcon = 'assets/vectors/favorites.svg'; 8 | static const cartIcon = 'assets/vectors/cart.svg'; 9 | static const notificationsIcon = 'assets/vectors/notifications.svg'; 10 | static const settingsIcon = 'assets/vectors/settings.svg'; 11 | 12 | static const favFilledIcon = 'assets/vectors/fav_filled.svg'; 13 | static const favOutlinedIcon = 'assets/vectors/fav_outlined.svg'; 14 | static const backArrowIcon = 'assets/vectors/back_arrow.svg'; 15 | static const busIcon = 'assets/vectors/bus.svg'; 16 | static const increaseIcon = 'assets/vectors/increase.svg'; 17 | static const decreaseIcon = 'assets/vectors/decrease.svg'; 18 | static const cancelIcon = 'assets/vectors/cancel.svg'; 19 | static const forwardArrowIcon = 'assets/vectors/forward_arrow.svg'; 20 | static const userIcon = 'assets/vectors/user.svg'; 21 | static const themeIcon = 'assets/vectors/theme.svg'; 22 | static const languageIcon = 'assets/vectors/language.svg'; 23 | static const helpIcon = 'assets/vectors/help.svg'; 24 | static const logoutIcon = 'assets/vectors/logout.svg'; 25 | 26 | static const product1 = 'assets/images/product1.png'; 27 | static const product2 = 'assets/images/product2.png'; 28 | static const product3 = 'assets/images/product3.png'; 29 | static const product4 = 'assets/images/product4.png'; 30 | static const product5 = 'assets/images/product5.png'; 31 | 32 | static const noData = 'assets/images/no_data.png'; 33 | 34 | } -------------------------------------------------------------------------------- /lib/utils/dummy_helper.dart: -------------------------------------------------------------------------------- 1 | import '../app/data/models/product_model.dart'; 2 | import 'constants.dart'; 3 | 4 | class DummyHelper { 5 | const DummyHelper._(); 6 | 7 | static List products = [ 8 | ProductModel( 9 | id: 1, 10 | image: Constants.product1, 11 | name: 'The Basic Tee', 12 | quantity: 0, 13 | price: 25.99, 14 | rating: 4.5, 15 | reviews: '1.2k reviews', 16 | size: 'M', 17 | isFavorite: false, 18 | ), 19 | ProductModel( 20 | id: 2, 21 | image: Constants.product2, 22 | name: 'The Statement Skirt', 23 | quantity: 0, 24 | price: 79.99, 25 | rating: 4.4, 26 | reviews: '10k reviews', 27 | size: 'M', 28 | isFavorite: false 29 | ), 30 | ProductModel( 31 | id: 3, 32 | image: Constants.product3, 33 | name: 'The Luxe Sweater', 34 | quantity: 0, 35 | price: 129.99, 36 | rating: 4.3, 37 | reviews: '22k reviews', 38 | size: 'M', 39 | isFavorite: false 40 | ), 41 | ProductModel( 42 | id: 4, 43 | image: Constants.product4, 44 | name: 'The Statement Top', 45 | quantity: 0, 46 | price: 59.99, 47 | rating: 4.2, 48 | reviews: '3.4k reviews', 49 | size: 'M', 50 | isFavorite: false 51 | ), 52 | ProductModel( 53 | id: 5, 54 | image: Constants.product5, 55 | name: 'The Casual Tank', 56 | quantity: 0, 57 | price: 39.99, 58 | rating: 4.1, 59 | reviews: '2.6k reviews', 60 | size: 'M', 61 | isFavorite: false 62 | ), 63 | ProductModel( 64 | id: 6, 65 | image: Constants.product1, 66 | name: 'The Denim Jean', 67 | quantity: 0, 68 | price: 59.99, 69 | rating: 4.0, 70 | reviews: '5.8k reviews', 71 | size: 'M', 72 | isFavorite: false 73 | ), 74 | ]; 75 | 76 | } -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: ecommerce_app 2 | version: 1.0.0+1 3 | publish_to: none 4 | description: A new Flutter project. 5 | environment: 6 | sdk: '>=3.0.1 <4.0.0' 7 | 8 | dependencies: 9 | cupertino_icons: 10 | flutter_screenutil: ^5.8.4 11 | shared_preferences: ^2.2.0 12 | flutter_launcher_icons: 13 | change_app_package_name: 14 | rename_app: 15 | flutter_svg: 16 | flutter_animate: 17 | get: 18 | 19 | flutter: 20 | sdk: flutter 21 | 22 | dev_dependencies: 23 | mockito: 24 | flutter_lints: 25 | 26 | integration_test: 27 | sdk: flutter 28 | 29 | flutter_test: 30 | sdk: flutter 31 | 32 | flutter_icons: 33 | android: true 34 | ios: true 35 | adaptive_icon_background: "#FFFFFF" 36 | adaptive_icon_foreground: "assets/images/app_icon_foreground.png" 37 | image_path: "assets/images/app_icon.png" 38 | flutter: 39 | uses-material-design: true 40 | 41 | assets: 42 | - assets/images/ 43 | - assets/vectors/ 44 | - assets/fonts/ 45 | 46 | fonts: 47 | - family: Poppins 48 | fonts: 49 | - asset: assets/fonts/Poppins-Regular.ttf 50 | weight: 300 51 | - asset: assets/fonts/Poppins-Medium.ttf 52 | weight: 500 53 | - asset: assets/fonts/Poppins-SemiBold.ttf 54 | weight: 700 55 | --------------------------------------------------------------------------------