iOS native app upgrade to hybrid app - javascript

I have a native app version 1.0 in iOS and now the client wants the next version to be a hybrid app using html5 and javascript. If i build the hybrid app, can the native app users upgrade to the hybrid app? Will there be any difficulties, issues in doing so? Im using corodova for building the hybrid app.

There’s two things: the app itself, and data.
There won’t be any problems upgrading the app itself: users just get a new version from the app store, and that’s it. The old code is removed, new code is installed, and users can run it just fine.
The data is another matter. If you have any data stored on the device by the native app, the hybrid app likely won’t be able to access it out of the box, unless you code some sort of migration. So just think about how this will work. If your data happens to live in the cloud, you can just re-download everything. If you store the access credentials in Keychain and the app ID doesn’t change, it’s likely that the new hybrid app can use the same credentials that the old app stored.
So, in summary, upgrading the app executable won’t have any problems, but you have to think about data.

Related

How to publish React JS PWA in Amazon app store?

I am creating a React JS PWA web app, so that the users can install it on their mobile devices. Now the client ask to find out a way to push these PWA apps to amazon app store. So my query is whether we have tools for converting the Progressive Web Apps as APK or HTML5 Web app files so that we can put them to amazon app store.
I googled a bit and I am confused, but I am not sure which one is the right one to use and whether we can publish a PWA app to the amazon app store
Any help on this will be very grateful.
Thanks.
PWA needs a browser to be executed. So if you want yo package your pwa as apk(android) you will need to implement a kind of mini-browser with pure android.
Fortunately, this task is very common and there are even online services to do that:
https://appmaker.xyz/pwa-to-apk/
https://pwatoapp.com/
Or if you know java:
https://github.com/xtools-at/Android-PWA-Wrapper
Or c++
https://github.com/RikudouSage/PwaToTwa
Or nodejs
https://github.com/pwa-builder/CloudAPK
You can use the Amazon Web App Tester to verify how your Web app behaves when Published to the Amazon App Store: https://developer.amazon.com/docs/fire-tablets/webapp-app-tester.html
If it performs correctly in the tester, you can then publish the URL directly or upload your files. The full process is described here: https://developer.amazon.com/docs/app-submission/publish-app-webapp-files.html

How do you push Application updates on an installed PWA application?

My question is, Is it possible for the Users to acquire these changes without having to REINSTALL the PWA application?
I have a PWA application deployed in Production. The client already installed the deployed PWA application in their MOBILE devices and I want to DEPLOY another patch of updates in the PWA application in the HTTP server.
Another simple way to update application is using workbox-window. You can detect updates in PWA and restart your application to get the last updates. For more detail, I suggest you read this link
I would suggest to read this link explaining in detail how the SW Updates work.
Long story short, if you deploy a new app version, the new SW will be installed on the client's side (using a separate/dedicated install event) and then activated when the users navigates to an URL different from the PWA one.
There is also a built in service workers feature called "fail safe". Within at most 24H the SW checks if a newer version is available and, if so, attempts to update to it.
I wrote a PWA series and here a post about Service Workers and caching strategies if you want to read more.

React Native JS concern

I am new to react-native world. Following few tutorials, I found that it react-native app runs on javascript engine on mobile. I am following ios tutorial. So when I go to localhost:8081/index.ios.bundle it loads JS for the app. I know I can use ngrok to manipulate this URL.
I have multiple concerns with this:-
If I change the URL of js from something local to something remote, this would result in a completely new app and now I don't need to go through the App Store to upgrade my app version. Can this be a potential issue in the future?
Since anybody can open this JS in a browser which might have important information like client id and secret for the app, can this be an issue as well?
I am not 100% sure. You can indeed update hybrid app easier and if it is only a quick fix you don't need to go through apple store verification process. Apple can also delete your app and ban you if you don't follow guidelines. Usually your js is local in production for instant app start time, and the network is used only for fresh data.
This is solved with an authentication mechanism.

Database for 2 android apps (one Java, the other Javascript)

I'm currently developing an app (via Intel XDK) that reads a .csv file that was created by another app (via Android Studio). The Android Studio app is mainly for capturing sensor data, whereas the Intel XDK app should display the data fancily. Since saving everything as .csv and reading it all later on is incredibly naive performance and storage-wise, I was thinking about creating a database that manages the data. Now, setting up a database for each app seems easy enough, and there are also solutions for two Android Studio apps. But how can I create and manage a database that can be used by an Android Studio as well as by an Intel XDK app?
OK, I think you want to have your Native Android Database to be accessible from another Application so your solution will be ContentProviders.
You should build a ContentProvider layer above your SQLite database in the native android application then you can easily contact the ContentProvider from any other application included PhoneGap or any cross platform one.
To learn more about ContentProviders in android check that.
To learn how to expose or use ContentProvider from CrossPlatform phonegapp applications check that.
You can use the Content Provider mechanism of Android, as described in http://developer.android.com/guide/topics/providers/content-providers.html.
You decide on one of the two apps to actually manage the database and play the role of content provider to the other. The other accesses the data via the interface provided by the content provider.
This works if both apps are on the same device. For cross-device synchronization of data look at Couchbase Lite, a database that offers this feature out-of-the-box.

Meteor.js deploy for web and mobile native app, one code-base

So this maybe a silly question, but i guess I'm missing something.
I host my meteor app in modulus.com.
The goal is to have a single code-base for all devices and the web, fetching from the same database.
So everything happens in the web is immediately synced with the mobile app or vice versa.
Should i provide different builds (different modulus projects [web, ios, android]) all connected to the same db to make it all work as one application?
A single build will do?
How will this work?
thanks
Yes, you can use the --server option to specify which Meteor server your built mobile app should point to. This way, you have one Meteor backend running the web app, Android app, and iOS app. This should work just fine with Modulus.

Categories

Resources