Node.js app into an iOS app? - javascript

I have a Node.Js app running on a publicly accessible server.
I want to make it possible for users to access it as a native iOS app.
Is there a simple way of simply making an iOS app and having it show my Node.Js app running from the server? Or it's more complicated than that?
I looked into PhoneGap but maybe some other recommendations also?
Thanks!
PS I know the question is broad but that's why I'm asking – to focus my question and to know what to do next.

Node.js - this is a server side application. So you need to build client application which can communicate with your node.js server by Rest api or so...
As you mentioned you can build hybrid html5/js app with PhoneGap, Cordova, Ionic "wrappers/libraries" which will pack it into native iOS/Android/... application and that app can talk to your node.js server and transfer data you need.
Also, as Daniel Larsson mentioned for some specific pages you can use webview to display page straight from the web, but webview can be a part of your application but not an entire application, because Apple will reject it during review process.

If you want to port your existing web-app over to being a native app on the app store, I can positively recommend PhoneGap having developed multiple apps with it after completing the same research you are doing now.
As NYS said, you'll need to package all your web-app design (HTML/CSS+images/JS) inside the PhoneGap app, any other way simply wouldn't be responsive enough.
As for what to do next, I would dive straight into creating a PhoneGap application and see how your app runs inside the Cordova wrapper out of the box. The issues I faced were with scrolling on divs holding content, and non-responsive click events, both were easily solved with javascript libraries.
Cheers Chris!

You may use Socket.io for native option.
http://socket.io/blog/socket-io-on-ios/
https://github.com/socketio/socket.io-client-swift/
https://github.com/pkyeck/socket.IO-objc/
https://github.com/square/SocketRocket/

Related

Is there a way to remotely test react native?

I'm thinking to pass to a web app IDE like cloud9 to host my apps currently in development.
The problem with this is that i don't know how to test my code in the way I normally do with a simulator, locally.
I'm trying to develop on a remote server, and building on that remote server, an i want to test the app with my real device, with live reloading absolutely. If it's not possible to use my real device i could use an emulator and it's ok, but I'd prefer to use my phone.
I see you are using metro-bundler, you can achieve this by using the Tunnel option in connection:
This will create a global link to communicate with any of your devices. Then you can easily use the QR code or just the generated link in your own mobile device using expo app.
Now you can debug and test with your actual physical phone or emulator without publish it.

How to print from React Web App without using middle app installed on device

We are developing a PWA cross platform web app using Reactjs and we need to print directly through that.
As far as we have considered, a solution to handle printing on each platform like Android, is to write a native app and send the print request to it and do printing through that middle App.
I wonder is there any better solution to allow us to do the print from within the PWA app without any need to have a middle native app?
I searched a lot and there is similar questions with no answers.
Thanks in advance

android app with apache cordova

I'm developing a web app using HTML5,CSS3 and JavaScript.
Then I want to use the Apache ordova platform to generate a native android app from my web app but I still don't understand what do I need for this,specially do I need a server-side development with php for example??
First off i suggest you read this
Pretty much your app will be able to accomplish a little bit more than what you would be able to do in a browser if all you had available was the ability to write html/js*.
*by this i mean that you have access to device-specific hardware which is not available in a browser and a few more things but pretty much that's it.
You will need to install node.js (or io.js), then install cordova through npm, and make sure you have the Android SDK installed. Once you create your project, your html/css/js will be wrapped into a native webview component, you do not need any server to render it, effectively your app is a native app that can be installed from google play.
You will need a server, typically a RESTful API, if your app needs to query data remotely or persist to some third party. If you are thinking through a classic MVC mindset (render a page through some php code) then you probably need to read about cordova and how it works. A cordova app is a client-side only app, no server-side processing is possible unless through a network communication to a server you have access to on the internet. You can do persistence locally (to the android device) and even use a local database, but remember that this db exists on the device, so you won't be able to share information between users unless you somehow coordinate that through your app (and most likely a server-side app / rest api).
It is unlikely that your existing web app can be wrapped into a cordova app straight away, cordova apps are single page apps mostly.

communication between web app and native android app

I have two different apps, one is a native android app and other is a web app built using sencha and javascript.
I need to get some information from the web app to my native app.
Any idea how this communication can be done ? I am not using any webview since both are two different apps.
Please let me know. I even tried cookies, local storage etc.. But seems to be the native android app cannot access the browser cookies or local storage..
Please help.
You can try the following:
Run an httpd at your app. If you use cordova, you can take a look at org.chromium.socket plugin. There is an example of how to set up a local http server:
https://github.com/MobileChromeApps/mobile-chrome-app-samples/blob/master/webServer/server.js
At your webapp you issue AJAX calls (replacing html with JSON would fit very well) to localhost, where your app is running at the background. Your app will respond the requests, using JSON for instance.
In the other way around, your app can make AJAX calls to the server, that can update your html/js app using websockets.
If you are not using cordova, it is even easier to build an httpd in Java:) just google around.

HTML5 Application (server or client side) using phonegap

I need to develop an HTML5 mobile business application using PhoneGap. After finishing my application I want to make it a native app.
Can anyone tell me What is the best way to do it
Develop an application using HTML5 and Javascript, call web services from Javascript and embed it in a native app using PhoneGap
Develop an application using HTML5, Javascript and PHP. (server side). use PHP to call web services. use PhoneGap to call server urls.
1st one seems more native and fast. 2nd one seems more flexible and secure, but I need an additional server for that.
so what is the best solution?
Although I agree this is too wide a question, I would go with #1 because certainly in the case of Apple and iOS I am pretty sure you would not be able to get an app past Apple's gatekeepers if it loaded remote code (Javascript, etc).
Calling out to a web service for remote data via AJAX, etc is fine however.

Categories