How do I decide between a cross-platform mobile framework?
For a personal project, I’m not exactly sure how to decide between cross-platform mobile frameworks (e.g. React Native, Ionic, Flutter, etc.).
I know a lot of it is use-case based, so as an example consider a highly simplified social media with creating posts with text and photo, editing your profile, and viewing/following others. What works best here and why?
For my project, I do have a web app as well built using NextJS, and I have a decent amount of experience with React. I’ve also used Flutter in the past and found it pretty easy to work with, but I’ve never tried my other options.
As far as I’m aware, most people generally recommend staying away from Ionic? I’m not exactly sure why that is or if that’s just an old sentiment.
Flutter is pretty nice and the experiencd I've had has been pretty smooth. It also has a really awesome hot reload feature, and you can run your "mobile app" on your dev machine as long as you aren't using any mobile-only APIs in the particular feature.
Yeah Flutter seems like the winner for my Project. I think the fact that I've worked with it in the past, and that it feels very react-y in some ways just makes it a lot nicer for me.
I can't speak directly to those frameworks, but--while there are some frameworks better suited to certain use cases, there's also a fair bit of overlap. So I recommend you go with whatever you're most comfortable with--try out a "Hello world" with a few different options and go with whichever one you like best.
Just to throw in the first comment, I've used Ionic for a small app and had nothing but a pleasant experience. Curious to hear why people are against it.
Yeah I've looked through the website and it seems pretty good. I think being able to use it with vanilla React is really appealing to me, especially because (if I'm not mistaken) I can use any normal library I'm familiar with (such as tailwind)?
Use whatever is most enjoyable to you. You'll be most productive working in a framework you like as opposed to one people online convinced you was "right".
Take an hour or two with each. Use whatever is clicking best with you.
I haven't done a ton, but I've used Xamarin for more general apps (great if you need to interact with anything Microsoft, like Azure). And I've used libgdx for a game I'm working on. I actually enjoy Java, so I tend toward those platforms when I have the option.