DEV Community

Cover image for Revolutionizing Mobile Updates: How Rokomari Transformed Its App with Shorebird Code Push
Md. Al-Amin
Md. Al-Amin

Posted on

Revolutionizing Mobile Updates: How Rokomari Transformed Its App with Shorebird Code Push

In the dynamic world of e-commerce, agility is paramount. At Rokomari, Bangladesh’s leading online bookstore, we constantly strive to enhance our mobile app to provide users with a seamless experience. However, the traditional app update process — requiring approvals from the App Store and Play Store — often delayed our ability to implement quick fixes or new features. This all changed when we discovered Shorebird Code Push, a tool that allows us to deploy updates instantly across both iOS and Android platforms. In this blog post, I’ll share our journey of integrating Shorebird into the Rokomari app, the challenges we overcame, and how it has revolutionized our development workflow.

The Challenge: Navigating Traditional App Update Processes

Before Shorebird, updating our mobile app was a cumbersome process. Even minor bug fixes or UI tweaks required submitting a new version to the App Store and Play Store, followed by a waiting period for approval. This not only delayed the deployment of critical updates but also hindered our ability to conduct timely A/B testing and respond swiftly to user feedback. Moreover, users had to manually download the latest version to benefit from the updates, leading to inconsistencies in user experience.

Discovering Shorebird: A Game-Changer for Mobile Development

In our quest for a more efficient solution, we came across Shorebird Code Push. Developed by a team of experts, including Eric Seidel, the founder of Flutter, and Felix Angelov, creator of the Bloc library, Shorebird offers a seamless way to push updates directly to users’ devices without the need for app store approvals. This capability was particularly appealing, as it promised to eliminate the delays associated with traditional update processes.

Implementing Shorebird in the Rokomari App

Integrating Shorebird into our Flutter-based Rokomari app was straightforward. Here’s a step-by-step guide based on our experience:

1. Installing the Shorebird CLI

The first step was to install the Shorebird Command Line Interface (CLI), which facilitates the management of app updates. Depending on your operating system, the installation commands are:

For macOS/Linux:

curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf | bash
Enter fullscreen mode Exit fullscreen mode

For Windows:

powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr -UseBasicParsing 'https://raw.githubusercontent.com/shorebirdtech/install/main/install.ps1'|iex"
Enter fullscreen mode Exit fullscreen mode

After installation, we verified the setup by running:

shorebird doctor
Enter fullscreen mode Exit fullscreen mode

This command checks for any potential issues and ensures that the CLI is correctly configured.

2. Creating a Shorebird Account

Once the CLI was set up, we created a Shorebird account to manage our app updates:

shorebird account create
Enter fullscreen mode Exit fullscreen mode

This command generates a link to complete the registration process in a web browser. After signing up, we subscribed to a plan that suited our needs:

shorebird account subscribe
Enter fullscreen mode Exit fullscreen mode

This step is essential to access Shorebird’s services and manage app updates effectively.

3. Initializing Shorebird in the Flutter Project

With the account set up, we initialized Shorebird in our Flutter project:

shorebird init
Enter fullscreen mode Exit fullscreen mode

This command performs several actions:

Generates a unique app_id for the app, which Shorebird uses to identify and manage updates.

  • Creates a shorebird.yaml file in the project's root directory containing the app_id.
  • Adds the shorebird.yaml file to the assets section of the pubspec.yaml file, ensuring it's bundled with the app.
  • These steps are crucial for Shorebird to function correctly within the app.

4. Configuring Permissions for Android

To enable Shorebird to communicate with its servers, we ensured that the Android version of our app had the necessary internet permissions. We added the following line to the AndroidManifest.xmlfile:

<uses-permission android:name="android.permission.INTERNET" />
Enter fullscreen mode Exit fullscreen mode

This permission allows the app to check for and download updates from Shorebird’s servers.

5. Building and Releasing the App

After configuring the project, we built the app using Shorebird’s CLI:

For Android:

shorebird release android
Enter fullscreen mode Exit fullscreen mode

This command generates an Android App Bundle (AAB) suitable for release.

For iOS: (currently in beta support)

shorebird release ios
Enter fullscreen mode Exit fullscreen mode

This command prepares the app for release on the App Store.

These commands package the app with Shorebird’s modified Flutter engine, enabling code push capabilities.

6. Deploying Updates with Shorebird

With Shorebird integrated, deploying updates became significantly more efficient. Here’s how we managed updates:

  • Making Code Changes: We made necessary changes to the Dart codebase, such as fixing bugs or adding new features.
  • Pushing a Patch: To deploy the changes, we ran:
shorebird patch android
Enter fullscreen mode Exit fullscreen mode

or

shorebird patch ios
Enter fullscreen mode Exit fullscreen mode

depending on the platform. This command uploads the changes to Shorebird’s servers.

  • Applying the Update: When users restart the app, it checks for updates. If an update is available, it downloads and applies it seamlessly, without requiring any action from the user.

This process allowed us to deploy updates rapidly, enhancing our responsiveness to user feedback and market demands.

Real-World Impact: Benefits of Shorebird for Rokomari

Integrating Shorebird into the Rokomari app brought several tangible benefits:

  • Instant Bug Fixes: We could address critical issues immediately, improving user satisfaction and reducing downtime.
  • Efficient A/B Testing: We’re now able to deploy different versions of the app to specific user segments, allowing us to test new features and gather valuable feedback.
  • Smooth Rollbacks: If an update doesn’t work as expected, we can roll it back without waiting on a new app submission and approval. This has been a game-changer in maintaining app stability.
  • Consistency Across Platforms: Shorebird’s seamless update process works for both Android and iOS (beta), ensuring all users enjoy a consistent experience.

Challenges and Considerations

While Shorebird Code Push is a powerful tool, there are a few limitations and considerations:

  • Native Code: Shorebird currently only supports changes in Dart code. Updates involving Java/Kotlin for Android or Swift/Objective-C for iOS still require a traditional update process.
  • Internet Dependency: To check and apply updates, the app needs internet access. If the device is offline, updates are delayed until the app is restarted with connectivity.
  • Compliance with App Store Policies: Both Apple and Google have specific guidelines on over-the-air updates. While Shorebird adheres to these guidelines, it’s essential to review the latest policies to stay compliant and avoid potential app removals.

Final Thoughts

Shorebird Code Push has truly revolutionized how we manage our mobile app updates at Rokomari. It empowers us to be more agile, delivering timely bug fixes, conducting A/B testing, and rolling out feature enhancements — all without the delays of traditional app store updates. For any Flutter developer looking to speed up their release cycles and enhance user experience, Shorebird Code Push is a tool worth exploring.

Try it out and experience the future of mobile app updates!

Top comments (0)