From 9343a8ea630e0784f339e79a5005f0a3df1f9396 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:09:44 -0600 Subject: [PATCH 01/10] deps(shared_preferences_repositor): use dart 3 --- .../shared_preferences_repository/analysis_options.yaml | 2 +- .../lib/shared_preferences_repository.dart | 2 -- .../shared_preferences_repository/pubspec.yaml | 6 +++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/analysis_options.yaml b/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/analysis_options.yaml index c30d549..b388541 100644 --- a/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/analysis_options.yaml +++ b/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/analysis_options.yaml @@ -1 +1 @@ -include: package:very_good_analysis/analysis_options.3.0.0.yaml \ No newline at end of file +include: package:very_good_analysis/analysis_options.5.0.0.yaml diff --git a/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/lib/shared_preferences_repository.dart b/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/lib/shared_preferences_repository.dart index a83dd54..92f15ac 100644 --- a/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/lib/shared_preferences_repository.dart +++ b/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/lib/shared_preferences_repository.dart @@ -1,3 +1 @@ -library shared_preferences; - export 'src/shared_preferences_repository.dart'; diff --git a/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/pubspec.yaml b/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/pubspec.yaml index ca33865..d25d388 100644 --- a/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/pubspec.yaml +++ b/examples/preference_navigation/packages/preferences_repository/shared_preferences_repository/pubspec.yaml @@ -4,17 +4,17 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=2.18.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: sdk: flutter preferences_repository: path: ../preferences_repository - shared_preferences: ^2.0.6 + shared_preferences: ^2.2.0 dev_dependencies: flutter_test: sdk: flutter mocktail: ^0.3.0 - very_good_analysis: ^3.0.0 + very_good_analysis: ^5.0.0+1 From 90ea8b5e8b3f9cc570531e7e8790c61ac0953504 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:11:30 -0600 Subject: [PATCH 02/10] deps(preferences_repository): upgrade to dart 3 --- .../preferences_repository/analysis_options.yaml | 2 +- .../preferences_repository/lib/preferences_repository.dart | 2 -- .../preferences_repository/pubspec.yaml | 6 +++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/preference_navigation/packages/preferences_repository/preferences_repository/analysis_options.yaml b/examples/preference_navigation/packages/preferences_repository/preferences_repository/analysis_options.yaml index c30d549..b388541 100644 --- a/examples/preference_navigation/packages/preferences_repository/preferences_repository/analysis_options.yaml +++ b/examples/preference_navigation/packages/preferences_repository/preferences_repository/analysis_options.yaml @@ -1 +1 @@ -include: package:very_good_analysis/analysis_options.3.0.0.yaml \ No newline at end of file +include: package:very_good_analysis/analysis_options.5.0.0.yaml diff --git a/examples/preference_navigation/packages/preferences_repository/preferences_repository/lib/preferences_repository.dart b/examples/preference_navigation/packages/preferences_repository/preferences_repository/lib/preferences_repository.dart index 03c9c2a..c711897 100644 --- a/examples/preference_navigation/packages/preferences_repository/preferences_repository/lib/preferences_repository.dart +++ b/examples/preference_navigation/packages/preferences_repository/preferences_repository/lib/preferences_repository.dart @@ -1,4 +1,2 @@ -library preferences; - export 'src/preferences_failure.dart'; export 'src/preferences_repository.dart'; diff --git a/examples/preference_navigation/packages/preferences_repository/preferences_repository/pubspec.yaml b/examples/preference_navigation/packages/preferences_repository/preferences_repository/pubspec.yaml index 8f97847..97c3a45 100644 --- a/examples/preference_navigation/packages/preferences_repository/preferences_repository/pubspec.yaml +++ b/examples/preference_navigation/packages/preferences_repository/preferences_repository/pubspec.yaml @@ -4,8 +4,8 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=2.18.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dev_dependencies: - test: ^1.17.0 - very_good_analysis: ^3.0.0 + test: ^1.24.4 + very_good_analysis: ^5.0.0+1 From 40bdf899e9a164307ab3ef3bcb94985fe0ada134 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:12:44 -0600 Subject: [PATCH 03/10] deps(hive_preferences_repository): upgrade to dart 3 --- .../hive_preferences_repository/analysis_options.yaml | 2 +- .../lib/hive_preferences_repository.dart | 2 -- .../hive_preferences_repository/pubspec.yaml | 8 ++++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/analysis_options.yaml b/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/analysis_options.yaml index c30d549..b388541 100644 --- a/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/analysis_options.yaml +++ b/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/analysis_options.yaml @@ -1 +1 @@ -include: package:very_good_analysis/analysis_options.3.0.0.yaml \ No newline at end of file +include: package:very_good_analysis/analysis_options.5.0.0.yaml diff --git a/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/lib/hive_preferences_repository.dart b/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/lib/hive_preferences_repository.dart index 6feb2a2..7496813 100644 --- a/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/lib/hive_preferences_repository.dart +++ b/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/lib/hive_preferences_repository.dart @@ -1,3 +1 @@ -library hive_preferences; - export 'src/hive_preferences_repository.dart'; diff --git a/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/pubspec.yaml b/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/pubspec.yaml index f385dba..2c78cab 100644 --- a/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/pubspec.yaml +++ b/examples/preference_navigation/packages/preferences_repository/hive_preferences_repository/pubspec.yaml @@ -4,14 +4,14 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=2.18.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: - hive: ^2.0.4 + hive: ^2.2.3 preferences_repository: path: ../preferences_repository dev_dependencies: mocktail: ^0.3.0 - test: ^1.17.0 - very_good_analysis: ^3.0.0 + test: ^1.24.4 + very_good_analysis: ^5.0.0+1 From b0cc96aa3f8a62521502b15172474c2d699eeac6 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:16:23 -0600 Subject: [PATCH 04/10] deps(preference_navigation): update to fluttter 3 and udpate analyzer --- .../analysis_options.yaml | 2 +- .../preference_navigation/lib/app/app.dart | 2 +- .../lib/app/app_bloc_observer.dart | 7 ++++-- .../lib/home/view/home_page.dart | 6 ++--- .../preferences/view/preferences_page.dart | 2 +- .../lib/start/view/start_page.dart | 2 +- examples/preference_navigation/pubspec.yaml | 22 ++++++++++--------- .../test/home/view/home_page_test.dart | 2 +- 8 files changed, 25 insertions(+), 20 deletions(-) diff --git a/examples/preference_navigation/analysis_options.yaml b/examples/preference_navigation/analysis_options.yaml index c30d549..b388541 100644 --- a/examples/preference_navigation/analysis_options.yaml +++ b/examples/preference_navigation/analysis_options.yaml @@ -1 +1 @@ -include: package:very_good_analysis/analysis_options.3.0.0.yaml \ No newline at end of file +include: package:very_good_analysis/analysis_options.5.0.0.yaml diff --git a/examples/preference_navigation/lib/app/app.dart b/examples/preference_navigation/lib/app/app.dart index f934b05..d420fe1 100644 --- a/examples/preference_navigation/lib/app/app.dart +++ b/examples/preference_navigation/lib/app/app.dart @@ -10,8 +10,8 @@ import 'package:shared_preferences_repository/shared_preferences_repository.dart class App extends StatelessWidget { /// {@macro app} const App({ - super.key, required SharedPreferencesRepository preferencesRepository, + super.key, }) : _preferencesRepository = preferencesRepository; final SharedPreferencesRepository _preferencesRepository; diff --git a/examples/preference_navigation/lib/app/app_bloc_observer.dart b/examples/preference_navigation/lib/app/app_bloc_observer.dart index 480f095..22111cf 100644 --- a/examples/preference_navigation/lib/app/app_bloc_observer.dart +++ b/examples/preference_navigation/lib/app/app_bloc_observer.dart @@ -5,13 +5,16 @@ import 'package:bloc/bloc.dart'; /// App's [BlocObserver] for traceability. class AppBlocObserver extends BlocObserver { @override - void onTransition(Bloc bloc, Transition transition) { + void onTransition( + Bloc bloc, + Transition transition, + ) { super.onTransition(bloc, transition); log('onTransition ${bloc.runtimeType}: $transition'); } @override - void onError(BlocBase bloc, Object error, StackTrace stackTrace) { + void onError(BlocBase bloc, Object error, StackTrace stackTrace) { super.onError(bloc, error, stackTrace); log('onError ${bloc.runtimeType}', error: error, stackTrace: stackTrace); } diff --git a/examples/preference_navigation/lib/home/view/home_page.dart b/examples/preference_navigation/lib/home/view/home_page.dart index 3032e6d..e70e05e 100644 --- a/examples/preference_navigation/lib/home/view/home_page.dart +++ b/examples/preference_navigation/lib/home/view/home_page.dart @@ -11,7 +11,7 @@ class HomePage extends StatelessWidget { const HomePage({super.key}); /// Returns a [MaterialPageRoute] to navigate to `this` widget. - static Route go() { + static Route go() { return MaterialPageRoute(builder: (_) => const HomePage()); } @@ -65,12 +65,12 @@ class HomeView extends StatelessWidget { class PreferencesList extends StatelessWidget { /// {@macro preferences_list} const PreferencesList({ - super.key, required this.preferences, + super.key, }); /// Current preferences stored on device. - final Map preferences; + final Map preferences; @override Widget build(BuildContext context) { diff --git a/examples/preference_navigation/lib/preferences/view/preferences_page.dart b/examples/preference_navigation/lib/preferences/view/preferences_page.dart index c931050..9636121 100644 --- a/examples/preference_navigation/lib/preferences/view/preferences_page.dart +++ b/examples/preference_navigation/lib/preferences/view/preferences_page.dart @@ -12,7 +12,7 @@ class PreferencesPage extends StatelessWidget { const PreferencesPage({super.key}); /// Returns a [MaterialPageRoute] to navigate to `this` widget. - static Route go() { + static Route go() { return MaterialPageRoute(builder: (_) => const PreferencesPage()); } diff --git a/examples/preference_navigation/lib/start/view/start_page.dart b/examples/preference_navigation/lib/start/view/start_page.dart index 5b88ad0..851c943 100644 --- a/examples/preference_navigation/lib/start/view/start_page.dart +++ b/examples/preference_navigation/lib/start/view/start_page.dart @@ -11,7 +11,7 @@ class StartPage extends StatelessWidget { const StartPage({super.key}); /// Returns a [MaterialPageRoute] to navigate to `this` widget. - static Route go() { + static Route go() { return MaterialPageRoute(builder: (_) => const StartPage()); } diff --git a/examples/preference_navigation/pubspec.yaml b/examples/preference_navigation/pubspec.yaml index 7149066..1f68ecf 100644 --- a/examples/preference_navigation/pubspec.yaml +++ b/examples/preference_navigation/pubspec.yaml @@ -4,31 +4,33 @@ publish_to: "none" version: 1.0.0+1 environment: - sdk: ">=2.18.0 <3.0.0" - flutter: "3.3.0" + sdk: ">=3.0.0 <4.0.0" + flutter: "3.10.5" dependencies: - bloc: ^8.1.0 + bloc: ^8.1.2 cupertino_icons: ^1.0.2 - equatable: ^2.0.3 + equatable: ^2.0.5 flutter: sdk: flutter - flutter_bloc: ^8.1.1 - hive: ^2.0.4 + flutter_bloc: ^8.1.3 + hive: ^2.2.3 hive_preferences_repository: path: packages/preferences_repository/hive_preferences_repository - path_provider: ^2.0.2 - shared_preferences: ^2.0.6 + path_provider: ^2.0.15 + preferences_repository: + path: packages/preferences_repository/preferences_repository + shared_preferences: ^2.2.0 shared_preferences_repository: path: packages/preferences_repository/shared_preferences_repository dev_dependencies: - bloc_test: ^9.1.0 + bloc_test: ^9.1.3 flutter_test: sdk: flutter mockingjay: ^0.3.0 mocktail: ^0.3.0 - very_good_analysis: ^3.0.0 + very_good_analysis: ^5.0.0+1 flutter: uses-material-design: true diff --git a/examples/preference_navigation/test/home/view/home_page_test.dart b/examples/preference_navigation/test/home/view/home_page_test.dart index 3dc04e2..a6859a8 100644 --- a/examples/preference_navigation/test/home/view/home_page_test.dart +++ b/examples/preference_navigation/test/home/view/home_page_test.dart @@ -10,7 +10,7 @@ import '../../helpers/helpers.dart'; void main() { group('HomePage', () { test('is routable', () { - expect(HomePage.go(), isA()); + expect(HomePage.go(), isA>()); }); testWidgets('renders HomePage', (tester) async { From 4f5d7b0c20e23aaa9b262de6a7c2415bc428f0db Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:17:58 -0600 Subject: [PATCH 05/10] ci(preference_navigation): add independent workflow --- .github/workflows/preference_navigation.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/preference_navigation.yaml diff --git a/.github/workflows/preference_navigation.yaml b/.github/workflows/preference_navigation.yaml new file mode 100644 index 0000000..e0e4a86 --- /dev/null +++ b/.github/workflows/preference_navigation.yaml @@ -0,0 +1,20 @@ +name: preference_navigation + +on: + push: + paths: + - ".github/workflows/preference_navigation.yaml" + - "examples/preference_navigation/**" + + pull_request: + paths: + - ".github/workflows/preference_navigation.yaml" + - "examples/preference_navigation/**" + +jobs: + build: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 + with: + flutter_channel: "stable" + flutter_version: "3.10.5" + working_directory: "examples/preference_navigation" From 72d4ad29b9bce0e3b7feff99907200543dc4f7d1 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:18:27 -0600 Subject: [PATCH 06/10] ci: delete deprecated CI --- .github/workflows/examples.yaml | 36 -------------- melos.yaml | 86 --------------------------------- 2 files changed, 122 deletions(-) delete mode 100644 .github/workflows/examples.yaml delete mode 100644 melos.yaml diff --git a/.github/workflows/examples.yaml b/.github/workflows/examples.yaml deleted file mode 100644 index 489cb1d..0000000 --- a/.github/workflows/examples.yaml +++ /dev/null @@ -1,36 +0,0 @@ -name: examples - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: subosito/flutter-action@v2 - with: - flutter-version: "3.3.0" - channel: "stable" - - - name: Install Tools - run: | - flutter pub global activate melos 2.9.0 - - name: Initialize tools - run: melos bs - - - name: Run CI workflow (format, analyze, test) - run: melos run WF:ci - - - name: Check code coverage - uses: VeryGoodOpenSource/very_good_coverage@v1.2.1 - with: - path: "./coverage/merged.lcov.info" - exclude: "**/*.freezed.dart **/*.g.dart **/*.gr.dart" - - - name: Upload coverage data to codecov.io - uses: codecov/codecov-action@v2 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: "./coverage/merged.lcov.info" - fail_ci_if_error: true - verbose: true diff --git a/melos.yaml b/melos.yaml deleted file mode 100644 index 3ea32e6..0000000 --- a/melos.yaml +++ /dev/null @@ -1,86 +0,0 @@ -name: bloc_samples - -packages: - - "examples/**" - - "cli" - -ignore: - - "examples/profile_accounts" - - "examples/profile_accounts/**" - - "examples/form_flow" - - "examples/form_flow/**" - - "examples/launch_analytics" - - "examples/launch_analytics/**" - -scripts: - c: - description: Drop the `build/` and `.dart_tool/` folders from a selected package. - run: melos exec -c 1 -- flutter clean - select-package: - C: - description: Drop the `build/` and `.dart_tool/` folders from all packages. - run: melos run c --no-select - - d: - description: Install dependencies for a selected package. - run: melos exec -c 1 -- flutter pub get - select-package: - D: - description: Install dependencies for all packages. - run: melos run d --no-select - D:ci: - description: Install dependencies for all packages. - run: melos exec -- flutter pub get - - f: - description: Format codebase for a selected package. - run: melos exec -c 1 -- flutter format lib test - select-package: - F: - description: Format codebase for all packages. - run: melos run f --no-select - F:ci: - description: Format codebase for all packages and stop if a change is identified. - run: melos exec --fail-fast -- flutter format --set-exit-if-changed lib test - - a: - description: Analyze codebase for a selected package and consider infos and warnings as errors. - run: melos exec -c 1 -- flutter analyze --fatal-infos --fatal-warnings - select-package: - A: - description: Analyze codebase for all packages and consider infos and warnings as errors. - run: melos run a --no-select - A:ci: - description: Analyze codebase for all packages considering infos and warnings as errors. - run: melos exec --fail-fast -- flutter analyze --no-pub --fatal-infos --fatal-warnings - - t: - description: Run tests for a selected package in random order. - run: melos exec -c 1 -- flutter test -x ci-only --coverage -r expanded --test-randomize-ordering-seed random - select-package: - dir-exists: test - T: - description: Run tests for all packages in random order. - run: melos run t --no-select - T:ci: - description: Run tests for all packages in random order. - run: melos exec --fail-fast --dir-exists=test -- flutter test -x sequential --no-pub --coverage -r expanded --test-randomize-ordering-seed random - - cov:open: - description: Generate and open test coverage html view. - run: melos run T:ci && melos run M - && genhtml ./coverage/merged.lcov.info -o coverage - && open coverage/index.html - - M: - description: Merge all packages coverage data ignoring data related to generated files. - run: > - dart run cli/bin/rm.dart MELOS_ROOT_PATH/coverage/merged.lcov.info && - melos exec --file-exists=coverage/lcov.info -- dart run MELOS_ROOT_PATH/cli/bin/cov.dart merge --origin ./coverage/lcov.info --destination MELOS_ROOT_PATH/coverage/merged.lcov.info --ignore-patterns \.g\.dart,\.freezed\.dart,pin\.dart - - WF: - description: Run full local workflow - run: melos run D && melos run F && melos run A && melos run T && melos run M - WF:ci: - description: Run full CI workflow - run: melos run D:ci && melos run F:ci && melos run A:ci && melos run T:ci && melos run M From f426e1ec3cd9c81f2bdd068d6c174e151a551b98 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:22:45 -0600 Subject: [PATCH 07/10] build: update ios build config --- .../ios/Flutter/AppFrameworkInfo.plist | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 96 +++++++++++++++++-- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../contents.xcworkspacedata | 3 + .../ios/Runner/Info.plist | 4 + 5 files changed, 97 insertions(+), 10 deletions(-) diff --git a/examples/preference_navigation/ios/Flutter/AppFrameworkInfo.plist b/examples/preference_navigation/ios/Flutter/AppFrameworkInfo.plist index 9367d48..9625e10 100644 --- a/examples/preference_navigation/ios/Flutter/AppFrameworkInfo.plist +++ b/examples/preference_navigation/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 11.0 diff --git a/examples/preference_navigation/ios/Runner.xcodeproj/project.pbxproj b/examples/preference_navigation/ios/Runner.xcodeproj/project.pbxproj index ed61c85..bba9bd8 100644 --- a/examples/preference_navigation/ios/Runner.xcodeproj/project.pbxproj +++ b/examples/preference_navigation/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -13,6 +13,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + F8958029C5F6F71C14820988 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D64B5CD813278A1CF6A9F /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,9 +33,13 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 509D64B5CD813278A1CF6A9F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 54450C55084967822B054664 /* 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 = ""; }; + 5EE28D2C64E937C922F006CA /* 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 = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 8314DA3B99FF5D7C9A5FCAEA /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -49,12 +54,24 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + F8958029C5F6F71C14820988 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 5C892C0F9B4DA008BC281EF7 /* Pods */ = { + isa = PBXGroup; + children = ( + 5EE28D2C64E937C922F006CA /* Pods-Runner.debug.xcconfig */, + 8314DA3B99FF5D7C9A5FCAEA /* Pods-Runner.release.xcconfig */, + 54450C55084967822B054664 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -72,6 +89,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, + 5C892C0F9B4DA008BC281EF7 /* Pods */, + B22CBE4BBE8EDE2C9B10C453 /* Frameworks */, ); sourceTree = ""; }; @@ -98,6 +117,14 @@ path = Runner; sourceTree = ""; }; + B22CBE4BBE8EDE2C9B10C453 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 509D64B5CD813278A1CF6A9F /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -105,12 +132,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 4028F49A4761652BDEDB5D2C /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 681AC57915D381ADDA495CAA /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -127,7 +156,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1300; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -171,10 +200,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -183,8 +214,48 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; + 4028F49A4761652BDEDB5D2C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + 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"; + showEnvVarsInLog = 0; + }; + 681AC57915D381ADDA495CAA /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -272,7 +343,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -290,7 +361,10 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = dev.noscope.preferenceNavigation; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -346,7 +420,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -395,7 +469,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -414,7 +488,10 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = dev.noscope.preferenceNavigation; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -433,7 +510,10 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = dev.noscope.preferenceNavigation; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/examples/preference_navigation/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/preference_navigation/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140c..3db53b6 100644 --- a/examples/preference_navigation/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/preference_navigation/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ + + diff --git a/examples/preference_navigation/ios/Runner/Info.plist b/examples/preference_navigation/ios/Runner/Info.plist index af2fd20..46b5db6 100644 --- a/examples/preference_navigation/ios/Runner/Info.plist +++ b/examples/preference_navigation/ios/Runner/Info.plist @@ -41,5 +41,9 @@ UIViewControllerBasedStatusBarAppearance + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + From 2e7554cddd9e689517aa33f227fd0f9006bd92a0 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Thu, 20 Jul 2023 18:22:56 -0600 Subject: [PATCH 08/10] fix: call FlutterBinding.ensureInitialized --- examples/preference_navigation/lib/main.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/preference_navigation/lib/main.dart b/examples/preference_navigation/lib/main.dart index 27f7dfd..3f33437 100644 --- a/examples/preference_navigation/lib/main.dart +++ b/examples/preference_navigation/lib/main.dart @@ -9,6 +9,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences_repository/shared_preferences_repository.dart'; Future main() async { + WidgetsFlutterBinding.ensureInitialized(); Bloc.observer = AppBlocObserver(); FlutterError.onError = (details) { log(details.exceptionAsString(), stackTrace: details.stack); From 84ddd2f4b1a63570cef6e46b64d2586b52ac75e1 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Fri, 21 Jul 2023 07:01:35 -0600 Subject: [PATCH 09/10] refactor: mr feedback --- examples/preference_navigation/lib/home/view/home_page.dart | 6 +++--- .../lib/preferences/view/preferences_page.dart | 4 ++-- .../preference_navigation/lib/start/view/start_page.dart | 6 +++--- .../test/home/view/home_page_test.dart | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/preference_navigation/lib/home/view/home_page.dart b/examples/preference_navigation/lib/home/view/home_page.dart index e70e05e..608604c 100644 --- a/examples/preference_navigation/lib/home/view/home_page.dart +++ b/examples/preference_navigation/lib/home/view/home_page.dart @@ -11,7 +11,7 @@ class HomePage extends StatelessWidget { const HomePage({super.key}); /// Returns a [MaterialPageRoute] to navigate to `this` widget. - static Route go() { + static Route route() { return MaterialPageRoute(builder: (_) => const HomePage()); } @@ -70,7 +70,7 @@ class PreferencesList extends StatelessWidget { }); /// Current preferences stored on device. - final Map preferences; + final Map preferences; @override Widget build(BuildContext context) { @@ -78,7 +78,7 @@ class PreferencesList extends StatelessWidget { shrinkWrap: true, itemCount: preferences.length, itemBuilder: (_, index) { - final key = preferences.keys.elementAt(index) as String; + final key = preferences.keys.elementAt(index); final value = preferences.values.elementAt(index) as String; return ListTile( title: Text(key), diff --git a/examples/preference_navigation/lib/preferences/view/preferences_page.dart b/examples/preference_navigation/lib/preferences/view/preferences_page.dart index 9636121..ede2f6d 100644 --- a/examples/preference_navigation/lib/preferences/view/preferences_page.dart +++ b/examples/preference_navigation/lib/preferences/view/preferences_page.dart @@ -12,7 +12,7 @@ class PreferencesPage extends StatelessWidget { const PreferencesPage({super.key}); /// Returns a [MaterialPageRoute] to navigate to `this` widget. - static Route go() { + static Route route() { return MaterialPageRoute(builder: (_) => const PreferencesPage()); } @@ -23,7 +23,7 @@ class PreferencesPage extends StatelessWidget { child: BlocListener( listener: (_, state) async { if (state is PreferencesLoaded) { - await Navigator.of(context).push(HomePage.go()); + await Navigator.of(context).push(HomePage.route()); } if (state is PreferencesError) { // ignore: use_build_context_synchronously diff --git a/examples/preference_navigation/lib/start/view/start_page.dart b/examples/preference_navigation/lib/start/view/start_page.dart index 851c943..d9f104f 100644 --- a/examples/preference_navigation/lib/start/view/start_page.dart +++ b/examples/preference_navigation/lib/start/view/start_page.dart @@ -36,13 +36,13 @@ class StartView extends StatelessWidget { listener: (_, state) async { if (state is PreferencesLoaded) { await Navigator.of(context).pushReplacement( - HomePage.go(), + HomePage.route(), ); } if (state is PreferencesError) { // ignore: use_build_context_synchronously await Navigator.of(context).pushReplacement( - PreferencesPage.go(), + PreferencesPage.route(), ); } }, @@ -76,7 +76,7 @@ class NoPreferences extends StatelessWidget { TextButton( key: const Key('noPreferences_go_textButton'), onPressed: () => Navigator.of(context).push( - PreferencesPage.go(), + PreferencesPage.route(), ), child: const Text('Go to preferences'), ), diff --git a/examples/preference_navigation/test/home/view/home_page_test.dart b/examples/preference_navigation/test/home/view/home_page_test.dart index a6859a8..6fc101f 100644 --- a/examples/preference_navigation/test/home/view/home_page_test.dart +++ b/examples/preference_navigation/test/home/view/home_page_test.dart @@ -10,7 +10,7 @@ import '../../helpers/helpers.dart'; void main() { group('HomePage', () { test('is routable', () { - expect(HomePage.go(), isA>()); + expect(HomePage.route(), isA>()); }); testWidgets('renders HomePage', (tester) async { From e2e61df71e694b1286d9c005a001c9923d4ad290 Mon Sep 17 00:00:00 2001 From: Elian Ortega Date: Fri, 21 Jul 2023 07:03:03 -0600 Subject: [PATCH 10/10] refactor: mr feedback --- examples/preference_navigation/lib/home/view/home_page.dart | 2 +- .../lib/preferences/view/preferences_page.dart | 2 +- examples/preference_navigation/lib/start/view/start_page.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/preference_navigation/lib/home/view/home_page.dart b/examples/preference_navigation/lib/home/view/home_page.dart index 608604c..ec58be6 100644 --- a/examples/preference_navigation/lib/home/view/home_page.dart +++ b/examples/preference_navigation/lib/home/view/home_page.dart @@ -44,7 +44,7 @@ class HomeView extends StatelessWidget { child: BlocConsumer( listener: (_, state) async { if (state is PreferencesEmpty) { - await Navigator.of(context).push(StartPage.go()); + await Navigator.of(context).push(StartPage.route()); } }, builder: (context, state) { diff --git a/examples/preference_navigation/lib/preferences/view/preferences_page.dart b/examples/preference_navigation/lib/preferences/view/preferences_page.dart index ede2f6d..0083b36 100644 --- a/examples/preference_navigation/lib/preferences/view/preferences_page.dart +++ b/examples/preference_navigation/lib/preferences/view/preferences_page.dart @@ -28,7 +28,7 @@ class PreferencesPage extends StatelessWidget { if (state is PreferencesError) { // ignore: use_build_context_synchronously await Navigator.of(context).pushReplacement( - StartPage.go(), + StartPage.route(), ); } }, diff --git a/examples/preference_navigation/lib/start/view/start_page.dart b/examples/preference_navigation/lib/start/view/start_page.dart index d9f104f..dd66059 100644 --- a/examples/preference_navigation/lib/start/view/start_page.dart +++ b/examples/preference_navigation/lib/start/view/start_page.dart @@ -11,7 +11,7 @@ class StartPage extends StatelessWidget { const StartPage({super.key}); /// Returns a [MaterialPageRoute] to navigate to `this` widget. - static Route go() { + static Route route() { return MaterialPageRoute(builder: (_) => const StartPage()); }