Hi! I have to develop a software solution for a youth church group, for my graduation project. In the first meeting that I have with the coordinators, they did not have a clear idea of what they want. The biggest problem they have is the attendance control, they do it manually and that causes errors.
I was thinking of developing an Android app in Android Studio because that is the tool I master, but a friend told me that I consider using a tool that builds for iOS, Android and web. I have like 6 months. I own a MacBookAir but I do not know Swift (for iOS). I am familiar with MySQL, PHP, Apache, JSP,HTML,CSS.
Summary: What tool can I use that is easy to learn and easy to scale?
- Electron is for desktop apps, so not useful for you.
- Flutter has better performance, but Ionic is decent as well, I would use Ionic unless you're making a game or graphic-intensive app.
- Ionic is more flexible since you have the whole NPM ecosystem available, while flutter is more recent, thus libraries for it are less in quantity and battle-tested than the ones in NPM.
- Ionic 4 introduced CSS variables, which improved immensely the theming process for the app, which was the hardest issue Ionic development had.
- Ionic has extended to many frameworks so it's compatible with Angular and React frameworks, meaning more flexibility, personally I would recommend Ionic with Angular over React since it's more suited to enterprise-level apps.
One more, Flutter web support is indeed in Beta as Alejandro Ulate Fallas points out, you shouldn't use Beta features for production-level apps unless you have already tested such features before and you know those are sufficiently refined and battle-tested, if you need web as a hard requirement, and given you don't know much of flutter yet, go with Ionic, everything in Ionic is natively a web feature, because in basic terms what Ionic does in mobile is create a web view and embed your code in it.
I think you should chose between Flutter and Ionic. With those two options, the main question is about graphs and performance. Are they really important for your application? If the answer is yes, your tool is Flutter but, if the answer is that you need an easy tool to create an app with some basic components I would choose Ionic. You have a library with lots of components that you can use and they have native UI by default (for Android and iOS).
You will find more support if you use Ionic with Angular as frontend framework (you have the option to use Vue or React but this is a new feature for Ionic and I think there are more difficult to learn than Angular).
You can develop and debug the majority of features on PC (I don't know if that is possible with Flutter). And when you will finish the app, create iOS and Android versions is simple.