Dev
Announcing Hotwire Native

Announcing Hotwire Native

The web-first framework for building native mobile apps.

As Rails World 2024 is about to begin, we have an exciting Hotwire announcement! We’re launching a brand new, yet familiar, framework for building hybrid mobile apps.

Hotwire Native apps

Background

But first, let me provide some context. Last year, shortly before Rails World 2023, we open sourced Strada, which allows you to build high fidelity native features in your hybrid Turbo Native apps. The launch was met with a lot of excitement and development. However, there was a consistent piece of feedback that we heard: the relationship between the Hotwire umbrella of libraries, Turbo + Stimulus + Strada, was quite confusing.

Strada is meant to leverage Turbo Native apps, yet the documentation and marketing for Turbo Native apps has been nearly non-existent. Further, integrating Strada into your Turbo Native apps requires effort that shouldn’t be necessary.


Hotwire Native

As we thought about it more, we saw an opportunity to make the relationship between the libraries much more clear. It made sense to consolidate the Turbo Native and Strada libraries under one roof, which would also allow us to more easily build new layers of out-of-the-box features for developers.

We’ve been working this year to make the idea a reality and the result is Hotwire Native! It’s the best way to build native apps for iOS and Android while leveraging your existing Hotwire web apps.

Hotwire Native is the consolidation of the Turbo Native and Strada libraries into a single framework for iOS and Android. Going forward, the Hotwire umbrella of libraries now includes: Turbo + Stimulus + Native.

A Hotwire Native app lets you take a unique web-first approach towards development with smaller teams:

  • Leverage your web screens from your existing web app.
  • Build Bridge Components (formerly Strada components) to add high fidelity features in your web screens.
  • Build fully native screens for the most important areas of your app that require the highest fidelity.

Hotwire Native’s web-first approach means upgrading to native isn’t an all-or-nothing decision. You are free to choose specific screens or even specific components to write natively in Swift or Kotlin when you’re ready. It truly is progressive enhancement.


The Improvements

We didn’t simply consolidate the Turbo Native and Strada libraries and call it a day. We’ve made substantial improvements in key areas such as:

  • Building a new iOS or Android app requires just a few lines of code to get started.
  • A whole new set of configuration options to make it easier than ever to customize your native app.
  • A brand new navigation layer that handles all the complex navigation stack situations that you may run into.
  • More comprehensive Path Configuration rules that are consistent across iOS and Android.
  • Bridge Components (formerly Strada components) work out-of-the-box without additional integration required.
  • It’s easier than ever to replace web screens with native screens and route to them via URLs.

There’s plenty of other improvements throughout the iOS and Android libraries. We have thorough documentation and examples that you can see at native.hotwired.dev.


A Big Thank You

We couldn’t have done all this work without the incredible help from Joe Masilotti. Joe has been an amazing advocate and educator for building Turbo Native apps for many years and he helped the 37signals team put together all the great resources available for this launch.

And maybe most significantly, he made a big effort bringing his powerful TurboNavigator library directly into the new Hotwire Native iOS library. It’s the foundation of the new built-in navigation in the iOS library and it brings navigation parity to the Hotwire Native Android library.

Joe is rather famously known as the “Turbo Native guy” and now that Hotwire Native is public, he may want to consider a name change!


Deprecations

In light of the new Hotwire Native libraries, in the near future we’ll be deprecating the existing Turbo Native and Strada libraries for iOS and Android. The code in those original libraries serves as the new foundation for Hotwire Native and we’ll be focused on Hotwire Native development going forward. You can start transitioning over to the new libraries whenever you’re ready and start taking advantage of all the new out-of-the-box capabilities.


Check it Out

Take a look at all the resources available on native.hotwired.dev and we’re excited to see the new apps you build! We’re looking forward to your feedback and contributions!