├── .gitignore
├── .metadata
├── CHANGELOG.md
├── LICENSE
├── README.md
├── analysis_options.yaml
├── example
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── example
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values-night
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
├── lib
│ └── main.dart
├── macos
│ ├── .gitignore
│ ├── Flutter
│ │ ├── Flutter-Debug.xcconfig
│ │ ├── Flutter-Release.xcconfig
│ │ └── GeneratedPluginRegistrant.swift
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── app_icon_1024.png
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_512.png
│ │ │ └── app_icon_64.png
│ │ ├── Base.lproj
│ │ └── MainMenu.xib
│ │ ├── Configs
│ │ ├── AppInfo.xcconfig
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── Warnings.xcconfig
│ │ ├── DebugProfile.entitlements
│ │ ├── Info.plist
│ │ ├── MainFlutterWindow.swift
│ │ └── Release.entitlements
├── pubspec.lock
├── pubspec.yaml
├── test
│ └── widget_test.dart
└── web
│ ├── favicon.png
│ ├── icons
│ ├── Icon-192.png
│ └── Icon-512.png
│ ├── index.html
│ └── manifest.json
├── guideToPublicNewLibraryVersion.txt
├── images
├── example.gif
├── example_1.png
└── example_2.png
├── lib
├── app_cached_network_image.dart
├── gallery_image_view_wrapper.dart
├── gallery_item_model.dart
├── gallery_item_thumbnail.dart
├── galleryimage.dart
└── util.dart
├── pubspec.lock
├── pubspec.yaml
└── test
└── galleryimage_test.dart
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | .dart_tool/
26 | .flutter-plugins
27 | .flutter-plugins-dependencies
28 | .packages
29 | .pub-cache/
30 | .pub/
31 | build/
32 |
33 | # Android related
34 | **/android/**/gradle-wrapper.jar
35 | **/android/.gradle
36 | **/android/captures/
37 | **/android/gradlew
38 | **/android/gradlew.bat
39 | **/android/local.properties
40 | **/android/**/GeneratedPluginRegistrant.java
41 |
42 | # iOS/XCode related
43 | **/ios/**/*.mode1v3
44 | **/ios/**/*.mode2v3
45 | **/ios/**/*.moved-aside
46 | **/ios/**/*.pbxuser
47 | **/ios/**/*.perspectivev3
48 | **/ios/**/*sync/
49 | **/ios/**/.sconsign.dblite
50 | **/ios/**/.tags*
51 | **/ios/**/.vagrant/
52 | **/ios/**/DerivedData/
53 | **/ios/**/Icon?
54 | **/ios/**/Pods/
55 | **/ios/**/.symlinks/
56 | **/ios/**/profile
57 | **/ios/**/xcuserdata
58 | **/ios/.generated/
59 | **/ios/Flutter/App.framework
60 | **/ios/Flutter/Flutter.framework
61 | **/ios/Flutter/Flutter.podspec
62 | **/ios/Flutter/Generated.xcconfig
63 | **/ios/Flutter/app.flx
64 | **/ios/Flutter/app.zip
65 | **/ios/Flutter/flutter_assets/
66 | **/ios/Flutter/flutter_export_environment.sh
67 | **/ios/ServiceDefinitions.json
68 | **/ios/Runner/GeneratedPluginRegistrant.*
69 |
70 | # Exceptions to above rules.
71 | !**/ios/**/default.mode1v3
72 | !**/ios/**/default.mode2v3
73 | !**/ios/**/default.pbxuser
74 | !**/ios/**/default.perspectivev3
75 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
76 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: b041144f833e05cf463b8887fa12efdec9493488
8 | channel: stable
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## [2.0.1] - 2.0.1
2 |
3 | * Update readme.md file
4 | * Update screenshot files
5 | * Update example
6 |
7 | ## [2.0.0] - 2.0.0
8 |
9 | * Update Flutter 3.10
10 | * Support Dart 3
11 | * Add Option to close the gallery when Swipe Up or Down
12 | * Can Change Loading Widget
13 | * Can Change Error Widget
14 | * Can Change gallery bg color
15 | * Can Change text theme
16 | * Change padding to list
17 | * Add List of image in Gallery Screen
18 | * Control to Show AppBar in Gallery Screen
19 | * Encasement
20 | * Update Dependencies
21 |
22 |
23 | ## [1.2.0] - 1.2.0
24 |
25 | * Update Flutter 3
26 | * can change number of image view
27 | * update readme.md
28 |
29 | ## [1.1.0] - 1.1.0
30 |
31 | * Support Null Safety
32 | * Support Web
33 | * Support MACOS
34 | * Update Dependencies
35 | ## [1.0.2] - 1.0.2
36 |
37 | * fixed
38 | ## [1.0.1] - 1.0.1
39 |
40 | * fixed
41 |
42 | ## [1.0.0] - 1.0.0
43 |
44 | * Released preview version for Gallery Image
45 |
46 | ## [0.0.2] - 0.0.2
47 |
48 | * update example and class
49 |
50 | ## [0.0.1] - 0.0.1
51 |
52 | * the first version from my package
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) [2022] [BeshoyMelika]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Gallery Image plugin for Flutter
2 |
3 | A Flutter plugin that list of images from URLs
4 |
5 |
6 |
7 | Gallery Image
8 |
9 |
10 |
11 |
12 | Flutter plugin that allows you to display multi image on iOS, Android, MacOs,Web.
13 |
14 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | Installation •
26 | Related •
27 | License
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | ## Key Features
36 | * Pick images from Url
37 | * Photos sorted
38 | * close the gallery when Swipe Up or Down
39 | * Add List of image in Gallery Screen
40 | * Change Loading Widget
41 | * zoomable image
42 |
43 | ## Installation
44 |
45 | Add `galleryimage` as a dependency in your pubspec.yaml file .
46 |
47 | Import Photo View:
48 | ```dart
49 | import 'package:galleryimage/galleryimage.dart';
50 | ```
51 |
52 | ### Usage
53 |
54 | #### Listing URLs Images
55 | ``` dart
56 | List listOfUrls= [
57 | "https://cosmosmagazine.com/wp-content/uploads/2020/02/191010_nature.jpg",
58 | "https://scx2.b-cdn.net/gfx/news/hires/2019/2-nature.jpg",
59 | "https://isha.sadhguru.org/blog/wp-content/uploads/2016/05/natures-temples.jpg",
60 | "https://upload.wikimedia.org/wikipedia/commons/7/77/Big_Nature_%28155420955%29.jpeg",
61 | "https://s23574.pcdn.co/wp-content/uploads/Singular-1140x703.jpg",
62 | "https://www.expatica.com/app/uploads/sites/9/2017/06/Lake-Oeschinen-1200x675.jpg",
63 | ];
64 | ```
65 |
66 |
67 | #### To Displaying Images
68 |
69 | ```dart
70 | @override
71 | Widget build(BuildContext context) {
72 | return Container(
73 | child: GalleryImage(
74 | key: _key,
75 | imageUrls: listOfUrls,
76 | numOfShowImages: 4,
77 | titleGallery: _title,
78 | )
79 | );
80 | }
81 | ```
82 |
83 |
84 | ## Emailware
85 |
86 | Gallery Image is an [emailware](https://en.wiktionary.org/wiki/emailware). Meaning, if you liked using this plugin or has helped you in anyway, I'd like you send me an email on about anything you'd want to say about this software. I'd really appreciate it!
87 |
88 | ## Related
89 |
90 | [cached_network_image](https://pub.dartlang.org/packages/cached_network_image) - To Load and cache network images..
91 |
92 | You can build a gallery Images easily with this package.
93 |
94 | See the [example](example) for more details.
95 |
96 | ## License
97 |
98 | MIT
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | # This file configures the analyzer, which statically analyzes Dart code to
2 | # check for errors, warnings, and lints.
3 | #
4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6 | # invoked from the command line by running `flutter analyze`.
7 |
8 | # The following line activates a set of recommended lints for Flutter apps,
9 | # packages, and plugins designed to encourage good coding practices.
10 | include: package:flutter_lints/flutter.yaml
11 |
12 | linter:
13 | # The lint rules applied to this project can be customized in the
14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml`
15 | # included above or to enable additional rules. A list of all available lints
16 | # and their documentation is published at
17 | # https://dart-lang.github.io/linter/lints/index.html.
18 | #
19 | # Instead of disabling a lint rule for the entire project in the
20 | # section below, it can also be suppressed for a single line of code
21 | # or a specific dart file by using the `// ignore: name_of_lint` and
22 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file
23 | # producing the lint.
24 | rules:
25 | # avoid_print: false # Uncomment to disable the `avoid_print` rule
26 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
27 |
28 | # Additional information about this file can be found at
29 | # https://dart.dev/guides/language/analysis-options
30 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | .dart_tool/
26 | .flutter-plugins
27 | .flutter-plugins-dependencies
28 | .packages
29 | .pub-cache/
30 | .pub/
31 | /build/
32 |
33 | # Web related
34 | lib/generated_plugin_registrant.dart
35 |
36 | # Symbolication related
37 | app.*.symbols
38 |
39 | # Obfuscation related
40 | app.*.map.json
41 |
42 | # Exceptions to above rules.
43 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
44 |
--------------------------------------------------------------------------------
/example/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: b041144f833e05cf463b8887fa12efdec9493488
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | # example
2 |
3 | A new Flutter project.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/example/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/example/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion 31
30 |
31 | sourceSets {
32 | main.java.srcDirs += 'src/main/kotlin'
33 | }
34 |
35 | defaultConfig {
36 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
37 | applicationId "com.example.example"
38 | minSdkVersion 16
39 | targetSdkVersion 30
40 | versionCode flutterVersionCode.toInteger()
41 | versionName flutterVersionName
42 | }
43 |
44 | buildTypes {
45 | release {
46 | // TODO: Add your own signing config for the release build.
47 | // Signing with the debug keys for now, so `flutter run --release` works.
48 | signingConfig signingConfigs.debug
49 | }
50 | }
51 | }
52 |
53 | flutter {
54 | source '../..'
55 | }
56 |
57 | dependencies {
58 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
59 | }
60 |
--------------------------------------------------------------------------------
/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
13 |
17 |
21 |
26 |
30 |
31 |
32 |
33 |
34 |
35 |
37 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.example
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/example/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:4.1.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/ephemeral/
22 | Flutter/app.flx
23 | Flutter/app.zip
24 | Flutter/flutter_assets/
25 | Flutter/flutter_export_environment.sh
26 | ServiceDefinitions.json
27 | Runner/GeneratedPluginRegistrant.*
28 |
29 | # Exceptions to above rules.
30 | !default.mode1v3
31 | !default.mode2v3
32 | !default.pbxuser
33 | !default.perspectivev3
34 |
--------------------------------------------------------------------------------
/example/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 11.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | # platform :ios, '11.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/example/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Flutter (1.0.0)
3 | - FMDB (2.7.5):
4 | - FMDB/standard (= 2.7.5)
5 | - FMDB/standard (2.7.5)
6 | - path_provider_foundation (0.0.1):
7 | - Flutter
8 | - FlutterMacOS
9 | - sqflite (0.0.3):
10 | - Flutter
11 | - FMDB (>= 2.7.5)
12 |
13 | DEPENDENCIES:
14 | - Flutter (from `Flutter`)
15 | - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
16 | - sqflite (from `.symlinks/plugins/sqflite/ios`)
17 |
18 | SPEC REPOS:
19 | trunk:
20 | - FMDB
21 |
22 | EXTERNAL SOURCES:
23 | Flutter:
24 | :path: Flutter
25 | path_provider_foundation:
26 | :path: ".symlinks/plugins/path_provider_foundation/darwin"
27 | sqflite:
28 | :path: ".symlinks/plugins/sqflite/ios"
29 |
30 | SPEC CHECKSUMS:
31 | Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
32 | FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
33 | path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8
34 | sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
35 |
36 | PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
37 |
38 | COCOAPODS: 1.12.1
39 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 54;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 | 6345C63B74D4D950587DC127 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59338178F541B05EE5011245 /* Pods_Runner.framework */; };
13 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
14 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
15 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
16 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXCopyFilesBuildPhase section */
20 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
21 | isa = PBXCopyFilesBuildPhase;
22 | buildActionMask = 2147483647;
23 | dstPath = "";
24 | dstSubfolderSpec = 10;
25 | files = (
26 | );
27 | name = "Embed Frameworks";
28 | runOnlyForDeploymentPostprocessing = 0;
29 | };
30 | /* End PBXCopyFilesBuildPhase section */
31 |
32 | /* Begin PBXFileReference section */
33 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
34 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
35 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
36 | 4E6C9AF52B77B09AE93ADAE3 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
37 | 59338178F541B05EE5011245 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
38 | 5E563D92A7F62EFA2E1BDDFE /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
39 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
40 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
41 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
42 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
43 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
44 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
45 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
46 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
47 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
48 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
49 | CEDA62D3385C4BA4B527C003 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
50 | /* End PBXFileReference section */
51 |
52 | /* Begin PBXFrameworksBuildPhase section */
53 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
54 | isa = PBXFrameworksBuildPhase;
55 | buildActionMask = 2147483647;
56 | files = (
57 | 6345C63B74D4D950587DC127 /* Pods_Runner.framework in Frameworks */,
58 | );
59 | runOnlyForDeploymentPostprocessing = 0;
60 | };
61 | /* End PBXFrameworksBuildPhase section */
62 |
63 | /* Begin PBXGroup section */
64 | 9740EEB11CF90186004384FC /* Flutter */ = {
65 | isa = PBXGroup;
66 | children = (
67 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
68 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
69 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
70 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
71 | );
72 | name = Flutter;
73 | sourceTree = "";
74 | };
75 | 97C146E51CF9000F007C117D = {
76 | isa = PBXGroup;
77 | children = (
78 | 9740EEB11CF90186004384FC /* Flutter */,
79 | 97C146F01CF9000F007C117D /* Runner */,
80 | 97C146EF1CF9000F007C117D /* Products */,
81 | DE6B75FEA46D53FD0EC39A15 /* Pods */,
82 | B50EE6793CD183B6C9674A09 /* Frameworks */,
83 | );
84 | sourceTree = "";
85 | };
86 | 97C146EF1CF9000F007C117D /* Products */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 97C146EE1CF9000F007C117D /* Runner.app */,
90 | );
91 | name = Products;
92 | sourceTree = "";
93 | };
94 | 97C146F01CF9000F007C117D /* Runner */ = {
95 | isa = PBXGroup;
96 | children = (
97 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
98 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
99 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
100 | 97C147021CF9000F007C117D /* Info.plist */,
101 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
102 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
103 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
104 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
105 | );
106 | path = Runner;
107 | sourceTree = "";
108 | };
109 | B50EE6793CD183B6C9674A09 /* Frameworks */ = {
110 | isa = PBXGroup;
111 | children = (
112 | 59338178F541B05EE5011245 /* Pods_Runner.framework */,
113 | );
114 | name = Frameworks;
115 | sourceTree = "";
116 | };
117 | DE6B75FEA46D53FD0EC39A15 /* Pods */ = {
118 | isa = PBXGroup;
119 | children = (
120 | 5E563D92A7F62EFA2E1BDDFE /* Pods-Runner.debug.xcconfig */,
121 | 4E6C9AF52B77B09AE93ADAE3 /* Pods-Runner.release.xcconfig */,
122 | CEDA62D3385C4BA4B527C003 /* Pods-Runner.profile.xcconfig */,
123 | );
124 | name = Pods;
125 | path = Pods;
126 | sourceTree = "";
127 | };
128 | /* End PBXGroup section */
129 |
130 | /* Begin PBXNativeTarget section */
131 | 97C146ED1CF9000F007C117D /* Runner */ = {
132 | isa = PBXNativeTarget;
133 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
134 | buildPhases = (
135 | 172DE6425006A65A1562312F /* [CP] Check Pods Manifest.lock */,
136 | 9740EEB61CF901F6004384FC /* Run Script */,
137 | 97C146EA1CF9000F007C117D /* Sources */,
138 | 97C146EB1CF9000F007C117D /* Frameworks */,
139 | 97C146EC1CF9000F007C117D /* Resources */,
140 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
141 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
142 | 42F441E790E20896DF1119C1 /* [CP] Embed Pods Frameworks */,
143 | );
144 | buildRules = (
145 | );
146 | dependencies = (
147 | );
148 | name = Runner;
149 | productName = Runner;
150 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
151 | productType = "com.apple.product-type.application";
152 | };
153 | /* End PBXNativeTarget section */
154 |
155 | /* Begin PBXProject section */
156 | 97C146E61CF9000F007C117D /* Project object */ = {
157 | isa = PBXProject;
158 | attributes = {
159 | LastUpgradeCheck = 1300;
160 | ORGANIZATIONNAME = "";
161 | TargetAttributes = {
162 | 97C146ED1CF9000F007C117D = {
163 | CreatedOnToolsVersion = 7.3.1;
164 | LastSwiftMigration = 1100;
165 | };
166 | };
167 | };
168 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
169 | compatibilityVersion = "Xcode 9.3";
170 | developmentRegion = en;
171 | hasScannedForEncodings = 0;
172 | knownRegions = (
173 | en,
174 | Base,
175 | );
176 | mainGroup = 97C146E51CF9000F007C117D;
177 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
178 | projectDirPath = "";
179 | projectRoot = "";
180 | targets = (
181 | 97C146ED1CF9000F007C117D /* Runner */,
182 | );
183 | };
184 | /* End PBXProject section */
185 |
186 | /* Begin PBXResourcesBuildPhase section */
187 | 97C146EC1CF9000F007C117D /* Resources */ = {
188 | isa = PBXResourcesBuildPhase;
189 | buildActionMask = 2147483647;
190 | files = (
191 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
192 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
193 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
194 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
195 | );
196 | runOnlyForDeploymentPostprocessing = 0;
197 | };
198 | /* End PBXResourcesBuildPhase section */
199 |
200 | /* Begin PBXShellScriptBuildPhase section */
201 | 172DE6425006A65A1562312F /* [CP] Check Pods Manifest.lock */ = {
202 | isa = PBXShellScriptBuildPhase;
203 | buildActionMask = 2147483647;
204 | files = (
205 | );
206 | inputFileListPaths = (
207 | );
208 | inputPaths = (
209 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
210 | "${PODS_ROOT}/Manifest.lock",
211 | );
212 | name = "[CP] Check Pods Manifest.lock";
213 | outputFileListPaths = (
214 | );
215 | outputPaths = (
216 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
217 | );
218 | runOnlyForDeploymentPostprocessing = 0;
219 | shellPath = /bin/sh;
220 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
221 | showEnvVarsInLog = 0;
222 | };
223 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
224 | isa = PBXShellScriptBuildPhase;
225 | alwaysOutOfDate = 1;
226 | buildActionMask = 2147483647;
227 | files = (
228 | );
229 | inputPaths = (
230 | "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
231 | );
232 | name = "Thin Binary";
233 | outputPaths = (
234 | );
235 | runOnlyForDeploymentPostprocessing = 0;
236 | shellPath = /bin/sh;
237 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
238 | };
239 | 42F441E790E20896DF1119C1 /* [CP] Embed Pods Frameworks */ = {
240 | isa = PBXShellScriptBuildPhase;
241 | buildActionMask = 2147483647;
242 | files = (
243 | );
244 | inputFileListPaths = (
245 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
246 | );
247 | name = "[CP] Embed Pods Frameworks";
248 | outputFileListPaths = (
249 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
250 | );
251 | runOnlyForDeploymentPostprocessing = 0;
252 | shellPath = /bin/sh;
253 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
254 | showEnvVarsInLog = 0;
255 | };
256 | 9740EEB61CF901F6004384FC /* Run Script */ = {
257 | isa = PBXShellScriptBuildPhase;
258 | alwaysOutOfDate = 1;
259 | buildActionMask = 2147483647;
260 | files = (
261 | );
262 | inputPaths = (
263 | );
264 | name = "Run Script";
265 | outputPaths = (
266 | );
267 | runOnlyForDeploymentPostprocessing = 0;
268 | shellPath = /bin/sh;
269 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
270 | };
271 | /* End PBXShellScriptBuildPhase section */
272 |
273 | /* Begin PBXSourcesBuildPhase section */
274 | 97C146EA1CF9000F007C117D /* Sources */ = {
275 | isa = PBXSourcesBuildPhase;
276 | buildActionMask = 2147483647;
277 | files = (
278 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
279 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
280 | );
281 | runOnlyForDeploymentPostprocessing = 0;
282 | };
283 | /* End PBXSourcesBuildPhase section */
284 |
285 | /* Begin PBXVariantGroup section */
286 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
287 | isa = PBXVariantGroup;
288 | children = (
289 | 97C146FB1CF9000F007C117D /* Base */,
290 | );
291 | name = Main.storyboard;
292 | sourceTree = "";
293 | };
294 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
295 | isa = PBXVariantGroup;
296 | children = (
297 | 97C147001CF9000F007C117D /* Base */,
298 | );
299 | name = LaunchScreen.storyboard;
300 | sourceTree = "";
301 | };
302 | /* End PBXVariantGroup section */
303 |
304 | /* Begin XCBuildConfiguration section */
305 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
306 | isa = XCBuildConfiguration;
307 | buildSettings = {
308 | ALWAYS_SEARCH_USER_PATHS = NO;
309 | CLANG_ANALYZER_NONNULL = YES;
310 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
311 | CLANG_CXX_LIBRARY = "libc++";
312 | CLANG_ENABLE_MODULES = YES;
313 | CLANG_ENABLE_OBJC_ARC = YES;
314 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
315 | CLANG_WARN_BOOL_CONVERSION = YES;
316 | CLANG_WARN_COMMA = YES;
317 | CLANG_WARN_CONSTANT_CONVERSION = YES;
318 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
319 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
320 | CLANG_WARN_EMPTY_BODY = YES;
321 | CLANG_WARN_ENUM_CONVERSION = YES;
322 | CLANG_WARN_INFINITE_RECURSION = YES;
323 | CLANG_WARN_INT_CONVERSION = YES;
324 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
325 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
326 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
327 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
328 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
329 | CLANG_WARN_STRICT_PROTOTYPES = YES;
330 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
331 | CLANG_WARN_UNREACHABLE_CODE = YES;
332 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
333 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
334 | COPY_PHASE_STRIP = NO;
335 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
336 | ENABLE_NS_ASSERTIONS = NO;
337 | ENABLE_STRICT_OBJC_MSGSEND = YES;
338 | GCC_C_LANGUAGE_STANDARD = gnu99;
339 | GCC_NO_COMMON_BLOCKS = YES;
340 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
341 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
342 | GCC_WARN_UNDECLARED_SELECTOR = YES;
343 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
344 | GCC_WARN_UNUSED_FUNCTION = YES;
345 | GCC_WARN_UNUSED_VARIABLE = YES;
346 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
347 | MTL_ENABLE_DEBUG_INFO = NO;
348 | SDKROOT = iphoneos;
349 | SUPPORTED_PLATFORMS = iphoneos;
350 | TARGETED_DEVICE_FAMILY = "1,2";
351 | VALIDATE_PRODUCT = YES;
352 | };
353 | name = Profile;
354 | };
355 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
356 | isa = XCBuildConfiguration;
357 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
358 | buildSettings = {
359 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
360 | CLANG_ENABLE_MODULES = YES;
361 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
362 | ENABLE_BITCODE = NO;
363 | INFOPLIST_FILE = Runner/Info.plist;
364 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
365 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
366 | PRODUCT_NAME = "$(TARGET_NAME)";
367 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
368 | SWIFT_VERSION = 5.0;
369 | VERSIONING_SYSTEM = "apple-generic";
370 | };
371 | name = Profile;
372 | };
373 | 97C147031CF9000F007C117D /* Debug */ = {
374 | isa = XCBuildConfiguration;
375 | buildSettings = {
376 | ALWAYS_SEARCH_USER_PATHS = NO;
377 | CLANG_ANALYZER_NONNULL = YES;
378 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
379 | CLANG_CXX_LIBRARY = "libc++";
380 | CLANG_ENABLE_MODULES = YES;
381 | CLANG_ENABLE_OBJC_ARC = YES;
382 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
383 | CLANG_WARN_BOOL_CONVERSION = YES;
384 | CLANG_WARN_COMMA = YES;
385 | CLANG_WARN_CONSTANT_CONVERSION = YES;
386 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
387 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
388 | CLANG_WARN_EMPTY_BODY = YES;
389 | CLANG_WARN_ENUM_CONVERSION = YES;
390 | CLANG_WARN_INFINITE_RECURSION = YES;
391 | CLANG_WARN_INT_CONVERSION = YES;
392 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
393 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
394 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
395 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
396 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
397 | CLANG_WARN_STRICT_PROTOTYPES = YES;
398 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
399 | CLANG_WARN_UNREACHABLE_CODE = YES;
400 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
401 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
402 | COPY_PHASE_STRIP = NO;
403 | DEBUG_INFORMATION_FORMAT = dwarf;
404 | ENABLE_STRICT_OBJC_MSGSEND = YES;
405 | ENABLE_TESTABILITY = YES;
406 | GCC_C_LANGUAGE_STANDARD = gnu99;
407 | GCC_DYNAMIC_NO_PIC = NO;
408 | GCC_NO_COMMON_BLOCKS = YES;
409 | GCC_OPTIMIZATION_LEVEL = 0;
410 | GCC_PREPROCESSOR_DEFINITIONS = (
411 | "DEBUG=1",
412 | "$(inherited)",
413 | );
414 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
415 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
416 | GCC_WARN_UNDECLARED_SELECTOR = YES;
417 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
418 | GCC_WARN_UNUSED_FUNCTION = YES;
419 | GCC_WARN_UNUSED_VARIABLE = YES;
420 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
421 | MTL_ENABLE_DEBUG_INFO = YES;
422 | ONLY_ACTIVE_ARCH = YES;
423 | SDKROOT = iphoneos;
424 | TARGETED_DEVICE_FAMILY = "1,2";
425 | };
426 | name = Debug;
427 | };
428 | 97C147041CF9000F007C117D /* Release */ = {
429 | isa = XCBuildConfiguration;
430 | buildSettings = {
431 | ALWAYS_SEARCH_USER_PATHS = NO;
432 | CLANG_ANALYZER_NONNULL = YES;
433 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
434 | CLANG_CXX_LIBRARY = "libc++";
435 | CLANG_ENABLE_MODULES = YES;
436 | CLANG_ENABLE_OBJC_ARC = YES;
437 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
438 | CLANG_WARN_BOOL_CONVERSION = YES;
439 | CLANG_WARN_COMMA = YES;
440 | CLANG_WARN_CONSTANT_CONVERSION = YES;
441 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
442 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
443 | CLANG_WARN_EMPTY_BODY = YES;
444 | CLANG_WARN_ENUM_CONVERSION = YES;
445 | CLANG_WARN_INFINITE_RECURSION = YES;
446 | CLANG_WARN_INT_CONVERSION = YES;
447 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
448 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
449 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
450 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
451 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
452 | CLANG_WARN_STRICT_PROTOTYPES = YES;
453 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
454 | CLANG_WARN_UNREACHABLE_CODE = YES;
455 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
456 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
457 | COPY_PHASE_STRIP = NO;
458 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
459 | ENABLE_NS_ASSERTIONS = NO;
460 | ENABLE_STRICT_OBJC_MSGSEND = YES;
461 | GCC_C_LANGUAGE_STANDARD = gnu99;
462 | GCC_NO_COMMON_BLOCKS = YES;
463 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
464 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
465 | GCC_WARN_UNDECLARED_SELECTOR = YES;
466 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
467 | GCC_WARN_UNUSED_FUNCTION = YES;
468 | GCC_WARN_UNUSED_VARIABLE = YES;
469 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
470 | MTL_ENABLE_DEBUG_INFO = NO;
471 | SDKROOT = iphoneos;
472 | SUPPORTED_PLATFORMS = iphoneos;
473 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
474 | TARGETED_DEVICE_FAMILY = "1,2";
475 | VALIDATE_PRODUCT = YES;
476 | };
477 | name = Release;
478 | };
479 | 97C147061CF9000F007C117D /* Debug */ = {
480 | isa = XCBuildConfiguration;
481 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
482 | buildSettings = {
483 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
484 | CLANG_ENABLE_MODULES = YES;
485 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
486 | ENABLE_BITCODE = NO;
487 | INFOPLIST_FILE = Runner/Info.plist;
488 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
489 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
490 | PRODUCT_NAME = "$(TARGET_NAME)";
491 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
492 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
493 | SWIFT_VERSION = 5.0;
494 | VERSIONING_SYSTEM = "apple-generic";
495 | };
496 | name = Debug;
497 | };
498 | 97C147071CF9000F007C117D /* Release */ = {
499 | isa = XCBuildConfiguration;
500 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
501 | buildSettings = {
502 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
503 | CLANG_ENABLE_MODULES = YES;
504 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
505 | ENABLE_BITCODE = NO;
506 | INFOPLIST_FILE = Runner/Info.plist;
507 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
508 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
509 | PRODUCT_NAME = "$(TARGET_NAME)";
510 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
511 | SWIFT_VERSION = 5.0;
512 | VERSIONING_SYSTEM = "apple-generic";
513 | };
514 | name = Release;
515 | };
516 | /* End XCBuildConfiguration section */
517 |
518 | /* Begin XCConfigurationList section */
519 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
520 | isa = XCConfigurationList;
521 | buildConfigurations = (
522 | 97C147031CF9000F007C117D /* Debug */,
523 | 97C147041CF9000F007C117D /* Release */,
524 | 249021D3217E4FDB00AE95B9 /* Profile */,
525 | );
526 | defaultConfigurationIsVisible = 0;
527 | defaultConfigurationName = Release;
528 | };
529 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
530 | isa = XCConfigurationList;
531 | buildConfigurations = (
532 | 97C147061CF9000F007C117D /* Debug */,
533 | 97C147071CF9000F007C117D /* Release */,
534 | 249021D4217E4FDB00AE95B9 /* Profile */,
535 | );
536 | defaultConfigurationIsVisible = 0;
537 | defaultConfigurationName = Release;
538 | };
539 | /* End XCConfigurationList section */
540 | };
541 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
542 | }
543 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/example/ios/Runner/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/example/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/example/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | example
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 | CADisableMinimumFrameDurationOnPhone
45 |
46 | UIApplicationSupportsIndirectInputEvents
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/example/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/example/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:galleryimage/galleryimage.dart';
3 |
4 | void main() {
5 | runApp(const MyApp());
6 | }
7 |
8 | class MyApp extends StatelessWidget {
9 | const MyApp({Key? key}) : super(key: key);
10 |
11 | @override
12 | Widget build(BuildContext context) {
13 | return MaterialApp(
14 | debugShowCheckedModeBanner: false,
15 | title: 'Gallery Image Demo',
16 | theme: ThemeData(
17 | primarySwatch: Colors.blue,
18 | visualDensity: VisualDensity.adaptivePlatformDensity,
19 | ),
20 | home: const MyHomePage(title: 'Gallery Image Demo'),
21 | );
22 | }
23 | }
24 |
25 | class MyHomePage extends StatelessWidget {
26 | final String title;
27 |
28 | const MyHomePage({Key? key, required this.title}) : super(key: key);
29 | @override
30 | Widget build(BuildContext context) {
31 | return Scaffold(
32 | appBar: AppBar(
33 | title: Text(title),
34 | ),
35 | body: Center(
36 | child: SingleChildScrollView(
37 | child: Column(
38 | mainAxisAlignment: MainAxisAlignment.center,
39 | children: [
40 | const Text("Tap to show image"),
41 | Padding(
42 | padding: const EdgeInsets.all(10.0),
43 | child: GalleryImage(
44 | numOfShowImages: 6,
45 | imageUrls: const [
46 | "https://cosmosmagazine.com/wp-content/uploads/2020/02/191010_nature.jpg",
47 | "https://scx2.b-cdn.net/gfx/news/hires/2019/2-nature.jpg",
48 | "https://wallpapers.com/images/featured/2ygv7ssy2k0lxlzu.jpg",
49 | "https://upload.wikimedia.org/wikipedia/commons/7/77/Big_Nature_%28155420955%29.jpeg",
50 | "https://www.rd.com/wp-content/uploads/2020/04/GettyImages-1093840488-5-scaled.jpg",
51 | "https://media.cntraveller.com/photos/611bf0b8f6bd8f17556db5e4/1:1/w_2000,h_2000,c_limit/gettyimages-1146431497.jpg",
52 | "https://img.freepik.com/premium-photo/fantastic-view-kirkjufellsfoss-waterfall-near-kirkjufell-mountain-sunset_761071-868.jpg",
53 | "https://www.travelandleisure.com/thmb/KLPvXakEKLGE5AY2jVyovl3Md1k=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/iceland-BEAUTCONT1021-b1aeafa7ac2847a484cbca48d3172b6c.jpg",
54 | "https://w0.peakpx.com/wallpaper/265/481/HD-wallpaper-nature.jpg",
55 | "https://e0.pxfuel.com/wallpapers/163/906/desktop-wallpaper-beautiful-nature-with-girl-beautiful-girl-with-nature-and-moon-high-resolution-beautiful.jpg",
56 | ],
57 | ),
58 | ),
59 | ],
60 | ),
61 | ),
62 | ),
63 | );
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/example/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/xcuserdata/
7 |
--------------------------------------------------------------------------------
/example/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/macos/Flutter/GeneratedPluginRegistrant.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | import FlutterMacOS
6 | import Foundation
7 |
8 | import path_provider_foundation
9 | import sqflite
10 |
11 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
12 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
13 | SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
14 | }
15 |
--------------------------------------------------------------------------------
/example/macos/Podfile:
--------------------------------------------------------------------------------
1 | platform :osx, '10.14'
2 |
3 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
4 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
5 |
6 | project 'Runner', {
7 | 'Debug' => :debug,
8 | 'Profile' => :release,
9 | 'Release' => :release,
10 | }
11 |
12 | def flutter_root
13 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
14 | unless File.exist?(generated_xcode_build_settings_path)
15 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
16 | end
17 |
18 | File.foreach(generated_xcode_build_settings_path) do |line|
19 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
20 | return matches[1].strip if matches
21 | end
22 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
23 | end
24 |
25 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
26 |
27 | flutter_macos_podfile_setup
28 |
29 | target 'Runner' do
30 | use_frameworks!
31 | use_modular_headers!
32 |
33 | flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
34 | end
35 |
36 | post_install do |installer|
37 | installer.pods_project.targets.each do |target|
38 | flutter_additional_macos_build_settings(target)
39 | end
40 | end
41 |
--------------------------------------------------------------------------------
/example/macos/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - FlutterMacOS (1.0.0)
3 | - FMDB (2.7.5):
4 | - FMDB/standard (= 2.7.5)
5 | - FMDB/standard (2.7.5)
6 | - path_provider_foundation (0.0.1):
7 | - Flutter
8 | - FlutterMacOS
9 | - sqflite (0.0.2):
10 | - FlutterMacOS
11 | - FMDB (>= 2.7.5)
12 |
13 | DEPENDENCIES:
14 | - FlutterMacOS (from `Flutter/ephemeral`)
15 | - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
16 | - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`)
17 |
18 | SPEC REPOS:
19 | trunk:
20 | - FMDB
21 |
22 | EXTERNAL SOURCES:
23 | FlutterMacOS:
24 | :path: Flutter/ephemeral
25 | path_provider_foundation:
26 | :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
27 | sqflite:
28 | :path: Flutter/ephemeral/.symlinks/plugins/sqflite/macos
29 |
30 | SPEC CHECKSUMS:
31 | FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
32 | FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
33 | path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8
34 | sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea
35 |
36 | PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7
37 |
38 | COCOAPODS: 1.12.1
39 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 54;
7 | objects = {
8 |
9 | /* Begin PBXAggregateTarget section */
10 | 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
11 | isa = PBXAggregateTarget;
12 | buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
13 | buildPhases = (
14 | 33CC111E2044C6BF0003C045 /* ShellScript */,
15 | );
16 | dependencies = (
17 | );
18 | name = "Flutter Assemble";
19 | productName = FLX;
20 | };
21 | /* End PBXAggregateTarget section */
22 |
23 | /* Begin PBXBuildFile section */
24 | 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
25 | 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
26 | 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
27 | 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
28 | 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
29 | 46013774E9F40D14256E8476 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23B6E840BEBA1ED081E78388 /* Pods_Runner.framework */; };
30 | /* End PBXBuildFile section */
31 |
32 | /* Begin PBXContainerItemProxy section */
33 | 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
34 | isa = PBXContainerItemProxy;
35 | containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
36 | proxyType = 1;
37 | remoteGlobalIDString = 33CC111A2044C6BA0003C045;
38 | remoteInfo = FLX;
39 | };
40 | /* End PBXContainerItemProxy section */
41 |
42 | /* Begin PBXCopyFilesBuildPhase section */
43 | 33CC110E2044A8840003C045 /* Bundle Framework */ = {
44 | isa = PBXCopyFilesBuildPhase;
45 | buildActionMask = 2147483647;
46 | dstPath = "";
47 | dstSubfolderSpec = 10;
48 | files = (
49 | );
50 | name = "Bundle Framework";
51 | runOnlyForDeploymentPostprocessing = 0;
52 | };
53 | /* End PBXCopyFilesBuildPhase section */
54 |
55 | /* Begin PBXFileReference section */
56 | 23B6E840BEBA1ED081E78388 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
57 | 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; };
58 | 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; };
59 | 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; };
60 | 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
61 | 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; };
62 | 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
63 | 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; };
64 | 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; };
65 | 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; };
66 | 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; };
67 | 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; };
68 | 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; };
69 | 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; };
70 | 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; };
71 | 4766387DFCF7335C6A3C4C39 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
72 | 6ACCC9E3AB9411F32CE973AD /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
73 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; };
74 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
75 | F127E1EFE28255EDE40E3E5F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
76 | /* End PBXFileReference section */
77 |
78 | /* Begin PBXFrameworksBuildPhase section */
79 | 33CC10EA2044A3C60003C045 /* Frameworks */ = {
80 | isa = PBXFrameworksBuildPhase;
81 | buildActionMask = 2147483647;
82 | files = (
83 | 46013774E9F40D14256E8476 /* Pods_Runner.framework in Frameworks */,
84 | );
85 | runOnlyForDeploymentPostprocessing = 0;
86 | };
87 | /* End PBXFrameworksBuildPhase section */
88 |
89 | /* Begin PBXGroup section */
90 | 33BA886A226E78AF003329D5 /* Configs */ = {
91 | isa = PBXGroup;
92 | children = (
93 | 33E5194F232828860026EE4D /* AppInfo.xcconfig */,
94 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
95 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
96 | 333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
97 | );
98 | path = Configs;
99 | sourceTree = "";
100 | };
101 | 33CC10E42044A3C60003C045 = {
102 | isa = PBXGroup;
103 | children = (
104 | 33FAB671232836740065AC1E /* Runner */,
105 | 33CEB47122A05771004F2AC0 /* Flutter */,
106 | 33CC10EE2044A3C60003C045 /* Products */,
107 | D73912EC22F37F3D000D13A0 /* Frameworks */,
108 | 90F456652A36512B0B7C00ED /* Pods */,
109 | );
110 | sourceTree = "";
111 | };
112 | 33CC10EE2044A3C60003C045 /* Products */ = {
113 | isa = PBXGroup;
114 | children = (
115 | 33CC10ED2044A3C60003C045 /* example.app */,
116 | );
117 | name = Products;
118 | sourceTree = "";
119 | };
120 | 33CC11242044D66E0003C045 /* Resources */ = {
121 | isa = PBXGroup;
122 | children = (
123 | 33CC10F22044A3C60003C045 /* Assets.xcassets */,
124 | 33CC10F42044A3C60003C045 /* MainMenu.xib */,
125 | 33CC10F72044A3C60003C045 /* Info.plist */,
126 | );
127 | name = Resources;
128 | path = ..;
129 | sourceTree = "";
130 | };
131 | 33CEB47122A05771004F2AC0 /* Flutter */ = {
132 | isa = PBXGroup;
133 | children = (
134 | 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
135 | 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
136 | 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
137 | 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
138 | );
139 | path = Flutter;
140 | sourceTree = "";
141 | };
142 | 33FAB671232836740065AC1E /* Runner */ = {
143 | isa = PBXGroup;
144 | children = (
145 | 33CC10F02044A3C60003C045 /* AppDelegate.swift */,
146 | 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
147 | 33E51913231747F40026EE4D /* DebugProfile.entitlements */,
148 | 33E51914231749380026EE4D /* Release.entitlements */,
149 | 33CC11242044D66E0003C045 /* Resources */,
150 | 33BA886A226E78AF003329D5 /* Configs */,
151 | );
152 | path = Runner;
153 | sourceTree = "";
154 | };
155 | 90F456652A36512B0B7C00ED /* Pods */ = {
156 | isa = PBXGroup;
157 | children = (
158 | 6ACCC9E3AB9411F32CE973AD /* Pods-Runner.debug.xcconfig */,
159 | F127E1EFE28255EDE40E3E5F /* Pods-Runner.release.xcconfig */,
160 | 4766387DFCF7335C6A3C4C39 /* Pods-Runner.profile.xcconfig */,
161 | );
162 | name = Pods;
163 | path = Pods;
164 | sourceTree = "";
165 | };
166 | D73912EC22F37F3D000D13A0 /* Frameworks */ = {
167 | isa = PBXGroup;
168 | children = (
169 | 23B6E840BEBA1ED081E78388 /* Pods_Runner.framework */,
170 | );
171 | name = Frameworks;
172 | sourceTree = "";
173 | };
174 | /* End PBXGroup section */
175 |
176 | /* Begin PBXNativeTarget section */
177 | 33CC10EC2044A3C60003C045 /* Runner */ = {
178 | isa = PBXNativeTarget;
179 | buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
180 | buildPhases = (
181 | 55FB0A88A899937861B31242 /* [CP] Check Pods Manifest.lock */,
182 | 33CC10E92044A3C60003C045 /* Sources */,
183 | 33CC10EA2044A3C60003C045 /* Frameworks */,
184 | 33CC10EB2044A3C60003C045 /* Resources */,
185 | 33CC110E2044A8840003C045 /* Bundle Framework */,
186 | 3399D490228B24CF009A79C7 /* ShellScript */,
187 | 848DA107F5A3766E5AFC0F25 /* [CP] Embed Pods Frameworks */,
188 | );
189 | buildRules = (
190 | );
191 | dependencies = (
192 | 33CC11202044C79F0003C045 /* PBXTargetDependency */,
193 | );
194 | name = Runner;
195 | productName = Runner;
196 | productReference = 33CC10ED2044A3C60003C045 /* example.app */;
197 | productType = "com.apple.product-type.application";
198 | };
199 | /* End PBXNativeTarget section */
200 |
201 | /* Begin PBXProject section */
202 | 33CC10E52044A3C60003C045 /* Project object */ = {
203 | isa = PBXProject;
204 | attributes = {
205 | LastSwiftUpdateCheck = 0920;
206 | LastUpgradeCheck = 1300;
207 | ORGANIZATIONNAME = "";
208 | TargetAttributes = {
209 | 33CC10EC2044A3C60003C045 = {
210 | CreatedOnToolsVersion = 9.2;
211 | LastSwiftMigration = 1100;
212 | ProvisioningStyle = Automatic;
213 | SystemCapabilities = {
214 | com.apple.Sandbox = {
215 | enabled = 1;
216 | };
217 | };
218 | };
219 | 33CC111A2044C6BA0003C045 = {
220 | CreatedOnToolsVersion = 9.2;
221 | ProvisioningStyle = Manual;
222 | };
223 | };
224 | };
225 | buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
226 | compatibilityVersion = "Xcode 9.3";
227 | developmentRegion = en;
228 | hasScannedForEncodings = 0;
229 | knownRegions = (
230 | en,
231 | Base,
232 | );
233 | mainGroup = 33CC10E42044A3C60003C045;
234 | productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
235 | projectDirPath = "";
236 | projectRoot = "";
237 | targets = (
238 | 33CC10EC2044A3C60003C045 /* Runner */,
239 | 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
240 | );
241 | };
242 | /* End PBXProject section */
243 |
244 | /* Begin PBXResourcesBuildPhase section */
245 | 33CC10EB2044A3C60003C045 /* Resources */ = {
246 | isa = PBXResourcesBuildPhase;
247 | buildActionMask = 2147483647;
248 | files = (
249 | 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
250 | 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
251 | );
252 | runOnlyForDeploymentPostprocessing = 0;
253 | };
254 | /* End PBXResourcesBuildPhase section */
255 |
256 | /* Begin PBXShellScriptBuildPhase section */
257 | 3399D490228B24CF009A79C7 /* ShellScript */ = {
258 | isa = PBXShellScriptBuildPhase;
259 | alwaysOutOfDate = 1;
260 | buildActionMask = 2147483647;
261 | files = (
262 | );
263 | inputFileListPaths = (
264 | );
265 | inputPaths = (
266 | );
267 | outputFileListPaths = (
268 | );
269 | outputPaths = (
270 | );
271 | runOnlyForDeploymentPostprocessing = 0;
272 | shellPath = /bin/sh;
273 | shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
274 | };
275 | 33CC111E2044C6BF0003C045 /* ShellScript */ = {
276 | isa = PBXShellScriptBuildPhase;
277 | buildActionMask = 2147483647;
278 | files = (
279 | );
280 | inputFileListPaths = (
281 | Flutter/ephemeral/FlutterInputs.xcfilelist,
282 | );
283 | inputPaths = (
284 | Flutter/ephemeral/tripwire,
285 | );
286 | outputFileListPaths = (
287 | Flutter/ephemeral/FlutterOutputs.xcfilelist,
288 | );
289 | outputPaths = (
290 | );
291 | runOnlyForDeploymentPostprocessing = 0;
292 | shellPath = /bin/sh;
293 | shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
294 | };
295 | 55FB0A88A899937861B31242 /* [CP] Check Pods Manifest.lock */ = {
296 | isa = PBXShellScriptBuildPhase;
297 | buildActionMask = 2147483647;
298 | files = (
299 | );
300 | inputFileListPaths = (
301 | );
302 | inputPaths = (
303 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
304 | "${PODS_ROOT}/Manifest.lock",
305 | );
306 | name = "[CP] Check Pods Manifest.lock";
307 | outputFileListPaths = (
308 | );
309 | outputPaths = (
310 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
311 | );
312 | runOnlyForDeploymentPostprocessing = 0;
313 | shellPath = /bin/sh;
314 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
315 | showEnvVarsInLog = 0;
316 | };
317 | 848DA107F5A3766E5AFC0F25 /* [CP] Embed Pods Frameworks */ = {
318 | isa = PBXShellScriptBuildPhase;
319 | buildActionMask = 2147483647;
320 | files = (
321 | );
322 | inputFileListPaths = (
323 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
324 | );
325 | name = "[CP] Embed Pods Frameworks";
326 | outputFileListPaths = (
327 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
328 | );
329 | runOnlyForDeploymentPostprocessing = 0;
330 | shellPath = /bin/sh;
331 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
332 | showEnvVarsInLog = 0;
333 | };
334 | /* End PBXShellScriptBuildPhase section */
335 |
336 | /* Begin PBXSourcesBuildPhase section */
337 | 33CC10E92044A3C60003C045 /* Sources */ = {
338 | isa = PBXSourcesBuildPhase;
339 | buildActionMask = 2147483647;
340 | files = (
341 | 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
342 | 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
343 | 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
344 | );
345 | runOnlyForDeploymentPostprocessing = 0;
346 | };
347 | /* End PBXSourcesBuildPhase section */
348 |
349 | /* Begin PBXTargetDependency section */
350 | 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
351 | isa = PBXTargetDependency;
352 | target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
353 | targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
354 | };
355 | /* End PBXTargetDependency section */
356 |
357 | /* Begin PBXVariantGroup section */
358 | 33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
359 | isa = PBXVariantGroup;
360 | children = (
361 | 33CC10F52044A3C60003C045 /* Base */,
362 | );
363 | name = MainMenu.xib;
364 | path = Runner;
365 | sourceTree = "";
366 | };
367 | /* End PBXVariantGroup section */
368 |
369 | /* Begin XCBuildConfiguration section */
370 | 338D0CE9231458BD00FA5F75 /* Profile */ = {
371 | isa = XCBuildConfiguration;
372 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
373 | buildSettings = {
374 | ALWAYS_SEARCH_USER_PATHS = NO;
375 | CLANG_ANALYZER_NONNULL = YES;
376 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
377 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
378 | CLANG_CXX_LIBRARY = "libc++";
379 | CLANG_ENABLE_MODULES = YES;
380 | CLANG_ENABLE_OBJC_ARC = YES;
381 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
382 | CLANG_WARN_BOOL_CONVERSION = YES;
383 | CLANG_WARN_CONSTANT_CONVERSION = YES;
384 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
385 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
386 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
387 | CLANG_WARN_EMPTY_BODY = YES;
388 | CLANG_WARN_ENUM_CONVERSION = YES;
389 | CLANG_WARN_INFINITE_RECURSION = YES;
390 | CLANG_WARN_INT_CONVERSION = YES;
391 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
392 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
393 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
394 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
395 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
396 | CODE_SIGN_IDENTITY = "-";
397 | COPY_PHASE_STRIP = NO;
398 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
399 | ENABLE_NS_ASSERTIONS = NO;
400 | ENABLE_STRICT_OBJC_MSGSEND = YES;
401 | GCC_C_LANGUAGE_STANDARD = gnu11;
402 | GCC_NO_COMMON_BLOCKS = YES;
403 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
404 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
405 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
406 | GCC_WARN_UNUSED_FUNCTION = YES;
407 | GCC_WARN_UNUSED_VARIABLE = YES;
408 | MACOSX_DEPLOYMENT_TARGET = 10.14;
409 | MTL_ENABLE_DEBUG_INFO = NO;
410 | SDKROOT = macosx;
411 | SWIFT_COMPILATION_MODE = wholemodule;
412 | SWIFT_OPTIMIZATION_LEVEL = "-O";
413 | };
414 | name = Profile;
415 | };
416 | 338D0CEA231458BD00FA5F75 /* Profile */ = {
417 | isa = XCBuildConfiguration;
418 | baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
419 | buildSettings = {
420 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
421 | CLANG_ENABLE_MODULES = YES;
422 | CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
423 | CODE_SIGN_STYLE = Automatic;
424 | COMBINE_HIDPI_IMAGES = YES;
425 | INFOPLIST_FILE = Runner/Info.plist;
426 | LD_RUNPATH_SEARCH_PATHS = (
427 | "$(inherited)",
428 | "@executable_path/../Frameworks",
429 | );
430 | PROVISIONING_PROFILE_SPECIFIER = "";
431 | SWIFT_VERSION = 5.0;
432 | };
433 | name = Profile;
434 | };
435 | 338D0CEB231458BD00FA5F75 /* Profile */ = {
436 | isa = XCBuildConfiguration;
437 | buildSettings = {
438 | CODE_SIGN_STYLE = Manual;
439 | PRODUCT_NAME = "$(TARGET_NAME)";
440 | };
441 | name = Profile;
442 | };
443 | 33CC10F92044A3C60003C045 /* Debug */ = {
444 | isa = XCBuildConfiguration;
445 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
446 | buildSettings = {
447 | ALWAYS_SEARCH_USER_PATHS = NO;
448 | CLANG_ANALYZER_NONNULL = YES;
449 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
450 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
451 | CLANG_CXX_LIBRARY = "libc++";
452 | CLANG_ENABLE_MODULES = YES;
453 | CLANG_ENABLE_OBJC_ARC = YES;
454 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
455 | CLANG_WARN_BOOL_CONVERSION = YES;
456 | CLANG_WARN_CONSTANT_CONVERSION = YES;
457 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
458 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
459 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
460 | CLANG_WARN_EMPTY_BODY = YES;
461 | CLANG_WARN_ENUM_CONVERSION = YES;
462 | CLANG_WARN_INFINITE_RECURSION = YES;
463 | CLANG_WARN_INT_CONVERSION = YES;
464 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
465 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
466 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
467 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
468 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
469 | CODE_SIGN_IDENTITY = "-";
470 | COPY_PHASE_STRIP = NO;
471 | DEBUG_INFORMATION_FORMAT = dwarf;
472 | ENABLE_STRICT_OBJC_MSGSEND = YES;
473 | ENABLE_TESTABILITY = YES;
474 | GCC_C_LANGUAGE_STANDARD = gnu11;
475 | GCC_DYNAMIC_NO_PIC = NO;
476 | GCC_NO_COMMON_BLOCKS = YES;
477 | GCC_OPTIMIZATION_LEVEL = 0;
478 | GCC_PREPROCESSOR_DEFINITIONS = (
479 | "DEBUG=1",
480 | "$(inherited)",
481 | );
482 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
483 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
484 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
485 | GCC_WARN_UNUSED_FUNCTION = YES;
486 | GCC_WARN_UNUSED_VARIABLE = YES;
487 | MACOSX_DEPLOYMENT_TARGET = 10.14;
488 | MTL_ENABLE_DEBUG_INFO = YES;
489 | ONLY_ACTIVE_ARCH = YES;
490 | SDKROOT = macosx;
491 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
492 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
493 | };
494 | name = Debug;
495 | };
496 | 33CC10FA2044A3C60003C045 /* Release */ = {
497 | isa = XCBuildConfiguration;
498 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
499 | buildSettings = {
500 | ALWAYS_SEARCH_USER_PATHS = NO;
501 | CLANG_ANALYZER_NONNULL = YES;
502 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
503 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
504 | CLANG_CXX_LIBRARY = "libc++";
505 | CLANG_ENABLE_MODULES = YES;
506 | CLANG_ENABLE_OBJC_ARC = YES;
507 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
508 | CLANG_WARN_BOOL_CONVERSION = YES;
509 | CLANG_WARN_CONSTANT_CONVERSION = YES;
510 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
511 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
512 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
513 | CLANG_WARN_EMPTY_BODY = YES;
514 | CLANG_WARN_ENUM_CONVERSION = YES;
515 | CLANG_WARN_INFINITE_RECURSION = YES;
516 | CLANG_WARN_INT_CONVERSION = YES;
517 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
518 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
519 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
520 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
521 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
522 | CODE_SIGN_IDENTITY = "-";
523 | COPY_PHASE_STRIP = NO;
524 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
525 | ENABLE_NS_ASSERTIONS = NO;
526 | ENABLE_STRICT_OBJC_MSGSEND = YES;
527 | GCC_C_LANGUAGE_STANDARD = gnu11;
528 | GCC_NO_COMMON_BLOCKS = YES;
529 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
530 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
531 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
532 | GCC_WARN_UNUSED_FUNCTION = YES;
533 | GCC_WARN_UNUSED_VARIABLE = YES;
534 | MACOSX_DEPLOYMENT_TARGET = 10.14;
535 | MTL_ENABLE_DEBUG_INFO = NO;
536 | SDKROOT = macosx;
537 | SWIFT_COMPILATION_MODE = wholemodule;
538 | SWIFT_OPTIMIZATION_LEVEL = "-O";
539 | };
540 | name = Release;
541 | };
542 | 33CC10FC2044A3C60003C045 /* Debug */ = {
543 | isa = XCBuildConfiguration;
544 | baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
545 | buildSettings = {
546 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
547 | CLANG_ENABLE_MODULES = YES;
548 | CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
549 | CODE_SIGN_STYLE = Automatic;
550 | COMBINE_HIDPI_IMAGES = YES;
551 | INFOPLIST_FILE = Runner/Info.plist;
552 | LD_RUNPATH_SEARCH_PATHS = (
553 | "$(inherited)",
554 | "@executable_path/../Frameworks",
555 | );
556 | PROVISIONING_PROFILE_SPECIFIER = "";
557 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
558 | SWIFT_VERSION = 5.0;
559 | };
560 | name = Debug;
561 | };
562 | 33CC10FD2044A3C60003C045 /* Release */ = {
563 | isa = XCBuildConfiguration;
564 | baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
565 | buildSettings = {
566 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
567 | CLANG_ENABLE_MODULES = YES;
568 | CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
569 | CODE_SIGN_STYLE = Automatic;
570 | COMBINE_HIDPI_IMAGES = YES;
571 | INFOPLIST_FILE = Runner/Info.plist;
572 | LD_RUNPATH_SEARCH_PATHS = (
573 | "$(inherited)",
574 | "@executable_path/../Frameworks",
575 | );
576 | PROVISIONING_PROFILE_SPECIFIER = "";
577 | SWIFT_VERSION = 5.0;
578 | };
579 | name = Release;
580 | };
581 | 33CC111C2044C6BA0003C045 /* Debug */ = {
582 | isa = XCBuildConfiguration;
583 | buildSettings = {
584 | CODE_SIGN_STYLE = Manual;
585 | PRODUCT_NAME = "$(TARGET_NAME)";
586 | };
587 | name = Debug;
588 | };
589 | 33CC111D2044C6BA0003C045 /* Release */ = {
590 | isa = XCBuildConfiguration;
591 | buildSettings = {
592 | CODE_SIGN_STYLE = Automatic;
593 | PRODUCT_NAME = "$(TARGET_NAME)";
594 | };
595 | name = Release;
596 | };
597 | /* End XCBuildConfiguration section */
598 |
599 | /* Begin XCConfigurationList section */
600 | 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
601 | isa = XCConfigurationList;
602 | buildConfigurations = (
603 | 33CC10F92044A3C60003C045 /* Debug */,
604 | 33CC10FA2044A3C60003C045 /* Release */,
605 | 338D0CE9231458BD00FA5F75 /* Profile */,
606 | );
607 | defaultConfigurationIsVisible = 0;
608 | defaultConfigurationName = Release;
609 | };
610 | 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
611 | isa = XCConfigurationList;
612 | buildConfigurations = (
613 | 33CC10FC2044A3C60003C045 /* Debug */,
614 | 33CC10FD2044A3C60003C045 /* Release */,
615 | 338D0CEA231458BD00FA5F75 /* Profile */,
616 | );
617 | defaultConfigurationIsVisible = 0;
618 | defaultConfigurationName = Release;
619 | };
620 | 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
621 | isa = XCConfigurationList;
622 | buildConfigurations = (
623 | 33CC111C2044C6BA0003C045 /* Debug */,
624 | 33CC111D2044C6BA0003C045 /* Release */,
625 | 338D0CEB231458BD00FA5F75 /* Profile */,
626 | );
627 | defaultConfigurationIsVisible = 0;
628 | defaultConfigurationName = Release;
629 | };
630 | /* End XCConfigurationList section */
631 | };
632 | rootObject = 33CC10E52044A3C60003C045 /* Project object */;
633 | }
634 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
37 |
38 |
39 |
40 |
41 |
42 |
52 |
54 |
60 |
61 |
62 |
63 |
64 |
65 |
71 |
73 |
79 |
80 |
81 |
82 |
84 |
85 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @NSApplicationMain
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "16x16",
5 | "idiom" : "mac",
6 | "filename" : "app_icon_16.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "16x16",
11 | "idiom" : "mac",
12 | "filename" : "app_icon_32.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "32x32",
17 | "idiom" : "mac",
18 | "filename" : "app_icon_32.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "32x32",
23 | "idiom" : "mac",
24 | "filename" : "app_icon_64.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "128x128",
29 | "idiom" : "mac",
30 | "filename" : "app_icon_128.png",
31 | "scale" : "1x"
32 | },
33 | {
34 | "size" : "128x128",
35 | "idiom" : "mac",
36 | "filename" : "app_icon_256.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "256x256",
41 | "idiom" : "mac",
42 | "filename" : "app_icon_256.png",
43 | "scale" : "1x"
44 | },
45 | {
46 | "size" : "256x256",
47 | "idiom" : "mac",
48 | "filename" : "app_icon_512.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "512x512",
53 | "idiom" : "mac",
54 | "filename" : "app_icon_512.png",
55 | "scale" : "1x"
56 | },
57 | {
58 | "size" : "512x512",
59 | "idiom" : "mac",
60 | "filename" : "app_icon_1024.png",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/example/macos/Runner/Base.lproj/MainMenu.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | // Application-level settings for the Runner target.
2 | //
3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4 | // future. If not, the values below would default to using the project name when this becomes a
5 | // 'flutter create' template.
6 |
7 | // The application's name. By default this is also the title of the Flutter window.
8 | PRODUCT_NAME = example
9 |
10 | // The application's bundle identifier
11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example
12 |
13 | // The copyright displayed in application information
14 | PRODUCT_COPYRIGHT = Copyright © 2021 com.example. All rights reserved.
15 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/Warnings.xcconfig:
--------------------------------------------------------------------------------
1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2 | GCC_WARN_UNDECLARED_SELECTOR = YES
3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6 | CLANG_WARN_PRAGMA_PACK = YES
7 | CLANG_WARN_STRICT_PROTOTYPES = YES
8 | CLANG_WARN_COMMA = YES
9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES
10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12 | GCC_WARN_SHADOW = YES
13 | CLANG_WARN_UNREACHABLE_CODE = YES
14 |
--------------------------------------------------------------------------------
/example/macos/Runner/DebugProfile.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.cs.allow-jit
8 |
9 | com.apple.security.network.server
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/example/macos/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(FLUTTER_BUILD_NAME)
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSHumanReadableCopyright
26 | $(PRODUCT_COPYRIGHT)
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/example/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController.init()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/example/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://dart.dev/tools/pub/glossary#lockfile
3 | packages:
4 | async:
5 | dependency: transitive
6 | description:
7 | name: async
8 | sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
9 | url: "https://pub.dev"
10 | source: hosted
11 | version: "2.11.0"
12 | boolean_selector:
13 | dependency: transitive
14 | description:
15 | name: boolean_selector
16 | sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
17 | url: "https://pub.dev"
18 | source: hosted
19 | version: "2.1.1"
20 | cached_network_image:
21 | dependency: transitive
22 | description:
23 | name: cached_network_image
24 | sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15
25 | url: "https://pub.dev"
26 | source: hosted
27 | version: "3.2.3"
28 | cached_network_image_platform_interface:
29 | dependency: transitive
30 | description:
31 | name: cached_network_image_platform_interface
32 | sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7
33 | url: "https://pub.dev"
34 | source: hosted
35 | version: "2.0.0"
36 | cached_network_image_web:
37 | dependency: transitive
38 | description:
39 | name: cached_network_image_web
40 | sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0
41 | url: "https://pub.dev"
42 | source: hosted
43 | version: "1.0.2"
44 | characters:
45 | dependency: transitive
46 | description:
47 | name: characters
48 | sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
49 | url: "https://pub.dev"
50 | source: hosted
51 | version: "1.3.0"
52 | clock:
53 | dependency: transitive
54 | description:
55 | name: clock
56 | sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
57 | url: "https://pub.dev"
58 | source: hosted
59 | version: "1.1.1"
60 | collection:
61 | dependency: transitive
62 | description:
63 | name: collection
64 | sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
65 | url: "https://pub.dev"
66 | source: hosted
67 | version: "1.17.1"
68 | crypto:
69 | dependency: transitive
70 | description:
71 | name: crypto
72 | sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
73 | url: "https://pub.dev"
74 | source: hosted
75 | version: "3.0.3"
76 | fake_async:
77 | dependency: transitive
78 | description:
79 | name: fake_async
80 | sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
81 | url: "https://pub.dev"
82 | source: hosted
83 | version: "1.3.1"
84 | ffi:
85 | dependency: transitive
86 | description:
87 | name: ffi
88 | sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
89 | url: "https://pub.dev"
90 | source: hosted
91 | version: "2.0.2"
92 | file:
93 | dependency: transitive
94 | description:
95 | name: file
96 | sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
97 | url: "https://pub.dev"
98 | source: hosted
99 | version: "6.1.4"
100 | flutter:
101 | dependency: "direct main"
102 | description: flutter
103 | source: sdk
104 | version: "0.0.0"
105 | flutter_blurhash:
106 | dependency: transitive
107 | description:
108 | name: flutter_blurhash
109 | sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6"
110 | url: "https://pub.dev"
111 | source: hosted
112 | version: "0.7.0"
113 | flutter_cache_manager:
114 | dependency: transitive
115 | description:
116 | name: flutter_cache_manager
117 | sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3"
118 | url: "https://pub.dev"
119 | source: hosted
120 | version: "3.3.0"
121 | flutter_test:
122 | dependency: "direct dev"
123 | description: flutter
124 | source: sdk
125 | version: "0.0.0"
126 | galleryimage:
127 | dependency: "direct main"
128 | description:
129 | path: ".."
130 | relative: true
131 | source: path
132 | version: "2.0.0"
133 | http:
134 | dependency: transitive
135 | description:
136 | name: http
137 | sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
138 | url: "https://pub.dev"
139 | source: hosted
140 | version: "0.13.6"
141 | http_parser:
142 | dependency: transitive
143 | description:
144 | name: http_parser
145 | sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
146 | url: "https://pub.dev"
147 | source: hosted
148 | version: "4.0.2"
149 | js:
150 | dependency: transitive
151 | description:
152 | name: js
153 | sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
154 | url: "https://pub.dev"
155 | source: hosted
156 | version: "0.6.7"
157 | matcher:
158 | dependency: transitive
159 | description:
160 | name: matcher
161 | sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
162 | url: "https://pub.dev"
163 | source: hosted
164 | version: "0.12.15"
165 | material_color_utilities:
166 | dependency: transitive
167 | description:
168 | name: material_color_utilities
169 | sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
170 | url: "https://pub.dev"
171 | source: hosted
172 | version: "0.2.0"
173 | meta:
174 | dependency: transitive
175 | description:
176 | name: meta
177 | sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
178 | url: "https://pub.dev"
179 | source: hosted
180 | version: "1.9.1"
181 | octo_image:
182 | dependency: transitive
183 | description:
184 | name: octo_image
185 | sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143"
186 | url: "https://pub.dev"
187 | source: hosted
188 | version: "1.0.2"
189 | path:
190 | dependency: transitive
191 | description:
192 | name: path
193 | sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
194 | url: "https://pub.dev"
195 | source: hosted
196 | version: "1.8.3"
197 | path_provider:
198 | dependency: transitive
199 | description:
200 | name: path_provider
201 | sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2"
202 | url: "https://pub.dev"
203 | source: hosted
204 | version: "2.0.15"
205 | path_provider_android:
206 | dependency: transitive
207 | description:
208 | name: path_provider_android
209 | sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86"
210 | url: "https://pub.dev"
211 | source: hosted
212 | version: "2.0.27"
213 | path_provider_foundation:
214 | dependency: transitive
215 | description:
216 | name: path_provider_foundation
217 | sha256: "1995d88ec2948dac43edf8fe58eb434d35d22a2940ecee1a9fefcd62beee6eb3"
218 | url: "https://pub.dev"
219 | source: hosted
220 | version: "2.2.3"
221 | path_provider_linux:
222 | dependency: transitive
223 | description:
224 | name: path_provider_linux
225 | sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
226 | url: "https://pub.dev"
227 | source: hosted
228 | version: "2.1.11"
229 | path_provider_platform_interface:
230 | dependency: transitive
231 | description:
232 | name: path_provider_platform_interface
233 | sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
234 | url: "https://pub.dev"
235 | source: hosted
236 | version: "2.0.6"
237 | path_provider_windows:
238 | dependency: transitive
239 | description:
240 | name: path_provider_windows
241 | sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
242 | url: "https://pub.dev"
243 | source: hosted
244 | version: "2.1.6"
245 | pedantic:
246 | dependency: transitive
247 | description:
248 | name: pedantic
249 | sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
250 | url: "https://pub.dev"
251 | source: hosted
252 | version: "1.11.1"
253 | platform:
254 | dependency: transitive
255 | description:
256 | name: platform
257 | sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
258 | url: "https://pub.dev"
259 | source: hosted
260 | version: "3.1.0"
261 | plugin_platform_interface:
262 | dependency: transitive
263 | description:
264 | name: plugin_platform_interface
265 | sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
266 | url: "https://pub.dev"
267 | source: hosted
268 | version: "2.1.4"
269 | process:
270 | dependency: transitive
271 | description:
272 | name: process
273 | sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
274 | url: "https://pub.dev"
275 | source: hosted
276 | version: "4.2.4"
277 | rxdart:
278 | dependency: transitive
279 | description:
280 | name: rxdart
281 | sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
282 | url: "https://pub.dev"
283 | source: hosted
284 | version: "0.27.7"
285 | sky_engine:
286 | dependency: transitive
287 | description: flutter
288 | source: sdk
289 | version: "0.0.99"
290 | source_span:
291 | dependency: transitive
292 | description:
293 | name: source_span
294 | sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
295 | url: "https://pub.dev"
296 | source: hosted
297 | version: "1.9.1"
298 | sqflite:
299 | dependency: transitive
300 | description:
301 | name: sqflite
302 | sha256: b4d6710e1200e96845747e37338ea8a819a12b51689a3bcf31eff0003b37a0b9
303 | url: "https://pub.dev"
304 | source: hosted
305 | version: "2.2.8+4"
306 | sqflite_common:
307 | dependency: transitive
308 | description:
309 | name: sqflite_common
310 | sha256: e77abf6ff961d69dfef41daccbb66b51e9983cdd5cb35bf30733598057401555
311 | url: "https://pub.dev"
312 | source: hosted
313 | version: "2.4.5"
314 | stack_trace:
315 | dependency: transitive
316 | description:
317 | name: stack_trace
318 | sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
319 | url: "https://pub.dev"
320 | source: hosted
321 | version: "1.11.0"
322 | stream_channel:
323 | dependency: transitive
324 | description:
325 | name: stream_channel
326 | sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
327 | url: "https://pub.dev"
328 | source: hosted
329 | version: "2.1.1"
330 | string_scanner:
331 | dependency: transitive
332 | description:
333 | name: string_scanner
334 | sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
335 | url: "https://pub.dev"
336 | source: hosted
337 | version: "1.2.0"
338 | synchronized:
339 | dependency: transitive
340 | description:
341 | name: synchronized
342 | sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
343 | url: "https://pub.dev"
344 | source: hosted
345 | version: "3.1.0"
346 | term_glyph:
347 | dependency: transitive
348 | description:
349 | name: term_glyph
350 | sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
351 | url: "https://pub.dev"
352 | source: hosted
353 | version: "1.2.1"
354 | test_api:
355 | dependency: transitive
356 | description:
357 | name: test_api
358 | sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
359 | url: "https://pub.dev"
360 | source: hosted
361 | version: "0.5.1"
362 | typed_data:
363 | dependency: transitive
364 | description:
365 | name: typed_data
366 | sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
367 | url: "https://pub.dev"
368 | source: hosted
369 | version: "1.3.2"
370 | uuid:
371 | dependency: transitive
372 | description:
373 | name: uuid
374 | sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
375 | url: "https://pub.dev"
376 | source: hosted
377 | version: "3.0.7"
378 | vector_math:
379 | dependency: transitive
380 | description:
381 | name: vector_math
382 | sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
383 | url: "https://pub.dev"
384 | source: hosted
385 | version: "2.1.4"
386 | win32:
387 | dependency: transitive
388 | description:
389 | name: win32
390 | sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
391 | url: "https://pub.dev"
392 | source: hosted
393 | version: "4.1.4"
394 | xdg_directories:
395 | dependency: transitive
396 | description:
397 | name: xdg_directories
398 | sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
399 | url: "https://pub.dev"
400 | source: hosted
401 | version: "1.0.0"
402 | sdks:
403 | dart: ">=3.0.3 <4.0.0"
404 | flutter: ">=3.3.0"
405 |
--------------------------------------------------------------------------------
/example/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: example
2 | description: A new Flutter project.
3 |
4 | # The following line prevents the package from being accidentally published to
5 | # pub.dev using `pub publish`. This is preferred for private packages.
6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
7 |
8 | # The following defines the version and build number for your application.
9 | # A version number is three numbers separated by dots, like 1.2.43
10 | # followed by an optional build number separated by a +.
11 | # Both the version and the builder number may be overridden in flutter
12 | # build by specifying --build-name and --build-number, respectively.
13 | # In Android, build-name is used as versionName while build-number used as versionCode.
14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
16 | # Read more about iOS versioning at
17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
18 | version: 1.0.0+1
19 |
20 | environment:
21 | sdk: '>=3.0.3 <4.0.0'
22 |
23 | dependencies:
24 | flutter:
25 | sdk: flutter
26 | galleryimage:
27 | path: ../
28 |
29 |
30 |
31 | dev_dependencies:
32 | flutter_test:
33 | sdk: flutter
34 |
35 | # For information on the generic Dart part of this file, see the
36 | # following page: https://dart.dev/tools/pub/pubspec
37 |
38 | # The following section is specific to Flutter.
39 | flutter:
40 |
41 | # The following line ensures that the Material Icons font is
42 | # included with your application, so that you can use the icons in
43 | # the material Icons class.
44 | uses-material-design: true
45 |
46 | # To add assets to your application, add an assets section, like this:
47 | # assets:
48 | # - images/a_dot_burr.jpeg
49 | # - images/a_dot_ham.jpeg
50 |
51 | # An image asset can refer to one or more resolution-specific "variants", see
52 | # https://flutter.dev/assets-and-images/#resolution-aware.
53 |
54 | # For details regarding adding assets from package dependencies, see
55 | # https://flutter.dev/assets-and-images/#from-packages
56 |
57 | # To add custom fonts to your application, add a fonts section here,
58 | # in this "flutter" section. Each entry in this list should have a
59 | # "family" key with the font family name, and a "fonts" key with a
60 | # list giving the asset and other descriptors for the font. For
61 | # example:
62 | # fonts:
63 | # - family: Schyler
64 | # fonts:
65 | # - asset: fonts/Schyler-Regular.ttf
66 | # - asset: fonts/Schyler-Italic.ttf
67 | # style: italic
68 | # - family: Trajan Pro
69 | # fonts:
70 | # - asset: fonts/TrajanPro.ttf
71 | # - asset: fonts/TrajanPro_Bold.ttf
72 | # weight: 700
73 | #
74 | # For details regarding fonts from package dependencies,
75 | # see https://flutter.dev/custom-fonts/#from-packages
76 |
--------------------------------------------------------------------------------
/example/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import '../lib/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(const MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/example/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/web/favicon.png
--------------------------------------------------------------------------------
/example/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/example/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/example/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/example/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | example
27 |
28 |
29 |
30 |
33 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/example/web/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "short_name": "example",
4 | "start_url": ".",
5 | "display": "standalone",
6 | "background_color": "#0175C2",
7 | "theme_color": "#0175C2",
8 | "description": "A new Flutter project.",
9 | "orientation": "portrait-primary",
10 | "prefer_related_applications": false,
11 | "icons": [
12 | {
13 | "src": "icons/Icon-192.png",
14 | "sizes": "192x192",
15 | "type": "image/png"
16 | },
17 | {
18 | "src": "icons/Icon-512.png",
19 | "sizes": "512x512",
20 | "type": "image/png"
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/guideToPublicNewLibraryVersion.txt:
--------------------------------------------------------------------------------
1 | After you finished your edits
2 |
3 | # Step 0
4 | --> update lib version in pubspec.yaml
5 | --> update lib version in CHANGELOG.md
6 |
7 | # Step 1
8 | --> push all changes to github
9 |
10 | # Step 2 to push your package in pub.dev
11 | --> check all is well
12 | flutter pub publish --dry-run
13 |
14 | # Step 3 upload to pub.dev
15 | --> run flutter pub publish
--------------------------------------------------------------------------------
/images/example.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/images/example.gif
--------------------------------------------------------------------------------
/images/example_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/images/example_1.png
--------------------------------------------------------------------------------
/images/example_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeshoyMelika/flutter-gallery-package/39e8acaff298f05c546fb84faf713ee7e797add0/images/example_2.png
--------------------------------------------------------------------------------
/lib/app_cached_network_image.dart:
--------------------------------------------------------------------------------
1 | import 'package:cached_network_image/cached_network_image.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | class AppCachedNetworkImage extends StatelessWidget {
5 | final Widget? loadingWidget;
6 | final Widget? errorWidget;
7 | final double? height;
8 | final double? width;
9 | final BoxFit? fit;
10 | final double radius;
11 | final String imageUrl;
12 |
13 | const AppCachedNetworkImage({
14 | super.key,
15 | required this.imageUrl,
16 | required this.radius,
17 | this.loadingWidget,
18 | this.errorWidget,
19 | this.fit,
20 | this.height,
21 | this.width,
22 | });
23 |
24 | @override
25 | Widget build(BuildContext context) {
26 | return ClipRRect(
27 | borderRadius: BorderRadius.all(Radius.circular(radius)),
28 | child: CachedNetworkImage(
29 | height: height,
30 | width: width,
31 | fit: fit,
32 | imageUrl: imageUrl,
33 | placeholder: (context, url) =>
34 | loadingWidget ?? const Center(child: CircularProgressIndicator()),
35 | errorWidget: (context, url, error) =>
36 | errorWidget ?? const Icon(Icons.error),
37 | ),
38 | );
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/lib/gallery_image_view_wrapper.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:galleryimage/app_cached_network_image.dart';
3 |
4 | import 'gallery_item_model.dart';
5 |
6 | // to view image in full screen
7 | class GalleryImageViewWrapper extends StatefulWidget {
8 | final Color? backgroundColor;
9 | final int? initialIndex;
10 | final List galleryItems;
11 | final String? titleGallery;
12 | final Widget? loadingWidget;
13 | final Widget? errorWidget;
14 | final double minScale;
15 | final double maxScale;
16 | final double radius;
17 | final bool reverse;
18 | final bool showListInGalley;
19 | final bool showAppBar;
20 | final bool closeWhenSwipeUp;
21 | final bool closeWhenSwipeDown;
22 |
23 | const GalleryImageViewWrapper({
24 | Key? key,
25 | required this.titleGallery,
26 | required this.backgroundColor,
27 | required this.initialIndex,
28 | required this.galleryItems,
29 | required this.loadingWidget,
30 | required this.errorWidget,
31 | required this.minScale,
32 | required this.maxScale,
33 | required this.radius,
34 | required this.reverse,
35 | required this.showListInGalley,
36 | required this.showAppBar,
37 | required this.closeWhenSwipeUp,
38 | required this.closeWhenSwipeDown,
39 | }) : super(key: key);
40 |
41 | @override
42 | State createState() {
43 | return _GalleryImageViewWrapperState();
44 | }
45 | }
46 |
47 | class _GalleryImageViewWrapperState extends State {
48 | late final PageController _controller =
49 | PageController(initialPage: widget.initialIndex ?? 0);
50 | int _currentPage = 0;
51 |
52 | @override
53 | void initState() {
54 | _currentPage = 0;
55 | _controller.addListener(() {
56 | setState(() {
57 | _currentPage = _controller.page?.toInt() ?? 0;
58 | });
59 | });
60 | super.initState();
61 | }
62 |
63 | @override
64 | void dispose() {
65 | _controller.dispose();
66 | super.dispose();
67 | }
68 |
69 | @override
70 | Widget build(BuildContext context) {
71 | return Scaffold(
72 | appBar: widget.showAppBar
73 | ? AppBar(
74 | title: Text(widget.titleGallery ?? "Gallery"),
75 | )
76 | : null,
77 | backgroundColor: widget.backgroundColor,
78 | body: SafeArea(
79 | child: Container(
80 | constraints:
81 | BoxConstraints.expand(height: MediaQuery.of(context).size.height),
82 | child: Column(
83 | children: [
84 | Expanded(
85 | child: GestureDetector(
86 | onVerticalDragEnd: (details) {
87 | if (widget.closeWhenSwipeUp &&
88 | details.primaryVelocity! < 0) {
89 | //'up'
90 | Navigator.of(context).pop();
91 | }
92 | if (widget.closeWhenSwipeDown &&
93 | details.primaryVelocity! > 0) {
94 | // 'down'
95 | Navigator.of(context).pop();
96 | }
97 | },
98 | child: PageView.builder(
99 | reverse: widget.reverse,
100 | controller: _controller,
101 | itemCount: widget.galleryItems.length,
102 | itemBuilder: (context, index) =>
103 | _buildImage(widget.galleryItems[index]),
104 | ),
105 | ),
106 | ),
107 | if (widget.showListInGalley)
108 | SizedBox(
109 | height: 80,
110 | child: SingleChildScrollView(
111 | scrollDirection: Axis.horizontal,
112 | child: Row(
113 | children: widget.galleryItems
114 | .map((e) => _buildLitImage(e))
115 | .toList(),
116 | ),
117 | ),
118 | ),
119 | ],
120 | ),
121 | ),
122 | ),
123 | );
124 | }
125 |
126 | // build image with zooming
127 | Widget _buildImage(GalleryItemModel item) {
128 | return Hero(
129 | tag: item.id,
130 | child: InteractiveViewer(
131 | minScale: widget.minScale,
132 | maxScale: widget.maxScale,
133 | child: Center(
134 | child: AppCachedNetworkImage(
135 | imageUrl: item.imageUrl,
136 | loadingWidget: widget.loadingWidget,
137 | errorWidget: widget.errorWidget,
138 | radius: widget.radius,
139 | ),
140 | ),
141 | ),
142 | );
143 | }
144 |
145 | // build image with zooming
146 | Widget _buildLitImage(GalleryItemModel item) {
147 | return Padding(
148 | padding: const EdgeInsets.symmetric(horizontal: 5),
149 | child: GestureDetector(
150 | onTap: () {
151 | setState(() {
152 | _controller.jumpToPage(item.index);
153 | });
154 | },
155 | child: AppCachedNetworkImage(
156 | height: _currentPage == item.index ? 70 : 60,
157 | width: _currentPage == item.index ? 70 : 60,
158 | fit: BoxFit.cover,
159 | imageUrl: item.imageUrl,
160 | errorWidget: widget.errorWidget,
161 | radius: widget.radius,
162 | loadingWidget: widget.loadingWidget,
163 | ),
164 | ),
165 | );
166 | }
167 | }
168 |
--------------------------------------------------------------------------------
/lib/gallery_item_model.dart:
--------------------------------------------------------------------------------
1 | class GalleryItemModel {
2 | GalleryItemModel({
3 | required this.id,
4 | required this.imageUrl,
5 | required this.index,
6 | });
7 | // index in list of image
8 | final int index;
9 | // id image (image url) to use in hero animation
10 | final String id;
11 | // image url
12 | final String imageUrl;
13 | }
14 |
--------------------------------------------------------------------------------
/lib/gallery_item_thumbnail.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:galleryimage/app_cached_network_image.dart';
3 |
4 | import 'gallery_item_model.dart';
5 |
6 | // to show image in Row
7 | class GalleryItemThumbnail extends StatelessWidget {
8 | final GalleryItemModel galleryItem;
9 | final GestureTapCallback? onTap;
10 | final Widget? loadingWidget;
11 | final Widget? errorWidget;
12 | final double radius;
13 |
14 | const GalleryItemThumbnail(
15 | {Key? key,
16 | required this.galleryItem,
17 | required this.onTap,
18 | required this.radius,
19 | required this.loadingWidget,
20 | required this.errorWidget})
21 | : super(key: key);
22 |
23 | @override
24 | Widget build(BuildContext context) {
25 | return GestureDetector(
26 | onTap: onTap,
27 | child: Hero(
28 | tag: galleryItem.id,
29 | child: AppCachedNetworkImage(
30 | fit: BoxFit.cover,
31 | imageUrl: galleryItem.imageUrl,
32 | loadingWidget: loadingWidget,
33 | errorWidget: errorWidget,
34 | radius: radius,
35 | ),
36 | ),
37 | );
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/lib/galleryimage.dart:
--------------------------------------------------------------------------------
1 | library galleryimage;
2 |
3 | import 'package:flutter/material.dart';
4 |
5 | import 'gallery_item_model.dart';
6 | import 'gallery_item_thumbnail.dart';
7 | import './gallery_image_view_wrapper.dart';
8 | import './util.dart';
9 |
10 | class GalleryImage extends StatefulWidget {
11 | final List imageUrls;
12 | final String? titleGallery;
13 | final int numOfShowImages;
14 | final int crossAxisCount;
15 | final double mainAxisSpacing;
16 | final double crossAxisSpacing;
17 | final double childAspectRatio;
18 | final EdgeInsetsGeometry padding;
19 | final Color? colorOfNumberWidget;
20 | final Color galleryBackgroundColor;
21 | final TextStyle? textStyleOfNumberWidget;
22 | final Widget? loadingWidget;
23 | final Widget? errorWidget;
24 | final double minScale;
25 | final double maxScale;
26 | final double imageRadius;
27 | final bool reverse;
28 | final bool showListInGalley;
29 | final bool showAppBar;
30 | final bool closeWhenSwipeUp;
31 | final bool closeWhenSwipeDown;
32 |
33 | const GalleryImage({
34 | Key? key,
35 | required this.imageUrls,
36 | this.titleGallery,
37 | this.childAspectRatio = 1,
38 | this.crossAxisCount = 3,
39 | this.mainAxisSpacing = 5,
40 | this.crossAxisSpacing = 5,
41 | this.numOfShowImages = 3,
42 | this.colorOfNumberWidget,
43 | this.textStyleOfNumberWidget,
44 | this.padding = EdgeInsets.zero,
45 | this.loadingWidget,
46 | this.errorWidget,
47 | this.galleryBackgroundColor = Colors.black,
48 | this.minScale = .5,
49 | this.maxScale = 10,
50 | this.imageRadius = 8,
51 | this.reverse = false,
52 | this.showListInGalley = true,
53 | this.showAppBar = true,
54 | this.closeWhenSwipeUp = false,
55 | this.closeWhenSwipeDown = false,
56 | }) : assert(numOfShowImages <= imageUrls.length),
57 | super(key: key);
58 | @override
59 | State createState() => _GalleryImageState();
60 | }
61 |
62 | class _GalleryImageState extends State {
63 | List galleryItems = [];
64 | @override
65 | void initState() {
66 | _buildItemsList(widget.imageUrls);
67 | super.initState();
68 | }
69 |
70 | @override
71 | Widget build(BuildContext context) {
72 | return galleryItems.isEmpty
73 | ? const EmptyWidget()
74 | : GridView.builder(
75 | primary: false,
76 | itemCount: galleryItems.length > 3
77 | ? widget.numOfShowImages
78 | : galleryItems.length,
79 | padding: widget.padding,
80 | gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
81 | childAspectRatio: widget.childAspectRatio,
82 | crossAxisCount: widget.crossAxisCount,
83 | mainAxisSpacing: widget.mainAxisSpacing,
84 | crossAxisSpacing: widget.crossAxisSpacing,
85 | ),
86 | shrinkWrap: true,
87 | itemBuilder: (BuildContext context, int index) {
88 | return _isLastItem(index)
89 | ? _buildImageNumbers(index)
90 | : GalleryItemThumbnail(
91 | galleryItem: galleryItems[index],
92 | onTap: () {
93 | _openImageFullScreen(index);
94 | },
95 | loadingWidget: widget.loadingWidget,
96 | errorWidget: widget.errorWidget,
97 | radius: widget.imageRadius,
98 | );
99 | });
100 | }
101 |
102 | // build image with number for other images
103 | Widget _buildImageNumbers(int index) {
104 | return GestureDetector(
105 | onTap: () {
106 | _openImageFullScreen(index);
107 | },
108 | child: Stack(
109 | alignment: AlignmentDirectional.center,
110 | fit: StackFit.expand,
111 | children: [
112 | GalleryItemThumbnail(
113 | galleryItem: galleryItems[index],
114 | loadingWidget: widget.loadingWidget,
115 | errorWidget: widget.errorWidget,
116 | onTap: null,
117 | radius: widget.imageRadius,
118 | ),
119 | ClipRRect(
120 | borderRadius: BorderRadius.all(Radius.circular(widget.imageRadius)),
121 | child: ColoredBox(
122 | color: widget.colorOfNumberWidget ?? Colors.black.withOpacity(.7),
123 | child: Center(
124 | child: Text(
125 | "+${galleryItems.length - index}",
126 | style: widget.textStyleOfNumberWidget ??
127 | const TextStyle(color: Colors.white, fontSize: 40),
128 | ),
129 | ),
130 | ),
131 | ),
132 | ],
133 | ),
134 | );
135 | }
136 |
137 | // Check if item is last image in grid to view image or number
138 | bool _isLastItem(int index) {
139 | return index < galleryItems.length - 1 &&
140 | index == widget.numOfShowImages - 1;
141 | }
142 |
143 | // to open gallery image in full screen
144 | Future _openImageFullScreen(int indexOfImage) async {
145 | await Navigator.push(
146 | context,
147 | MaterialPageRoute(
148 | builder: (context) => GalleryImageViewWrapper(
149 | titleGallery: widget.titleGallery,
150 | galleryItems: galleryItems,
151 | backgroundColor: widget.galleryBackgroundColor,
152 | initialIndex: indexOfImage,
153 | loadingWidget: widget.loadingWidget,
154 | errorWidget: widget.errorWidget,
155 | maxScale: widget.maxScale,
156 | minScale: widget.minScale,
157 | reverse: widget.reverse,
158 | showListInGalley: widget.showListInGalley,
159 | showAppBar: widget.showAppBar,
160 | closeWhenSwipeUp: widget.closeWhenSwipeUp,
161 | closeWhenSwipeDown: widget.closeWhenSwipeDown,
162 | radius: widget.imageRadius,
163 | ),
164 | ),
165 | );
166 | }
167 |
168 | // clear and build list
169 | void _buildItemsList(List items) {
170 | galleryItems.clear();
171 | for (var item in items) {
172 | galleryItems.add(
173 | GalleryItemModel(id: item, imageUrl: item, index: items.indexOf(item)),
174 | );
175 | }
176 | }
177 | }
178 |
--------------------------------------------------------------------------------
/lib/util.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class EmptyWidget extends StatelessWidget {
4 | const EmptyWidget({super.key});
5 |
6 | @override
7 | Widget build(BuildContext context) {
8 | return const SizedBox.shrink();
9 | }
10 | }
11 |
12 |
13 | /// reference
14 | /// https://stackoverflow.com/a/55796929/2172590
15 |
16 |
--------------------------------------------------------------------------------
/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://dart.dev/tools/pub/glossary#lockfile
3 | packages:
4 | async:
5 | dependency: transitive
6 | description:
7 | name: async
8 | sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
9 | url: "https://pub.dev"
10 | source: hosted
11 | version: "2.11.0"
12 | boolean_selector:
13 | dependency: transitive
14 | description:
15 | name: boolean_selector
16 | sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
17 | url: "https://pub.dev"
18 | source: hosted
19 | version: "2.1.1"
20 | cached_network_image:
21 | dependency: "direct main"
22 | description:
23 | name: cached_network_image
24 | sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15
25 | url: "https://pub.dev"
26 | source: hosted
27 | version: "3.2.3"
28 | cached_network_image_platform_interface:
29 | dependency: transitive
30 | description:
31 | name: cached_network_image_platform_interface
32 | sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7
33 | url: "https://pub.dev"
34 | source: hosted
35 | version: "2.0.0"
36 | cached_network_image_web:
37 | dependency: transitive
38 | description:
39 | name: cached_network_image_web
40 | sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0
41 | url: "https://pub.dev"
42 | source: hosted
43 | version: "1.0.2"
44 | characters:
45 | dependency: transitive
46 | description:
47 | name: characters
48 | sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
49 | url: "https://pub.dev"
50 | source: hosted
51 | version: "1.3.0"
52 | clock:
53 | dependency: transitive
54 | description:
55 | name: clock
56 | sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
57 | url: "https://pub.dev"
58 | source: hosted
59 | version: "1.1.1"
60 | collection:
61 | dependency: transitive
62 | description:
63 | name: collection
64 | sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
65 | url: "https://pub.dev"
66 | source: hosted
67 | version: "1.17.1"
68 | crypto:
69 | dependency: transitive
70 | description:
71 | name: crypto
72 | sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
73 | url: "https://pub.dev"
74 | source: hosted
75 | version: "3.0.3"
76 | fake_async:
77 | dependency: transitive
78 | description:
79 | name: fake_async
80 | sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
81 | url: "https://pub.dev"
82 | source: hosted
83 | version: "1.3.1"
84 | ffi:
85 | dependency: transitive
86 | description:
87 | name: ffi
88 | sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
89 | url: "https://pub.dev"
90 | source: hosted
91 | version: "2.0.2"
92 | file:
93 | dependency: transitive
94 | description:
95 | name: file
96 | sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
97 | url: "https://pub.dev"
98 | source: hosted
99 | version: "6.1.4"
100 | flutter:
101 | dependency: "direct main"
102 | description: flutter
103 | source: sdk
104 | version: "0.0.0"
105 | flutter_blurhash:
106 | dependency: transitive
107 | description:
108 | name: flutter_blurhash
109 | sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6"
110 | url: "https://pub.dev"
111 | source: hosted
112 | version: "0.7.0"
113 | flutter_cache_manager:
114 | dependency: transitive
115 | description:
116 | name: flutter_cache_manager
117 | sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3"
118 | url: "https://pub.dev"
119 | source: hosted
120 | version: "3.3.0"
121 | flutter_lints:
122 | dependency: "direct dev"
123 | description:
124 | name: flutter_lints
125 | sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
126 | url: "https://pub.dev"
127 | source: hosted
128 | version: "2.0.1"
129 | flutter_test:
130 | dependency: "direct dev"
131 | description: flutter
132 | source: sdk
133 | version: "0.0.0"
134 | http:
135 | dependency: transitive
136 | description:
137 | name: http
138 | sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
139 | url: "https://pub.dev"
140 | source: hosted
141 | version: "0.13.6"
142 | http_parser:
143 | dependency: transitive
144 | description:
145 | name: http_parser
146 | sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
147 | url: "https://pub.dev"
148 | source: hosted
149 | version: "4.0.2"
150 | js:
151 | dependency: transitive
152 | description:
153 | name: js
154 | sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
155 | url: "https://pub.dev"
156 | source: hosted
157 | version: "0.6.7"
158 | lints:
159 | dependency: transitive
160 | description:
161 | name: lints
162 | sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
163 | url: "https://pub.dev"
164 | source: hosted
165 | version: "2.1.1"
166 | matcher:
167 | dependency: transitive
168 | description:
169 | name: matcher
170 | sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
171 | url: "https://pub.dev"
172 | source: hosted
173 | version: "0.12.15"
174 | material_color_utilities:
175 | dependency: transitive
176 | description:
177 | name: material_color_utilities
178 | sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
179 | url: "https://pub.dev"
180 | source: hosted
181 | version: "0.2.0"
182 | meta:
183 | dependency: transitive
184 | description:
185 | name: meta
186 | sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
187 | url: "https://pub.dev"
188 | source: hosted
189 | version: "1.9.1"
190 | octo_image:
191 | dependency: transitive
192 | description:
193 | name: octo_image
194 | sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143"
195 | url: "https://pub.dev"
196 | source: hosted
197 | version: "1.0.2"
198 | path:
199 | dependency: transitive
200 | description:
201 | name: path
202 | sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
203 | url: "https://pub.dev"
204 | source: hosted
205 | version: "1.8.3"
206 | path_provider:
207 | dependency: transitive
208 | description:
209 | name: path_provider
210 | sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2"
211 | url: "https://pub.dev"
212 | source: hosted
213 | version: "2.0.15"
214 | path_provider_android:
215 | dependency: transitive
216 | description:
217 | name: path_provider_android
218 | sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86"
219 | url: "https://pub.dev"
220 | source: hosted
221 | version: "2.0.27"
222 | path_provider_foundation:
223 | dependency: transitive
224 | description:
225 | name: path_provider_foundation
226 | sha256: "1995d88ec2948dac43edf8fe58eb434d35d22a2940ecee1a9fefcd62beee6eb3"
227 | url: "https://pub.dev"
228 | source: hosted
229 | version: "2.2.3"
230 | path_provider_linux:
231 | dependency: transitive
232 | description:
233 | name: path_provider_linux
234 | sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
235 | url: "https://pub.dev"
236 | source: hosted
237 | version: "2.1.11"
238 | path_provider_platform_interface:
239 | dependency: transitive
240 | description:
241 | name: path_provider_platform_interface
242 | sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
243 | url: "https://pub.dev"
244 | source: hosted
245 | version: "2.0.6"
246 | path_provider_windows:
247 | dependency: transitive
248 | description:
249 | name: path_provider_windows
250 | sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
251 | url: "https://pub.dev"
252 | source: hosted
253 | version: "2.1.6"
254 | pedantic:
255 | dependency: transitive
256 | description:
257 | name: pedantic
258 | sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
259 | url: "https://pub.dev"
260 | source: hosted
261 | version: "1.11.1"
262 | platform:
263 | dependency: transitive
264 | description:
265 | name: platform
266 | sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
267 | url: "https://pub.dev"
268 | source: hosted
269 | version: "3.1.0"
270 | plugin_platform_interface:
271 | dependency: transitive
272 | description:
273 | name: plugin_platform_interface
274 | sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
275 | url: "https://pub.dev"
276 | source: hosted
277 | version: "2.1.4"
278 | process:
279 | dependency: transitive
280 | description:
281 | name: process
282 | sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
283 | url: "https://pub.dev"
284 | source: hosted
285 | version: "4.2.4"
286 | rxdart:
287 | dependency: transitive
288 | description:
289 | name: rxdart
290 | sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
291 | url: "https://pub.dev"
292 | source: hosted
293 | version: "0.27.7"
294 | sky_engine:
295 | dependency: transitive
296 | description: flutter
297 | source: sdk
298 | version: "0.0.99"
299 | source_span:
300 | dependency: transitive
301 | description:
302 | name: source_span
303 | sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
304 | url: "https://pub.dev"
305 | source: hosted
306 | version: "1.9.1"
307 | sqflite:
308 | dependency: transitive
309 | description:
310 | name: sqflite
311 | sha256: b4d6710e1200e96845747e37338ea8a819a12b51689a3bcf31eff0003b37a0b9
312 | url: "https://pub.dev"
313 | source: hosted
314 | version: "2.2.8+4"
315 | sqflite_common:
316 | dependency: transitive
317 | description:
318 | name: sqflite_common
319 | sha256: e77abf6ff961d69dfef41daccbb66b51e9983cdd5cb35bf30733598057401555
320 | url: "https://pub.dev"
321 | source: hosted
322 | version: "2.4.5"
323 | stack_trace:
324 | dependency: transitive
325 | description:
326 | name: stack_trace
327 | sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
328 | url: "https://pub.dev"
329 | source: hosted
330 | version: "1.11.0"
331 | stream_channel:
332 | dependency: transitive
333 | description:
334 | name: stream_channel
335 | sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
336 | url: "https://pub.dev"
337 | source: hosted
338 | version: "2.1.1"
339 | string_scanner:
340 | dependency: transitive
341 | description:
342 | name: string_scanner
343 | sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
344 | url: "https://pub.dev"
345 | source: hosted
346 | version: "1.2.0"
347 | synchronized:
348 | dependency: transitive
349 | description:
350 | name: synchronized
351 | sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
352 | url: "https://pub.dev"
353 | source: hosted
354 | version: "3.1.0"
355 | term_glyph:
356 | dependency: transitive
357 | description:
358 | name: term_glyph
359 | sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
360 | url: "https://pub.dev"
361 | source: hosted
362 | version: "1.2.1"
363 | test_api:
364 | dependency: transitive
365 | description:
366 | name: test_api
367 | sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
368 | url: "https://pub.dev"
369 | source: hosted
370 | version: "0.5.1"
371 | typed_data:
372 | dependency: transitive
373 | description:
374 | name: typed_data
375 | sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
376 | url: "https://pub.dev"
377 | source: hosted
378 | version: "1.3.2"
379 | uuid:
380 | dependency: transitive
381 | description:
382 | name: uuid
383 | sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
384 | url: "https://pub.dev"
385 | source: hosted
386 | version: "3.0.7"
387 | vector_math:
388 | dependency: transitive
389 | description:
390 | name: vector_math
391 | sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
392 | url: "https://pub.dev"
393 | source: hosted
394 | version: "2.1.4"
395 | win32:
396 | dependency: transitive
397 | description:
398 | name: win32
399 | sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
400 | url: "https://pub.dev"
401 | source: hosted
402 | version: "4.1.4"
403 | xdg_directories:
404 | dependency: transitive
405 | description:
406 | name: xdg_directories
407 | sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
408 | url: "https://pub.dev"
409 | source: hosted
410 | version: "1.0.0"
411 | sdks:
412 | dart: ">=3.0.3 <4.0.0"
413 | flutter: ">=3.3.0"
414 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: galleryimage
2 | description: Flutter plugin that list of images from URLs allows you to display
3 | and zoomable multi image on iOS and Android.
4 | version: 2.0.1
5 | homepage: https://github.com/BeshoyMelika/flutter-gallery-package
6 |
7 | environment:
8 | sdk: '>=3.0.3 <4.0.0'
9 |
10 | dependencies:
11 | flutter:
12 | sdk: flutter
13 | cached_network_image: ^3.2.3
14 |
15 | dev_dependencies:
16 | flutter_lints: ^2.0.1
17 | flutter_test:
18 | sdk: flutter
19 |
20 | # For information on the generic Dart part of this file, see the
21 | # following page: https://dart.dev/tools/pub/pubspec
22 | # The following section is specific to Flutter.
23 | flutter:
24 | # plugin:
25 | # platforms:
26 | # ios:
27 | # pluginClass: galleryimage
28 | # macos:
29 | # pluginClass: galleryimage
30 | # web:
31 | # pluginClass: galleryimage
32 | # The following line ensures that the Material Icons font is
33 | # included with your application, so that you can use the icons in
34 | # the material Icons class.
35 | uses-material-design: true
36 | # To add assets to your package, add an assets section, like this:
37 | # assets:
38 | # - images/a_dot_burr.jpeg
39 | # - images/a_dot_ham.jpeg
40 | #
41 | # For details regarding assets in packages, see
42 | # https://flutter.dev/assets-and-images/#from-packages
43 | #
44 | # An image asset can refer to one or more resolution-specific "variants", see
45 | # https://flutter.dev/assets-and-images/#resolution-aware.
46 | # To add custom fonts to your package, add a fonts section here,
47 | # in this "flutter" section. Each entry in this list should have a
48 | # "family" key with the font family name, and a "fonts" key with a
49 | # list giving the asset and other descriptors for the font. For
50 | # example:
51 | # fonts:
52 | # - family: Schyler
53 | # fonts:
54 | # - asset: fonts/Schyler-Regular.ttf
55 | # - asset: fonts/Schyler-Italic.ttf
56 | # style: italic
57 | # - family: Trajan Pro
58 | # fonts:
59 | # - asset: fonts/TrajanPro.ttf
60 | # - asset: fonts/TrajanPro_Bold.ttf
61 | # weight: 700
62 | #
63 | # For details regarding fonts in packages, see
64 | # https://flutter.dev/custom-fonts/#from-packages
65 |
--------------------------------------------------------------------------------
/test/galleryimage_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_test/flutter_test.dart';
2 |
3 | void main() {
4 | test('adds one to input values', () {});
5 | }
6 |
--------------------------------------------------------------------------------