From 78f9bcdda5373c4b528d7445e8193914c1eb372e Mon Sep 17 00:00:00 2001 From: Ryan <46634687+ryanidk@users.noreply.github.com> Date: Wed, 24 Apr 2024 20:00:55 -0400 Subject: [PATCH 01/12] Update README.md --- README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4820fe9..e861be3 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,56 @@ # MergeData -Robot scouting app developed by FRC Team 2706 Merge Robotics. -
Now featuring... a working Google Sheets integration!!! +#### A scouting app for the FIRST Robotics Competition developed by Team 2706 Merge Robotics. -## Documentation +View App . Quick Start Guide . Frequently Asked Questions + +
+ Table of Contents +
    +
  1. Features
  2. +
  3. View App
  4. +
  5. Description
  6. +
  7. Quick Start Guide
  8. +
  9. Frequently Asked Questions
  10. +
  11. License
  12. +
  13. Support
  14. +
+
+ +
+ +## Features: +### **Modular** +* Every season, a new JSON file is created, which controls all the questions in the app. You can easily tweak it anytime to reflect changes to your scouting procedure. No coding skills needed! +### **Universal** +* We use Flutter, a framework compatible with most platforms, including iOS, Android, and in a web browser. +### **Google Sheets Integration** +* Scouts can save and send data to a Google Sheets spreadsheet after the scouting is done. + +
+ +## View App +Our app is hosted on GitHub Pages at https://mergedata.ca. It is also available on the Apple App Store and as an APK for Android devices. + +
+## Description +MergeData is a modular FRC scouting app that is designed to be run on any device, including devices running iOS, Android, Windows, GNU/Linux, and macOS. Every season, a configuration file (JSON) gets created which allows the scouting questions to be easily changed to collect any data that is important for your team's scouting strategy. When done scouting, the data can be saved locally, scanned by other devices via a QR code, or uploaded to a Google Sheets spreadsheet. + +
+ +## Quick Start Guide +Installation instructions coming soon TM + +
+ +## Frequently Asked Questions Coming soon TM +
+ ## License This project is under the Apache 2.0 license, please read the `LICENSE` file for more information. +
+ ## Support For support, bug reports, or feature requests, please create an issue [here](https://github.com/FRC2706/MergeData/issues). From 67071ca2ea300084bd069f199f866dc29103e27c Mon Sep 17 00:00:00 2001 From: Ryan <46634687+ryanidk@users.noreply.github.com> Date: Wed, 24 Apr 2024 20:01:53 -0400 Subject: [PATCH 02/12] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e861be3..878e797 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MergeData #### A scouting app for the FIRST Robotics Competition developed by Team 2706 Merge Robotics. -View App . Quick Start Guide . Frequently Asked Questions +View App · Quick Start Guide · Frequently Asked Questions
Table of Contents @@ -24,7 +24,7 @@ ### **Universal** * We use Flutter, a framework compatible with most platforms, including iOS, Android, and in a web browser. ### **Google Sheets Integration** -* Scouts can save and send data to a Google Sheets spreadsheet after the scouting is done. +* Scouts can save and send data to a Google Sheets spreadsheet once scouting is done.
From 007d00dafd5c03fadfb01ad48fc9062f8a0fefc9 Mon Sep 17 00:00:00 2001 From: Ryan <46634687+ryanidk@users.noreply.github.com> Date: Wed, 24 Apr 2024 20:02:23 -0400 Subject: [PATCH 03/12] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 878e797..bb81419 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Our app is hosted on GitHub Pages at https://mergedata.ca. It is also available on the Apple App Store and as an APK for Android devices.
+ ## Description MergeData is a modular FRC scouting app that is designed to be run on any device, including devices running iOS, Android, Windows, GNU/Linux, and macOS. Every season, a configuration file (JSON) gets created which allows the scouting questions to be easily changed to collect any data that is important for your team's scouting strategy. When done scouting, the data can be saved locally, scanned by other devices via a QR code, or uploaded to a Google Sheets spreadsheet. From eb864fab7a42e7954381d262f237481c24e605b2 Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:39:09 -0500 Subject: [PATCH 04/12] add 2025 --- assets/games/2025.json | 178 +++++++++++++++++++++++++++++++++++++++++ assets/pit/2025.json | 55 +++++++++++++ lib/main.dart | 2 +- pubspec.lock | 44 +++++----- pubspec.yaml | 4 +- 5 files changed, 258 insertions(+), 25 deletions(-) create mode 100644 assets/games/2025.json create mode 100644 assets/pit/2025.json diff --git a/assets/games/2025.json b/assets/games/2025.json new file mode 100644 index 0000000..a9d8b75 --- /dev/null +++ b/assets/games/2025.json @@ -0,0 +1,178 @@ +{ + "Pre-Match": [ + { + "name": "Scouter Name", + "required": true, + "type": "text" + }, + { + "name": "Event", + "choices": ["Niagara", "North Bay", "DCMP"], + "required": true, + "type": "radio" + }, + { + "name": "Alliance Station", + "choices": ["Red 1", "Red 2", "Red 3", "Blue 1", "Blue 2", "Blue 3"], + "required": false, + "type": "radio" + }, + { + "name": "Match #", + "required": true, + "type": "number" + }, + { + "name": "Team #", + "required": true, + "type": "number" + }, + { + "name": "Starting Postition", + "choices": ["Left", "Middle", "Right"], + "required": true, + "type": "radio" + } + ], + + "Autonomous": [ + { + "name": "Crossed Starting Line", + "type": "bool" + }, + { + "name": "Auto Coral scored on L1 (bottom)", + "type": "counter" + }, + { + "name": "Auto Coral scored on L2 (branch)", + "type": "counter" + }, + { + "name": "Auto Coral scored on L3 (branch)", + "type": "counter" + }, + { + "name": "Auto Coral scored on L4 (branch)", + "type": "counter" + }, + { + "name": "Auto # of Coral Dropped", + "type": "counter" + }, + { + "name": "Auto Coral Pickup Location", + "type": "radio", + "required": true, + "choices": ["Floor", "Human Player Sation", "Both"] + }, + { + "name": "Auto # of Algae Removed from Reef", + "type": "counter" + }, + { + "name": "Auto # of Algae scored in Processor", + "type": "counter" + }, + { + "name": "Auto # of Algae scored in Net", + "type": "counter" + }, + { + "name": "Auto # of Algae Dropped", + "type": "counter" + }, + { + "name": "Comments on Auto", + "type": "text" + } + ], + + "TeleOp": [ + { + "name": "TeleOp Coral scored on L1 (bottom)", + "type": "counter" + }, + { + "name": "TeleOp Coral scored on L2 (branch)", + "type": "counter" + }, + { + "name": "TeleOp Coral scored on L3 (branch)", + "type": "counter" + }, + { + "name": "TeleOp Coral scored on L4 (branch)", + "type": "counter" + }, + { + "name": "TeleOp Coral Dropped", + "type": "counter" + }, + { + "name": "TeleOp Coral Pickup Location", + "type": "counter" + }, + { + "name": "TeleOp Algae Harvested from Reef", + "type": "counter" + }, + { + "name": "TeleOp Algae scored in Processor", + "type": "counter" + }, + { + "name": "TeleOp Algae Scored in Net by Robot", + "type": "counter" + }, + { + "name": "Teleop Algae Dropped", + "type": "counter" + } + ], + + + + "EndGame": [ + { + "name": "Attempted Climb?", + "type": "bool" + }, + { + "name": "Ending Position", + "type": "radio", + "required": false, + "choices": ["None", "Parked", "High Climb", "Low Climb"] + } + ], + + + "PostMatch": [ + { + "name": "Defence Rating", + "type": "radio", + "required": true, + "choices": ["1", "2", "3", "4", "5", "N/A"] + }, + { + "name": "Ability to withstand defence", + "type": "radio", + "required": true, + "choices": ["1", "2", "3", "4", "5", "N/A"] + }, + { + "name": "Did they die during the match?", + "type": "bool" + }, + { + "name": "Main Cycle", + "type": "text", + "required": false + }, + { + "name": "Comments", + "type": "text", + "required": false + } + ] +} \ No newline at end of file diff --git a/assets/pit/2025.json b/assets/pit/2025.json new file mode 100644 index 0000000..a8ce5e1 --- /dev/null +++ b/assets/pit/2025.json @@ -0,0 +1,55 @@ +{ + "Pit": [ + { + "name": "Scout name", + "required": true, + "type": "text" + }, + { + "name": "Team number", + "required": false, + "type": "number" + }, + { + "name": "Weight (lbs)", + "required": false, + "type": "text" + }, + { + "name": "Drivetrain type", + "choices": ["Swerve", "Tank", "Butterfly/Grasshopper", "Mecanum", "Other"], + "required": false, + "type": "radio" + }, + { + "name": "Other drivetrain", + "required": false, + "type": "text" + }, + { + "name": "Where can you pick up from?", + "required": false, + "type": "text" + }, + { + "name": "Autos", + "required": false, + "type": "text" + }, + { + "name": "Where can they score?", + "required": false, + "type": "text" + }, + { + "name": "Endgame: Can they climb?", + "required": false, + "type": "text" + }, + { + "name": "Other comments", + "required": false, + "type": "text" + } + ] +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index ef85224..f9fb1c9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:merge_data/screens/start.dart'; -const CURRENT_YEAR = 2024; +const CURRENT_YEAR = 2025; const API_ENDPOINT = "https://ryanidkproductions.com/api/mergedata"; void main() { diff --git a/pubspec.lock b/pubspec.lock index 55f58c1..363900f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" crypto: dependency: transitive description: @@ -188,26 +188,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" lints: dependency: transitive description: @@ -228,18 +228,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.15.0" path: dependency: transitive description: @@ -388,7 +388,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_span: dependency: transitive description: @@ -401,10 +401,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" stream_channel: dependency: transitive description: @@ -417,10 +417,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" term_glyph: dependency: transitive description: @@ -433,10 +433,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.3" typed_data: dependency: transitive description: @@ -545,10 +545,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.3.0" web: dependency: transitive description: @@ -582,5 +582,5 @@ packages: source: hosted version: "6.5.0" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.4.0 <4.0.0" flutter: ">=3.19.0" diff --git a/pubspec.yaml b/pubspec.yaml index d41512b..020fe15 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -69,12 +69,12 @@ flutter: # - images/a_dot_ham.jpeg assets: - assets/games/2024.json - #- assets/games/2025.json + - assets/games/2025.json #- assets/games/2026.json #- assets/games/2027.json #- assets/games/2028.json - assets/pit/2024.json - #- assets/pit/2025.json + - assets/pit/2025.json #- assets/pit/2026.json #- assets/pit/2027.json #- assets/pit/2028.json From aaad7b8f101918f1a5c88404fc88de844d92118d Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:39:41 -0500 Subject: [PATCH 05/12] add workflow --- .github/workflows/build-deploy.yml | 153 +++++++++++++++-------------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml index feed4f1..3e7b376 100644 --- a/.github/workflows/build-deploy.yml +++ b/.github/workflows/build-deploy.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - ryan-2025-update pull_request: branches: - main @@ -12,80 +13,80 @@ jobs: build_web_and_apk: name: Build Web and APK runs-on: ubuntu-latest - + steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Install Flutter - uses: subosito/flutter-action@v1 - with: - flutter-version: '3.x' - - - name: Get dependencies - run: flutter pub get - - - name: Test - run: flutter test --coverage - - - name: Build web release project - run: flutter build web - - - name: Create CNAME file - run: echo "mergedata.ca" > ./build/web/CNAME - - - name: Upload web production-ready build files - uses: actions/upload-artifact@v2 - with: - name: production-files - path: ./build/web - - - name: Deploy to GitHub Pages - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./build/web - - - name: Build APK - run: flutter build apk --release - - - name: Rename APK - run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk - - - name: Upload APK - uses: actions/upload-artifact@v2 - with: - name: MergeData.apk - path: build/app/outputs/flutter-apk/MergeData.apk - - - name: Bump version and push tag - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - id: create_tag - uses: mathieudutour/github-tag-action@v6.2 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - default_bump: patch - - - name: Create Release - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.create_tag.outputs.new_tag }} - release_name: Release ${{ steps.create_tag.outputs.new_tag }} - draft: false - prerelease: false - - - name: Upload Release Asset - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./build/app/outputs/flutter-apk/MergeData.apk - asset_name: MergeData.apk - asset_content_type: application/vnd.android.package-archive + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install Flutter + uses: subosito/flutter-action@v1 + with: + flutter-version: "3.x" + + - name: Get dependencies + run: flutter pub get + + - name: Test + run: flutter test --coverage + + - name: Build web release project + run: flutter build web + + - name: Create CNAME file + run: echo "mergedata.ca" > ./build/web/CNAME + + - name: Upload web production-ready build files + uses: actions/upload-artifact@v2 + with: + name: production-files + path: ./build/web + + - name: Deploy to GitHub Pages + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build/web + + - name: Build APK + run: flutter build apk --release + + - name: Rename APK + run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk + + - name: Upload APK + uses: actions/upload-artifact@v2 + with: + name: MergeData.apk + path: build/app/outputs/flutter-apk/MergeData.apk + + - name: Bump version and push tag + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + id: create_tag + uses: mathieudutour/github-tag-action@v6.2 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + default_bump: patch + + - name: Create Release + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.create_tag.outputs.new_tag }} + release_name: Release ${{ steps.create_tag.outputs.new_tag }} + draft: false + prerelease: false + + - name: Upload Release Asset + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./build/app/outputs/flutter-apk/MergeData.apk + asset_name: MergeData.apk + asset_content_type: application/vnd.android.package-archive From 8ebb08f4a75aee6ddf9020cfa2d9cc3ba115bf24 Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:41:36 -0500 Subject: [PATCH 06/12] update workflow --- .github/workflows/build-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml index 3e7b376..d42b46d 100644 --- a/.github/workflows/build-deploy.yml +++ b/.github/workflows/build-deploy.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Flutter uses: subosito/flutter-action@v1 @@ -36,7 +36,7 @@ jobs: run: echo "mergedata.ca" > ./build/web/CNAME - name: Upload web production-ready build files - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: production-files path: ./build/web @@ -55,7 +55,7 @@ jobs: run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk - name: Upload APK - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: MergeData.apk path: build/app/outputs/flutter-apk/MergeData.apk From b56774b82a32989049b89ff1f3d8e94d1718495a Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:57:01 -0500 Subject: [PATCH 07/12] Update iOS deployment target and dependencies; modify .gitignore and project settings --- .gitignore | 2 + ios/Flutter/AppFrameworkInfo.plist | 2 +- ios/Podfile | 2 +- ios/Podfile.lock | 10 +- ios/Runner.xcodeproj/project.pbxproj | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- ios/Runner/AppDelegate.swift | 2 +- pubspec.lock | 158 +++++++++--------- pubspec.yaml | 7 +- 9 files changed, 94 insertions(+), 99 deletions(-) diff --git a/.gitignore b/.gitignore index 1402e01..8d12875 100644 --- a/.gitignore +++ b/.gitignore @@ -7,9 +7,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index 9625e10..7c56964 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/ios/Podfile b/ios/Podfile index fdcc671..d97f17e 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +# platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 77b15ed..7154b01 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -31,12 +31,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 - url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: 70d9d25280d0dd177a5f637cdb0f0b0b12c6a189 +PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 -COCOAPODS: 1.12.1 +COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index b60ff0f..b881986 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -215,7 +215,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 331C8080294A63A400263BE5 = { @@ -452,7 +452,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -580,7 +580,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -629,7 +629,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 87131a0..8e3ca5d 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =3.4.0 <4.0.0" - flutter: ">=3.19.0" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index 020fe15..e982603 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,7 +31,8 @@ dependencies: flutter: sdk: flutter - url_launcher: 6.2.6 + url_launcher: ^6.3.1 + url_launcher_ios: ^6.3.2 flutter_svg: # The following adds the Cupertino Icons font to your application. @@ -40,7 +41,7 @@ dependencies: qr_flutter: ^4.1.0 qr_code_scanner: ^1.0.1 gsheets: ^0.5.0 - shared_preferences: ^2.2.3 + shared_preferences: ^2.5.2 dev_dependencies: flutter_test: @@ -51,7 +52,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^3.0.2 + flutter_lints: ^5.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From dfcaf2662643da63a1be712e26839dba74c9cfbc Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 15:01:39 -0500 Subject: [PATCH 08/12] Update PRODUCT_BUNDLE_IDENTIFIER in project.pbxproj --- ios/Runner.xcodeproj/project.pbxproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index b881986..7189c12 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -475,7 +475,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mergerobotics.merge-data"; + PRODUCT_BUNDLE_IDENTIFIER = com.team2706.mergedata; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -654,7 +654,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mergerobotics.merge-data"; + PRODUCT_BUNDLE_IDENTIFIER = com.team2706.mergedata; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -677,7 +677,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mergerobotics.merge-data"; + PRODUCT_BUNDLE_IDENTIFIER = com.team2706.mergedata; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; From 7b39226eacf24e87f3f056e11b1c40d040a8cf95 Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 15:06:50 -0500 Subject: [PATCH 09/12] bump kotlin to 1.9.25 --- android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index e83fb5d..041e887 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.7.10' + ext.kotlin_version = '1.9.25' repositories { google() mavenCentral() From 762935c1c923baa24aba8e99b6e3191177e135fb Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 15:28:56 -0500 Subject: [PATCH 10/12] Update Android Gradle plugin to 8.1.0 and increment version in pubspec.yaml to 1.1.0 --- android/settings.gradle | 2 +- pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/settings.gradle b/android/settings.gradle index 7cd7128..7ef64d7 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -23,7 +23,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "8.1.0" apply false } include ":app" diff --git a/pubspec.yaml b/pubspec.yaml index e982603..9d8cac1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.0+1 +version: 1.1.0+1 environment: sdk: ">=3.2.3 <4.0.0" From 05636840aec97d367387dc9142adfbb162786c5a Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 15:34:57 -0500 Subject: [PATCH 11/12] gradle upgrade --- android/gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 3c472b9..cb086a5 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-all.zip From 80735cb6e825c3f03997a5beaa76d0b8d5e551df Mon Sep 17 00:00:00 2001 From: ryanidk <46634687+ryanidk@users.noreply.github.com> Date: Mon, 3 Mar 2025 15:43:14 -0500 Subject: [PATCH 12/12] feat: change to qr_code_scanner_plus --- lib/screens/scan.dart | 2 +- pubspec.lock | 16 ++++------------ pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/screens/scan.dart b/lib/screens/scan.dart index dcb3555..c9dcb55 100644 --- a/lib/screens/scan.dart +++ b/lib/screens/scan.dart @@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/services.dart'; import 'package:merge_data/screens/send_data.dart'; -import 'package:qr_code_scanner/qr_code_scanner.dart'; +import 'package:qr_code_scanner_plus/qr_code_scanner_plus.dart'; class ScanResultsPage extends StatefulWidget { final String title; diff --git a/pubspec.lock b/pubspec.lock index cd07ecf..5578201 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -176,14 +176,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" leak_tracker: dependency: transitive description: @@ -312,14 +304,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.2" - qr_code_scanner: + qr_code_scanner_plus: dependency: "direct main" description: - name: qr_code_scanner - sha256: f23b68d893505a424f0bd2e324ebea71ed88465d572d26bb8d2e78a4749591fd + name: qr_code_scanner_plus + sha256: "39696b50d277097ee4d90d4292de36f38c66213a4f5216a06b2bdd2b63117859" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "2.0.10+1" qr_flutter: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 9d8cac1..9ead1a4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,7 +39,7 @@ dependencies: # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 qr_flutter: ^4.1.0 - qr_code_scanner: ^1.0.1 + qr_code_scanner_plus: ^2.0.7 gsheets: ^0.5.0 shared_preferences: ^2.5.2