What is the best / easiest way to convert a Phoenix LiveView app into an iOS and Android app?

I want to convert a Phoenix LiveView CRUD website to a CRUD mobile app. What do you think is the easiest way to do so?

1 Like

What about a PWA?

2 Likes

I love PWAs, but I mean something which can be installed from App Store and Play Store.

1 Like

I don’t think you can do that

Investigate Ionic Capacitor and Cordova in app browser. One of these may work for you. For the latter look at the following tutorial which I didn’t read myself. :slight_smile:
How to Convert Website into an App for free with Ionic 4

2 Likes

In app browser apps are highly discouraged by app store nowadays and its actually banned on iOS i think

1 Like

Thank you for pointing that out! I didn’t know that they’re banned on iOS now. In that case I won’t recommend this approach @pillaiindu. Please investigate Capacitor and see if it uses a similar but not exactly the same (in-app-browser) approach.

1 Like

Your best bet is Flutter and they already have a library to communicate with Phoenix Channels, that you could use to keep the mobile app in sync with what happens in the web live view app, like I mentioned here:

An example Flutter App for an Elixir Phoenix Channels backend on a demo I made at work:

10 Likes

I found something related to this thread.

4 Likes

Should this be added to the list of 3rd Party client libraries in the channels section of the Phoenix docs?

2 Likes
5 Likes

Do we have any source information about that? Are we talking about PWAs in general?

apps published to app stores that are just shell running web pages

We use that method in our products and have done so for a long time. I’ve also done this with clients.

I would definitely just do that. You could consider adding some sort of native navigation.

What I’ve typically done was to add a web view and listen to navigation events. When one would happen I’d just push a new web view to a navigation stack and load that new URL in that view.

You could also just reuse the same webview across. But this enables you to have native navigation (back buttons etc.)

1 Like

How would iOS distinguish these kind of shell aps with PWAs I wonder.

PWA are permissable as installabe via browser, shell apps running only webview tend to get rejected from app store submissions

1 Like

I still do not understand why PWA is not highly recommended here for a LiveView app on mobile (ie THE way to go)? It seems there has been false claim here that they are not installable from App Store and Play Store?

Example:
https://developers.google.com/codelabs/pwa-in-play

Because PWA on safari doesn’t support push notifications, which is usually reason #1 to reach for a native platform.

Good news is that its coming thiugh! Don’t remember exactly when, but sometime early 2023 I think!

2 Likes

I don’t believe it’s true that they’re banned on iOS. Would like a source on this.

We have a Turbolinks/Turbo-backed Rails app in an iOS shell, and 37Signals (who made those frameworks) are doing the same. They’re very high-profile and have had very public dust-ups with Apple, so I don’t think they’d fly under the radar.

Theoretically one could combine Turbo with LiveView but there appear to be challenges: Integrate LiveView and Turbolinks lifecycles

Like many things apple it’s not official, but there are a lot of thin webview shell apps that get rejected. I have this from people who primarily work in the app space.

I do however prefer the roulette of apple app approval over the wild west of the play store :sweat_smile:

The cool thing about getting a webview through is that you can do PWA on android and not even have to deal with app there.