What are the differences between a PWA and a hybrid app? This question was asked before but I haven't found found a proper answer to my question.
I know a PWA runs in the browser and you get a hybrid app from an app store.
But both are using JavaScript with HTML and CSS and both enable offline support and I can access native features like camera and local storage.
Once I have added a PWA to my Homescreen, it uses a web view to render the app right? And a hybrid app uses a web view as well, so what exactly are the differences between PWA and a hybrid app?
With Ionic I can even use the exact same code for a pwa and a hybrid app...
Roughly it is like this below:
web app (PWA) is just a web-site that declares certain capabilities using manifest file etc which can get it some special treatments (like leverage service worker, sign up for web notifications, go full screen etc IF target browser supports it). As a web-app it is super limited in its "privileges" on a system level (like persistence quota etc)
hybrid app (like Cordova for example) is a binary code that is "wrapping" your web-code and exposes certain "native" SDK capabilities via plugins. You can potentially also write your own plugin and in theory access any native SDK API this way. But since your main app code is still a web-app that runs inside of a webview it still has a lot of penalties like performance etc. But at least you can get things like storage etc.
native app is a binary build using target platform's SDK. That in
theory gives you max access to capabilities and performance at
expense of having to write separate code for each platform.
Makes sense?
Progressive Apps
Today, these apps only work on Opera, Chrome, and the Samsung mobile browser. However, these browsers take up only less than half of the mobile browser market.
In some devices, some of the features will not work. For instance, notifications on iOS devices will not work.
In some apps, cameras, fingerprint scanner, and GPS may not work or work with glitches.
Cordova/ Ionic based hybrid apps
Making the hybrid apps run efficiently on multiple platforms is no easy task. In some instances, it could cost almost the same as running native apps. The cost will depend on how close you want to get to the native app experience.
Since these apps will launch using a browser-like component, they are only as good as the component on which they run. Earlier, Google and Apple did not agree on the WebView. While it has vastly been improved, it does not have the same efficiency as running a native app.
Related
I've developed a web app that needs to work on mobile devices offline. I've looked into progressive web apps and I'm pretty excited by the trend. Sadly, Apple still doesn't have working support, but it looks like that's changing https://cloudfour.com/thinks/apple-starts-work-on-progressive-web-apps/
Even though Apple devices don't support PWAs as Android does, it seems like certain features are already supported such as offline storage via IndexedDB(?). Does anyone know if I can currently use IndexedDB via PouchDB (for instance) to save/retrieve data? A link to a web app with this capability would be very helpful.
All I need to do for my app to function is to be able to open pdf's located on the local file system and update/retrieve data from a browser based db. Hopefully this is possible.
I don't know what a progressive web app is, yet you can definitly use PouchDB on apple devices.
The pouch docs (dating back to 2015) still say that there's no support for IndexedDB on iOS Safari as the implementation is too buggy. Back then you could use PouchDB via WebSQL on iOS.
Recent versions of iOS and Safari do support IndexedDB, see the caniuse on IndexedDB. So you should also be able to use PouchDB via IndexedDB.
For 'check-in' purposes, my staffs have a mobile device (ios and android) that opens my web app through a browser. They then open a page and it allows them to scan a customer's qr code to check them in. I would like it to have as little user interaction as possible. All they staff needs to do is to keep the webapp open, and scan the qr code. The web app will then call an api on my server which check this customer in. So accessing the camera's view is best, i can then run a qr code scanner.
I've been able to do it for android (using getUserMedia) but it doesnt work for ios. (duhhh)
I'm currently using Vue.js(V1), and would like to keep it as it is.
Hybrid Apps: I've looked at OnsenUI(which seems to only work with vue2), Ionic(which doesnt allow me to build/run ios platform as i am using windows).
webapp is coded with vue.js(v1), running on a tomcat7 server, HTML, JS.
Are there any suggestions?
I've found a way to use Phonegap to allow this.
Edit: Phonegap allows you to create a hybrid app that seems like a native app(ios or android). All i did was install phonegap and used one of their plugins (barcodescanner). This is the refrence i used.
But, from my understanding, You'll need to publish the app on the app store, which is a lot of hassle (and cost money).
I used to be a Web Developer and I'm not experienced at developing iOS Apps.
I've just found out that I can make the whole App a Mobile Website. So my question is if Apple accept these kind of Apps, where the whole content is a normal mobile friendly Website. As Apple can't control the content displayed in such an App.
There are three ways you can leverage your expertise as a web developer to develop iOS apps:
Use SFWebView or WKWebView and use it to present HTML (either stored or retrieved remotely) to the user. In this case your app would have to go through AppStore review. There's plenty of apps like these, so I would assume it would not be a huge issue.
Use a framework like React Native that compiles Javascript dialects into native UIKit. Again, the app would be up for review in the AppStore. It would feel more iOS-like to the users.
Develop a bona-fide web app that looks great on any phone and you skip the AppStore part.
I'm working as a web developer too and we did a few iOS apps for our clients. Basically 90% or more where pure web view and so far we didn't had problems getting through with them.
I am a web developer who needs to build an HTML5 mobile app - which we will need to try and submit to app stores, including Apple's App store. Therefore, I need to somehow wrap my app into a native framework.
That being said, I don't have time to learn the nitty gritty of Objective-C and figure it all out.
I am trying to decide between using a service like PhoneGap, or simply creating a smaller native app with a webview that pulls up my mobile app from my site's server.
In this case, the only native hardware that my app needs to be in touch with are push notifications (probably through Urban Airship) and Geolocation (which can be accomplished via HTML5).
When is it wise to go with something like PhoneGap vs. simply creating a UIWebView, and vice versa? Which would you suggest in this case?
Apple is loyal enough to PhoneGap apps - almost no problems with approval on iStore. You should just follow Apple Human Guidelines and everything should be OK.
PhoneGap provides lot's of different and interesting features. Also it's cross-platform - works great on iOS, Android, WP7 etc. I think it's the best way to wrap your HTML5 and JS.
Talking about pushes - if you select phonegap, i recommend to look at pushwoosh service.
I am new to PhoneGap I want to know whether PhoneGap is only for Native Applications or for remote web app HTML pages too. Please any one answer me.
Thank you Lakshmi
Phonegap! enables software programmers to build applications for mobile devices using JavaScript, HTML5 and CSS3, instead of lower-level languages such as Objective-C/core-java. The resulting applications are hybrid, meaning that they are neither truly native (all layout rendering is done via the webview instead of the platform's native UI framework) nor purely web based (they are not just web apps but packed for appstore distribution, and have access to part of the device application programming interface). You can try Sencha, Ext-JS HTML5! frameworks to create remote web app HTML pages.
Phonegap! enables a web developer access to mobile devices's phonebook, Geolocation, compass, accelerometer,etc.(A browser is not exposed to these APIs')
Appcelerator Titanium! is another platform for developing mobile, tablet and desktop applications using web technologies.
PhoneGap can be used on webapps too, if loaded through PhoneGap. It won't work in mobile safari directly, you must also open the site via PhoneGap (the app on iDevices)
The power of Phonegap is that you can build apps with web technologies and then package them to install as native apps from the app stores. To the user there is no differentiation between a pure native app and a phonegap app. The average user just sees an "app" that they are used to. If you're going to build a vanilla mobile website, you won't have access to the native libraries which is what Phonegap is intended to leverage.