What is our primary use case?
We are using it for mobile applications that we are publishing to iOS, Huawei, and Google Play Store. It's a very nice hybrid framework for mobile applications.
What is most valuable?
Being able to have one set of code is valuable. I don't have to recode for different platforms. I don't have to recode for Xcode, Angular, or Android. So, the biggest feature for me is that it's a hybrid system, and I can have one set of code, and then the tool sets that are in there convert my code for Xcode or Play Store. It makes work a lot easier. I don't have to develop three or four code sets for one application. I can do everything from Ionic.
It has a very powerful Node.js engine as well. It has also got some nice widgets, icon sets, templates, and things like that, but you do need to have some coding background there.
They've created a professional platform where there's a little drag and drop to create apps. For me, integrating or connecting to databases and things like that is very easy. I can integrate any type of backend, such as MySQL or PHP, by using web services and things like that.
What needs improvement?
When they jumped from version 3 to version 4, 5, and 6, they introduced something called Capacitor, which is basically the tool that you use to convert your code to Xcode, etc. They have a few plugins that are still using, for instance, PhoneGap. So, you have to jump between Capacitor and PhoneGap. Their documentation is good, but there are some versioning control issues. For example, if you want to bring up a phone dial-up or a map, you have to decide whether to use Capacitor, PhoneGap, or Cordova. They started writing Capacitor to get rid of PhoneGap and Cordova, but they haven't yet got all the libraries and all the functionalities. They want you to start using Capacitor, but they don't have all the libraries there. They're developing them as they go. So, currently, you have to mix and match the three. When it comes to mobile applications, I would only like to use Capacitor. I don't want to jump between Cordova and Capacitor or have both of them. That's the main thing for me, but they have been working on it. They have started to bring them closer and closer so that you don't have to use two different sets of libraries. They're close to where you don't have to use Cordova or PhoneGap, and you can only use Capacitor. In versions 5 and 6, they have improved it a lot.
They can also improve it in terms of publishing to different stores. For instance, I'm using Firebase to make my Ionic app web compatible. If I don't have a Node.js server to host on, I have to host it on Firebase or something like that. Currently, if I need to publish to different stores, such as the Microsoft store or the Huawei store, the only way I can publish to, for instance, the Huawei store is by creating the APK and uploading it. If they can start adding a little bit more integration to publish to different stores, such as the Samsung store, Huawei store, or Microsoft store, it would be good. Currently, there are no problems with iOS and Google Play Store, but for the other stores, you have to do a little bit of a workaround to get things done.
Its stability could be better. For me, jumping between versions 3, 4, and 5 was a big problem because it wasn't seamless. Jumping from version 5 to 6 is more seamless. Jumping from version 3 to 5 has been a nightmare because I had to recode quite a lot to be compatible with version 5. I totally skipped version 4 because it was just too quick. Jumping between versions has definitely been a problem for me. If I have to do a lot of plugins and redo a lot of my coding because they're jumping versions, I'm going to look for something else.
For how long have I used the solution?
I have been using this solution for about four years. I started using version 3, and currently, they are on version 6.
What do I think about the stability of the solution?
If you stay on a version, it's very stable, but because of mobile devices, you can't do that. You can't just code and think that you don't have to do any maintenance on that for the next year, for instance. That's something that needs to be improved quite a lot. Backward compatibility between versions should be there. I would rate it a three out of ten in terms of stability because if you're on your current version, you're happy, but when there is an update, all of a sudden there are versioning issues. If you need to do major changes, you need to make sure that you stay on the same version, but the moment you start updating the version, there are a lot of break points. That's something that's a bit of a nightmare for me.
What do I think about the scalability of the solution?
It depends on what you want to achieve with the product. You can create a quick little app or you can have a very complex integrated system. If you understand classes, models, controllers, and other similar things, scalability is very easy, but if you don't understand that, it becomes a bit of a problem.
For our needs, it's definitely scalable. There are people who say that if you want performance, then you need to go to the core. The performance these days is more of server-side performance, whereas Ionic is more on the client side. So, in my opinion, if there are any performance issues, that's because you don't have a good backend doing all the processing for you. For me, it's scalable if you understand what you want to do with it. If you use it purely for the front end with no data connections, web services, or other things, it can become a little bit more of a problem. Overall, I would rate it a six out of ten because you can't just use Ionic. If you want to use database integration and things like that, you need a stack. So, the scalability depends on your stack. If you want to use it as a standalone app, then it's not scalable, but if you integrate it into your stack, then it is.
How are customer service and support?
Its documentation is good, and there's a community. As an open-source developer, that's important to me. When I start something new, the first thing I look at is documentation and community. If the documentation is good and there's a community, then you can run. Ionic has got a strong community and their documentation is very good. So, I'm happy with that.
How was the initial setup?
You need to be a developer to understand it. The documentation is very good, but you also need to have Node.js background and some command line background. I prefer that because if it's too easy, then it becomes like WordPress, and every guy on the street can then start using it.
If you're a developer, their documentation is quite straightforward and easy to read. They're on Git as well. They've got a very good large community. So, for me, getting started with Ionic is very easy. They are also integrating with Vue and React. If you've got an Angular, React, Vue, and Node.js background, it's very easy to use. For someone starting in software dev, any such setup is difficult. I'm currently looking into Flutter. For me, Ionic was easier than Flutter because, in Flutter, you need to extract everything, whereas, with Ionic, you run a Node.js command, and there are some steps, and you've got a working app within minutes that you can start using and playing around with. I would rate it a seven out of ten in terms of the setup and ease of use. I love the product. If you're a coder or developer, it's very easy.
What other advice do I have?
Overall, I would rate it a seven out of ten. I'm fairly satisfied with it.