All Projects → passsy → Flutter_wrapper

passsy / Flutter_wrapper

Licence: apache-2.0
Flutter execution wrapper which keeps the flutter version in sync for each project

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Flutter wrapper

Libuvsharp
.NET bindings for libuv
Stars: ✭ 170 (-12.82%)
Mutual labels:  wrapper
Protontricks
A simple wrapper that does winetricks things for Proton enabled games, requires Winetricks.
Stars: ✭ 182 (-6.67%)
Mutual labels:  wrapper
Testura.code
Testura.Code is a wrapper around the Roslyn API and used for generation, saving and compiling C# code. It provides methods and helpers to generate classes, methods, statements and expressions.
Stars: ✭ 189 (-3.08%)
Mutual labels:  wrapper
Rocksdb Sharp
.net bindings for the rocksdb by facebook
Stars: ✭ 173 (-11.28%)
Mutual labels:  wrapper
Nopaginate
Android pagination library (updated 01.05.2018)
Stars: ✭ 180 (-7.69%)
Mutual labels:  wrapper
Swiftdb
A modern database abstraction layer, batteries included.
Stars: ✭ 183 (-6.15%)
Mutual labels:  wrapper
React Openlayers
OpenLayer React Components
Stars: ✭ 169 (-13.33%)
Mutual labels:  wrapper
Typedpreferences
Preference wrappers for primitive types for Android
Stars: ✭ 191 (-2.05%)
Mutual labels:  wrapper
Wiki
Wikipedia Interface for Node.js
Stars: ✭ 180 (-7.69%)
Mutual labels:  wrapper
Godot Kotlin Native
Kotlin bindings for Godot Engine
Stars: ✭ 186 (-4.62%)
Mutual labels:  wrapper
Ksprefs
🚀⚡ Kotlin SharedPreferences wrapper & cryptographic preferences android library.
Stars: ✭ 176 (-9.74%)
Mutual labels:  wrapper
Modernavplayer
ModernAVPlayer is a persistence AVPlayer wrapper
Stars: ✭ 179 (-8.21%)
Mutual labels:  wrapper
Jaffree
Java ffmpeg and ffprobe command-line wrapper
Stars: ✭ 184 (-5.64%)
Mutual labels:  wrapper
Keras Multi Head
A wrapper layer for stacking layers horizontally
Stars: ✭ 172 (-11.79%)
Mutual labels:  wrapper
Uniswap Python
🦄 The unofficial Python client for the Uniswap exchange.
Stars: ✭ 191 (-2.05%)
Mutual labels:  wrapper
Config4k
A Kotlin wrapper for Typesafe Config
Stars: ✭ 168 (-13.85%)
Mutual labels:  wrapper
Qt5.cr
Qt5 bindings for Crystal, based on Bindgen
Stars: ✭ 182 (-6.67%)
Mutual labels:  wrapper
Mailjet Apiv3 Php
[API v3] Mailjet PHP Wrapper
Stars: ✭ 194 (-0.51%)
Mutual labels:  wrapper
W32
A wrapper of Windows APIs for Go
Stars: ✭ 190 (-2.56%)
Mutual labels:  wrapper
Fbrecog
An unofficial python wrapper for the Facebook face recognition endpoint
Stars: ✭ 184 (-5.64%)
Mutual labels:  wrapper

Flutter Wrapper

flutterw is a tiny, open source shell script which downloads and executes the Flutter SDK with the exact version defined in your project respository. It encourages the idea that upgrading Flutter should happen per project, not per developer. Thus upgrading Flutter with flutterw automatically upgrades Flutter for your co-workers and on the CI servers.

The Flutter Wrapper will add the Flutter SDK as a git submodule to your project. It pins the version and the channel.

This project is inspired by the gradle wrapper.

Read more on Medium

Install flutterw

sh -c "$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh)"

Open the Terminal, navigate to your project root and execute the line above.

From now on use ./flutterw instead of flutter

flutterw terminal demo

IDE Setup

Use with VScode

If you're a VScode user link the new Flutter SDK path in your settings $projectRoot/.vscode/settings.json (create if it doesn't exists yet)

{
    "dart.flutterSdkPath": ".flutter",
}

Commit this file to your git repo and your coworkers will automatically use flutterw from now on

Use with IntelliJ / Android Studio

Go to Preferences > Languages & Frameworks > Flutter and set the Flutter SDK path to $projectRoot/.flutter

IntelliJ Settings

Add this step to the onboarding guidelines of your projects because this has to be done for every developer for every project using flutterw.

Tips and Tricks

Upgrading Flutter

Flutter Wrapper doesn't require any special command to update Flutter. Run ./flutterw channel <stable|beta|dev|master> to change the channel or update to the lastest version of a given channel.

./flutterw channel beta
./flutterw upgrade

Don't forget to commit the submodule changes.

Updating flutterw

To update the flutter wrapper to the latest version run the install command again:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh)"

To update the flutter wrapper to a specific verssion, use the -t <tag/branch> (i.e. v1.0.0)

sh -c "curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh" | bash /dev/stdin -t v1.0.0

Uninstall flutterw

Sorry to let you go! Removing submodules is hard, that's why I did the hard work for you. Simply run this command from the root of your flutter project and the uninstall script will cleanup everything.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/uninstall.sh)"

Bye 👋

Create a new project using the flutter wrapper

You can create a new Flutter project without installing Flutter globally on your machine.

# 1. Create an empty git repo
mkdir flutter_wrapper_project && cd "$_"
git init

# 2. Install flutterw
sh -c "$(curl -fsSL https://raw.githubusercontent.com/passsy/flutter_wrapper/master/install.sh)"

# 3. Create Flutter project
./flutterw create .
./flutterw run

License

Copyright 2019 Pascal Welsch

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].