Does Ionic compile the Code to Native? - ionic-framework

I've searched some times here but could't find an Answer to this.
Does someone know this and can explain how Ionic handles it?

Does Ionic compile the Code to Native? NO
Ionic is for developing Hybrid apps.
What are Hybrid apps?
Hybrid apps are essentially websites embedded in a mobile app through
what we call a webview. They are developed using HTML5, CSS, and
Javascript, and execute the same code regardless of the platform in
which they run. They can, with tools like PhoneGap and Cordova, use
the native features of a device, like GPS or camera.
What are Native apps?
Native apps are developed in the language required by the platform it
targets, Objective-C or Swift for iOS, Java for Android, etc. The code
written is not shared across platforms and their behavior varies. They
have direct access to all features offered by the platform without any
restriction.
Here is a nice article about it.

Cordova converts the project into a native which has only ONE Page, that is a WebView (WKV WEB View in iOS, etc). And all of the ionic code is run on that webview. Basically an ionic/cordova app is a website which looks like an app!

Related

How do you setup automated-tests for Capacitor native apps?

Capacitor allows us to code once then generate web, Android and iOS applications. Most people using Capacitor will generate native Android and iOS applications.
But strange enough, I can't find any documentation about how to create automated-tests for the two native applications. I can easily test the web application using protractor, jasmine or whatever. But when it comes to native apps, I can't hardly rely on native tooling (Android Studio and XCode) as there are other issues preventing me from testing it easily (ex: no possibility to set Accessibility ID through the views markup, etc).
Where are we at with Capacitor native apps automated-tests ?
I believe this is what you are looking for Ionic/capacitor Integrations for Testing
As far as the community/forums and official docs go there are only 3 ways you can test your apks
Native [Andriod Studio / Xcode] [Emulated versions]
Real Devices
3rd party Integration listed in the link above..
Even on google there very less info on this topic.. most of the blogs/ articles only say that Ionic/Capacitors can be tested just like a normal WEB App

Iconic's ability to support complex web applications

Ionic was built with mobile in mind - creating a good mobile experience using web technologies. You start out with a web app, so there is the possibility to use it for all 3 platforms. However I’ve never seen anything that resembles a complex web application that uses iconic for both the web and mobile. Will it support the ability to use 3rd party controls such as complex grid controls that may only be used on the web and not in the mobile apps. I’m trying to decide if we use ionic just for mobile and have a completely separate code base for our web application. Any invites would be greatly appreciated!
Basically everything that works on the web also works on mobile devices built with Ionic.
Ionic creates a WebView where javascript code runs. you can use capacitor or cordova to manage native functionality.
So if you have web developers you can do anything you could do as "Mobile Web" but in an app.
Now you can also choose whether to use react, angular or vue.
For example using Ionic with react you can use the VirtualDom and develop exactly as if you were using react on the web.
Instead, using for example React Native you will be forced to use a set of react components (or write new ones) but you will not have the VirtualDom available.
However you can also integrate native code, which Ionic doesn't support.
There are a lot of articles online that cover the subject by comparing competitors:
From Ionic
So yes, you can use all javascript libraries!

which framework is good for building barcode scanner mobile app?

I'm planning to make an application that uses barcode scanning to scan UPC barcodes and maybe other barcode standards, I will be using firebase for database, I would like to have suggestions on which framework/tool for Mobile Development that I should use?
What I need in the framework is :
JS Libraries and packages support(NPM support would be Nice)
Community and tutorial Support(StackOverflow,github..etc)
CSS Libraries and icons support
Access to native features
I'll be developing for android but maybe I'll try to make it cross-platform later
I know about a few frameworks/tools Like ionic3, React Native, Android studio but I'm not sure which I should use?
I am currently developing an app in Ionic and I used the native barcode-scanner plugin. For me it was easy to implement and works great. Ionic makes use of Cordova.
https://ionicframework.com/docs/native/barcode-scanner
This plugin supports UPC_A and UPC_E barcodes.
Ionic has enough documentation and a start guide.
Ionic icons: ionicons
Access to native features: yes
Ionic can build to Android, IOS and windows.

Can I use third party PhoneGap plugin on a web page using iOS Safari browser?

I am developing an application targeted only for iOS device(for now) using PhoneGap library and HTML5. This application is going to be only a web page accessed through iOS Safari browser. I am going to use certain features like accessing accelerometer, geolocation, contacts etc of iOS device using PhoneGap library.
Will I get access to all these features without installing anything on the device.
I want to understand how does PhoneGap get access to native features
of the device by just using JavaScript only?
I see there are several useful plugins written for PhoneGap library.
Can I simply use those plugins(js files) into my page without
installing anything on the device? E.g PhoneGap ChildBrowser plugin?
Will I get access to all these features without installing anything on the device.
You will have to build as a native ios app and install it to the device.
I want to understand how does PhoneGap get access to native features of the device by just using JavaScript only?
Phonegap provides a Javascript interface to access hardware features which are actually Objective-C functions. If you look at Phonegap source you'll see a lot of Objective-C code. So it's not only Javascript.
I see there are several useful plugins written for PhoneGap library. Can I simply use those plugins(js files) into my page without installing anything on the device? E.g PhoneGap ChildBrowser plugin?
No. They have to be inside an iOS app to be able to work.
It seems like what your after is a way to access the features of an APP only through the browser.
You can access some things using HTML5 e.g.:
Geo location http://html5demos.com/geo
Accelerometer http://menscher.com/teaching/woaa/examples/html5_accelerometer.html
Video Embedding http://www.w3schools.com/html5/html5_video.asp

By using PhoneGap can we convert iphone app to android app?

Can we build an iphone app and convert the application to the android application using phonegap framework?
I have been through various links.
We basically need to develop a webapp for that and that can be converted to an android app or an iphone app respectively.
I am an iphone application developer and i am not at all familiar to android.
Links or example code would be greatly appreciated.
PhoneGap will not enable you to "port" an existing iphone application to Android. However, if you develop an application within the PhoneGap framework (which means using html, css and javascript), you will be able to deploy it on multiple mobile platforms such as iPhone, Android, Nokia, Blackberry, etc.
The downside is that you will eventually be developing a packaged mobile website - your application consist of html pages, css styling and javascript behaviour/logic, combined whith access to phone internals such as gps, disk, database, camera, etc. It will usually not "feel" fully native on most platforms. For example, you will not be using the system's "native" ListView.
There are javascript libraries such as JQuery-mobile, JQTouch, etc, that make your application look nicer on mobile devices, but it's still not as good as the native experience.
The app you build will not be a native Android or IPhone app but a HTML Web App wrapped in the PhoneGap wrapper and packaged into a native app. So yes you can build for both platforms as long as you build a Web App
Edit -(a Web App is just a plain html/css/javascript + server-side(php, asp etc) website)