Can you convert MEAN applications with a compiler to App store? - node.js

As we all know you can use compilers as Cordova to convert web applications so you can upload your application to the app store.
This can easily be done when developing with HTML5 and Node.
But is it possible to convert a MEAN application (MongoDB, Express, Angular and Node)?

You can run nodejs server on mobile with jxcore, but I think you should run only client side part on cordova and api shall stay on server. Ideally, I think that api and client side must be separate projects.

No, you can't.
MEAN stack is full stack. You can make your frontend an app with cordova but you still need database and backend service.
But that's ok. Make your app mobile friendly and stick with your server to provide the data you need to make it work.

What you can do, it's to create hosted web app. This is existing web application, just wrapped to make it possible to submit to app store.
For this you can use Manfoldjs, for example Using Cordova Plugins in Hosted Web Apps or if you use Visual Studio, you can use Visual Studio Tools
for Apache Cordova.

Related

how to deploy an ionic-react app to mobile if I'm using node js server in the backend?

I discovered ionic this week and I'm really considering using it at work.
Basically, my goal is to build an app that will work on android and Ios, where the needed functionality is to connect to the cloud over web socket and pull data from the cloud and show it on my phone. Maybe later I'll eventually need to consider using login but not for now at least.
Normally, if I'm building a web app. I ll use nodejs to pull the data from the cloud and expose it to the frontend. I ll write all code together and I ll host my app in Heroku or something where the entry point is my nodejs server right? So that my server needs to start and it will take care of the rest.
This is a bit confusing in ionic since I need to start the app with ionic serve, but somehow I also need to start my nodejs server too right? So I assume I can't write the server-side code inside the ionic app or am I wrong?
There is not much about this on the internet but I did some research and I guess that I should deploy (host) my nodejs server in the cloud (maybe using Heroku) and then connect to the server from my mobile app over the socket. Is this the right/only way to do this? are there any security issues with this method?
I find ionic great but I'm not sure if I should use it at work. Sincerely, this use case of using a backend server with ionic made me confused.
Ionic looks ideal for building cross-platform apps that does not need server-side scripting, but how complex can it be if I want to integrate some server-side code in my app? especially as I said I'm going to use some login forms in the future to extend the functionality of my app.
PS: I'm using ionic 6.10.1 and specifically I'm interested in using ionic with react not with angular.
After some search, I discovered that it isn't possible to deploy the frontend and backend code together. Therefore the trick is to deploy the nodejs server separate from the frontend.
Precisely, if it is a web app, then you should deploy the nodejs server in a separate host from the frontend. Then by starting the frontend app, you can communicate with the running nodejs server via socket or REST API.
Hope this helps someone in the future :)

Can Node.JS integrate inside Flutter mobile application?

I created a mobile application with flutter in front end and back end with node.js but I want it to use node js in offline mode in another meaning I want host this node inside the mobile. can I?
No.
First, you'd need NodeJS itself built for you mobile platform. Only then can you even consider running the node application you've written.
Flutter is Dart and NodeJS is well, JS. You can't put them together. But if you are building a node app that builds into a static js and html, may be you can put it in a webview, which does not seem to be the case here.
You are asking to run server side code on the client itself and offline too. If the application can really be offline, I think you're better off without a backend and store everything static within the flutter app itself.

Running related apps in different servers

I have NodeJS server for my iPhone and Android apps and I want to build an admin panel as desktop application using Electron.
From my research, I found out that Electron depends on its own version of node and it can't run on other server instance.
My questions are:
1) is it advisable to implement the admin panel using Electron knowing that it depends on its own version of NodeJS?
2) is there away to integrate my current NodeJS server for mobile apps to my Electron? because using two different servers will be costly when it comes to hosting them
3) what are other alternatives that enable me to implement cross-platform desktop application using my current mobile apps server?
NOTE: The admin panel server functionality are completely different from mobile apps.
1) is it advisable to implement the admin panel using Electron knowing that it depends on its own version of NodeJS?
Yes, that is perfectly fine. You can access your current node server directly from your electron app, or create a new node server that electron will access.
2) is there away to integrate my current NodeJS server for mobile apps to my Electron? because using two different servers will be costly when it comes to hosting them
You can run multiple nodejs servers on one machine (just use different ports when starting the servers). This is one easy way to get around this issue, or you can just have a group of /admin endpoints that handle all admin related functionality. Think of electron has a front-end that can be distributed across various platforms and access any back-end you choose.
3) what are other alternatives that enable me to implement cross-platform desktop application using my current mobile apps server?
Electron / nwjs (node-webkit) are the only two that come to mind. Although there are probably others.
More Electron/nwjs details:
Just think of these as browsers that allow you to write nodejs. Therefore, within the browser you can access databases you ship with your app, or anything on the users file system. You can also make requests from your app to already created nodejs servers. Also, they allow you to easily package up your app for cross-platform distribution.

Integrate Node with Phonegap app

I want to develop an hybrid cross platform app that creates a socket connection to given Ip.
I have achieved it using webTCP module in node.js by running node from cmd to start the server.
Now I want to pack this in to an app using Phonegap. But my question is how do I run node(to start server) in mobile through the app created using phonegap.
Do we need to install node in mobile. If so how can I do that?
Thanx in advance.
nodejs isn't done (yet) to run on Android. NodeJs is a server thing so it should run on your server to run tour backend.
In order to do what you want to do you will have to redesign your architecture.
Indeed, Cordova/PhoneGap is a little server (actually it's is a WebView but you can approximate it to a static content delevery server). So you will have to made your cordova app talk to your node-server.
1. CORS
Cordova-app <- INTERNET -> Node-server
The first thing to do is to enable CORS, for nodejs and whitelist the adress of your node-server in cordova
2. let's talk
Now you can start talking to your server with your cordova app, there is many ways to do that :
xhr/Ajax request
Pur WebSocket (you will need to enable JAVA-WebSocket)
Socketio
3. being more powerful
You will need more powerful feature between your app and your server side. In order to do that, you could need some WebApp framework. Indeed, they automate for you the connection between the server and your application and offer you a cool and easy environment to do great apps. If you want to know more about it, you could look at
BackBone
Marionette
AngularJs
Hope that help.

Is using node.js is suitable for web GUI app and using same source for desktop app?

Im thinking about using node.js for web application , that is something like tomcat with servlents or Apache and php.
my questions are basic but fundamental:
1. can i use node.js as web server? using jquery and all the server side stuff?
2. i want to let the users to be able to use the application in offline mode , and let
the user to download the web app as desktop app .
can node.js be good for this job ?
Node.js is a platform for creating server-side and networking applications. You can use its HTTP and Socket support to create a web server.
And yes, you can use client side libraries and frameworks like jQuery, Angular.js, Ember.js, etc etc. by using a Node.js REST API as backend (as a possible solution).
You can make desktop applications using:
Node-QT bindings
Appjs

Resources