Is this possible? Thin Native Shell + WebPages

I’m trying to build a mobile app that consists of a really thin app shell (just some basic navigation), but where most of the pages actually come from the webserver. The reason for this is we’d like to minimize installation impact to our customers, so the install/update from the app store should be a rare event. But, at the same time, we’d like to be able to have all the access to the native hardware that the shell would provide.

PhoneGap promoted a similar “web hybrid mobile app” strategy a while back, here:

I’ve looked on this forum for solutions and tried using deeplinks on the web side in combination with an iframe on the shell side. But, it seems iframe is not advised. The InAppBrowser doesn’t seem to allow embedding content into an existing ionic page.

I’m wondering if I’m trying to use Ionic ‘against the grain’, or if perhaps I’m missing something obvious here? Has anyone done this kind of super-thin native shell before?

For context: Today PhoneGap is a “commercial” distribution of Cordova by Adobe. Cordova is also used by Ionic in the background to build the native “containers” for the Angular web tech apps build with Ionic UI components. So Ionic is a command line tool, interface framework and code framework that pulls this all together into a usable package.

Usually Ionic apps don’t use native UI but native functionality like Geolocation, Push Notification or similar. It is possible to use native interface elements, but takes a lot more effort and is not very widespread.

This is possible, although not really the intended use case and so not very supported. Keep in mind this can be not in the interest of the App Store providers like Apple or Google. So if they think that you just “wrap” a website that could also be just opened in a browser, they sometimes remove these apps - especially Apple.

For the “keep install updates” to a minimum there exist other solutions like Ionic Deploy (which can help you update the html/js content of your App without going through the app store). You can also very easily load all the content from a JSON API for example so it is always up to date for your users.

Yes, by “access to the native hardware”, I did intend to mean access to native functionality. Thank you for the clarification.

So, would this imply, for example, that using Ionic Deploy we could push an update to the server that could include a completely new feature, inclusive a new navigation item and a series of pages to navigate to? I guess I mean to say that we’re not just concerned about updating colors and other minor bits, but feature subsets. Apologies if this is obvious, and I’ll give my disclaimer that I’m a web newbie!

Yes, as long as this feature doesn’t materially change the app functionality (Apple doesn’t like if you change the nice kids game to a 18+ dating app… [extreme case]) and it doesn’t require any changes on the native part of the app.

So if it needs a new Cordova plugin to access some native functionality or you want to change the app icon, you have to update the app via the normal channels.

(Please also note that every user that installs the app via the App Store first has to update his app via Ionic Deploy (which can be implemented transparently in the background) before they have the most current version as the app is always delivered with the “submitted” (to the App Store) version.)

But additional pages, content fixes, anything that is just HTML, JS and CSS can be deployed via Ionic Deploy.

1 Like