# Experience seamless production updates with Shorebird in Flutter

Shorebird is a code-push solution designed specifically for Flutter, **providing stability on both Android and iOS platforms**. With Shorebird, you can address app issues without publishing updates to the stores, streamlining the development process and reducing unnecessary delays. This allows you to update your Flutter app instantly over the air, without going through the store update process and directly deploy fixes and new features to your end users’ devices. Interesting? continue.

### **Getting started**

You can install Shorebird on your machine using the command line with the following command below.

curl --proto '=https' --tlsv1.2 [https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh](https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh) -sSf | bash (Mac/Linux)

Set-ExecutionPolicy RemoteSigned -scope CurrentUser # Needed to execute remote scripts iwr -UseBasicParsing '[https://raw.githubusercontent.com/shorebirdtech/install/main/install.ps1'|iex](https://raw.githubusercontent.com/shorebirdtech/install/main/install.ps1'%7Ciex) (windows)

***shorebird init***

This command configures your Flutter project to use Shorebird and creates a `shorebird.yaml` file which contains an app\_id and uniquely Identifies your app during code push. Refer to the image below.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1718005666039/7389a88b-07a4-4d63-bb86-0bc4c775ee6d.png align="left")

***shorebird release android/ ios***

To start pushing updates, you will need to create a release. This command creates a production-ready release of your app and submits your app to Shorebird and by default, it creates an app bundle `(.aab)`. You can also add the Flutter version you are currently running with `shorebird release android --flutter-version=3.19.0 or shorebird release ios --flutter-version=3.19.0.`where 3.19.0 is the version of Flutter you are currently running on your machine.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1718009475914/0aedecfe-e837-47ba-b4ae-59ef072b1a1d.png align="center")

***shorebird preview***

You can preview your release on your physical device (android/ios) or emulator with `shorebird preview`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1718009444873/e8455dc9-2cfc-4f29-81f0-e3e6ff9297ba.png align="center")

This will show your changes and in my case, as seen in the image above I can check the reset password feature and ready to roll it out.

***shorebird patch***

Once you have published a release of your app, you can push updates using one of the `shorebird patch` commands. i.e `shorebird patch android or shorebird patch ios.`

This command does the following:

1. `Builds the artifacts for the update.`
    
2. `Downloads the corresponding release artifacts.`
    
3. `Generates a patch using the diff between the release and the current changes.`
    
4. `Uploads the patch artifacts to the Shorebird backend.`
    
5. `Promotes the patch to the stable channel.`
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1718010610392/6a1a39c7-b416-4616-8e79-5e46098c8a64.png align="center")

That’s it! Your users will see the update the next time they restart your app.

### Conclusion

In this article, we explored using a code push for flutter `(shorebird)` and how to add it to your Flutter project, create releases, preview changes, and create a patch for end users. For more about Shorebird visit [https://docs.shorebird.dev/overview/](https://docs.shorebird.dev/overview/)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1718011662334/bd66dbe3-0ba2-4679-adf4-0a85079c3d23.png align="center")
