diff --git a/src/content/docs/code-push/ci/fastlane.mdx b/src/content/docs/code-push/ci/fastlane.mdx index f586eac8..35f5b3ef 100644 --- a/src/content/docs/code-push/ci/fastlane.mdx +++ b/src/content/docs/code-push/ci/fastlane.mdx @@ -51,10 +51,10 @@ example of this in the `patch_shorebird` lane in the ### Setup -Follow this section if you have shorebird installed on the machine that will be -running fastlane. This section assumes that you have shorebird installed on the +Follow this section if you have Shorebird installed on the machine that will be +running fastlane. This section assumes that you have Shorebird installed on the machine that will be running the fastlane commands. If you have not already -installed shorebird, you can do so by following the +installed Shorebird, you can do so by following the [Getting Started instructions](/getting-started). If you are not already using fastlane with your project, navigate to your app's diff --git a/src/content/docs/code-push/faq.mdx b/src/content/docs/code-push/faq.mdx index 0436fcdf..5e2fd9b3 100644 --- a/src/content/docs/code-push/faq.mdx +++ b/src/content/docs/code-push/faq.mdx @@ -102,7 +102,7 @@ For more details on setting up flavors, see the ### How does Shorebird relate to Flutter? -Shorebird is a fork of Flutter that adds code push. Shorebird is not a +Shorebird is a fork of Flutter that adds Code Push. Shorebird is not a replacement for Flutter, but rather a replacement for the Flutter engine. You can continue to use the Flutter tooling you already know and love. @@ -236,8 +236,8 @@ Shorebird to violate Play Store guidelines is in violation of the Shorebird [Terms of Service](https://shorebird.dev/terms) and can result in termination of your account. -Code push services are widely used in the industry (all of the large apps we're -aware of use them) and there are multiple other code push services publicly +Code Push services are widely used in the industry (all of the large apps we're +aware of use them) and there are multiple other Code Push services publicly available (e.g. expo.dev & appcenter.ms). This is a well trodden path. Microsoft also publishes a guide on how their React Native "codepush" library @@ -265,7 +265,7 @@ advertised purpose of the Application as submitted to the App Store, Shorebird uses a custom Dart interpreter to comply with the interpreter-only restriction for updates on iOS. So as long as your application is not engaging in deceptive behavior via updates (e.g. changing the purpose of the app via -update), updating via Shorebird (or any other code push solution) is standard +update), updating via Shorebird (or any other Code Push solution) is standard industry practice and compliant with [App Store guidelines](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#b331). @@ -301,7 +301,7 @@ continue to use your existing processes to submit to the app stores. ## Use Cases & Limitations -### What can I use Shorebird code push for? +### What can I use Shorebird Code Push for? We've seen a variety of uses, including: @@ -313,7 +313,7 @@ Note that most app stores prohibit shipping code that changes the behavior of the app in a significant way. Please see our [Store Compliance section](#store-compliance) for more information. -### What can't we use Shorebird code push for? +### What can't we use Shorebird Code Push for? Shorebird does not support changing native code (e.g. Java/Kotlin on Android or Objective-C/Swift on iOS). The tool will warn you during an attempted patch if @@ -372,28 +372,28 @@ release. ### How does this relate to Firebase Remote Config or Launch Darkly? -Code push allows adding new code / replacing code on the device. Firebase Remote +Code Push allows adding new code / replacing code on the device. Firebase Remote Config and Launch Darkly are both configuration systems. They allow you to change the configuration of your app without having to ship a new version. They are not intended to replace code. ### How does this relate to Flutter Hot Reload? -Flutter's Hot reload is a development-time-only feature. Code push is for +Flutter's Hot reload is a development-time-only feature. Code Push is for production. Hot reload is a feature of Flutter that allows you to change code on the device during development. It requires building the Flutter engine with a debug-mode Dart VM which includes a just-in-time (JIT) Dart compiler. -Code push is a feature that allows you to change code on the device in +Code Push is a feature that allows you to change code on the device in production. We will use a variety of different techniques to make this possible depending on the platform. Current demos execute ahead-of-time compiled Dart code and do not require a JIT Dart compiler. ### Does Shorebird support Flutter Web? -Code push isn't needed for Flutter web. When a user opens a web app it downloads +Code Push isn't needed for Flutter web. When a user opens a web app it downloads the latest version from the server if needed. If you have a use case for code push with Flutter web, we'd @@ -505,7 +505,7 @@ Someone who has your `app_id` can fetch the latest version of your app from Shorebird servers, but they cannot push updates to your app or access any other aspect of your Shorebird account. -### Does code push require the internet to work? +### Does Code Push require the internet to work? Yes. Some form of network connectivity is required to transport updates to the devices. @@ -550,10 +550,10 @@ No. Shorebird has no current plans to offer on-prem, self-host or cloud-prem offerings. We would be happy to discuss with you any and all ways in which we can improve our centrally hosted solution to best match your needs. -### Does code push work with large applications? +### Does Code Push work with large applications? Yes. There is no limit on the size of the application that can be patched with -code push. As noted in +Code Push. As noted in [Overview](/code-push/#what-types-of-changes-can-be-included-in-a-patch), Shorebird can change any Dart code in your application no matter of size. diff --git a/src/content/docs/code-push/guides/flavors/ios.mdx b/src/content/docs/code-push/guides/flavors/ios.mdx index 4590dbdf..0acf676d 100644 --- a/src/content/docs/code-push/guides/flavors/ios.mdx +++ b/src/content/docs/code-push/guides/flavors/ios.mdx @@ -74,7 +74,7 @@ You can view your apps at ## Create a release -Now that we've created our apps on shorebird, we need to create releases (one +Now that we've created our apps on Shorebird, we need to create releases (one for each flavor). To create a release, we'll use the `shorebird release ios` command. diff --git a/src/content/docs/code-push/guides/hybrid-apps/android.mdx b/src/content/docs/code-push/guides/hybrid-apps/android.mdx index 447e1eea..eee8bc79 100644 --- a/src/content/docs/code-push/guides/hybrid-apps/android.mdx +++ b/src/content/docs/code-push/guides/hybrid-apps/android.mdx @@ -1,6 +1,6 @@ --- title: Code Push for Android Hybrid Apps -description: Use code push in an hybrid app scenario with an Android app +description: Use Code Push in an hybrid app scenario with an Android app sidebar: label: Android order: 25 @@ -15,7 +15,7 @@ is, your app embeds Flutter UI in non-Flutter UI). :::note If your app is a pure Flutter app, follow the -[standard code push guide](/code-push/initialize) instead. +[standard Code Push guide](/code-push/initialize) instead. ::: @@ -26,7 +26,7 @@ Our Android app will be named `android_app` and our Flutter module will be named `flutter_module`. This guide also assumes that you have created a Shorebird account. If you have -not, please see our [code push guide](/code-push/initialize) for instructions. +not, please see our [Code Push guide](/code-push/initialize) for instructions. The reference code for this guide is available at https://github.com/shorebirdtech/samples/tree/main/add_to_app. @@ -156,7 +156,7 @@ Flutter symbols in your app. ## Submit your app to the Play Store We won't cover this step in detail here, but this is where you would submit your -app to the Play Store. For code push to work, it is important that you submit +app to the Play Store. For Code Push to work, it is important that you submit _with the same `aar` generated by the release command above_. ## Verify that Shorebird is working with a patch diff --git a/src/content/docs/code-push/guides/hybrid-apps/ios.mdx b/src/content/docs/code-push/guides/hybrid-apps/ios.mdx index 92e3faae..b3c37b3b 100644 --- a/src/content/docs/code-push/guides/hybrid-apps/ios.mdx +++ b/src/content/docs/code-push/guides/hybrid-apps/ios.mdx @@ -1,6 +1,6 @@ --- title: Code Push for iOS Hybrid Apps -description: Use code push in an hybrid app scenario with an iOS app +description: Use Code Push in an hybrid app scenario with an iOS app sidebar: label: iOS order: 26 @@ -19,7 +19,7 @@ your app embeds Flutter UI in non-Flutter UI). :::note If your app is a pure Flutter app, follow the -[standard code push guide](/code-push/initialize) instead. +[standard Code Push guide](/code-push/initialize) instead. ::: @@ -31,7 +31,7 @@ iOS app will be named `IosCodePushDemo` and our Flutter module will be named This guide also assumes that you have created a Shorebird account. If you have not created a Shorebird account, please see our -[code push guide](/code-push/initialize) for instructions. +[Code Push guide](/code-push/initialize) for instructions. The reference code for this guide is available at https://github.com/shorebirdtech/samples/tree/main/add_to_app. @@ -156,7 +156,7 @@ and you should see debug logs from Shorebird. ## Submit your app to the App Store We won't cover this step in detail here, but this is where you would submit your -app to the App Store. For code push to work, it is important that you submit +app to the App Store. For Code Push to work, it is important that you submit _with the same `xcframework` generated by the release command above_. You can skip this step if you just want to see Code Push working in an app. diff --git a/src/content/docs/code-push/guides/percentage-based-rollouts.mdx b/src/content/docs/code-push/guides/percentage-based-rollouts.mdx index 39173df9..88fc282f 100644 --- a/src/content/docs/code-push/guides/percentage-based-rollouts.mdx +++ b/src/content/docs/code-push/guides/percentage-based-rollouts.mdx @@ -30,7 +30,7 @@ Our percentage-based rollout system will have the following three parts: ## Add Shorebird to your app -If you haven't already, run shorebird init in your Flutter project to add +If you haven't already, run Shorebird init in your Flutter project to add Shorebird to your app. # Add the shorebird_code_push package @@ -157,7 +157,7 @@ And update the rollout percentage in Firebase: alt="Cloud Firestore showing 1.0.0+1 at 50% rollout" /> -Press the update button, and our shorebird preview output shows the following +Press the update button, and our Shorebird preview output shows the following (formatted for readability): ``` diff --git a/src/content/docs/code-push/guides/stores/app-store.mdx b/src/content/docs/code-push/guides/stores/app-store.mdx index 62e2d420..55b6401d 100644 --- a/src/content/docs/code-push/guides/stores/app-store.mdx +++ b/src/content/docs/code-push/guides/stores/app-store.mdx @@ -21,7 +21,7 @@ import appStoreConnectProcessing from '~/assets/app_store_connect_processing.png import appStoreConnectAddBuild from '~/assets/app_store_connect_add_build.png'; import appStoreConnectReviewIssues from '~/assets/app_store_connect_review_issues.png'; -This guide walks through releasing a code push app to the Apple App Store and +This guide walks through releasing a Code Push app to the Apple App Store and applying a patch to that release. The app we will be releasing in this guide is Shorebird Clock, our demo code @@ -33,7 +33,7 @@ To follow along with this guide, you will need the following: 1. An existing Shorebird app. If you don't have one, you can create one by following the - [code push quickstart](https://docs.shorebird.dev/getting-started/) guide. + [Code Push quickstart](https://docs.shorebird.dev/getting-started/) guide. 1. Access to hardware running macOS. This is required to build iOS apps. 1. A valid Apple Developer account. This is required to release iOS apps. 1. An app in [App Store Connect](https://appstoreconnect.apple.com/). See the diff --git a/src/content/docs/code-push/guides/stores/play-store.mdx b/src/content/docs/code-push/guides/stores/play-store.mdx index 29131b6f..972a3a7e 100644 --- a/src/content/docs/code-push/guides/stores/play-store.mdx +++ b/src/content/docs/code-push/guides/stores/play-store.mdx @@ -11,18 +11,18 @@ import playStoreCreateRelease from '~/assets/play_store_create_release.png'; import playStoreUploadedBundle from '~/assets/play_store_uploaded_bundle.png'; import playStoreInReview from '~/assets/play_store_in_review.png'; -This guide walks through releasing a code push app to the Google Play Store and +This guide walks through releasing a Code Push app to the Google Play Store and applying a patch to that release. The app we will be releasing in this guide is [`Time Shift`](https://play.google.com/store/apps/details?id=dev.shorebird.u_shorebird_clock), -our demo code push app. ([source](https://github.com/shorebirdtech/time_shift/)) +our demo Code Push app. ([source](https://github.com/shorebirdtech/time_shift/)) ## Prerequisites This guide assumes that you have an existing Shorebird app. If you don't have one, you can create one by following the -[code push quickstart](https://docs.shorebird.dev/getting-started/) guide. +[Code Push quickstart](https://docs.shorebird.dev/getting-started/) guide. ## Creating a release diff --git a/src/content/docs/code-push/index.mdx b/src/content/docs/code-push/index.mdx index fe106e3c..2e0107c0 100644 --- a/src/content/docs/code-push/index.mdx +++ b/src/content/docs/code-push/index.mdx @@ -91,7 +91,7 @@ Shorebird. Feel free to skip it now and come back later if you need. ### Code Push -Code push, also referred to as "over-the-air updates" (OTA), is a cloud service +Code Push, also referred to as "over-the-air updates" (OTA), is a cloud service enabling Flutter developers to deploy updates to their apps in production. Shorebird works on Android, iOS, macOS, Linux and Windows. @@ -146,7 +146,7 @@ Applications that use build flavors will have a unique `app_id` for each flavor. #### Release A release is a specific version of an [application](#application), identified by -a version and build number (e.g., `1.0.0+1`). Although code push works for apps +a version and build number (e.g., `1.0.0+1`). Although Code Push works for apps distributed outside of the App Store and Play Store, a release most often corresponds with a specific version of your app that is published to the App Store or Play Store. diff --git a/src/content/docs/code-push/initialize.mdx b/src/content/docs/code-push/initialize.mdx index 255b2ec3..5f2fea9c 100644 --- a/src/content/docs/code-push/initialize.mdx +++ b/src/content/docs/code-push/initialize.mdx @@ -1,6 +1,6 @@ --- title: Initialize Shorebird -description: Learn how to add code push to an existing Flutter project. +description: Learn how to add Code Push to an existing Flutter project. sidebar: label: Initialize order: 3 @@ -147,7 +147,7 @@ check for updates and trigger them at a time of your choosing. See :::note -Shorebird code push requires the internet permission to be added to your +Shorebird Code Push requires the internet permission to be added to your `AndroidManifest.xml` file (located in `android/app/src/main/AndroidManifest.xml`). This is required for the app to be able to communicate with the Shorebird servers to download patches. @@ -168,7 +168,7 @@ able to communicate with the Shorebird servers to download patches. If you already have a `shorebird.yaml` and would like to re-initialize your project, use `shorebird init --force`. This will overwrite your existing `shorebird.yaml` and create a new app/app_id. Existing apps will not be affected -by re-initializing shorebird. +by re-initializing Shorebird. ::: diff --git a/src/content/docs/code-push/system-architecture.mdx b/src/content/docs/code-push/system-architecture.mdx index 21c3dc41..c34ee0a0 100644 --- a/src/content/docs/code-push/system-architecture.mdx +++ b/src/content/docs/code-push/system-architecture.mdx @@ -229,7 +229,7 @@ servers. ### Flutter Modifications -Code push requires technical changes to the underlying Flutter engine. To make +Code Push requires technical changes to the underlying Flutter engine. To make those changes required forking Flutter. We had to fork 4 Flutter and Dart repositories to make Shorebird work: diff --git a/src/content/docs/code-push/uninstall.mdx b/src/content/docs/code-push/uninstall.mdx index d002e7cb..fd8be672 100644 --- a/src/content/docs/code-push/uninstall.mdx +++ b/src/content/docs/code-push/uninstall.mdx @@ -20,7 +20,7 @@ Otherwise, we hope you'll consider trying Shorebird again in the future. ## Uninstalling Shorebird -Building with `shorebird release` will include Shorebird code push in your app. +Building with `shorebird release` will include Shorebird Code Push in your app. Building with `flutter build --release` will not include Shorebird in your app. At any time you can simply drop back to `flutter build` and things will work as they did before. diff --git a/src/content/docs/flutter-concepts/complete-introduction-flutter.mdx b/src/content/docs/flutter-concepts/complete-introduction-flutter.mdx index 89d1d60a..8c3a3bee 100644 --- a/src/content/docs/flutter-concepts/complete-introduction-flutter.mdx +++ b/src/content/docs/flutter-concepts/complete-introduction-flutter.mdx @@ -270,7 +270,7 @@ paths forward: **Start Your First Flutter Project**: Download the [Flutter SDK](https://docs.flutter.dev/get-started/install) and follow the [Shorebird Quick Start](https://docs.shorebird.dev/getting-started/) to create a -new project with code push capabilities built in. The `shorebird create` command +new project with Code Push capabilities built in. The `shorebird create` command scaffolds a Flutter app with Shorebird already integrated. **Set Up Your Development Workflow**: Establish a robust development process by @@ -288,7 +288,7 @@ pipeline using Whether you're using GitHub Actions, [Codemagic](https://docs.shorebird.dev/code-push/ci/codemagic/), or [Fastlane](https://docs.shorebird.dev/code-push/ci/fastlane/), you can integrate -code push into your existing workflows. +Code Push into your existing workflows. **Prepare for Production Release**: Before launching to the app stores, review the platform-specific guidelines for diff --git a/src/content/docs/flutter-concepts/flutter-for-beginners.mdx b/src/content/docs/flutter-concepts/flutter-for-beginners.mdx index b9c368e4..461cdc19 100644 --- a/src/content/docs/flutter-concepts/flutter-for-beginners.mdx +++ b/src/content/docs/flutter-concepts/flutter-for-beginners.mdx @@ -14,7 +14,7 @@ import flutterBeginnersUpdatedApp from '~/assets/flutter_beginners_updated_app.j The traditional Flutter development workflow has a significant gap: you build an app, ship it to the app stores, and then wait days or weeks for approval whenever you need to push a fix. Shorebird eliminates this friction by enabling -over-the-air (OTA) [code push updates](https://docs.shorebird.dev/code-push/) +over-the-air (OTA) [Code Push updates](https://docs.shorebird.dev/code-push/) for Flutter apps. With the `shorebird create` command, you can now scaffold production-ready @@ -43,7 +43,7 @@ iwr -UseBasicParsing 'https://raw.githubusercontent.com/shorebirdtech/install/ma These commands download Shorebird to `~/.shorebird/bin`, including a modified [Flutter engine](https://github.com/shorebirdtech/flutter/tree/shorebird/dev/engine) -that enables code push capabilities. This modified Flutter lives inside +that enables Code Push capabilities. This modified Flutter lives inside Shorebird's cache and won't interfere with your existing Flutter installation. You continue using your normal [Flutter SDK](https://docs.flutter.dev/get-started/install) for development. @@ -242,7 +242,7 @@ to `main()` or `initState()`, use hot restart (press `R`), which restarts the app from scratch while still being faster than a full rebuild. Hot reload only works in debug mode. Release builds compile Dart to native code -and don't support this feature, which is precisely why Shorebird's code push +and don't support this feature, which is precisely why Shorebird's Code Push capability is so valuable for production apps. ## Step 4: Making your First Change @@ -406,7 +406,7 @@ The combination of Shorebird's OTA infrastructure with Flutter's widget composition model and hot reload creates a development experience optimized for rapid iteration at every stage, from first prototype to production maintenance. For any Flutter project that will eventually ship to real users, building in -code push capability from day one is simply the pragmatic choice. +Code Push capability from day one is simply the pragmatic choice. ## Next Steps diff --git a/src/content/docs/flutter-concepts/flutter-sdk-deep-dive.mdx b/src/content/docs/flutter-concepts/flutter-sdk-deep-dive.mdx index 957010ba..38a7b87e 100644 --- a/src/content/docs/flutter-concepts/flutter-sdk-deep-dive.mdx +++ b/src/content/docs/flutter-concepts/flutter-sdk-deep-dive.mdx @@ -342,7 +342,7 @@ analyzer: We recommend running `flutter analyze` before commits and `dart fix --apply` to automatically resolve deprecated API usage. For deeper analysis, [DCM (Dart Code Metrics)](https://dcm.dev/) provides complexity metrics and -unused code detection. Also, use shorebird for testing and deploying patches +unused code detection. Also, use Shorebird for testing and deploying patches quickly to your released app. State management in 2025-2026 favors _[Riverpod 3](https://riverpod.dev/)_ for @@ -367,7 +367,7 @@ The three-tree rendering architecture and platform embedder design enable true cross-platform code sharing without sacrificing native integration. The most significant evolution for production Flutter teams is -[Shorebird's code push capability](https://docs.shorebird.dev/code-push/). By +[Shorebird's Code Push capability](https://docs.shorebird.dev/code-push/). By building a custom interpreter and novel per-function linker, [Shorebird solves the immutability problem](https://docs.shorebird.dev/code-push/system-architecture/) while maintaining app store compliance, enabling bug fixes in hours rather than @@ -380,7 +380,7 @@ while retaining the ability to respond quickly to production issues. Once you understand Flutter's architecture and update strategies, consider these resources to implement production-ready workflows: -**Set up code push for your app**: Start with the +**Set up Code Push for your app**: Start with the [Shorebird Quick Start Guide](https://docs.shorebird.dev/getting-started/) to enable over-the-air updates in your Flutter application. The guide covers installation, initialization, and creating your first release in under 15 diff --git a/src/content/docs/flutter-concepts/how-to-install-flutter.mdx b/src/content/docs/flutter-concepts/how-to-install-flutter.mdx index 4157a42f..d7d24b5b 100644 --- a/src/content/docs/flutter-concepts/how-to-install-flutter.mdx +++ b/src/content/docs/flutter-concepts/how-to-install-flutter.mdx @@ -313,7 +313,7 @@ Android app. ## Shorebird CLI belongs in your initial setup, not as an afterthought [Shorebird](https://shorebird.dev/), founded by Flutter creator Eric Seidel, -enables over-the-air code push, pushing Dart code updates directly to users' +enables over-the-air Code Push, pushing Dart code updates directly to users' devices without App Store or Play Store review cycles. Installing it alongside Flutter from day one avoids the common "retrofit under @@ -542,7 +542,7 @@ Now that your Flutter environment is properly configured, here are strategic next steps based on your project needs: **For production deployment planning**: Explore -[Shorebird's code push system architecture](https://docs.shorebird.dev/code-push/system-architecture/) +[Shorebird's Code Push system architecture](https://docs.shorebird.dev/code-push/system-architecture/) to understand how over-the-air updates work at a technical level, then review [update strategies](https://docs.shorebird.dev/code-push/update-strategies/) to determine when patches download and apply in your app's lifecycle.