Building Cross-Platform Apps has Gotten Easier. Jumpstart is One Reason Why

alt text Photo by Tyler Lastovich on Unsplash

I get asked about mobile apps a lot.

My clients, who are not tech people, believe apps are pretty different to websites even though both can involve the same amount of work. They ask if their web app can also be an app.

To satisfy this requirement in the past, I turned to React Native. React Native helps and is simple to get started. However, you end up duplicating a lot of work, an API is needed, and the result does not feel like an iPhone app. Plus, the JavaScript tooling ecosystem is a special kind of hell that I don’t enjoy.

I know my feelings are subjective, but I don’t love building things with JavaScript. I’m not alone as there is a whole cult of people actively making tools to help avoid JavaScript altogether. Building for mobile involves more constraints than building for the web. Apple and Google want you to use their environments even though you can use a cross-platform framework.

Out of all the different options for building cross-platform mobile apps such as React Native and Xamarian, Flutter appealed the most except for one issue; Google. I’ve been bitten by Google shutting down a project on more than one occasion, so the risk of spending six months learning Flutter only for Google to abandon the project on a whim in a few years seemed too risky for my business.

When Basecamp announced the release of Turbo, I made a bet and started learning about Swift and Swiftui. I’m confident Apple will continue its development, plus I enjoy SwiftUi. Even though Turbo may fall by the wayside, I don’t think SwiftUi will. I also felt it was the best compliment to my existing Rails skillset.

After completing Hacking with SwiftUi by Paul Hudson, I feel like I have a basic handle on building iPhone apps. With each passing day, I get more familiar with Xcode, Swift and the Apple way, as well as the brilliant yet small Swift community.

Turbo promised to make turning your Rails app into an iPhone app simple. It does this by wrapping a Turbo-enabled web app in native navigation. Like hybrid apps but with one significant difference, it’s easy to take advantage of native features or delegate to native entirely.

However, you still have some complex gaps to fill in yourself.

  • Native Authentication, i.e. allow users to log in to your app and store the cookie in the Apple keychain
  • Push Notifications - send notifications from your app to the native notifications

I started down this road and fiddled away on my own for a few weeks in the evenings, but then I got an email from Chris Oliver of GoRails wondering if I want to be an early user of the new Jumpstart iOS template.

The answer was yes. 

After playing around with it for a few days, it’s hard not to get excited. Jumpstart iOS will enable tons of entrepreneurs to build cross-platform apps in a matter of weeks, if not days. You can have a Rails app up and running with an iPhone app ready to go in no time at all.

Aside from wrapping your Rails app in a native view, it’s possible to go even further. Here are some things I have managed:

I’m still building the iOS app for Koach, but my other projects wouldn’t need as much custom work for iOS. If you’re wondering whether you should purchase the Jumpstart iOS template, here’s some considerations:

  • Your web app needs to be Turbo enabled(it does not have to be a Rails app but needs to use Turbo)
  • Knowledge of Swift is helpful, but I think many developers could pick up enough to work through specific problems. The SwiftUI community is quite good and Apple have some amazing videos.
  • Your web app should be mobile friendly by design to accommodate iOS apps. Luckily most new applications are, but I do come across some that are not.
  • For non-Jumpstart rails web app apps, you will have to do a bit of configuration, but it’s nothing too demanding (instructions are sent after that you sign up). Essentially, you have to configure a JSON endpoint and look out for iPhone request variants in your requests.

Jumpstart does not endorse me, but I hope by writing this, I encourage people to sign up. The reason is simple. I want Turbo iOS(and Turbo Android) to succeed, and the only way that happens is if more people use it. Jumpstart iOS does what it says on the tin. It “jump starts” your iOS app and gets you past the nitty-gritty and straight into building your app. It saves you a ton of time and energy letting you just build your business.

This is a game changer for small businesses. The promise of React Native is that you could build cross-platform apps by writing once but run everywhere. Turbo takes a step further by writing HTML once and running everywhere, foregoing the whole JavaScript pipeline.

A world of high-quality hybrid apps awaits us. It should not be in the hands of Facebook with React Native or Google and Flutter but be in the hands of the millions of smaller businesses out there.

There are already some entrepreneurs using Jumpstart iOS already. Why not join them?

Learn to Build Android, iOS and Rails Apps using Hotwire

© 2024 William Kennedy, Inc. All rights reserved.