Limitations with socket.io? - mobile

I am planning to use socket.io inside a hybrid mobile application packaged for a mobile device. Are there any limitations that I might encounter with browser adoption or anything of that sort? Will this sort of a set up work with all mobile devices when packaged and distributed?
Updated details
I am going to use it to write a chat application. If I do a basic chat application using socket.io and then package it using PhoneGap or Cordova/Ionic, would there be any issues with compatibility or can I expect all the features to work seamlessly?

Related

Responsive website into app or Hybrid mobile app?

So after too many searches I decided to ask this question.
First of all I'm building a mobile app using angularjs in my website (Online) not localhost. The app is a kind of a CRM based (CRUD mostly).
I have the cordova mobile application ready. I have a few questions here.
Is it acceptable, if I use the website URL directly in the inappbrowser URL (Like an iframe)?
Or. Should I need to put the angularjs files inside the www directory of the cordova app and access the server functions via API?
Which way is preferable? Why?
Will there be any performance differences?
If the No.1 is not a best practice, what is the major drawback on using the inappbrowser?
You can build Hosted Web App in an Apache Cordova:
For this scenario, you use a thin Cordova client (think of it as a web
browser embedded in a native app) that automatically redirects to your
Web site.
See also: Wrapping an existing web application in Cordova.
Other option: PWA.
From Wiki:
Progressive web applications (PWAs) are web applications that load
like regular web pages or websites but can offer the user
functionality such as working offline, push notifications, and device
hardware access traditionally available only to native applications.
PWAs combine the flexibility of the web with the experience of a
native application.

use existing spring, spring security, JPA backend in mobile application

I have one project (Web) in which I am using
HTML,JSTL,JS .., JAVA, spring MVC, spring security, JPA and mySQL
Everything is working fine in this project.
Now my client is asking to create a mobile application (Android and IOS) for this project.
My question is:
What approach I should choose to use the same back end in my mobile application with minimal changes.
I do not want to write all the stuff again for back end.
Can some one share any example as well. (may be a small demo or so).
Its better you take advantage of web services here. RESTful webservices come with many handy features to address this issue saving us from re-writing the whole code for mobile applications.
We work for an eCommerce client, our mobile apps access the back end through apis which is primarily written in Oracle ATG Commerce. By this approach back end is completely decoupled from front end and this facilitates the view technology (web or mobile) to be independent. Our APIs are hosted on cloud container APIGEE. Soon, we are planning to dump the old jsp views in favor of Mustache templates to support responsive websites(unique view across all the devices).
Refer this page Restful API for Mobility Solutions. It might give you a peripheral idea.

web apps vs mobile apps

Is there a significant advantage of creating a mobile app as opposed to a web application?
I pose this question from the following perspective, which is biased towards my lack of knowledge of the mobile phone architecture.
You can build a web application with pure javascript, css, and html.
You don't have to write different code for iOS, Android, etc.
The user simply goes to a url, and that's your app, served right there from the server.
I would like someone to highlight some of the advantages of writing specific code for a mobile web application.
What does a mobile app fundamentally have a significant advantage over a web application?
Mobile apps have some advantages:
Assets are packaged on the phone - you only need to load data from
the server, not your layout.
Users are familiar with the conventions of their chosen mobile OS,
which your app will follow.
Trends show users are spending more time in Apps than web on mobile
Can work offline (even if limited)
Mobile apps have access to native features like push notifications,
GPS, Camera, etc
There are also hybrid apps - which are web apps running in a native container. You may have heard of Cordova, which is a platform for acheiving this. You basically create your app as a web app, and it runs inside a native WebView - with this you can use a javascript API to access some native features, but you don't get many of the other benefits of a native app.
Easy to use
Use native mobile design
Don't take long time to load just load data and images but web load (data/images/css/js)
I am not very experienced with this topic, but these are some fundamentals of using mobile apps:
They are accessible offline. (but that is restrictable)
The assets of the downloaded app are stored on the phone itself, thus the main content loads much faster.
As stated before, they have access to the hardware of the device (GPS, camera, etc, sensors etc.)
You can store as much data on the device as you want (opposed to, let's say 5mb using the HTML5's Local Storage).
They have access to push notifications (such as in Android or iOS)
They can put all the powerful hardware of the phone to use.

Can I use Ionic without node.js to build a hosted web app?

I am interested in using Ionic to build a web app. The tabs, form stuff, integration with angular.js... everything looks like it should work great.
However, Ionic also looks to be geared towards creating native apps for Android and IOS. It relies on node.js for services. I'll just be hosting it on my client's shared hosting account - I won't be able to get node.js working for it. I don't intend to develop the app to use any services, so I don't think I need node.js. I'll plan to communicate with my DB via http post.
I am interested to know - is there any reason I wouldn't do this? If I am not using any other means of communicating with a server, will I be okay without node.js? Is there a better option for creating an html5 mobile 1 page web app?
I also don't intend to access the camera, accelerometer, or any of that kind of thing, so I don't think I'll need cordova, either.
ionic uses node.js only for development, things like build, test and deploy
not necessarily for back-end proposes

Native Mobile Webapp vs. Mobile Browser App from a ServerSided Point of View

Is there an important difference between native mobile apps and mobile browserbased webapps according to the connection to a server which e.g. calculate stuff and sends it back to the mobile device?
The reason i ask is that there is a wide range of mobile app frameworks for serverside like vert.x, node.js, spring and many more. Isnt it just regardless of which framework I use to build a server for communication with mobile devices, no matter if they use a native app or a browser-based app - assuming they are totally equal in user-interaction?
I know there are differences in "what kind of information" is transacted between server and client according to performance, speed, scalability. My question aims only to the differences of native and browserbased web apps.
I just read this post: Server-side architecture for mobile web applications but i guess its not satisfying my lack of knowledge because author and question-resolver both refered to UI frameworks for mobile web applications. My idea is to have one server technology which is used by a mobile browser web app and the same app as native app at the same time with the same performance results. Is that something to worry about?
greetings
You can do the client side with browser and mobile apps with the one server side stack. Choose the server side depending on your skill set or those of your partners/employees and taking account of the nature of the task including volumes.
I would go for a server side that will support restful communication as that can be used by browser or mobile apps quite easily.

Resources