{"id":13552480,"url":"https://github.com/passsy/flutter_wrapper","last_synced_at":"2025-04-06T10:12:53.312Z","repository":{"id":44499326,"uuid":"133403987","full_name":"passsy/flutter_wrapper","owner":"passsy","description":"Flutter execution wrapper which keeps the flutter version in sync for each project","archived":false,"fork":false,"pushed_at":"2024-03-05T23:12:23.000Z","size":110,"stargazers_count":281,"open_issues_count":4,"forks_count":39,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-30T08:12:22.569Z","etag":null,"topics":["flutter","wrapper"],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passsy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":["passsy"]}},"created_at":"2018-05-14T18:20:40.000Z","updated_at":"2025-03-04T12:49:50.000Z","dependencies_parsed_at":"2024-03-18T15:31:40.519Z","dependency_job_id":"ad7c55bf-d49f-46f8-8a28-e86876f737d4","html_url":"https://github.com/passsy/flutter_wrapper","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passsy%2Fflutter_wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passsy%2Fflutter_wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passsy%2Fflutter_wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passsy%2Fflutter_wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passsy","download_url":"https://codeload.github.com/passsy/flutter_wrapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464222,"owners_count":20942970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter","wrapper"],"created_at":"2024-08-01T12:02:04.669Z","updated_at":"2025-04-06T10:12:53.292Z","avatar_url":"https://github.com/passsy.png","language":"Dart","funding_links":["https://github.com/sponsors/passsy"],"categories":["Dart"],"sub_categories":[],"readme":"# Flutter Wrapper\n\n`flutterw` is a tiny, open source shell script which downloads and executes the Flutter SDK with the exact version defined in your project respository.\nIt encourages the idea that upgrading Flutter should happen per project, not per developer.\nThus upgrading Flutter with `flutterw` automatically upgrades Flutter for your co-workers and on the CI servers.\n\nThe Flutter Wrapper will add the Flutter SDK as a git submodule to your project.\nIt pins the version and the channel.\n\nThis project is inspired by the gradle wrapper.\n\nRead more on [Medium](https://medium.com/grandcentrix/flutter-wrapper-bind-your-project-to-an-explicit-flutter-release-4062cfe6dcaf)\n\n\n# Install flutterw\n\n```bash\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh)\"\n```\n_Open the Terminal, navigate to your project root and execute the line above._\n\nFrom now on use `./flutterw` instead of `flutter`\n\n![flutterw terminal demo](https://user-images.githubusercontent.com/1096485/64660427-840dc080-d440-11e9-97a2-a9e2bef203bd.gif)\n\n## IDE Setup\n### Use with VScode\n\nIf you're a VScode user link the new Flutter SDK path in your settings\n`$projectRoot/.vscode/settings.json` (create if it doesn't exists yet)\n\n```json\n{\n    \"dart.flutterSdkPath\": \".flutter\",\n}\n```\n\nCommit this file to your git repo and your coworkers will automatically use `flutterw` from now on\n\n### Use with IntelliJ / Android Studio\n\nGo to `File \u003e Settings \u003e Languages \u0026 Frameworks \u003e Flutter` and set the Flutter SDK path to `$projectRoot/.flutter`\n\n\u003cimg width=\"800\" alt=\"IntelliJ Settings\" src=\"https://user-images.githubusercontent.com/1096485/64658026-3a1fdd00-d436-11e9-9457-556059f68e2c.png\"\u003e\n\nAdd this step to the onboarding guidelines of your projects because this has to be done for every developer for every project using `flutterw`.\n\n\n## Tips and Tricks\n### Upgrading Flutter\n\nFlutter Wrapper doesn't require any special command to update Flutter.\nRun `./flutterw channel \u003cstable|beta|dev|master\u003e` to change the channel or update to the lastest version of a given channel.\n\n```\n./flutterw channel beta\n./flutterw upgrade\n```\n\nDon't forget to commit the submodule changes.  \n\n\n### Updating flutterw \n\nTo update the flutter wrapper to the latest version run the install command again:\n\n```bash\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh)\"\n```\n\nTo update the flutter wrapper to a specific verssion, use the `-t \u003ctag/branch\u003e` (i.e. `v1.0.0`)\n\n```bash\nsh -c \"curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh\" | bash /dev/stdin -t v1.0.0\n```\n\n\n### Uninstall flutterw\n\nSorry to let you go!\nRemoving submodules is hard, that's why I did the hard work for you.\nSimply run this command from the root of your flutter project and the uninstall script will cleanup everything.\n\n```bash\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/uninstall.sh)\"\n```\n\nBye :wave:\n\n### Create a new project using the flutter wrapper\n\nYou can create a new Flutter project without installing Flutter globally on your machine.\n\n```bash\n# 1. Create an empty git repo\nmkdir flutter_wrapper_project \u0026\u0026 cd \"$_\"\ngit init\n\n# 2. Install flutterw\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh)\"\n\n# 3. Create Flutter project\n./flutterw create .\n./flutterw run\n```\n\n### Using flutterw on CI\n\nHere is an example of using flutterw on a CI server.\n\n```bash\njobs:\n  linux:\n    runs-on: ubuntu-latest\n\n    container:\n      # Use container with pre-installed Flutter dependencies like unzip, libglu1-mesa\n      image: passsy/flutterw:base-0.4.1\n\n    steps:\n      - uses: actions/checkout@v2.4.0\n      - run: ./flutterw doctor -v\n      - run: ./flutterw pub get\n      - run: ./flutterw test\n      - run: ./flutterw analyze --fatal-infos --fatal-warnings .\n\n  macos:\n    runs-on: macos-latest\n    steps:\n      - uses: actions/checkout@v2.4.0\n      - run: ./flutterw doctor -v\n      - run: ./flutterw pub get\n      - run: ./flutterw test\n      - run: ./flutterw analyze --fatal-infos --fatal-warnings .\n```\n\n## License\n\n```\nCopyright 2019 Pascal Welsch\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasssy%2Fflutter_wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpasssy%2Fflutter_wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasssy%2Fflutter_wrapper/lists"}