Can't seem to find which rendering engine the mobile app wrapper Ionic uses. Is it Webkit?
Ionic's Cordova is essentially opening a webview from the native app. That means the rendering engine is different on every device. For example, on the latest devices, Android uses webkit, and iOS uses WkWebView. That's where you have to be careful. Some styling like css-animation behaves differently.
To add to the other answer:
If you wish to have the same experience across the platform, you could always resolve to using the crosswalk plugin. On android, it basically installs the webkit and uses it instead of the native webview, so that it will always display the same across devices. On iOS, there is a similar version for the iOS8 and up to use the new wkWebView and not the old uiwebview. Just google cordova crosswalk and it should come up.
Related
Is it applicable in react native? Will it work on the android applications?
It's working in localhost on how to implement it in react native
Webgazer.js is not available on React native. As the documentation says, it is only available on Firefox, Chrome, Opera, Edge, and Safari.
However, if you want to add it to your React Native App, you can use react-native-webview. You'll have to build an HTML/CSS/JS app with WebGazer. Then, load it in your app using the webview library.
React-native-webview supports iOS and Android
We have some issues with elements that are rendered differently across devices.
So can this be because they use a different browser engine?
Is it a browser engine that the device provides or is it packed inside capacitor, and is there a way to set the version of this engine so every device uses the same engine?
The Capacitor documentation seems really good. According to those docs, the browser engine varies by environment.
On iOS, it uses Apple's WKWebView (Safari-like).
On Android, it uses an Android WebView with Chrome 60 or higher.
On Web, of course, it's up to the end user what gets used.
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!
If I have an application build using PhoneGap is it possible to add to it platform specific code?
For instance, for an iOS version I would like to add Heatma.ps SDK.
Heatma.ps SDK is an iOS specific static library written in Objective-c.
yes you can add as much platform specific code as you want. Phonegap is just for the interaction of the platform specific code and the javascript. Its the plugin mechanism that makes Phonegap what it is. Even if you have a native app, you can add a bit of Phonegap in it by having a page somewhere which is basically a webview and is manipulated by js. Phonegap is what launches and manages the interactions of the js and the native part of the app.
I have the following queries on using phonegap / Titanium appcelarator for our cross platform mobile development
Currently we want to develop iPhone compatible and android compatible app with single source code using the cross platform mobile SDKs
Can this phoneGap or Titanium appcelarator works with single source code on both the iPhone and Android platforms?
also is there any other platform works as such?
And how these application will be relased with Appstore / Android market place since they have single code base ( source code ).
Any helps would be greatly appreciated.
I have tried out Sencha Touch with PhoneGap and also Titanium.
Sencha touch is pretty easy as it is based on javascript and can be used with android and iphone. The app created with Sencha touch can later be wrapped inside phone gap and submitted to the appstore.
Titanium again uses javascript but they do some processing on it. So the app is native.
They do have some common api's that can be used for both iphone and android. But for some advanced features they have 2 seperate sets of api's for both android and iphone.
So both have some differences. And they are both acceptable in Appstore and android market place.
I have not tried Titanium, but one of my friends is using Corona. He said its support Android and iPhone, and easily port over. You will need at least, adjust the image size, AFAIK, the image size for iphone and androids(various size) are different.
Corona: Write once, build to both iOS and Android.
corona concentrates on games. it uses lua. if you want to build a cross platform application you should first design your application cross platform. android and ios are different os with different style guides.
i have experiences with titanium and it worked fine. but i experienced that a cross platform design is important since the most time of building the app was used for programming the user interface. so invest time in building a good mvc design and ui. after that it worked out easily.
Find answers for you question below.
Can this phoneGap or Titanium appcelarator works with single source code on both the iPhone and Android platforms?
Yes It can definitely work with single code base. in addition to this you can develop universal App that can run in tablet and handheld from single code base
(NOTE: however on some point you have to differentiate between iOS and Android as some of the functionalities are specific to iOS or Android System. Titanium provide constants to check between iOS and android. It also provides constants to differentiate between Tablet and Handheld devices)
also is there any other platform works as such?
Other than Android and iOS titanium provides support for blackberry and mobile web platforms also.
And how these application will be relased with Appstore / Android market place since they have single code base ( source code ).
You can build App for required platform from titanium it self.