Experts,
We have a couple of hybrid mobile apps we have developed using plain Cordova plugins and AngularJS that we developed over last few months. I have been following Ionic framework over last few months and see that there are some benefits over plain Cordova/Phonegap. If anybody has gone through migration of Hybrid apps from plain Cordova/Phonegap to Ionic or those who have implemented Apps using Ionic framework, pls share your thoughts:
Are there real performance benefits of using Ionic over plain Cordova with AngularJS?
I have had issues with Cordova plugins like camera plugin and file chooser plugin and getting support or fixes from Cordova team has been a herculean task. Does usage of Ionic alleviate such problems via quick support/fixes?
I intend to use DB plugins (like mysql lite). Has anybody used ionic mysql plugins that helps in faster (and performing) DB operations? Any experience?
Thanks and regards,
Giri
I won't call myself an expert however:
Ionic framework is basically just cordova + angular. So the benefits won't be from a performance standpoint. You would be able to write your apps as a single screen webpage as you would with angular. That's about it. There is also some convenient css going on but I get the impression that that is not really your concern
I haven't had issues with plugins like that. But again, it is really just cordova at the core so ionic probably wont alleviate that. It uses exactly the same plugins as plain cordova.
Once again, it is just cordova + angular. So your experience would be the same mostly. Nothing that I've tried at the plugin level ever worked better or worse in ionic.
Ionic really excells at being cross platform and looking/feeling native without having to write two completely different applications. As far as I can tell it is up to the developers of the plugins to maintain them and not the ionic team so any problems that you have with pluugins will follow you right through with any cordova variants (phonegap, ionic etc.)
Related
To be more precise, I already have a huge app writen in Ionic and now we're considering to migrate it to flutter, but we can't rewrite it from scratch, both ionic and flutter should coexist.
So my question is: can I have a flutter app as a "host" and import / run the ionic app inside it? Something like a micro frontend.
Until now I was able to build the target ionic app and import it on the flutter app, under android folder, but it does not feels like a productive way to approach the problem.
I also googled a little bit about this integration, but did not find anything that solves this problem.
I appreciate any help on this topic.
Yes, it is possible, but very cumbersome.
I did it for a project and embedded 3 ionic apps inside flutter.
I'll not list every problem that i faced but just go through some points to give you an idea.
You will need to take care of some cordova plugins that use native code, for Android copy and paste some folders like CordovaLib,cordova and use it as a library. For iOS you must add the plugin files like *.h to the compiles list inside Xcode and create an Pod to get the cordova resources (that's the way i did)
To "launch" the app for android you need to start the cordova activity and for iOS you need to play with UINavigationController and FlutterViewController, and of course create a method channel to be possible to call it from Flutter.
For multiple apps, you have to mess inside de cordova code to get the app from the right www folder and be sure to equalize every plugin version between apps.
Some packages from flutter may clash with ionic/cordova libs
Every change you do to your ionic application it must be tested outside flutter and within it to see if there's any mismatch behavior that you didn't expect, specially when adding new plugins.
Maybe some permission issues will arrive between applications like camera or localization.
I know thats not the answer, but when searching on how to do it, i stumbled upon this question a few months ago and it still without any answer on this problem.
But my final take is that the effort of joining together all pieces using multiple languages and frameworks together with the job of maintaining this spaghetti behemoth is not worth it and you'll save yourself of a tremendous headache.
im new to mobile development and i see ionic framework has very big community BUT
i know that ionic uses webview while nativescript generates native components
my question now what nativescript can do ionic cannot do?
in other words what is the powerful points in nativescript that does not exists in ionic
thanks in advance.
Ionic is hybrid, running inside webview which has problem with performance at particular things like even simpler animation, not fully accessible API of native part
Nativescript runs as native app, controlled by JS code but can be used even with native code or even as addon to native app and full access to API of native code
I do not understand what are the difference between ionic.io and ionic framework ? Is it the same thing? So why is there two distinct websites and 2 names for the same product?
Ionic framework is the framework for building hybrid mobile apps. It is, and always will be - free.
Ionic.io is the site for Ionic Platform, which adds additional services like Deploy, Build, Push notifications, User management, etc. It is currently in beta and it's thus free, but as they go live (soon, as far as I know) they will have pricing (there will be a free plan however).
Basically, you do not need Ionic Platform, but it's really awesome and worth the money (in case you fall out of the free tier) if you'll ask any Ionic developer.
In addition to the other answers, I would say:
Ionic framework is both
A CSS Framework with a lot of reusable and customizable front-end UI elements.
A JavaScript UI library with JS components which give life to front-end elements
Ionic.io is the ecosystem which includes, among others:
Ionic Cloud
Ionic Creator
Ionic Lab
Ionic View
In this post, you can find more information:
https://solidgeargroup.com/hybrid-apps-development-with-ionic
As I understand it:
Ionic framework is an SDK
Ionic.io is a platform and tooling
In other words, Ionic (framework) is a way to create mobile SPA hybrid apps based on Cordova, that let you leverage native phone features and also AngularJS's MVC-based approach to app development. This is free.
Ionic.io, however, is a bunch of web services and tools that add value to your Ionic apps, letting you store stuff server-side, send push notifications, etc. These may eventually cost money.
The 2 websites deal with Ionic, but :
Ionic.io is the main platform tool website where you can find all information about ionic "world" (Ionic Framework, Ionic platforms, Ionic icons, Ionic app creator, Forum...). It is the Tool Ionic showcase
Ionic framework is useful for developers to know how to install and develop ionic apps.
I hope it helps
I'm looking for a Framework to create mobile applications, if possible writing all code in Java. The idea is create for all mobiles Android, iOS, Windows Phone etc.
I found: Sencha, Vaadin and others.
What's the best ?
if you need to build cross mobile application you can use phonegap http://phonegap.com/ it is better you can use javascript and HTML and CSS to build applications.
Xamarin is another great one. I think you're asking the wrong question though. There isn't really a BEST one, its more what fits into your style. Some might say phonegap is the best, but you can't use code behind in phonegap only HTML CSS and JavaScript. So you gotta find what works best with what you want to do.
Also, look up chrome web apps. You can now develop apps using chrome rendering engine and usual html css and other web based code types and package into apps for the different os app stores.
Everyone is talking about Ionic, I am using it and I love it. Here are some slides to introduce you.
I would use ionic framework, is based on apache cordova, and use AngularJS. If you dont know AngularJS you have other alternatives like goratchet made by bootstrap creators. The only 'problem' is that you'll have to use javascript, html and css, not Java.
I am using ionic framework as well. The best part is you do simple command like ionic build ios to have an ios version of your app, as well as ionic build android for android version.
AngularJS is actually easy to learn (as long as you have basic understanding of JS), the best resource would be egghead.io. I use Ruby on Rails as backend to render an API for my ionic app to consume, so i pretty much don't need to use NodeJS or other JS framework as backend. Also, there is a lot of support for ionic. You can always search Google for a codepen example if you need help.
I am developing mobile web app using ionic sidemenu, but it is not as smooth as it should be. When I open sidemenu using slide left/right, I am getting less than 30 FPS as shown in figure.
How can I improve the performance?
Reaching 60 FPS would be great!
AppGyver's Steroids tooling also provides you with access to Crosswalk on Android. You can run it in your Ionic project directly without modifying any files.
Also, Supersonic's sidemenu/drawer is fully native, so if you're up for migrating, it'll run way faster. :)
(Disclaimer: I'm a programmer for AppGyver.)
My advice is to use Crosswalk instead of the Cordova as the webview for the app.
While both share the same end goal, they are different:
Cordova, from the Apache Foundation, uses the regular (pre-lollipop) Android webview, which is based on Android's stock browser since its inception.
The Crosswalk Project, created on the Intel Open Source Technology Center, is different. It wraps your app with Chromium, the open-source base code that gave birth to Google Chrome, which brings numerous performance enhancements: css3 transitions, animations, 3d transformations, html5 support, remote debugging and much better javascript support and performance.
At the time of writing, the Ionic team is already working on a beta version (1.3.0-beta1) that uses Crosswalk instead of Cordova. Not really stable just yet, but a huge promise.
In any case, you can use Crosswalk today, by manually copying your Ionic project's 'www'
folder content to the project folder inside Crosswalk folder and run it. You'll need to setup some manifest files previously, so read the docs.
In any case, it's not hard at all to try, and I'll recommend it everyday for all projects pre-Lollipop. If you're targeting Lollipop/Android 5 versions, you don't need it, because the default Webview in these versions is already Chrome-based.
Hope it helps.