diff --git a/TestModuleB_1/result.apk b/TestModuleB_1/result.apk new file mode 100644 index 0000000..bb8d7d6 Binary files /dev/null and b/TestModuleB_1/result.apk differ diff --git a/TestModuleB_1/testModuleB_1/.gitignore b/TestModuleB_1/testModuleB_1/.gitignore new file mode 100644 index 0000000..24476c5 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/TestModuleB_1/testModuleB_1/.metadata b/TestModuleB_1/testModuleB_1/.metadata new file mode 100644 index 0000000..a697366 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/.metadata @@ -0,0 +1,33 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + channel: stable + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + - platform: android + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + - platform: ios + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/TestModuleB_1/testModuleB_1/README.md b/TestModuleB_1/testModuleB_1/README.md new file mode 100644 index 0000000..780d92c --- /dev/null +++ b/TestModuleB_1/testModuleB_1/README.md @@ -0,0 +1,16 @@ +# testmoduleb_1 + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/TestModuleB_1/testModuleB_1/analysis_options.yaml b/TestModuleB_1/testModuleB_1/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/TestModuleB_1/testModuleB_1/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/TestModuleB_1/testModuleB_1/android/.gitignore b/TestModuleB_1/testModuleB_1/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/TestModuleB_1/testModuleB_1/android/app/build.gradle b/TestModuleB_1/testModuleB_1/android/app/build.gradle new file mode 100644 index 0000000..d27c3c9 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/build.gradle @@ -0,0 +1,60 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + namespace "com.example.testmoduleb_1" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.testmoduleb_1" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} diff --git a/TestModuleB_1/testModuleB_1/android/app/src/debug/AndroidManifest.xml b/TestModuleB_1/testModuleB_1/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/AndroidManifest.xml b/TestModuleB_1/testModuleB_1/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..e4619e6 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/java/com/example/testmoduleb_1/MainActivity.java b/TestModuleB_1/testModuleB_1/android/app/src/main/java/com/example/testmoduleb_1/MainActivity.java new file mode 100644 index 0000000..6a400cb --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/main/java/com/example/testmoduleb_1/MainActivity.java @@ -0,0 +1,6 @@ +package com.example.testmoduleb_1; + +import io.flutter.embedding.android.FlutterActivity; + +public class MainActivity extends FlutterActivity { +} diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/drawable-v21/launch_background.xml b/TestModuleB_1/testModuleB_1/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/drawable/launch_background.xml b/TestModuleB_1/testModuleB_1/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..db77bb4 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..17987b7 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..09d4391 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..d5f1c8d Binary files /dev/null and b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..4d6372e Binary files /dev/null and b/TestModuleB_1/testModuleB_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/values-night/styles.xml b/TestModuleB_1/testModuleB_1/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/android/app/src/main/res/values/styles.xml b/TestModuleB_1/testModuleB_1/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/android/app/src/profile/AndroidManifest.xml b/TestModuleB_1/testModuleB_1/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/TestModuleB_1/testModuleB_1/android/build.gradle b/TestModuleB_1/testModuleB_1/android/build.gradle new file mode 100644 index 0000000..f7eb7f6 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.3.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/TestModuleB_1/testModuleB_1/android/gradle.properties b/TestModuleB_1/testModuleB_1/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/TestModuleB_1/testModuleB_1/android/gradle/wrapper/gradle-wrapper.properties b/TestModuleB_1/testModuleB_1/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a9324b3 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=file:///Users/zhouwu/.gradle/wrapper/gradle-7.5-all.zip \ No newline at end of file diff --git a/TestModuleB_1/testModuleB_1/android/settings.gradle b/TestModuleB_1/testModuleB_1/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/TestModuleB_1/testModuleB_1/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/TestModuleB_1/testModuleB_1/ios/.gitignore b/TestModuleB_1/testModuleB_1/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/TestModuleB_1/testModuleB_1/ios/Flutter/AppFrameworkInfo.plist b/TestModuleB_1/testModuleB_1/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/TestModuleB_1/testModuleB_1/ios/Flutter/Debug.xcconfig b/TestModuleB_1/testModuleB_1/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/TestModuleB_1/testModuleB_1/ios/Flutter/Release.xcconfig b/TestModuleB_1/testModuleB_1/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.pbxproj b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..970c725 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,613 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduleb1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduleb1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduleb1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduleb1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduleb1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduleb1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e42adcb --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/contents.xcworkspacedata b/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/AppDelegate.swift b/TestModuleB_1/testModuleB_1/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000..dc9ada4 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..7353c41 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..6ed2d93 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..4cd7b00 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..fe73094 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..321773c Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..502f463 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..e9f5fea Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..84ac32a Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..8953cba Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0467bf1 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Base.lproj/LaunchScreen.storyboard b/TestModuleB_1/testModuleB_1/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Base.lproj/Main.storyboard b/TestModuleB_1/testModuleB_1/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Info.plist b/TestModuleB_1/testModuleB_1/ios/Runner/Info.plist new file mode 100644 index 0000000..28759e8 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Testmoduleb 1 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + testmoduleb_1 + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/TestModuleB_1/testModuleB_1/ios/Runner/Runner-Bridging-Header.h b/TestModuleB_1/testModuleB_1/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/TestModuleB_1/testModuleB_1/ios/RunnerTests/RunnerTests.swift b/TestModuleB_1/testModuleB_1/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/TestModuleB_1/testModuleB_1/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/TestModuleB_1/testModuleB_1/lib/DetialHome.dart b/TestModuleB_1/testModuleB_1/lib/DetialHome.dart new file mode 100644 index 0000000..c16a130 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/DetialHome.dart @@ -0,0 +1,171 @@ +import 'package:flutter/material.dart'; + +Map mapData = { + "name": "Details page (Matsutake foie gras)", + "content": [ + "Matsutake\nfoie gras", + "Recommended!", + "Prep", + "10 Min", + "Total", + "30 Min", + "Servings", + "2", + "4.5", + "Description", + "Matsutake goose liver is a delicious dish that combines matsutake and goose liver. Matsutake is a precious wild mushroom with a unique aroma and rich taste. Goose liver, on the other hand, is a luxurious poultry visceral ingredient known for its soft and delicate taste and rich flavor.", + "Steps", + "Making Matsutake Sauce: Cut fresh matsutake into small pieces, then bake in an oven until crispy or heat in a frying pan until the aroma spreads. Next, put the chopped matsutake into a blender, add some chicken soup or white wine, and stir to form a uniform matsutake sauce.", + "Pan fried foie gras: Cut the foie gras into evenly thick slices and season with salt and pepper. Heat the pan, add some butter, and let the butter melt. Then, put the foie gras into the pan and fry for about 2-3 minutes on each side until the surface is golden and the inside is fully cooked.", + "Platter and decoration: Place the fried foie gras on a plate, pour in matsutake sauce, and then use some fresh matsutake, fruits, or flowers as decoration. Enjoy the delicacy of Matsutake Goose Liver." + ] +}; + +class DetailHomePage extends StatefulWidget { + const DetailHomePage({super.key}); + @override + State createState() => _DetailHomePageState(); +} + +class _DetailHomePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 4, + centerTitle: false, + backgroundColor: Colors.white, + leading: IconButton( + icon: Icon(Icons.arrow_back_ios, color: Colors.grey,), + onPressed: () => Navigator.pop(context),), + title: Text("Details", style: TextStyle(color: Colors.black87),), + ), + body: Stack( + children: [ + Positioned.fill( + child: Padding( + padding: EdgeInsets.all(16), + child: Column( + children: [ + myContainer(), + SizedBox(height: 16,), + myDis(), + SizedBox(height: 16,), + myStep() + ], + ), + ), + ), + Positioned( + right: 32, + top: 180, + child: PhysicalModel(color: Colors.white,elevation: 4,borderRadius: BorderRadius.circular(4),child: Container( + alignment: Alignment.center, + height: 50, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("4.5"), + Row( + children: List.generate(5, (index) => Icon(index==4?Icons.star_half:Icons.star,color: Colors.amber,size: 15,)), + ) + ], + ), + )), + ) + ], + ) + ); + } + + + myStep(){ + return PhysicalModel( + color: Colors.white, + elevation: 4, + borderRadius: BorderRadius.circular(8), + child: Container( + padding: EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text("Steps",style: TextStyle( + fontStyle: FontStyle.italic + ),), + ...List.generate(3, (index) => SizedBox( + height: 110, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon(Icons.looks_one_outlined,color: Colors.red,size: 23,), + SizedBox(width: 300,child: Text(mapData["content"][12+index])), + ], + ), + )) + ] + ) + ) + ); + } + + myDis(){ + return PhysicalModel( + color: Colors.white, + elevation: 4, + borderRadius: BorderRadius.circular(8), + child: Container( + height: 150, + padding: EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(mapData["content"][9],style: TextStyle( + fontStyle: FontStyle.italic + ),), + Text(mapData["content"][10]), + ], + ), + ) + ); + } + + myContainer() { + return PhysicalModel( + elevation: 4, + borderRadius: BorderRadius.circular(8), + color: Colors.white, child: Container( + height: 200, + child: Row( + children: [ + Expanded(flex: 1,child: myContainerCotent(),), + Expanded(flex: 1,child: ClipRRect(borderRadius: BorderRadius.horizontal(right: Radius.circular(8)),child: Image.asset("lib/image/brioche.jpg",height: double.infinity,fit: BoxFit.cover))) + ], + ) + ),); + } + + myContainerCotent(){ + return DefaultTextStyle( + style: TextStyle(fontSize: 16,fontWeight: FontWeight.w500), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text(mapData['content'][0],style: TextStyle(color: Colors.amber,fontWeight: FontWeight.bold,fontSize: 22),), + Text(mapData['content'][1],style: TextStyle(color: Colors.blueAccent,fontSize: 16),), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Column(mainAxisAlignment: MainAxisAlignment.center,children: [Text(mapData['content'][2],style: TextStyle(color: Colors.brown),),Text(mapData['content'][3],style: TextStyle(color: Colors.black87,fontSize: 14),)],), + Container(height: 30,width: 1,color: Colors.brown.withOpacity(0.3),), + Column(mainAxisAlignment: MainAxisAlignment.center,children: [Text(mapData['content'][4],style: TextStyle(color: Colors.brown),),Text(mapData['content'][5],style: TextStyle(color: Colors.black87,fontSize: 14),)],), + Container(height: 30,width: 1,color: Colors.brown.withOpacity(0.3),), + Column(mainAxisAlignment: MainAxisAlignment.center,children: [Text(mapData['content'][6],style: TextStyle(color: Colors.brown),),Text(mapData['content'][7],style: TextStyle(color: Colors.black87,fontSize: 14),)],), + ], + ) + ], + ), + ); + } +} diff --git a/TestModuleB_1/testModuleB_1/lib/DisCover.dart b/TestModuleB_1/testModuleB_1/lib/DisCover.dart new file mode 100644 index 0000000..742e39d --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/DisCover.dart @@ -0,0 +1,110 @@ +import 'package:flutter/material.dart'; + +List assetImage = [ + "lib/assets/image_3.jpg", + "lib/assets/image_4.jpg", + "lib/assets/image_5.jpg", +]; +List assetImage1 = [ + "lib/assets/Moules Marinieres .jpg", + "lib/assets/Pain Brie.jpg", + "lib/assets/Provence tomato soup.jpg", +]; + + +class DetialCover extends StatefulWidget { + const DetialCover({super.key}); + + @override + State createState() => _DetialCoverState(); +} + +class _DetialCoverState extends State { + late PageController controller; + int index = 1; + bool ischeck =false; + + @override + void initState() { + // TODO: implement initState + super.initState(); + controller = PageController(initialPage: index, viewportFraction: 0.8); + } + + @override + Widget build(BuildContext context) { + return PageView.builder( + itemCount: 3, + scrollDirection: Axis.horizontal, + controller: controller, + + onPageChanged: (newindex) { + index = newindex; + setState(() { + + }); + }, + itemBuilder: (c, i) { + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16,vertical: 32), + child: PhysicalModel(color: Colors.white, elevation: 4, borderRadius: BorderRadius.circular(16),child:Container( + child:Stack( + children: [ + Positioned(left: 0,right: 0,top: 0,bottom: 0, + child: Column( + children: [ + ClipRRect(borderRadius: BorderRadius.circular(16),child: Image.asset(assetImage1[i],fit: BoxFit.cover,height: 300,width: double.infinity,)), + SizedBox(height: 60,), + Text("Alain ducasse",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.orange),), + SizedBox(height: 30,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(5, (index) => Icon(index==4?Icons.star_border:Icons.star,color:index==4?Colors.grey:Colors.amber,size: 15,))..add(Text("4.0")), + ), + SizedBox(height: 30,), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text("His grasp of detail is outstanding, and every dish he cooks is like a meticulously crafted work of art, making people feel his love and dedication to cooking during the tasting process."), + ) + ], + )), + Positioned( + top: 200, + left: 0, + right: 0, + child: Center( + child: ClipOval(child: Image.asset(assetImage[i],height: 150,width: 150,fit: BoxFit.cover,)) + ) + ), + Positioned( + top: 268, + right: 16, + child: GestureDetector( + onTap: (){ + setState(() { + ischeck = !ischeck; + }); + }, + child: Container( + height: 50, + width: 50, + alignment: Alignment.center, + decoration: BoxDecoration( + color: Colors.white, + shape: BoxShape.circle, + boxShadow: [BoxShadow(color: Colors.black87)] + ), + child: Image.asset(ischeck?'lib/assets/icon_55.png':"lib/assets/icon_54.png",height: 30, + width: 30,) + ), + ) + ) + + ], + ) + )), + ); + }, + ); + } +} diff --git a/TestModuleB_1/testModuleB_1/lib/Login.dart b/TestModuleB_1/testModuleB_1/lib/Login.dart new file mode 100644 index 0000000..01f3d03 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/Login.dart @@ -0,0 +1,121 @@ +import 'package:flutter/material.dart'; +import 'package:testmoduleb_1/homepage.dart'; + +class Login extends StatefulWidget { + const Login({super.key}); + + @override + State createState() => _LoginState(); +} + +class _LoginState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("lib/image/image_1.jpg"), + fit: BoxFit.cover)), + child: Stack( + children: [ + Positioned( + left: 16, + top: 64, + child: IconButton( + onPressed: () => Navigator.pop(context), + icon: Icon( + Icons.arrow_back_ios_sharp, + color: Colors.grey, + ))), + Positioned( + top: 300, + left: 120, + child: Center( + child: Image.asset( + "lib/image/logo.png", + height: 150, + width: 150, + fit: BoxFit.cover, + )), + ), + Positioned( + top: 500, + child: Center( + child: Container( + height: 300, + width: 380, + margin: EdgeInsets.all(16), + padding: EdgeInsets.all(16), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.black54 + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Container( + height: 50, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8) + ), + child: TextField( + decoration: InputDecoration( + prefixIcon: Image.asset("lib/image/icon_35.png",fit: BoxFit.cover,height: 40,width: 40,), + border: InputBorder.none, + hintText: "Please enter your account", + hintStyle: TextStyle(color: Colors.black54) + ), + ), + ), + Container( + height: 50, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8) + ), + child: TextField( + decoration: InputDecoration( + prefixIcon: Image.asset("lib/image/icon_86.png",fit: BoxFit.cover,height: 40,width: 40,), + border: InputBorder.none, + hintText: "Please enter your password", + hintStyle: TextStyle(color: Colors.black54) + ), + ), + ), + Row( + children: [ + Image.asset("lib/image/icon_43.png",fit: BoxFit.cover,height: 30,width: 30,), + Text("I have read and agreed User Privacy Policy",style: TextStyle(color: Colors.grey),), + ], + ), + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>HomePage())), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.amber), + child: Text("Login", + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.white)), + ), + ), + ], + ) + ), + ), + ), + Positioned( + bottom: 16, + left: 0, + right: 0, + child: Text("Forgot your password?",textAlign: TextAlign.center,style: TextStyle(color: Colors.white),) + ) + ], + ))); + } +} diff --git a/TestModuleB_1/testModuleB_1/lib/assets/Moules Marinieres .jpg b/TestModuleB_1/testModuleB_1/lib/assets/Moules Marinieres .jpg new file mode 100755 index 0000000..4250726 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/Moules Marinieres .jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/Pain Brie.jpg b/TestModuleB_1/testModuleB_1/lib/assets/Pain Brie.jpg new file mode 100755 index 0000000..af12712 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/Pain Brie.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/Provence tomato soup.jpg b/TestModuleB_1/testModuleB_1/lib/assets/Provence tomato soup.jpg new file mode 100755 index 0000000..c7b2dd9 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/Provence tomato soup.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/icon_54.png b/TestModuleB_1/testModuleB_1/lib/assets/icon_54.png new file mode 100755 index 0000000..ff27085 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/icon_54.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/icon_55.png b/TestModuleB_1/testModuleB_1/lib/assets/icon_55.png new file mode 100755 index 0000000..073a7b1 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/icon_55.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/image_3.jpg b/TestModuleB_1/testModuleB_1/lib/assets/image_3.jpg new file mode 100755 index 0000000..f7e67e9 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/image_3.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/image_4.jpg b/TestModuleB_1/testModuleB_1/lib/assets/image_4.jpg new file mode 100755 index 0000000..ed54a1e Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/image_4.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/assets/image_5.jpg b/TestModuleB_1/testModuleB_1/lib/assets/image_5.jpg new file mode 100755 index 0000000..177b4e7 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/assets/image_5.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/homeType.dart b/TestModuleB_1/testModuleB_1/lib/homeType.dart new file mode 100644 index 0000000..ec12410 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/homeType.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; +class HomeTypePage extends StatefulWidget { + const HomeTypePage({super.key}); + + @override + State createState() => _HomeTypePageState(); +} + +class _HomeTypePageState extends State { + + List a = [ + "lib/image/Basque chicken stew.jpg", + "lib/image/French Snail.jpg", + "lib/image/Cassoulet.jpg", + ]; + List b = [ + "Basque chicken stew", + "French snail", + "Cassoulet", + ]; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 4, + centerTitle: false, + backgroundColor: Colors.white, + leading: IconButton(icon: Icon(Icons.arrow_back_ios,color: Colors.grey,),onPressed: ()=>Navigator.pop(context),), + title: Text("Main dishes",style: TextStyle(color: Colors.black87),), + ), + body: Padding( + padding: EdgeInsets.all(16), + child: Wrap( + direction: Axis.vertical, + runSpacing: 20, + spacing: 20, + children: [ + myListCount(180, a[0], b[0]), + myListCount(200, a[1], b[1]), + myListCount(240, a[2], b[2]), + myListCount(170, a[1], b[1]), + myListCount(240, a[0], b[0]), + myListCount(200, a[2], b[2]), + ], + ), + ) + ); + } + + myListCount(double height,String imgasset,String text){ + return PhysicalModel( + elevation: 5, + color: Colors.white, + borderRadius: BorderRadius.circular(8), + child: Container( + height: height, + width: MediaQuery.of(context).size.width/2-40, + child:Column( + children: [ + Expanded( + child: Image.asset(imgasset,fit: BoxFit.cover,height: double.infinity,width: double.infinity,), + ), + Padding(padding: EdgeInsets.all(8),child: Text(text,style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color:Colors.black87),)) + ], + ), + ), + ); + } +} diff --git a/TestModuleB_1/testModuleB_1/lib/homepage.dart b/TestModuleB_1/testModuleB_1/lib/homepage.dart new file mode 100644 index 0000000..c28fafa --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/homepage.dart @@ -0,0 +1,238 @@ + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:testmoduleb_1/DetialHome.dart'; +import 'package:testmoduleb_1/homeType.dart'; + +import 'DisCover.dart'; + +class HomePage extends StatefulWidget { + const HomePage({super.key}); + + @override + State createState() => _HomePageState(); +} + +class _HomePageState extends State { + int pageIndex = 0; + late PageController pageController; + List assetString = [ + "lib/image/Bouillabaisse.jpg", + "lib/image/brioche.jpg", + "lib/image/Burgundy beef .jpg", + "lib/image/Burgundy beef_2.jpg" + ]; + List assetString2 = [ + 'lib/image/icon_90.png', + "lib/image/icon_91.png", + "lib/image/icon_92.png", + ]; + List string1 = [ + "Main dishes", + "pastries", + "Soups" + ]; + int currindex = 1; + + @override + void initState() { + // TODO: implement initState + super.initState(); + pageController = PageController(initialPage: pageIndex); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: currindex==0? AppBar( + backgroundColor: Colors.white, + elevation: 4, + centerTitle: true, + title: Text("Chef",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.amber)), + ):null, + body:currindex==0?DetialCover() :CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Stack( + children: [ + myPageView(), + Positioned(bottom: 16, left: 0, right: 0, child: myPageIndex()) + ], + )), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16,vertical: 16), + child: Text("Main categories",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87),), + ), + ), + SliverToBoxAdapter( + child: myListView1(), + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16,vertical: 16), + child: Text("Popular food",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87),), + ), + ), + SliverToBoxAdapter( + child: SizedBox( + height: 450, + child: ListView( + scrollDirection: Axis.horizontal, + shrinkWrap: true, + children: [ + myPopularImage(), + myPopularImage(), + ], + ), + ) + ) + ], + ), + bottomNavigationBar: BottomNavigationBar( + currentIndex: currindex, + onTap: (int newint){ + setState(() { + currindex= newint; + }); + }, + selectedItemColor: Colors.grey, + showUnselectedLabels: false, + items: [ + BottomNavigationBarItem(icon: Image.asset("lib/image/icon_40.png",height: 30, + width: 30,),label: "Discover"), + BottomNavigationBarItem(icon: Icon(Icons.home,color: Colors.grey,),label: "home"), + ], + + ), + ); + } + + + + myPopularImage(){ + return GestureDetector( + onTap: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>DetailHomePage())), + child: Padding( + padding: const EdgeInsets.all(16), + child: PhysicalModel( + color: Colors.white, + elevation: 4, + borderRadius: BorderRadius.circular(8), + child: Container( + width: MediaQuery.of(context).size.width-40, + child: Stack( + children: [ + Positioned( + left: 0, + right: 0, + top: 0, + bottom: 120, + child: Image.asset("lib/image/brioche.jpg",fit: BoxFit.cover) + ), + Positioned( + left: 0, + right: 0, + bottom: 0, + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text("Matsutake foie gras",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87),), + Column( + children: [Icon(Icons.star,color: Colors.amber,),Text("5.0")], + ) + ], + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text("Matsutake goose liver " + "is a delicious dish that combines matsutake an" + "d goose liver. Matsutake is a precious wild mushroom wit" + "h a unique aroma and rich taste. Goose liver, on the other hand" + ", is a luxurious poultry...",style: TextStyle(color: Colors.grey),), + ) + ], + ), + ) + ], + ) + ), + ), + ), + ); + } + + + myListView1(){ + return GestureDetector( + onTap: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>HomeTypePage())), + child: Container( + height: 140, + child: ListView.builder( + scrollDirection: Axis.horizontal, + padding: EdgeInsets.symmetric(horizontal: 16,vertical: 4), + itemCount: 3, + itemBuilder: (context,index){ + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: PhysicalModel( + elevation: 4, + color: Colors.white, + shadowColor: Colors.amber.withOpacity(0.8), + borderRadius: BorderRadius.circular(8), + child: SizedBox( + width: 100, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Center(child: Image.asset(assetString2[index],fit: BoxFit.cover,height: 80,)), + Text(string1[index]) + ], + ), + ), + ), + ); + }, + ) + ), + ); + } + + myPageView() { + return Container( + height: 250, + child: PageView( + scrollDirection: Axis.horizontal, + controller: pageController, + onPageChanged: (int newIndex) { + setState(() { + pageIndex = newIndex; + }); + }, + children: assetString + .map((e) => Image.asset( + e, + fit: BoxFit.cover, + )) + .toList()), + ); + } + + myPageIndex() { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate( + 4, + (index) => Padding( + padding: EdgeInsets.symmetric(horizontal: 8), + child: Icon(Icons.circle, + size: 16, + color: + index == pageIndex ? Colors.black54 : Colors.white))), + + ); + } +} diff --git a/TestModuleB_1/testModuleB_1/lib/image/Basque chicken stew.jpg b/TestModuleB_1/testModuleB_1/lib/image/Basque chicken stew.jpg new file mode 100755 index 0000000..9ec794c Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/Basque chicken stew.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/Bouillabaisse.jpg b/TestModuleB_1/testModuleB_1/lib/image/Bouillabaisse.jpg new file mode 100755 index 0000000..1b96543 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/Bouillabaisse.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/Burgundy beef .jpg b/TestModuleB_1/testModuleB_1/lib/image/Burgundy beef .jpg new file mode 100755 index 0000000..7f27f25 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/Burgundy beef .jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/Burgundy beef_2.jpg b/TestModuleB_1/testModuleB_1/lib/image/Burgundy beef_2.jpg new file mode 100755 index 0000000..a79cc4d Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/Burgundy beef_2.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/Cassoulet.jpg b/TestModuleB_1/testModuleB_1/lib/image/Cassoulet.jpg new file mode 100755 index 0000000..671cf02 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/Cassoulet.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/French Snail.jpg b/TestModuleB_1/testModuleB_1/lib/image/French Snail.jpg new file mode 100755 index 0000000..4f8013b Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/French Snail.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/brioche.jpg b/TestModuleB_1/testModuleB_1/lib/image/brioche.jpg new file mode 100755 index 0000000..9155cdd Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/brioche.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_35.png b/TestModuleB_1/testModuleB_1/lib/image/icon_35.png new file mode 100755 index 0000000..901769c Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_35.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_40.png b/TestModuleB_1/testModuleB_1/lib/image/icon_40.png new file mode 100755 index 0000000..82ad426 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_40.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_43.png b/TestModuleB_1/testModuleB_1/lib/image/icon_43.png new file mode 100755 index 0000000..3921107 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_43.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_86.png b/TestModuleB_1/testModuleB_1/lib/image/icon_86.png new file mode 100755 index 0000000..15cfe80 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_86.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_90.png b/TestModuleB_1/testModuleB_1/lib/image/icon_90.png new file mode 100755 index 0000000..d04dbab Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_90.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_91.png b/TestModuleB_1/testModuleB_1/lib/image/icon_91.png new file mode 100755 index 0000000..526d734 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_91.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/icon_92.png b/TestModuleB_1/testModuleB_1/lib/image/icon_92.png new file mode 100755 index 0000000..d7bfca8 Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/icon_92.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/image_1.jpg b/TestModuleB_1/testModuleB_1/lib/image/image_1.jpg new file mode 100755 index 0000000..59f90aa Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/image_1.jpg differ diff --git a/TestModuleB_1/testModuleB_1/lib/image/logo.png b/TestModuleB_1/testModuleB_1/lib/image/logo.png new file mode 100755 index 0000000..f9dd1ee Binary files /dev/null and b/TestModuleB_1/testModuleB_1/lib/image/logo.png differ diff --git a/TestModuleB_1/testModuleB_1/lib/loadjson/food.json b/TestModuleB_1/testModuleB_1/lib/loadjson/food.json new file mode 100755 index 0000000..322f9a3 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/loadjson/food.json @@ -0,0 +1,97 @@ +[ + { + "type": "Main dishes", + "foods": [ + { + "name": "Basque chicken stew", + "image_url": "Basque chicken stew.jpg" + }, + { + "name": "French snail", + "image_url": "French Snail.jpg" + }, + { + "name": "Cassoulet", + "image_url": "Cassoulet.jpg" + }, + { + "name": "Frog legs", + "image_url": "Frog legs.jpg" + }, + { + "name": "Beef tartare", + "image_url": "Beef tartare.jpg" + }, + { + "name": "Duck confit", + "image_url": "Duck confit.jpg" + }, + { + "name": "Burgundy beef", + "image_url": "Burgundy beef .jpg" + }, + { + "name": "Duck breast", + "image_url": "Duck breast.jpg" + } + ] + }, + { + "type": "Pastries", + "foods": [ + { + "name": "Baguette", + "image_url": "Baguette.png" + }, + { + "name": "Croissant", + "image_url": "Croissant.jpg" + }, + { + "name": "La galette", + "image_url": "La Galette.jpg" + }, + { + "name": "Pain brie", + "image_url": "Pain Brie.jpg" + }, + { + "name": "Brioche", + "image_url": "brioche.jpg" + }, + { + "name": "Quiche lorraine", + "image_url": "Quiche Lorraine.jpg" + }, + { + "name": "Burgundy beef", + "image_url": "Burgundy beef_2.jpg" + } + ] + }, + { + "type": "Soups", + "foods": [ + { + "name": "French onion soup", + "image_url": "French Onion Soup.jpg" + }, + { + "name": "Bouillabaisse", + "image_url": "Bouillabaisse.jpg" + }, + { + "name": "French vegetable beef soup", + "image_url": "French vegetable beef soup.jpg" + }, + { + "name": "Pumpkin soup", + "image_url": "Pumpkin Soup.jpg" + }, + { + "name": "Provence tomato soup", + "image_url": "Provence tomato soup.jpg" + } + ] + } +] diff --git a/TestModuleB_1/testModuleB_1/lib/loadjson/text.json b/TestModuleB_1/testModuleB_1/lib/loadjson/text.json new file mode 100755 index 0000000..9984c8a --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/loadjson/text.json @@ -0,0 +1,124 @@ +[ + { + "name": "Bootstrap Page", + "content": [ + "Skip" + ] + }, + { + "name": "Welcome Page", + "content": [ + "Join us right now", + "Login", + "or", + "Register" + ] + }, + { + "name": "Login Page", + "content": [ + "Please enter your account", + "Please enter your password", + "I have read and agreed《User Privacy Policy》", + "Login", + "Forgot your password?" + ] + }, + { + "name": "Home Page", + "content": [ + "Main Categories", + "Main dishes", + "Pastries", + "Soups", + "Popular Food", + { + "name": "Matsutake foie gras", + "description": "Matsutake and foie gras are mainly made from Matsutake and foie gras, with a rich and soft taste and a rich aroma." + }, + { + "name": "Marseille fish soup", + "description": "Marseille fish soup is a specialty dish in the southern French city of Marseille, featuring a rich flavor of tomatoes and fish." + }, + { + "name": "French Snail", + "description": "French snail is a traditional cuisine in France, mainly made from fresh snail meat and seasoned with rich herbs, garlic, and butter." + } + ] + }, + { + "name": "Details page (Matsutake foie gras)", + "content": [ + "Matsutake foie gras", + "Recommended!", + "Prep", + "10 Min", + "Total", + "30 Min", + "Servings", + "2", + "4.5", + "Description", + "Matsutake goose liver is a delicious dish that combines matsutake and goose liver. Matsutake is a precious wild mushroom with a unique aroma and rich taste. Goose liver, on the other hand, is a luxurious poultry visceral ingredient known for its soft and delicate taste and rich flavor.", + "Steps", + "Making Matsutake Sauce: Cut fresh matsutake into small pieces, then bake in an oven until crispy or heat in a frying pan until the aroma spreads. Next, put the chopped matsutake into a blender, add some chicken soup or white wine, and stir to form a uniform matsutake sauce.", + "Pan fried foie gras: Cut the foie gras into evenly thick slices and season with salt and pepper. Heat the pan, add some butter, and let the butter melt. Then, put the foie gras into the pan and fry for about 2-3 minutes on each side until the surface is golden and the inside is fully cooked.", + "Platter and decoration: Place the fried foie gras on a plate, pour in matsutake sauce, and then use some fresh matsutake, fruits, or flowers as decoration. Enjoy the delicacy of Matsutake Goose Liver." + ] + }, + { + "name": "Details page (Marseille fish soup)", + "content": [ + "Marseille fish soup", + "Recommended!", + "Prep", + "15 Min", + "Total", + "35 Min", + "Servings", + "2", + "4.0", + "Description", + "Marseille fish soup is one of the specialty dishes in the southern French city of Marseille. It is a rich tomato and fish soup typically made with various fresh Mediterranean fish, mussels, and crabs.", + "Steps", + "Preparation materials: Prepare the necessary ingredients, including fish (usually using various fish species such as flatfish, bass, cod, etc.), vegetables (such as onions, tomatoes, garlic, tomato sauce, etc.), herbs, and seasonings (such as thyme, basil, parsley, olive oil, salt, and pepper).", + "Stewed fish soup: Heat some olive oil in a large pot, add chopped onions and garlic, stir fry over medium heat until softened. Then add chopped tomatoes and tomato sauce and continue to stir fry for a few minutes. Next, add an appropriate amount of water, lower the heat and bring to a boil. Put various fish into the pot and gently stir until evenly mixed. Add herbs and seasonings such as thyme, basil, parsley, salt, and pepper. Continue to stew for about 30 minutes until the fish is cooked and the soup is fragrant.", + "Plate and enjoy: Pour the stewed Marseille fish soup into a soup bowl and pair it with bread or garlic bread slices. You can add some fresh vanilla as decoration according to your personal taste. Enjoy the Marseille fish soup when it’s steaming hot." + ] + }, + { + "name": "Details page (French Snail)", + "content": [ + "French Snail", + "Recommended!", + "Prep", + "5 Min", + "Total", + "30 Min", + "Servings", + "1", + "4.5", + "Description", + "French Snail is a traditional French cuisine, also known as snail meal. It is mainly made from fresh snail meat and seasoned with rich herbs, garlic, and butter. Snail meat presents a tender and smooth taste, while the aroma of vanilla and garlic adds a unique flavor.", + "Steps", + "Prepare snails and seasoning: Usually live snails or frozen snails are used, and if frozen snails are used, they need to be thawed first. Take out the snail meat, clean it with clean water, and then put it on a plate for later use. Prepare some butter, garlic, cilantro, salt, and pepper as seasonings.", + "Cooking: Chop the garlic and cilantro into small pieces and set aside. Heat some butter in a frying pan, add garlic and stir fry for a few seconds. Wait for the aroma to dissipate, then add sliced snail meat and cook over low heat until the snail becomes softer and smoother. Then add cilantro, salt, and pepper, gently stir until evenly distributed to distribute the seasoning.", + "Plate setting: Put the sliced snail meat into the snail shell, then place it on a baking tray, sprinkle some bread crumbs and small pieces of butter. Bake in the oven for 5-10 minutes until the breadcrumbs turn golden yellow. Serve the French snail on the table, and you can use a fork or specially made snail pliers to take out the snail meat for consumption. At the same time, you can immerse it in a specially made snail sauce for consumption." + ] + }, + { + "name": "Discover page", + "content": [ + "Chef", + { + "chef_name": [ + "Pierre Gagnaire", + "Alain Ducasse", + "Paul Bocuse" + ], + "rating": "4.0", + "description": "His grasp of detail is outstanding, and every dish he cooks is like a meticulously crafted work of art, making people feel his love and dedication to cooking during the tasting process." + } + ] + } +] diff --git a/TestModuleB_1/testModuleB_1/lib/main.dart b/TestModuleB_1/testModuleB_1/lib/main.dart new file mode 100644 index 0000000..85110f3 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/main.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import 'package:testmoduleb_1/welcome.dart'; + +void main(){ + runApp( + MaterialApp( + home: StartGame(), + debugShowCheckedModeBanner: false, + )); +} + + +class StartGame extends StatefulWidget { + const StartGame({super.key}); + + @override + State createState() => _StartGameState(); +} + +class _StartGameState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + decoration: BoxDecoration( + image:DecorationImage( + image: AssetImage("lib/image/image_1.jpg"), + fit: BoxFit.cover + ) + ), + child: Center( + child: Image.asset("lib/image/logo.png",height: 150,width: 150,fit: BoxFit.cover,) + ) + ), + floatingActionButton: FloatingActionButton( + backgroundColor: Colors.white, + child: Text("Skip",style: TextStyle(fontSize: 14,color: Colors.brown),), + onPressed: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>Welcome())), + ), + ); + } +} diff --git a/TestModuleB_1/testModuleB_1/lib/welcome.dart b/TestModuleB_1/testModuleB_1/lib/welcome.dart new file mode 100644 index 0000000..a82ca5c --- /dev/null +++ b/TestModuleB_1/testModuleB_1/lib/welcome.dart @@ -0,0 +1,113 @@ +import 'package:flutter/material.dart'; +import 'package:testmoduleb_1/Login.dart'; + +import 'homepage.dart'; + +class Welcome extends StatefulWidget { + const Welcome({super.key}); + + @override + State createState() => _WelcomeState(); +} + +class _WelcomeState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("lib/image/image_1.jpg"), + fit: BoxFit.cover)), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Center( + child: Image.asset( + "lib/image/logo.png", + height: 150, + width: 150, + fit: BoxFit.cover, + )), + Container( + height: 280, + width: 260, + margin: EdgeInsets.symmetric(vertical: 16,horizontal: 16), + padding: EdgeInsets.symmetric(vertical: 16), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(16), + color: Colors.black54, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + "join us\nright now", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 34, + fontWeight: FontWeight.w500, + color: Colors.white), + ), + ), + Spacer(), + SizedBox( + width: 200, + child: ElevatedButton( + onPressed: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>HomePage())), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.amber), + child: Text("Login", + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.white)), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Row( + children: [ + Expanded( + child: Divider( + color: Colors.white, + thickness: 2, + + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + "or", + style: TextStyle(color: Colors.white), + ), + ), + Expanded( + child: Divider( + color: Colors.white, + thickness: 2, + )), + ], + ), + ), + SizedBox( + width: 200, + child: ElevatedButton( + onPressed: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>Login())), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white), + child: Text("Register", + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.amber)), + ), + ) + ], + )) + ], + ))); + } +} diff --git a/TestModuleB_1/testModuleB_1/pubspec.lock b/TestModuleB_1/testModuleB_1/pubspec.lock new file mode 100644 index 0000000..b890004 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/pubspec.lock @@ -0,0 +1,188 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.17.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.3" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.6.7" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.9.1" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.8.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.5.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.4" +sdks: + dart: ">=3.0.2 <4.0.0" diff --git a/TestModuleB_1/testModuleB_1/pubspec.yaml b/TestModuleB_1/testModuleB_1/pubspec.yaml new file mode 100644 index 0000000..ddd94c5 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/pubspec.yaml @@ -0,0 +1,106 @@ +name: testmoduleb_1 +description: A new Flutter project. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.0.2 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - lib/image/image_1.jpg + - lib/image/logo.png + - lib/image/icon_35.png + - lib/image/icon_86.png + - lib/image/icon_43.png + - lib/image/Bouillabaisse.jpg + - lib/image/brioche.jpg + - lib/image/Burgundy beef .jpg + - lib/image/Burgundy beef_2.jpg + - lib/image/icon_90.png + - lib/image/icon_91.png + - lib/image/icon_92.png + - lib/image/icon_40.png + - lib/image/Basque chicken stew.jpg + - lib/image/French Snail.jpg + - lib/image/Cassoulet.jpg + - lib/loadjson/text.json + - lib/assets/ + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/TestModuleB_1/testModuleB_1/test/widget_test.dart b/TestModuleB_1/testModuleB_1/test/widget_test.dart new file mode 100644 index 0000000..fc317c3 --- /dev/null +++ b/TestModuleB_1/testModuleB_1/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:testmoduleb_1/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/testModuleA_1/result.fig b/testModuleA_1/result.fig new file mode 100644 index 0000000..be63f00 Binary files /dev/null and b/testModuleA_1/result.fig differ diff --git a/testModuleD_1/result.apk b/testModuleD_1/result.apk new file mode 100644 index 0000000..3d272ed Binary files /dev/null and b/testModuleD_1/result.apk differ diff --git a/testModuleD_1/testmoduleD/.gitignore b/testModuleD_1/testmoduleD/.gitignore new file mode 100644 index 0000000..24476c5 --- /dev/null +++ b/testModuleD_1/testmoduleD/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/testModuleD_1/testmoduleD/.metadata b/testModuleD_1/testmoduleD/.metadata new file mode 100644 index 0000000..a697366 --- /dev/null +++ b/testModuleD_1/testmoduleD/.metadata @@ -0,0 +1,33 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + channel: stable + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + - platform: android + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + - platform: ios + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/testModuleD_1/testmoduleD/README.md b/testModuleD_1/testmoduleD/README.md new file mode 100644 index 0000000..2f79cc8 --- /dev/null +++ b/testModuleD_1/testmoduleD/README.md @@ -0,0 +1,16 @@ +# testmoduled + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/testModuleD_1/testmoduleD/analysis_options.yaml b/testModuleD_1/testmoduleD/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/testModuleD_1/testmoduleD/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/testModuleD_1/testmoduleD/android/.gitignore b/testModuleD_1/testmoduleD/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/testModuleD_1/testmoduleD/android/app/build.gradle b/testModuleD_1/testmoduleD/android/app/build.gradle new file mode 100644 index 0000000..2491901 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/build.gradle @@ -0,0 +1,60 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + namespace "com.example.testmoduled" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.testmoduled" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} diff --git a/testModuleD_1/testmoduleD/android/app/src/debug/AndroidManifest.xml b/testModuleD_1/testmoduleD/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/testModuleD_1/testmoduleD/android/app/src/main/AndroidManifest.xml b/testModuleD_1/testmoduleD/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..8dd84ed --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/testModuleD_1/testmoduleD/android/app/src/main/java/com/example/testmoduled/MainActivity.java b/testModuleD_1/testmoduleD/android/app/src/main/java/com/example/testmoduled/MainActivity.java new file mode 100644 index 0000000..2f28e62 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/main/java/com/example/testmoduled/MainActivity.java @@ -0,0 +1,6 @@ +package com.example.testmoduled; + +import io.flutter.embedding.android.FlutterActivity; + +public class MainActivity extends FlutterActivity { +} diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/drawable-v21/launch_background.xml b/testModuleD_1/testmoduleD/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/drawable/launch_background.xml b/testModuleD_1/testmoduleD/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..db77bb4 Binary files /dev/null and b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..17987b7 Binary files /dev/null and b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..09d4391 Binary files /dev/null and b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..d5f1c8d Binary files /dev/null and b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..4d6372e Binary files /dev/null and b/testModuleD_1/testmoduleD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/values-night/styles.xml b/testModuleD_1/testmoduleD/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/testModuleD_1/testmoduleD/android/app/src/main/res/values/styles.xml b/testModuleD_1/testmoduleD/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/testModuleD_1/testmoduleD/android/app/src/profile/AndroidManifest.xml b/testModuleD_1/testmoduleD/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/testModuleD_1/testmoduleD/android/build.gradle b/testModuleD_1/testmoduleD/android/build.gradle new file mode 100644 index 0000000..f7eb7f6 --- /dev/null +++ b/testModuleD_1/testmoduleD/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.3.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/testModuleD_1/testmoduleD/android/gradle.properties b/testModuleD_1/testmoduleD/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/testModuleD_1/testmoduleD/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/testModuleD_1/testmoduleD/android/gradle/wrapper/gradle-wrapper.properties b/testModuleD_1/testmoduleD/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a80c92d --- /dev/null +++ b/testModuleD_1/testmoduleD/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=file:///Users/zhouwu/.gradle/wrapper/gradle-7.5-all.zip diff --git a/testModuleD_1/testmoduleD/android/settings.gradle b/testModuleD_1/testmoduleD/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/testModuleD_1/testmoduleD/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/testModuleD_1/testmoduleD/ios/.gitignore b/testModuleD_1/testmoduleD/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/testModuleD_1/testmoduleD/ios/Flutter/AppFrameworkInfo.plist b/testModuleD_1/testmoduleD/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/testModuleD_1/testmoduleD/ios/Flutter/Debug.xcconfig b/testModuleD_1/testmoduleD/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/testModuleD_1/testmoduleD/ios/Flutter/Release.xcconfig b/testModuleD_1/testmoduleD/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.pbxproj b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..6a63163 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,608 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C80F4294D02FB00263BE5 /* RunnerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 331C80F3294D02FB00263BE5 /* RunnerTests.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; + 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80F5294D02FB00263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C80F1294D02FB00263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80F3294D02FB00263BE5 /* RunnerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RunnerTests.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80EE294D02FB00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80F2294D02FB00263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80F3294D02FB00263BE5 /* RunnerTests.m */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 331C80F2294D02FB00263BE5 /* RunnerTests */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C80F1294D02FB00263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 97C146F21CF9000F007C117D /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80F0294D02FB00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80F7294D02FB00263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80ED294D02FB00263BE5 /* Sources */, + 331C80EE294D02FB00263BE5 /* Frameworks */, + 331C80EF294D02FB00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80F6294D02FB00263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80F1294D02FB00263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80F0294D02FB00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C80F0294D02FB00263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80EF294D02FB00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80ED294D02FB00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80F4294D02FB00263BE5 /* RunnerTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, + 97C146F31CF9000F007C117D /* main.m in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80F6294D02FB00263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C80F5294D02FB00263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduled; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C80F8294D02FB00263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduled.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C80F9294D02FB00263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduled.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C80FA294D02FB00263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduled.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduled; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmoduled; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80F7294D02FB00263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80F8294D02FB00263BE5 /* Debug */, + 331C80F9294D02FB00263BE5 /* Release */, + 331C80FA294D02FB00263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..f721350 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/contents.xcworkspacedata b/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner/AppDelegate.h b/testModuleD_1/testmoduleD/ios/Runner/AppDelegate.h new file mode 100644 index 0000000..36e21bb --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : FlutterAppDelegate + +@end diff --git a/testModuleD_1/testmoduleD/ios/Runner/AppDelegate.m b/testModuleD_1/testmoduleD/ios/Runner/AppDelegate.m new file mode 100644 index 0000000..70e8393 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/AppDelegate.m @@ -0,0 +1,13 @@ +#import "AppDelegate.h" +#import "GeneratedPluginRegistrant.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [GeneratedPluginRegistrant registerWithRegistry:self]; + // Override point for customization after application launch. + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +@end diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000..dc9ada4 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..7353c41 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..6ed2d93 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..4cd7b00 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..fe73094 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..321773c Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..502f463 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..e9f5fea Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..84ac32a Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..8953cba Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0467bf1 Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/testModuleD_1/testmoduleD/ios/Runner/Base.lproj/LaunchScreen.storyboard b/testModuleD_1/testmoduleD/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner/Base.lproj/Main.storyboard b/testModuleD_1/testmoduleD/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner/Info.plist b/testModuleD_1/testmoduleD/ios/Runner/Info.plist new file mode 100644 index 0000000..1ecef74 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Testmoduled + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + testmoduled + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/testModuleD_1/testmoduleD/ios/Runner/main.m b/testModuleD_1/testmoduleD/ios/Runner/main.m new file mode 100644 index 0000000..dff6597 --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/Runner/main.m @@ -0,0 +1,9 @@ +#import +#import +#import "AppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/testModuleD_1/testmoduleD/ios/RunnerTests/RunnerTests.m b/testModuleD_1/testmoduleD/ios/RunnerTests/RunnerTests.m new file mode 100644 index 0000000..6d8b0bd --- /dev/null +++ b/testModuleD_1/testmoduleD/ios/RunnerTests/RunnerTests.m @@ -0,0 +1,16 @@ +#import +#import +#import + +@interface RunnerTests : XCTestCase + +@end + +@implementation RunnerTests + +- (void)testExample { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. +} + +@end diff --git a/testModuleD_1/testmoduleD/lib/Game.dart b/testModuleD_1/testmoduleD/lib/Game.dart new file mode 100644 index 0000000..981f1f4 --- /dev/null +++ b/testModuleD_1/testmoduleD/lib/Game.dart @@ -0,0 +1,280 @@ +import 'dart:async'; +import 'dart:math'; + +import 'package:flutter/material.dart'; +import 'package:testmoduled/gameOver.dart'; +import 'package:testmoduled/main.dart'; +import 'dart:ui'; + +import 'package:testmoduled/ranking.dart'; +import 'package:testmoduled/username.dart'; + +late Offset playerOffset; + +int mkg = 0; +int fg = 0; +int pf = 0; +int fish = 0; +int gt = 0; + + + +class Piece{ + late int score; + late String assets; + late Offset offset; + bool alive =true; + Piece(this.score,this.assets,this.offset); +} + + +class Game extends StatefulWidget { + const Game({super.key}); + + @override + State createState() => _GameState(); +} + +class _GameState extends State with TickerProviderStateMixin{ + late int live; + late int score; + late int duration; + late Timer timer; + bool isPause =false; + late AnimationController controller; + late List pieces; + late double speed; + @override + void initState() { + // TODO: implement initState + super.initState(); + resetGame(); + } + + void resetGame(){ + live = 3; + score = 0; + duration = 0; + speed = 0.5; + pieces = []; + playerOffset = Offset(phoneWidth-100, phoneHeight-110); + timer = Timer.periodic(Duration(seconds: 1), (_) { + duration++; + String randomString = dishList[Random().nextInt(dishList.length)]; + pieces.add(Piece( + mapData[randomString]["score"], + mapData[randomString]["assets"], + Offset(Random().nextInt((phoneWidth-160).toInt())+80, 300) + )); + setState(() { + + }); + }); + controller = AnimationController(vsync: this,duration: Duration(seconds: 1)) + ..addListener(a) + ..repeat() + ; + } + + void a(){ + myDown(); + upDate(); + gameOver(); + setState(() { + }); + } + + + void myDown(){ + for (var piece in pieces) { + piece.offset+=Offset(0,speed); + if(piece.offset.dy>phoneHeight){ + piece.alive = false; + if(piece.score>0){ + live--; + } + } + } + setState(() { + + }); + } + + void gameOver(){ + if(live==0){ + controller.dispose(); + timer.cancel(); + rankList.add(ScoreModal(score, duration, textEditingController.value.text)); + Navigator.of(context).push(MaterialPageRoute(builder: (c)=>GameOver())); + } + + } + + void upDate(){ + pieces.removeWhere((element) => !element.alive); + speed = (score~/100).toDouble()+0.5; + // if(score%50==0){ + // live++; + // } + for (var piece in pieces) { + if((piece.offset.dy-playerOffset.dy).abs()<65 && (piece.offset.dx-playerOffset.dx).abs()<65){ + piece.alive =false; + score+=piece.score; + if(piece.score==30){ + duration+=30; + } + if(piece.score==-20){ + live--; + } + + switch(piece.score){ + case 10: + fg++; + case 20: + mkg++; + case 30: + pf++; + case -20: + fish++; + case -10: + gt++; + } + + + } + } + setState(() { + + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: GestureDetector( + onPanUpdate: (d){ + if(d.globalPosition.dx>80 && d.globalPosition.dxNavigator.of(context).push(MaterialPageRoute(builder: (c)=>StartGame())),child: Image.asset("lib/assets/out.png",height: 50,width: 50,fit: BoxFit.fill,)), + + + ], + ) + ) + ); + } + + + +} diff --git a/testModuleD_1/testmoduleD/lib/assets/Baguette.png b/testModuleD_1/testmoduleD/lib/assets/Baguette.png new file mode 100755 index 0000000..d4ddbc6 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/Baguette.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/baguette_box.png b/testModuleD_1/testmoduleD/lib/assets/baguette_box.png new file mode 100755 index 0000000..9e95f5e Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/baguette_box.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/bg.jpg b/testModuleD_1/testmoduleD/lib/assets/bg.jpg new file mode 100755 index 0000000..1c55e8b Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/bg.jpg differ diff --git a/testModuleD_1/testmoduleD/lib/assets/board.png b/testModuleD_1/testmoduleD/lib/assets/board.png new file mode 100755 index 0000000..e53899d Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/board.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/bone.png b/testModuleD_1/testmoduleD/lib/assets/bone.png new file mode 100755 index 0000000..145d8e7 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/bone.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/bone_box.png b/testModuleD_1/testmoduleD/lib/assets/bone_box.png new file mode 100755 index 0000000..38c1825 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/bone_box.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/bottom_bg.png b/testModuleD_1/testmoduleD/lib/assets/bottom_bg.png new file mode 100755 index 0000000..c052e54 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/bottom_bg.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/fishbone.png b/testModuleD_1/testmoduleD/lib/assets/fishbone.png new file mode 100755 index 0000000..a47328c Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/fishbone.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/fishbone_box.png b/testModuleD_1/testmoduleD/lib/assets/fishbone_box.png new file mode 100755 index 0000000..1081de1 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/fishbone_box.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/game_bg.jpg b/testModuleD_1/testmoduleD/lib/assets/game_bg.jpg new file mode 100755 index 0000000..a943537 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/game_bg.jpg differ diff --git a/testModuleD_1/testmoduleD/lib/assets/life.png b/testModuleD_1/testmoduleD/lib/assets/life.png new file mode 100755 index 0000000..5c55e8d Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/life.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/macaron.png b/testModuleD_1/testmoduleD/lib/assets/macaron.png new file mode 100755 index 0000000..7736a98 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/macaron.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/macaron_box.png b/testModuleD_1/testmoduleD/lib/assets/macaron_box.png new file mode 100755 index 0000000..e9fceb7 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/macaron_box.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/out.png b/testModuleD_1/testmoduleD/lib/assets/out.png new file mode 100755 index 0000000..2be66f8 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/out.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/play.png b/testModuleD_1/testmoduleD/lib/assets/play.png new file mode 100755 index 0000000..d20a876 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/play.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/player.png b/testModuleD_1/testmoduleD/lib/assets/player.png new file mode 100755 index 0000000..096274a Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/player.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/puff.png b/testModuleD_1/testmoduleD/lib/assets/puff.png new file mode 100755 index 0000000..65ec777 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/puff.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/puff_box.png b/testModuleD_1/testmoduleD/lib/assets/puff_box.png new file mode 100755 index 0000000..f57c73c Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/puff_box.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/restart.png b/testModuleD_1/testmoduleD/lib/assets/restart.png new file mode 100755 index 0000000..b376f7f Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/restart.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/stop.png b/testModuleD_1/testmoduleD/lib/assets/stop.png new file mode 100755 index 0000000..c70e795 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/stop.png differ diff --git a/testModuleD_1/testmoduleD/lib/assets/title_bg.png b/testModuleD_1/testmoduleD/lib/assets/title_bg.png new file mode 100755 index 0000000..f6855d4 Binary files /dev/null and b/testModuleD_1/testmoduleD/lib/assets/title_bg.png differ diff --git a/testModuleD_1/testmoduleD/lib/gameOver.dart b/testModuleD_1/testmoduleD/lib/gameOver.dart new file mode 100644 index 0000000..d6e3546 --- /dev/null +++ b/testModuleD_1/testmoduleD/lib/gameOver.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; +import 'package:testmoduled/ranking.dart'; + +class GameOver extends StatefulWidget { + const GameOver({super.key}); + + @override + State createState() => _GameOverState(); +} + +class _GameOverState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body:Stack( + children: [ + Positioned( + left: 0, + right: 0, + top: 32, + child: Text("Game Over") + ), + //列表 + Positioned( + left: 32, + right: 32, + bottom: 0, + child: myButton(50, double.infinity, "Next ➡️", Colors.black87, () => Navigator.of(context).push(MaterialPageRoute(builder: (c)=>Ranking()))) + ), + + ], + ) + ); + } +} + +myButton(double height,double width,String text,Color backColor,Function()? onTap){ + return GestureDetector( + onTap: onTap, + child: Container( + alignment: Alignment.center, + height: height, + width: width, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1,color: Colors.black54), + color: backColor + ), + child: Text(text,style: TextStyle(fontSize: 14,fontWeight: FontWeight.w500,color: Colors.white)) + ), + ); +} diff --git a/testModuleD_1/testmoduleD/lib/main.dart b/testModuleD_1/testmoduleD/lib/main.dart new file mode 100644 index 0000000..a08c225 --- /dev/null +++ b/testModuleD_1/testmoduleD/lib/main.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:testmoduled/username.dart'; + +void main(){ + runApp(MaterialApp( + home: StartGame(), + debugShowCheckedModeBanner: false, + )); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays: []); +} + + +late double phoneHeight; +late double phoneWidth; + + +class StartGame extends StatefulWidget { + const StartGame({super.key}); + + @override + State createState() => _StartGameState(); +} + +class _StartGameState extends State { + @override + Widget build(BuildContext context) { + phoneHeight = MediaQuery.of(context).size.height; + phoneWidth = MediaQuery.of(context).size.width; + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("French dessert\ncollector",textAlign: TextAlign.center,style: TextStyle(fontSize: 22,fontWeight: FontWeight.w500,color: Colors.black87),), + SizedBox(height: 80), + myButton(40, 220, "Game Start", Colors.white,()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>userName()))) + ], + ), + ), + ); + } + + +} + + +myButton(double height,double width,String text,Color backColor,Function()? onTap){ + return GestureDetector( + onTap: onTap, + child: Container( + height: height, + width: width, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1,color: Colors.black54), + color: backColor + ), + child: Text(text,style: TextStyle(fontSize: 14,fontWeight: FontWeight.w500,color: Colors.black54)) + ), + ); +} \ No newline at end of file diff --git a/testModuleD_1/testmoduleD/lib/ranking.dart b/testModuleD_1/testmoduleD/lib/ranking.dart new file mode 100644 index 0000000..2353174 --- /dev/null +++ b/testModuleD_1/testmoduleD/lib/ranking.dart @@ -0,0 +1,131 @@ +import 'package:flutter/material.dart'; +import 'package:testmoduled/username.dart'; + +List dishList = [ + "fg", + "mk", + "pf", + "fish", + "gt" +]; + +Map mapData ={ + "fg":{ + 'score':10, + "assets":"Baguette.png" + }, + "mk":{ + 'score':20, + "assets":"macaron.png" + }, + 'pf':{ + 'score':30, + 'assets':"puff.png" + }, + 'fish':{ + "score":-20, + "assets":"fishbone.png" + }, + "gt":{ + "score":-10, + "assets":"bone.png" + } +}; + + + +class ScoreModal{ + late int score; + late int duration; + late String name; + ScoreModal(this.score,this.duration,this.name); + + static int compare(ScoreModal a,ScoreModal b){ + if(a.score>b.score){ + return b.score.compareTo(a.score); + }else if(a.duration>b.duration){ + return a.duration.compareTo(b.duration); + }else{ + return 0; + } + } + +} + + +List rankList = [ + ScoreModal(20, 40, "dasd"), + ScoreModal(43, 43, "saas"), + ScoreModal(32, 223, "fd"), + ScoreModal(2112, 323, "dasdasdd"), +]; + + +class Ranking extends StatefulWidget { + const Ranking({super.key}); + + @override + State createState() => _RankingState(); +} + +class _RankingState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87), + child: Column( + children: [ + Row( + children: ["Rank","name","Time","Score"].map((e) => Text(e)).toList(), + ), + myRankingList(), + myButton(50, 220, "Tap To Retry", Colors.black87, () => Navigator.of(context).push(MaterialPageRoute(builder: (c)=>userName()))) + ], + ), + ) + ); + } + + myRankingList(){ + rankList.sort(ScoreModal.compare); + int rank = 1; + return Column( + children: List.generate(rankList.length, (index){ + if(index>0){ + if(rankList[index].duration==rankList[index-1].duration && rankList[index].score==rankList[index-1].score){ + }else{ + rank++; + } + } + return Row( + children: [ + Text("$rank"), + Text(rankList[index].name), + Text("Time: ${((rankList[index]).duration~/60).toString().padLeft(2,"0")}:${((rankList[index]).duration%60).toString().padLeft(2,"0")}",style: TextStyle(fontSize: 16,fontWeight: FontWeight.w500,color: Colors.black87),) + ,Text(rankList[index].score.toString()), + ], + ); + }) + ); + } + +} + +myButton(double height,double width,String text,Color backColor,Function()? onTap){ + return GestureDetector( + onTap: onTap, + child: Container( + alignment: Alignment.center, + height: height, + width: width, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1,color: Colors.black54), + color: backColor + ), + child: Text(text,style: TextStyle(fontSize: 14,fontWeight: FontWeight.w500,color: Colors.white)) + ), + ); +} \ No newline at end of file diff --git a/testModuleD_1/testmoduleD/lib/username.dart b/testModuleD_1/testmoduleD/lib/username.dart new file mode 100644 index 0000000..37e7f9f --- /dev/null +++ b/testModuleD_1/testmoduleD/lib/username.dart @@ -0,0 +1,68 @@ +import 'package:flutter/material.dart'; +import 'package:testmoduled/Game.dart'; + +TextEditingController textEditingController = TextEditingController(); +class userName extends StatefulWidget { + const userName({super.key}); + + @override + State createState() => _userNameState(); +} + +class _userNameState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Player Name",style: TextStyle(fontSize: 22,fontWeight: FontWeight.w500,color: Colors.black87),), + SizedBox(height: 80), + Container( + height: 40, + width: 220, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1,color:Colors.black87) + ), + child: TextField( + controller: textEditingController, + decoration: InputDecoration( + hintText: "Input your name", + hintStyle: TextStyle(color: Colors.black38,fontSize: 18), + border: InputBorder.none + ), + ) + ), + SizedBox(height: 16,), + myButton(40, 220, "Game Start", Colors.black87,(){ + if(textEditingController.value.text.isNotEmpty){ + Navigator.of(context).push(MaterialPageRoute(builder: (c)=>Game())); + } + }) + ], + ), + ), + ); + } +} + +myButton(double height,double width,String text,Color backColor,Function()? onTap){ + return GestureDetector( + onTap: onTap, + child: Container( + alignment: Alignment.center, + height: height, + width: width, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1,color: Colors.black54), + color: backColor + ), + child: Text(text,style: TextStyle(fontSize: 14,fontWeight: FontWeight.w500,color: Colors.white)) + ), + ); +} \ No newline at end of file diff --git a/testModuleD_1/testmoduleD/pubspec.lock b/testModuleD_1/testmoduleD/pubspec.lock new file mode 100644 index 0000000..b890004 --- /dev/null +++ b/testModuleD_1/testmoduleD/pubspec.lock @@ -0,0 +1,188 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.17.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.3" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.6.7" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.9.1" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.8.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.5.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.4" +sdks: + dart: ">=3.0.2 <4.0.0" diff --git a/testModuleD_1/testmoduleD/pubspec.yaml b/testModuleD_1/testmoduleD/pubspec.yaml new file mode 100644 index 0000000..f8d1661 --- /dev/null +++ b/testModuleD_1/testmoduleD/pubspec.yaml @@ -0,0 +1,89 @@ +name: testmoduled +description: A new Flutter project. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.0.2 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - lib/assets/ + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/testModuleD_1/testmoduleD/test/widget_test.dart b/testModuleD_1/testmoduleD/test/widget_test.dart new file mode 100644 index 0000000..b6b8ad2 --- /dev/null +++ b/testModuleD_1/testmoduleD/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:testmoduled/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/testModuleE_1/design.fig b/testModuleE_1/design.fig new file mode 100644 index 0000000..f2df161 Binary files /dev/null and b/testModuleE_1/design.fig differ diff --git a/testModuleE_1/result.apk b/testModuleE_1/result.apk new file mode 100644 index 0000000..ce27c71 Binary files /dev/null and b/testModuleE_1/result.apk differ diff --git a/testmodulec_1/result.apk b/testmodulec_1/result.apk new file mode 100644 index 0000000..fe95cce Binary files /dev/null and b/testmodulec_1/result.apk differ diff --git a/testmodulec_1/testmodulec_1/.gitignore b/testmodulec_1/testmodulec_1/.gitignore new file mode 100644 index 0000000..24476c5 --- /dev/null +++ b/testmodulec_1/testmodulec_1/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/testmodulec_1/testmodulec_1/.metadata b/testmodulec_1/testmodulec_1/.metadata new file mode 100644 index 0000000..a697366 --- /dev/null +++ b/testmodulec_1/testmodulec_1/.metadata @@ -0,0 +1,33 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + channel: stable + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + - platform: android + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + - platform: ios + create_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + base_revision: 9cd3d0d9ff05768afa249e036acc66e8abe93bff + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/testmodulec_1/testmodulec_1/README.md b/testmodulec_1/testmodulec_1/README.md new file mode 100644 index 0000000..d7a0ca0 --- /dev/null +++ b/testmodulec_1/testmodulec_1/README.md @@ -0,0 +1,16 @@ +# testmodulec_1 + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/testmodulec_1/testmodulec_1/analysis_options.yaml b/testmodulec_1/testmodulec_1/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/testmodulec_1/testmodulec_1/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/testmodulec_1/testmodulec_1/android/.gitignore b/testmodulec_1/testmodulec_1/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/testmodulec_1/testmodulec_1/android/app/build.gradle b/testmodulec_1/testmodulec_1/android/app/build.gradle new file mode 100644 index 0000000..3c71651 --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/build.gradle @@ -0,0 +1,60 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + namespace "com.example.testmodulec_1" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.testmodulec_1" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} diff --git a/testmodulec_1/testmodulec_1/android/app/src/debug/AndroidManifest.xml b/testmodulec_1/testmodulec_1/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/AndroidManifest.xml b/testmodulec_1/testmodulec_1/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..9f820ae --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/java/com/example/testmodulec_1/MainActivity.java b/testmodulec_1/testmodulec_1/android/app/src/main/java/com/example/testmodulec_1/MainActivity.java new file mode 100644 index 0000000..506308f --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/main/java/com/example/testmodulec_1/MainActivity.java @@ -0,0 +1,6 @@ +package com.example.testmodulec_1; + +import io.flutter.embedding.android.FlutterActivity; + +public class MainActivity extends FlutterActivity { +} diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/drawable-v21/launch_background.xml b/testmodulec_1/testmodulec_1/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/drawable/launch_background.xml b/testmodulec_1/testmodulec_1/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..db77bb4 Binary files /dev/null and b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..17987b7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..09d4391 Binary files /dev/null and b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..d5f1c8d Binary files /dev/null and b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..4d6372e Binary files /dev/null and b/testmodulec_1/testmodulec_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/values-night/styles.xml b/testmodulec_1/testmodulec_1/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/testmodulec_1/testmodulec_1/android/app/src/main/res/values/styles.xml b/testmodulec_1/testmodulec_1/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/testmodulec_1/testmodulec_1/android/app/src/profile/AndroidManifest.xml b/testmodulec_1/testmodulec_1/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/testmodulec_1/testmodulec_1/android/build.gradle b/testmodulec_1/testmodulec_1/android/build.gradle new file mode 100644 index 0000000..f7eb7f6 --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.3.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/testmodulec_1/testmodulec_1/android/gradle.properties b/testmodulec_1/testmodulec_1/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/testmodulec_1/testmodulec_1/android/gradle/wrapper/gradle-wrapper.properties b/testmodulec_1/testmodulec_1/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a80c92d --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=file:///Users/zhouwu/.gradle/wrapper/gradle-7.5-all.zip diff --git a/testmodulec_1/testmodulec_1/android/settings.gradle b/testmodulec_1/testmodulec_1/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/testmodulec_1/testmodulec_1/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/testmodulec_1/testmodulec_1/ios/.gitignore b/testmodulec_1/testmodulec_1/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/testmodulec_1/testmodulec_1/ios/Flutter/AppFrameworkInfo.plist b/testmodulec_1/testmodulec_1/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/testmodulec_1/testmodulec_1/ios/Flutter/Debug.xcconfig b/testmodulec_1/testmodulec_1/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/testmodulec_1/testmodulec_1/ios/Flutter/Release.xcconfig b/testmodulec_1/testmodulec_1/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.pbxproj b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7fa6ede --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,613 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmodulec1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmodulec1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmodulec1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmodulec1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmodulec1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.testmodulec1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e42adcb --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/contents.xcworkspacedata b/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner/AppDelegate.swift b/testmodulec_1/testmodulec_1/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000..dc9ada4 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..7353c41 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..6ed2d93 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..4cd7b00 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..fe73094 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..321773c Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..502f463 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..e9f5fea Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..84ac32a Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..8953cba Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0467bf1 Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Base.lproj/LaunchScreen.storyboard b/testmodulec_1/testmodulec_1/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Base.lproj/Main.storyboard b/testmodulec_1/testmodulec_1/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Info.plist b/testmodulec_1/testmodulec_1/ios/Runner/Info.plist new file mode 100644 index 0000000..f4bf5e8 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Testmodulec 1 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + testmodulec_1 + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/testmodulec_1/testmodulec_1/ios/Runner/Runner-Bridging-Header.h b/testmodulec_1/testmodulec_1/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/testmodulec_1/testmodulec_1/ios/RunnerTests/RunnerTests.swift b/testmodulec_1/testmodulec_1/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/testmodulec_1/testmodulec_1/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/testmodulec_1/testmodulec_1/lib/Menu.dart b/testmodulec_1/testmodulec_1/lib/Menu.dart new file mode 100644 index 0000000..3761ee2 --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/Menu.dart @@ -0,0 +1,77 @@ +import 'package:flutter/material.dart'; +import 'package:testmodulec_1/main.dart'; + + +class Menu extends StatefulWidget { + const Menu({super.key}); + + @override + State createState() => _MenuState(); +} + +class _MenuState extends State { + @override + Widget build(BuildContext context) { + return DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Text("Recommended"), + SizedBox( + height: 300, + child: ListView.builder( + shrinkWrap: true, + itemCount: 5, + scrollDirection: Axis.horizontal, + itemBuilder: (c,i)=>one(menuData[i])) + ), + Text("Hot"), + SizedBox( + height: 300, + child: ListView.builder( + shrinkWrap: true, + itemCount: 5, + scrollDirection: Axis.horizontal, + itemBuilder: (c,i)=>one(menuData[i+5])) + ), + ], + ), + ); + } + + + Widget one(Map mapData){ + return Container( + width: MediaQuery.of(context).size.width/3, + margin: EdgeInsets.symmetric(horizontal: 16), + padding: EdgeInsets.all(16), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded(flex: 3,child: ClipRRect(borderRadius: BorderRadius.circular(16),child: Image.asset("lib/assets/${mapData["image_url"]}",fit: BoxFit.fill))), + SizedBox(width: 15), + + Expanded(flex: 2,child: + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(mapData["name"].toString()), + Row(crossAxisAlignment: CrossAxisAlignment.start,children: List.generate(5, (index) => Padding( + padding: const EdgeInsets.only(right: 4), + child: Icon(Icons.star_border,color: Colors.grey), + )),), + Text(mapData["remark"].toString()) + ], + ) + ), + ], + ) + ); + } +} diff --git a/testmodulec_1/testmodulec_1/lib/assets/icon_add.JPG b/testmodulec_1/testmodulec_1/lib/assets/icon_add.JPG new file mode 100755 index 0000000..b15c51b Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/icon_add.JPG differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/icon_del.JPG b/testmodulec_1/testmodulec_1/lib/assets/icon_del.JPG new file mode 100755 index 0000000..b0a1697 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/icon_del.JPG differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_1_01.png b/testmodulec_1/testmodulec_1/lib/assets/type_1_01.png new file mode 100755 index 0000000..2296214 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_1_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_1_02.png b/testmodulec_1/testmodulec_1/lib/assets/type_1_02.png new file mode 100755 index 0000000..4a50da9 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_1_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_1_03.png b/testmodulec_1/testmodulec_1/lib/assets/type_1_03.png new file mode 100755 index 0000000..aa75ea4 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_1_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_1_04.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_1_04.jpeg new file mode 100755 index 0000000..271b522 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_1_04.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_1_05.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_1_05.jpeg new file mode 100755 index 0000000..fd12c77 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_1_05.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_1_06.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_1_06.jpeg new file mode 100755 index 0000000..8fcb4b3 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_1_06.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_01.png b/testmodulec_1/testmodulec_1/lib/assets/type_2_01.png new file mode 100755 index 0000000..4a18894 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_02.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_2_02.jpg new file mode 100755 index 0000000..9fb3fc2 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_02.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_03.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_2_03.jpg new file mode 100755 index 0000000..cc091a7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_03.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_04.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_2_04.jpeg new file mode 100755 index 0000000..5ddf03c Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_04.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_05.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_2_05.jpeg new file mode 100755 index 0000000..3d03c26 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_05.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_06.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_2_06.jpeg new file mode 100755 index 0000000..e4a2f17 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_06.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_07.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_2_07.jpg new file mode 100755 index 0000000..9dc4457 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_07.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_2_08.png b/testmodulec_1/testmodulec_1/lib/assets/type_2_08.png new file mode 100755 index 0000000..f64ce8a Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_2_08.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_01.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_3_01.jpg new file mode 100755 index 0000000..17740b5 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_01.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_02.png b/testmodulec_1/testmodulec_1/lib/assets/type_3_02.png new file mode 100755 index 0000000..84f2797 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_03.png b/testmodulec_1/testmodulec_1/lib/assets/type_3_03.png new file mode 100755 index 0000000..b6b3028 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_04.png b/testmodulec_1/testmodulec_1/lib/assets/type_3_04.png new file mode 100755 index 0000000..097badc Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_04.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_05.png b/testmodulec_1/testmodulec_1/lib/assets/type_3_05.png new file mode 100755 index 0000000..1d5725d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_05.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_06.png b/testmodulec_1/testmodulec_1/lib/assets/type_3_06.png new file mode 100755 index 0000000..36a0cfc Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_06.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_07.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_3_07.jpg new file mode 100755 index 0000000..42290c7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_07.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_08.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_3_08.jpg new file mode 100755 index 0000000..064f7d2 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_08.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_09.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_3_09.jpeg new file mode 100755 index 0000000..c9f360d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_09.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_3_10.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_3_10.jpeg new file mode 100755 index 0000000..883d1bc Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_3_10.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_4_01.png b/testmodulec_1/testmodulec_1/lib/assets/type_4_01.png new file mode 100755 index 0000000..eaa6a1d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_4_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_4_02.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_4_02.jpg new file mode 100755 index 0000000..23f7dc5 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_4_02.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_4_03.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_4_03.jpeg new file mode 100755 index 0000000..70e199d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_4_03.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_5_01.png b/testmodulec_1/testmodulec_1/lib/assets/type_5_01.png new file mode 100755 index 0000000..6b03541 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_5_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_5_02.png b/testmodulec_1/testmodulec_1/lib/assets/type_5_02.png new file mode 100755 index 0000000..cb2d312 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_5_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_5_03.jpg b/testmodulec_1/testmodulec_1/lib/assets/type_5_03.jpg new file mode 100755 index 0000000..bb557bb Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_5_03.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_6_01.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_6_01.jpeg new file mode 100755 index 0000000..d6a9505 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_6_01.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_6_02.png b/testmodulec_1/testmodulec_1/lib/assets/type_6_02.png new file mode 100755 index 0000000..9a53374 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_6_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_6_03.png b/testmodulec_1/testmodulec_1/lib/assets/type_6_03.png new file mode 100755 index 0000000..2b356aa Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_6_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_6_04.png b/testmodulec_1/testmodulec_1/lib/assets/type_6_04.png new file mode 100755 index 0000000..ceed9f6 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_6_04.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_6_05.png b/testmodulec_1/testmodulec_1/lib/assets/type_6_05.png new file mode 100755 index 0000000..4af60f3 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_6_05.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_7_01.png b/testmodulec_1/testmodulec_1/lib/assets/type_7_01.png new file mode 100755 index 0000000..b204f6b Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_7_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_7_02.png b/testmodulec_1/testmodulec_1/lib/assets/type_7_02.png new file mode 100755 index 0000000..ee8b7e9 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_7_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_7_03.png b/testmodulec_1/testmodulec_1/lib/assets/type_7_03.png new file mode 100755 index 0000000..e668e85 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_7_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_7_04.png b/testmodulec_1/testmodulec_1/lib/assets/type_7_04.png new file mode 100755 index 0000000..8b2a629 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_7_04.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_7_05.png b/testmodulec_1/testmodulec_1/lib/assets/type_7_05.png new file mode 100755 index 0000000..456a7e7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_7_05.png differ diff --git a/testmodulec_1/testmodulec_1/lib/assets/type_7_06.jpeg b/testmodulec_1/testmodulec_1/lib/assets/type_7_06.jpeg new file mode 100755 index 0000000..15d456c Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/assets/type_7_06.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/ca.dart b/testmodulec_1/testmodulec_1/lib/ca.dart new file mode 100644 index 0000000..9d0807f --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/ca.dart @@ -0,0 +1,170 @@ +import 'package:flutter/material.dart'; +import 'package:testmodulec_1/main.dart'; +List> cartList = []; + + +class ca extends StatefulWidget { + const ca({super.key}); + + @override + State createState() => _caState(); +} + +class _caState extends State { + List string = [ + "Cheese", + "Seafood", + "Stew", + "Dessert", + "Wine" + ]; + + bool showCart = false; + bool showDetail =false; + Map SelectMap = {}; + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Row( + children: [ + Expanded( + flex: 1, + child: Column( + children: string.map((e) => Padding(padding: EdgeInsets.only(top: 24),child: Text(e,style: TextStyle(color: e=="Cheese"?Colors.blue:Colors.grey,fontWeight: FontWeight.w500,fontSize: 22),))).toList(), + ), + ), + Expanded( + flex: 5, + child: SingleChildScrollView( + child: DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 5, + scrollDirection: Axis.vertical, + itemBuilder: (c,i)=>one(menuData[i])), + ], + ), + ), + ), + ), + ], + ), + showDetail?mycart():SizedBox(), + + ], + ); + } + + + mycart(){ + return DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87), + child: Container( + color: Colors.black38, + child:Center( + child: Container( + height: 400, + width: 500, + color: Colors.white, + child: Column( + children: [ + Expanded(flex: 2,child: ClipRRect(borderRadius: BorderRadius.circular(16),child: Image.asset("lib/assets/${SelectMap["image_url"]}",width: double.infinity,fit: BoxFit.fitWidth))), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(SelectMap["name"].toString()), + Row(crossAxisAlignment: CrossAxisAlignment.start,children: List.generate(5, (index) => Padding( + padding: const EdgeInsets.only(right: 4), + child: Icon(Icons.star_border,color: Colors.grey), + )),), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(SelectMap["remark"].toString()), + Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset("lib/assets/icon_del.JPG",height: 50,width: 50,), + Text("0"), + Image.asset("lib/assets/icon_add.JPG",height: 50,width: 50,), + ], + ), + ElevatedButton(onPressed: (){ + cartList.add(SelectMap); + setState(() { + showDetail = false; + }); + }, child: Text("Submit")) + ], + ) + ], + ) + ], + ) + ], + ) + ), + ) + ), + ); + } + + + Widget one(Map mapData){ + return GestureDetector( + onTap: (){ + setState(() { + showDetail = true; + SelectMap = mapData; + }); + }, + child: Container( + height: 200, + margin: EdgeInsets.symmetric(vertical: 16,horizontal: 16), + padding: EdgeInsets.all(16), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded(flex: 2,child: ClipRRect(borderRadius: BorderRadius.circular(16),child: Image.asset("lib/assets/${mapData["image_url"]}",fit: BoxFit.cover))), + SizedBox(width: 15), + Expanded(flex:3,child: + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(mapData["name"].toString()), + Text(mapData["price"].toString()), + Text(mapData["remark"].toString()), + ], + ), + Row( + children: [ + Image.asset("lib/assets/icon_del.JPG",height: 50,width: 50,), + Text("0"), + Image.asset("lib/assets/icon_add.JPG",height: 50,width: 50,), + ], + ) + ], + ) + ), + ], + ) + ), + ); + } +} diff --git a/testmodulec_1/testmodulec_1/lib/checkPage.dart b/testmodulec_1/testmodulec_1/lib/checkPage.dart new file mode 100644 index 0000000..f41b4c2 --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/checkPage.dart @@ -0,0 +1,159 @@ + +import 'package:flutter/material.dart'; +import 'package:testmodulec_1/ca.dart'; +import 'package:testmodulec_1/main.dart'; +import 'package:testmodulec_1/succ.dart'; +class Checkpage extends StatefulWidget { + const Checkpage({super.key}); + + @override + State createState() => _CheckpageState(); +} + +class _CheckpageState extends State { + bool showCheckOut =false; + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromRGBO(245, 245, 245, 1), + appBar: AppBar( + title: Text("CheckOut"), + centerTitle: true, + ), + body: Stack( + children: [ + Positioned( + left: 16, + right: 16, + top: 16, + child: SingleChildScrollView( + child: Column( + children: List.generate(cartList.length, (index) => cartCountOne(cartList[index], index)) + ), + ) + ), + Positioned( + right: 16, + bottom: 16, + child: two() + ), + showCheckOut?buildChekc():Positioned(left: 0,child: SizedBox()) + ], + ), + ); + } + + Widget buildChekc(){ + return Container( + color: Colors.black54, + child: Center( + child: Container( + height: 200, + width: 300, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white + ), + child: DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Text("Notice"), + Text("Whether to check out"), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ElevatedButton(onPressed: (){ + setState(() { + showCheckOut =false; + }); + }, child: Text("No",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ElevatedButton(onPressed:()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>Scc())), child: Text("Yes",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ], + ) + ], + ), + ) + ), + ) + ); + } + + Widget two(){ + return Container( + height: 150, + width: 250, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1,color: Colors.black87), + color: Colors.white + ), + child: Row( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text("Total: €30",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87),), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ElevatedButton(onPressed: ()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>StartGame())), child: Text("AddDish",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ElevatedButton(onPressed: (){ + setState(() { + showCheckOut = true; + }); + }, child: Text("CheckOut",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ], + ) + ], + ) + ], + ) + ); + } + + Widget cartCountOne(Map mapData,int index){ + return Container( + height: 140, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white, + border: Border.all(width: 2) + ), + child: DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.grey), + child: Row( + children: [ + Expanded(flex: 1,child: Image.asset("lib/assets/${mapData["image_url"]}",fit: BoxFit.cover,height: double.infinity,)), + Expanded(flex: 2,child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(mapData["name"].toString()), + Text("10"), + ], + ) + ), + Expanded( + flex: 1, + child: Text("Status: Order placed"), + ), + Expanded(flex: 2,child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text(mapData["price"].toString(),style: TextStyle(color: Colors.red,fontSize: 22,fontWeight: FontWeight.w500),), + ElevatedButton(onPressed: (){ + setState(() { + cartList.removeAt(index); + }); + }, child: Text("Clear",style: TextStyle(color: Colors.red,fontSize: 22,fontWeight: FontWeight.w500),)), + ], + )) + ], + ), + ) + ); + } +} diff --git a/testmodulec_1/testmodulec_1/lib/images/type_1_01.png b/testmodulec_1/testmodulec_1/lib/images/type_1_01.png new file mode 100755 index 0000000..2296214 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_1_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_1_02.png b/testmodulec_1/testmodulec_1/lib/images/type_1_02.png new file mode 100755 index 0000000..4a50da9 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_1_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_1_03.png b/testmodulec_1/testmodulec_1/lib/images/type_1_03.png new file mode 100755 index 0000000..aa75ea4 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_1_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_1_04.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_1_04.jpeg new file mode 100755 index 0000000..271b522 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_1_04.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_1_05.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_1_05.jpeg new file mode 100755 index 0000000..fd12c77 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_1_05.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_1_06.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_1_06.jpeg new file mode 100755 index 0000000..8fcb4b3 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_1_06.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_01.png b/testmodulec_1/testmodulec_1/lib/images/type_2_01.png new file mode 100755 index 0000000..4a18894 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_02.jpg b/testmodulec_1/testmodulec_1/lib/images/type_2_02.jpg new file mode 100755 index 0000000..9fb3fc2 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_02.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_03.jpg b/testmodulec_1/testmodulec_1/lib/images/type_2_03.jpg new file mode 100755 index 0000000..cc091a7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_03.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_04.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_2_04.jpeg new file mode 100755 index 0000000..5ddf03c Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_04.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_05.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_2_05.jpeg new file mode 100755 index 0000000..3d03c26 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_05.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_06.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_2_06.jpeg new file mode 100755 index 0000000..e4a2f17 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_06.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_07.jpg b/testmodulec_1/testmodulec_1/lib/images/type_2_07.jpg new file mode 100755 index 0000000..9dc4457 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_07.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_2_08.png b/testmodulec_1/testmodulec_1/lib/images/type_2_08.png new file mode 100755 index 0000000..f64ce8a Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_2_08.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_01.jpg b/testmodulec_1/testmodulec_1/lib/images/type_3_01.jpg new file mode 100755 index 0000000..17740b5 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_01.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_02.png b/testmodulec_1/testmodulec_1/lib/images/type_3_02.png new file mode 100755 index 0000000..84f2797 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_03.png b/testmodulec_1/testmodulec_1/lib/images/type_3_03.png new file mode 100755 index 0000000..b6b3028 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_04.png b/testmodulec_1/testmodulec_1/lib/images/type_3_04.png new file mode 100755 index 0000000..097badc Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_04.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_05.png b/testmodulec_1/testmodulec_1/lib/images/type_3_05.png new file mode 100755 index 0000000..1d5725d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_05.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_06.png b/testmodulec_1/testmodulec_1/lib/images/type_3_06.png new file mode 100755 index 0000000..36a0cfc Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_06.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_07.jpg b/testmodulec_1/testmodulec_1/lib/images/type_3_07.jpg new file mode 100755 index 0000000..42290c7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_07.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_08.jpg b/testmodulec_1/testmodulec_1/lib/images/type_3_08.jpg new file mode 100755 index 0000000..064f7d2 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_08.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_09.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_3_09.jpeg new file mode 100755 index 0000000..c9f360d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_09.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_3_10.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_3_10.jpeg new file mode 100755 index 0000000..883d1bc Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_3_10.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_4_01.png b/testmodulec_1/testmodulec_1/lib/images/type_4_01.png new file mode 100755 index 0000000..eaa6a1d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_4_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_4_02.jpg b/testmodulec_1/testmodulec_1/lib/images/type_4_02.jpg new file mode 100755 index 0000000..23f7dc5 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_4_02.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_4_03.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_4_03.jpeg new file mode 100755 index 0000000..70e199d Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_4_03.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_5_01.png b/testmodulec_1/testmodulec_1/lib/images/type_5_01.png new file mode 100755 index 0000000..6b03541 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_5_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_5_02.png b/testmodulec_1/testmodulec_1/lib/images/type_5_02.png new file mode 100755 index 0000000..cb2d312 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_5_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_5_03.jpg b/testmodulec_1/testmodulec_1/lib/images/type_5_03.jpg new file mode 100755 index 0000000..bb557bb Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_5_03.jpg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_6_01.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_6_01.jpeg new file mode 100755 index 0000000..d6a9505 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_6_01.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_6_02.png b/testmodulec_1/testmodulec_1/lib/images/type_6_02.png new file mode 100755 index 0000000..9a53374 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_6_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_6_03.png b/testmodulec_1/testmodulec_1/lib/images/type_6_03.png new file mode 100755 index 0000000..2b356aa Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_6_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_6_04.png b/testmodulec_1/testmodulec_1/lib/images/type_6_04.png new file mode 100755 index 0000000..ceed9f6 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_6_04.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_6_05.png b/testmodulec_1/testmodulec_1/lib/images/type_6_05.png new file mode 100755 index 0000000..4af60f3 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_6_05.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_7_01.png b/testmodulec_1/testmodulec_1/lib/images/type_7_01.png new file mode 100755 index 0000000..b204f6b Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_7_01.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_7_02.png b/testmodulec_1/testmodulec_1/lib/images/type_7_02.png new file mode 100755 index 0000000..ee8b7e9 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_7_02.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_7_03.png b/testmodulec_1/testmodulec_1/lib/images/type_7_03.png new file mode 100755 index 0000000..e668e85 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_7_03.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_7_04.png b/testmodulec_1/testmodulec_1/lib/images/type_7_04.png new file mode 100755 index 0000000..8b2a629 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_7_04.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_7_05.png b/testmodulec_1/testmodulec_1/lib/images/type_7_05.png new file mode 100755 index 0000000..456a7e7 Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_7_05.png differ diff --git a/testmodulec_1/testmodulec_1/lib/images/type_7_06.jpeg b/testmodulec_1/testmodulec_1/lib/images/type_7_06.jpeg new file mode 100755 index 0000000..15d456c Binary files /dev/null and b/testmodulec_1/testmodulec_1/lib/images/type_7_06.jpeg differ diff --git a/testmodulec_1/testmodulec_1/lib/json/food_menu.json b/testmodulec_1/testmodulec_1/lib/json/food_menu.json new file mode 100755 index 0000000..3ef07a3 --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/json/food_menu.json @@ -0,0 +1,371 @@ +[ + { + "name": "Brie Cheese ", + "price": "33", + "remark": "Sign must be ordered, netizens recommend ", + "type_id": "1", + "score": "5", + "image_url": "type_1_01.png" + }, + { + "name": "Conte Cheese ", + "price": "38", + "remark": "Monthly sales 70", + "type_id": "1", + "score": "4.5", + "image_url": "type_1_02.png" + }, + { + "name": "Camembert Cheese ", + "price": "33.8", + "remark": "Monthly sales 100+ praise 60%", + "type_id": "1", + "score": "5", + "image_url": "type_1_03.png" + + }, + { + "name": "Baguette ", + "price": "25", + "remark": "Monthly sales 100+ praise 100%", + "type_id": "1", + "score": "5", + "image_url": "type_1_04.jpeg" + }, + { + "name": "Brioche ", + "price": "38", + "remark": "Monthly sales 88", + "type_id": "1", + "score": "5", + "image_url": "type_1_05.jpeg" + + }, + { + "name": "Croissants ", + "price": "32", + "remark": "Monthly sales 87", + "type_id": "1", + "score": "5", + "image_url": "type_1_06.jpeg" + + }, + { + "name": "Brittany Oyster ", + "price": "48", + "remark": "Number four ", + "type_id": "2", + "score": "3", + "image_url": "type_2_01.png" + + }, + { + "name": "Lobster Biske ", + "price": "138", + "remark": "Number two in sales ", + "type_id": "2", + "score": "3", + "image_url": "type_2_02.jpg" + + }, + { + "name": "Cod pickle ", + "price": "88", + "remark": "Recently 100+ people order ", + "type_id": "2", + "score": "3", + "image_url": "type_2_03.jpg" + + }, + { + "name": "Shrimp vermicelli Salad ", + "price": "66", + "remark": "Monthly sales 100+", + "type_id": "2", + "score": "2.5", + "image_url": "type_2_04.jpeg" + + }, + { + "name": "Seafood burger ", + "price": "59", + "remark": "Kids like to eat online comments ", + "type_id": "2", + "score": "0.5", + "image_url": "type_2_05.jpeg" + + }, + { + "name": "Seafood kebab ", + "price": "25", + "remark": "Moderate price ", + "type_id": "2", + "score": "4.5", + "image_url": "type_2_06.jpeg" + + }, + { + "name": "French bouillon ", + "price": "28", + "remark": "Next time more ", + "type_id": "2", + "score": "3", + "image_url": "type_2_07.jpg" + + }, + { + "name": "French rainbow ", + "price": "38", + "remark": "Sweet and delicious ", + "type_id": "2", + "score": "3.5", + "image_url": "type_2_08.png" + + }, + { + "name": "French Roast Duck ", + "price": "85", + "remark": "Monthly sales 100+", + "type_id": "3", + "score": "3.5", + "image_url": "type_3_01.jpg" + + }, + { + "name": "Duck confit ", + "price": "72", + "remark": "Paella is the same as in the restaurant ", + "type_id": "3", + "score": "0.5", + "image_url": "type_3_02.png" + + }, + { + "name": "Fried duck breast ", + "price": "50", + "remark": "Monthly sales 64", + "type_id": "3", + "score": "1", + "image_url": "type_3_03.png" + + }, + { + "name": "Carpaccio ", + "price": "158", + "remark": "Monthly sales 42", + "type_id": "3", + "score": "4", + "image_url": "type_3_04.png" + + }, + { + "name": "Beef tartar ", + "price": "238", + "remark": "The material is rich ", + "type_id": "3", + "score": "3.5", + "image_url": "type_3_05.png" + + }, + { + "name": "Foie gras", + "price": "111", + "remark": "It's worth recommending.", + "type_id": "3", + "score": "4.5", + "image_url": "type_3_06.png" + + }, + { + "name": "Fried French Foie gras ", + "price": "133", + "remark": "Monthly sales 18", + "type_id": "3", + "score": "4", + "image_url": "type_3_07.jpg" + + }, + { + "name": "Chilled Foie gras ", + "price": "135", + "remark": "Monthly sales 18", + "type_id": "3", + "score": "4", + "image_url": "type_3_08.jpg" + + }, + { + "name": "French roast leg of lamb ", + "price": "288", + "remark": "Monthly sales 18", + "type_id": "3", + "score": "4.5", + "image_url": "type_3_09.jpeg" + + }, + { + "name": "Beef pudding ", + "price": "68", + "remark": "Monthly sales 18", + "type_id": "3", + "score": "4", + "image_url": "type_3_10.jpeg" + + }, + { + "name": "Red wine beef stew ", + "price": "155", + "remark": "Great value for money ", + "type_id": "4", + "score": "3", + "image_url": "type_4_01.png" + + }, + { + "name": "Stewed duck in Red Wine ", + "price": "88", + "remark": "Red wine is very strong ", + "type_id": "4", + "score": "3.5", + "image_url": "type_4_02.jpg" + + }, + { + "name": "Breton chowder ", + "price": "168", + "remark": "Monthly sale 19", + "type_id": "4", + "score": "5", + "image_url": "type_4_03.jpeg" + + }, + { + "name": "Provence Roast Chicken ", + "price": "58", + "remark": "Monthly sales 15", + "type_id": "5", + "score": "4.5", + "image_url": "type_5_01.png" + + }, + { + "name": "Provence leg of lamb ", + "price": "268", + "remark": "Monthly sales 5", + "type_id": "5", + "score": "4", + "image_url": "type_5_02.png" + + }, + { + "name": "Baked Pigeon in Brittany ", + "price": "73", + "remark": "Monthly sales 11", + "type_id": "5", + "score": "5", + "image_url": "type_5_03.jpg" + + }, + { + "name": "French Fruit tart ", + "price": "28", + "remark": "Traditional French fruit tart ", + "type_id": "6", + "score": "4.5", + "image_url": "type_6_01.jpeg" + + }, + { + "name": "Creme fraiche ", + "price": "18", + "remark": "Monthly sales 32", + "type_id": "6", + "score": "5", + "image_url": "type_6_02.png" + + }, + { + "name": "French Madeleines ", + "price": "25", + "remark": "Soft and sweet ", + "type_id": "6", + "score": "5", + "image_url": "type_6_03.png" + + }, + { + "name": "French Puff Pastry ", + "price": "28", + "remark": "Classic French dessert ", + "type_id": "6", + "score": "5", + "image_url": "type_6_04.png" + + }, + { + "name": "Crepe ", + "price": "18", + "remark": "Thin as paper ", + "type_id": "6", + "score": "5", + "image_url": "type_6_05.png" + + }, + { + "name": "Bordeaux ", + "price": "688", + "remark": "Monthly sales 6", + "type_id": "7", + "score": "5", + "image_url": "type_7_01.png" + + }, + { + "name": "Burgundy Wine ", + "price": "468", + "remark": "Monthly sales 3", + "type_id": "7", + "score": "5", + "image_url": "type_7_02.png" + + }, + { + "name": "Flower of Paris ", + "price": "666", + "remark": "Monthly sales 18", + "type_id": "7", + "score": "5", + "image_url": "type_7_03.png" + + }, + { + "name": "Princess Louis ", + "price": "1688", + "remark": "Monthly sales 10", + "type_id": "7", + "score": "5", + "image_url": "type_7_04.png" + + }, + { + "name": "Moet & Chandon ", + "price": "388", + "remark": "Monthly sales 18", + "type_id": "7", + "score": "5", + "image_url": "type_7_05.png" + + }, + { + "name": "Alsace Wine ", + "price": "760", + "remark": "Monthly sales 5", + "type_id": "7", + "score": "5", + "image_url": "type_7_06.jpeg" + + } +] + + + diff --git a/testmodulec_1/testmodulec_1/lib/json/food_type.json b/testmodulec_1/testmodulec_1/lib/json/food_type.json new file mode 100755 index 0000000..a408567 --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/json/food_type.json @@ -0,0 +1,34 @@ +[ + { + "name": "Cheese and bread", + "id": "1" + }, + { + "name": "Seafood", + "id": "2" + }, + { + "name": "Red meat and poultry", + "id": "3" + + }, + { + "name": "Stew", + "id": "4" + }, + { + "name": "Mutton and poultry", + "id": "5" + + }, + { + "name": "Dessert", + "id": "6" + + }, + { + "name": "Wine", + "id": "7" + + } +] diff --git a/testmodulec_1/testmodulec_1/lib/main.dart b/testmodulec_1/testmodulec_1/lib/main.dart new file mode 100644 index 0000000..c13081d --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/main.dart @@ -0,0 +1,353 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:testmodulec_1/Menu.dart'; +import 'package:testmodulec_1/ca.dart'; +import 'package:testmodulec_1/checkPage.dart'; + + +void main(){ + runApp(MaterialApp( + home: StartGame(), + debugShowCheckedModeBanner: false, + )); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays: []); +} + + +List> menuData = [ + { + "name": "Brie Cheese ", + "price": "33", + "remark": "Sign must be ordered, netizens recommend ", + "type_id": "1", + "score": "5", + "image_url": "type_1_01.png" + }, + { + "name": "Conte Cheese ", + "price": "38", + "remark": "Monthly sales 70", + "type_id": "1", + "score": "4.5", + "image_url": "type_1_02.png" + }, + { + "name": "Camembert Cheese ", + "price": "33.8", + "remark": "Monthly sales 100+ praise 60%", + "type_id": "1", + "score": "5", + "image_url": "type_1_03.png" + + }, + { + "name": "Baguette ", + "price": "25", + "remark": "Monthly sales 100+ praise 100%", + "type_id": "1", + "score": "5", + "image_url": "type_1_04.jpeg" + }, + { + "name": "Brioche ", + "price": "38", + "remark": "Monthly sales 88", + "type_id": "1", + "score": "5", + "image_url": "type_1_05.jpeg" + + }, + { + "name": "Croissants ", + "price": "32", + "remark": "Monthly sales 87", + "type_id": "1", + "score": "5", + "image_url": "type_1_06.jpeg" + + }, + { + "name": "Brittany Oyster ", + "price": "48", + "remark": "Number four ", + "type_id": "2", + "score": "3", + "image_url": "type_2_01.png" + + }, + { + "name": "Lobster Biske ", + "price": "138", + "remark": "Number two in sales ", + "type_id": "2", + "score": "3", + "image_url": "type_2_02.jpg" + + }, + { + "name": "Cod pickle ", + "price": "88", + "remark": "Recently 100+ people order ", + "type_id": "2", + "score": "3", + "image_url": "type_2_03.jpg" + + }, + { + "name": "Shrimp vermicelli Salad ", + "price": "66", + "remark": "Monthly sales 100+", + "type_id": "2", + "score": "2.5", + "image_url": "type_2_04.jpeg" + + }, + { + "name": "Seafood burger ", + "price": "59", + "remark": "Kids like to eat online comments ", + "type_id": "2", + "score": "0.5", + "image_url": "type_2_05.jpeg" + + }, + { + "name": "Seafood kebab ", + "price": "25", + "remark": "Moderate price ", + "type_id": "2", + "score": "4.5", + "image_url": "type_2_06.jpeg" + + }, + { + "name": "French bouillon ", + "price": "28", + "remark": "Next time more ", + "type_id": "2", + "score": "3", + "image_url": "type_2_07.jpg" + + }, + { + "name": "French rainbow ", + "price": "38", + "remark": "Sweet and delicious ", + "type_id": "2", + "score": "3.5", + "image_url": "type_2_08.png" + + }, + { + "name": "French Roast Duck ", + "price": "85", + "remark": "Monthly sales 100+", + "type_id": "3", + "score": "3.5", + "image_url": "type_3_01.jpg" + + }, + { + "name": "Duck confit ", + "price": "72", + "remark": "Paella is the same as in the restaurant ", + "type_id": "3", + "score": "0.5", + "image_url": "type_3_02.png" + + }, +]; + +class StartGame extends StatefulWidget { + const StartGame({super.key}); + + @override + State createState() => _StartGameState(); +} + +class _StartGameState extends State { + int currIndex =0; + + @override + void initState() { + // TODO: implement initState + super.initState(); + } + + bool showcart = false; + bool showorder =false; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromRGBO(245, 245, 245, 1), + appBar: AppBar( + title: Text(currIndex==0?"Menu":"Category"), + centerTitle: true, + actions: [ + ElevatedButton(style: ElevatedButton.styleFrom(backgroundColor:Colors.white),onPressed: (){ + setState(() { + showcart = true; + }); + }, child: Text("cart",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.blue),)) + ], + ), + body: Stack( + children: [ + currIndex==0?Menu():ca(), + showcart?myCart():SizedBox(), + showorder?myorderaccount():SizedBox(), + ], + ), + bottomNavigationBar: BottomNavigationBar( + currentIndex: currIndex, + selectedItemColor: Colors.blue, + backgroundColor: Colors.white, + selectedLabelStyle: TextStyle(fontSize: 18,fontWeight: FontWeight.w500), + onTap: (int newTap){ + setState(() { + currIndex = newTap; + }); + }, + items: [ + BottomNavigationBarItem(icon: Icon(Icons.menu_book,size: 22,),label: "Menu"), + BottomNavigationBarItem(icon: Icon(Icons.category,size: 22,),label: "Category"), + ], + ), + ); + } + + + myorderaccount(){ + return Container( + color: Colors.black54, + child: Center( + child: Container( + height: 200, + width: 300, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white + ), + child: DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Text("Notice"), + Text("Whether to Submit an order"), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ElevatedButton(onPressed: (){ + setState(() { + showcart = true; + showorder =false; + }); + }, child: Text("No",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ElevatedButton(onPressed:()=>Navigator.of(context).push(MaterialPageRoute(builder: (c)=>Checkpage())), child: Text("Yes",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ], + ) + ], + ), + ) + ), + ) + ); + } + + myCart(){ + return Container( + color: Colors.black54, + alignment: Alignment.topRight, + child: Container( + width: 400, + height: double.infinity, + color: Colors.white, + padding: EdgeInsets.all(12), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ElevatedButton(onPressed: (){ + setState(() { + cartList.clear(); + }); + }, child: Text("Clear All",style: TextStyle(color: Colors.red,fontSize: 22,fontWeight: FontWeight.w500),)), + Text("Cart"), + ElevatedButton(onPressed: (){ + setState(() { + showcart = false; + }); + }, child: Text("Close",style: TextStyle(color: Colors.grey,fontSize: 22,fontWeight: FontWeight.w500),)), + ], + ), + ElevatedButton(onPressed: (){ + setState(() { + showcart =false; + showorder = true; + }); + }, child: Text("Submit order",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + SingleChildScrollView( + child: Column( + children: List.generate(cartList.length, (index) => cartCountOne(cartList[index], index)) + ), + ) + ], + ) + ) + ); + } + + + Widget cartCountOne(Map mapData,int index){ + return Container( + height: 140, + margin: EdgeInsets.only(top: 12), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white, + border: Border.all(width: 2) + ), + child: DefaultTextStyle( + style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.grey), + child: Row( + children: [ + Expanded(flex: 1,child: Image.asset("lib/assets/${mapData["image_url"]}",fit: BoxFit.cover,height: double.infinity,)), + Expanded(flex: 2,child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(mapData["name"].toString()), + Text(mapData["remark"].toString()), + ], + ) + ), + Expanded(flex: 2,child: Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + ElevatedButton(onPressed: (){ + setState(() { + cartList.removeAt(index); + }); + }, child: Text("Delete",style: TextStyle(color: Colors.red,fontSize: 22,fontWeight: FontWeight.w500),)), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset("lib/assets/icon_del.JPG",height: 50,width: 50,), + Text("0"), + Image.asset("lib/assets/icon_add.JPG",height: 50,width: 50,), + ], + ), + ], + )) + ], + ), + ) + ); + } + + + +} diff --git a/testmodulec_1/testmodulec_1/lib/succ.dart b/testmodulec_1/testmodulec_1/lib/succ.dart new file mode 100644 index 0000000..08fae46 --- /dev/null +++ b/testmodulec_1/testmodulec_1/lib/succ.dart @@ -0,0 +1,77 @@ +import 'package:flutter/material.dart'; +import 'package:testmodulec_1/main.dart'; + +class Scc extends StatefulWidget { + const Scc({super.key}); + + @override + State createState() => _SccState(); +} + +class _SccState extends State { + + int score = 0; + + TextEditingController controller = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Successful checkout",style: TextStyle(fontSize: 18,fontWeight: FontWeight.w500,color: Colors.black87),), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + GestureDetector( + onTapDown: (d){ + score = d.localPosition.dx~/(140/5)+1; + setState(() { + }); + }, + child: SizedBox( + width: 140, + child: Row(crossAxisAlignment: CrossAxisAlignment.start,mainAxisAlignment: MainAxisAlignment.start,children: List.generate(5, (index) => Padding( + padding: const EdgeInsets.only(right: 4), + child: Icon(Icons.star_border,color:indexStartGame())); + } + }, child: Text("submit",style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),)), + ], + ), + ); + } +} diff --git a/testmodulec_1/testmodulec_1/pubspec.lock b/testmodulec_1/testmodulec_1/pubspec.lock new file mode 100644 index 0000000..b890004 --- /dev/null +++ b/testmodulec_1/testmodulec_1/pubspec.lock @@ -0,0 +1,188 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.17.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.3" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.6.7" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.9.1" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.8.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.5.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.4" +sdks: + dart: ">=3.0.2 <4.0.0" diff --git a/testmodulec_1/testmodulec_1/pubspec.yaml b/testmodulec_1/testmodulec_1/pubspec.yaml new file mode 100644 index 0000000..e84749a --- /dev/null +++ b/testmodulec_1/testmodulec_1/pubspec.yaml @@ -0,0 +1,91 @@ +name: testmodulec_1 +description: A new Flutter project. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.0.2 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - lib/assets/ + - lib/json/food_menu.json + - lib/json/food_type.json + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/testmodulec_1/testmodulec_1/test/widget_test.dart b/testmodulec_1/testmodulec_1/test/widget_test.dart new file mode 100644 index 0000000..853f5b4 --- /dev/null +++ b/testmodulec_1/testmodulec_1/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:testmodulec_1/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/未命名.txt b/未命名.txt deleted file mode 100644 index e69de29..0000000