Ionic: Is it Really the Right Tech for your Software Project?

Views: 228

What is Ionic?

Ionic is a cross-platform framework for developing mobile, desktop, and web applications sharing one codebase. It's a hybrid solution that allows developers to build high-quality, cross-platform apps using standard technologies like JavaScript, HTML, and CSS for front-end and Angular, React, or Vue.js for application development. This makes it not only cross-platform but also cross-framework. It uses a toolkit and an underlying framework to create apps that compile in native mobile or desktop applications and execute in a hybrid environment that is web-based. In short (and to spare you all the gobbledygook), Ionic enables you to write code 1 time and develop an application that is fully compatible across multiple platforms.

Sounds too good to be true? As with most technologies, Ionic is not the ultimate solution to all projects' software development problems. So let me get you started with this mini rundown of its possibilities—the good and the bad.


TL;DR

Pros

  • Follows web open standards and rest on known frameworks like Angular, React, and other widespread technologies like HTML, CSS, and Javascript
  • High availability of developers (almost 70% of developers know Javascript and at least one of the frameworks mentioned above)
  • Small bundle size Can be deployed as a web application first (PWA), a native mobile application, or an installable desktop application (or even on your refrigerator, if it’s a smart one with a web browser) Excellent code portability and reusability between the API and administration panel, which saves a lot of time and helps with the cohesion of the system

Cons

  • Slow when doing aggressive animations, such as in games or augmented reality
  • Runs in web view so it’s dependent on device compatibility, but most modern devices are compatible with it

Now if you want a more comprehensive explanation, don’t stop reading. :)


Why choose Ionic?

Here at software development house Arcanys, we love working with Ionic because it covers a lot of groundwork for multiple platforms with the minimum amount of effort, manpower, and time. We’re not saying that all Ionic applications are perfect because there are still many variables that can affect an application’s performance, the top of which is the quality of the code. If you’ve written decent code, however, even if you only have basic knowledge of Ionic, you’d still end up with a pretty decent Ionic application.

Mainly, Ionic has the following benefits.

1. Cost-saving

Overall, Ionic is a good solution to reduce the cost of development because with one codebase we can develop a responsive app for the web, desktop, and mobile, all at the same time.

On the other hand, when developing using native language, a company will need 2 development teams—one for Android and another for iOS, doubling the cost of the application’s development and maintenance.

2. Same code, same features

Ever wondered why many iOS and Android versions of your favorite apps are not the same? That’s because most of them were coded and developed separately. With Ionic, however, there is no need to code separately and "synchronize" features between the Android and iPhone versions of the app as they will always be the same.

3. Performance

Obviously, Ionic is not meant to create highly intensive apps like games or augmented reality (think Ingress or Pokemon Go). Ionic apps will run fine in web view, which is a full-screen web browser. However, if it needs access to other features on your phone, such as the camera, it would have to be via bridges or plug-ins.

Now, for most service apps, it performs very well. Based on our experience, usually, what we saw is most performance problems come from a lack of understanding of the underlying framework and web performances in general. Developers try to load the data in bulk instead of lazy loading them, or the images are not optimized properly.

4. Availability of resources

Ionic follows the web standards and uses HTML, CSS, and Javascript under the hood—and Javascript is known by 70% of professional developers worldwide. So yeah, you have quite a big talent pool (or even future talents) for this cross-platform framework.

Moreover, it is possible to develop Ionic with Angular, React, and Vue.js. In fact, this year, Ionic saw an ascending trend in adoption from React and Vue.js developers. Consequently, with Ionic, it would be very easy to find professional resources to scale your team. At Arcanys, we choose Ionic because it offers good flexibility and scalability in our development teams.

5. Cross-functional team

Angular developers are Javascript developers, which means they can easily learn to work with Ionic, which enables them to work on both the administration panel and the client mobile application, or even swap teams when necessary. Learning curves may differ from developer to developer. But essentially, frontend Angular developers can learn to become full-stack developers and be capable of working on the API. Coincidentally, Arcanys has developers that know and have worked on both Angular and Ionic.

6. Expert-level support & our experience

Not really sure how Ionic would work for your software project? Well, the Ionic team also has some paid plans with expert-level consulting or immediate support for your projects.

Moreover, here at Arcanys, we have great experience in developing Ionic applications. In fact, we have recently worked on a B2B sales and CRM application called Koobani and the leading Australian registration platform for sports events RegisterNow as well as on a B2C sales app for on-the-move representatives, a food ordering app, and a workout tracking application. How about you? Tell us about your project to start working on a solution with top-rated Ionic software developers.


How does Ionic compare to other frameworks?

With tons of web and app frameworks out there to choose from, how does Ionic really fare against others? Well, here’s a comparison of Ionic against 2 other popular cross-platform web & mobile development frameworks, and of course, the old school way of going Native. (* shudder)

Ionic vs React Native

React Native is a bit different from Ionic. It can't be developed in anything other than React (so no Angular or Vue.js). Also, it’s compiled in native code, so it doesn't execute in a web browser like a regular app. The consequence of this is better performance, but at the cost of a bigger bundle size (a React app will weigh 5 or 10MB instead of 1 or 2MB for the same app in Ionic). And as React is an absolute must-have, the community is smaller than Ionic, which can be developed by React, Angular, and Vue.js developers.

Still, we understand that React Native is a framework that is appreciated by the community, and it has proven its ground already. So if it’s the best framework for your project or simply your preference, we'll also be happy to help you with any development in React Native. Just connect with our co-founder to find out how we can help.

Ionic vs Flutter

Flutter is the new kid on the block. It's a Google initiative, and it comes with great performance. It's also fully cross-platform. It comes with a few downsides, though, which makes it barely recommendable.

The first one? It’s a Google project, and Google has a bad reputation of killing their projects without warning and not bothering to give any support to boot. But Flutter is an open-source project also developed by the community, which may give it a chance to survive even without the support of Google. It’s also a very young project and still needs to secure its place among bigger, more established names. You may argue that Angular is also a Google initiative, and I agree. But it was created 10 years ago and has been vastly adopted by the community. Flutter, on the other hand, is only 3 years old and almost nobody uses it.

Another downside, and the reason why it's unpopular, is that Flutter is developed in Dart. Dart is a different language, which is also developed by Google. Hardly anyone knows the language, and so it’s very difficult to find proficient developers for it. When Javascript is known by 70% of developers, Dart is only known by about 4%. This doesn’t necessarily mean it’s bad. However, for a company, it’s a tough decision to go on a road where there is barely anybody to support you. Google was questioned extensively about this so one of their senior engineers responded with an article. There's also even an entire FAQ page about the tech. To defend their choice or allay some fears? Perhaps both.

In the end, I guess it falls in the hands of the community to validate it by following this trend or not. Personally, I don’t want to invest any more time learning new languages that are not portable and somewhat future-proof. Instead, I prefer to invest my time learning tools that are cross-functional and highly transferable from one project to another.

Ionic vs Native

As already mentioned above, we don’t recommend going native anymore, except maybe in the rare cases where you need the absolute best performance for an application or game that is heavy on animations, 3D rendering, or augmented reality.

Sure, native apps may have excellent UI consistency, have seamless performance even if they’re animation and AR heavy, and their platform SDK may ensure smooth access to the device's API. In comparison to cross-platform apps, however, the pros still don't outweigh the cons.

In my opinion, the cost of maintaining and developing native applications is not worth it anymore. Not only is it a hassle to keep 2 teams but it's also very expensive to find and recruit good native iOS or Android developers. And they are hardly cross-functional, which gives you limited choices.


On the whole...

Ionic is far from a perfect framework and does have some drawbacks for certain development projects. It, however, offers you not only a cost-efficient choice but also quite a flexible one since it’s open-source, 100% free, and is one the most popular cross-platform mobile frameworks today with a growing community of developers for support. An overall software development strategy must be flexible so when better tech does come along, it’s ready to pivot with the minimum of hassle and pain. But for now, and especially with the release of Ionic 4, it undeniably has more benefits than flaws and so it is a worthy choice when it comes to most (if not all) mobile and web development.

Do you have any other questions about web & mobile development? Feel free to shoot us an email at arcanys.com/contact.

About the author

Eric has been working as a software engineer for more than 20 years. As a senior architect for Arcanys, he works closely with the developers to instill the habit of learning, clean coding, re-usability and testing with the goal of increasing the overall quality of the products delivered by the teams.