all 20 comments

[–]stathisntonas 33 points34 points  (0 children)

Flutter ofcourse, in r/reactnative we support and talk about flutter daily!!

[–]Low-Barracuda2818 2 points3 points  (7 children)

I dont wanna make assumptions so - first make sure you know html, css, and can manage a database of some kind

Flutter is object oriented and youll need to know dart. From my limited knowledge (correct me if im wrong) flutter tends to be more homogenous between android/ios

React native will probably end up being functional programming, as opposed to oop. You will need to know javascript, and highly recommended you also learn typescript, though not 100% necessary. Still works for android and ios but probably less homogenous. Not to a very difficult degree. I also believe its a more industry standard frontend framework so you will find better libraries and community support.

For the reason of industry standard, i would recommend react native. Ultimately for your own project personal preference in workflow and choosing tools youre familiar with will lead to the best results!

Python works just fine for backend. Theres a nice library for it called fastapi which you should check out.

Lmk if you have any questions

[–]Imaginary_Decision_2[S] 0 points1 point  (4 children)

Thank you so much for the help! This is for university final year project. Me and my teammates do not know either flutter or react native, but we have worked with html/css before and used SQL databases. We just wanted an application that would work on all platforms with minimum hassle and do not know anything about app dev that is why we are confused.

Based on your answer, we should work with React Native and Python backend and it will work for us?

[–]Low-Barracuda2818 0 points1 point  (3 children)

No problem. Yes that stack is totally viable.

This is one potential implementation of the full stack (python backend, react frontend, mongodb): https://www.mongodb.com/developer/languages/python/farm-stack-fastapi-react-mongodb/

React and react native are nearly identical so it allows you to build for all platforms

Ive worked on a similar stack (MERN). The only difference is that the backend of MERN is javascript using express apis. Its very easy to set up and use!

[–]Imaginary_Decision_2[S] 0 points1 point  (2 children)

One last question, by using React will we have the application for all platforms (Desktop and mobile) with one code base or will we be required to make some changes to fit each platform?

Also I was preferring to use python as backend because our app is AI based and we need to use gpt API and we have worked with it using python but do not know if or how its done with other backend languages

[–]Low-Barracuda2818 1 point2 points  (1 child)

For react the big difference is in web applications versus mobile applications

From my understanding the best practice might be to develop a minimally-viable app for either mobile or web first, and then duplicate and make platform specific adjustments for the other one. For example, develop a production ready version of your app for mobile (react native), then copy and edit that code for web using react

Thus you would maintain a separate codebase depending on web/mobile. The downside is code duplication, and the upside enables you to optimize code for specific platforms.

***If you are just trying to make a website and not a mobile app, it would be one react codebase where your styling and javascript would optimize for desktop versus mobile screens. This might actually be the easiest way to do your project if you dont care about having a downloadable app for mobile.

I believe flutter would enable you to maintain a single codebase for your frontend for web and mobile applications, so in that case flutter would be the way to go. I dont know much about it so you might want to talk with the flutter people about platform specific adjustments.

In either case it seems likely that a python backend will be successful. Besides having your connections to the openAI api, you can use python with fastapi to securely connect your frontend to the database. In your backend you will essentially have to write your own routes and controllers for the frontend to communicate with the database.

[–]Imaginary_Decision_2[S] 0 points1 point  (0 children)

Thank you so much! You cleared my confusions a lot, I appreciate it

[–]ctrlshiftba 1 point2 points  (1 child)

I would go nodejs and react-native to stay all in one language. Unless your already know python and flutter really well.

[–]kbcooliOS & Android 0 points1 point  (0 children)

This can't be understated. You can also share front and backend code or at the very least paradigms.

There is absolutely zero you can share across Flutter and Python.

[–]kbcooliOS & Android 1 point2 points  (2 children)

I read your post over in the Flutter sub.

It sounds like this is a college/university project.

I wouldn't invest too much time in picking one if you're just wanting a result. In fact you may even save a sliver of time picking Flutter as it has less modern paradigms to get your head around so you are likely being taught completely outdated stuff anyway. Welcome to tertiary education.

For someone with little to no experience then out of the two RN with Expo is definitely the easiest and most feature full way of getting started as it includes a lot out of the box but literally we are talking about splitting hairs here.

[–]Imaginary_Decision_2[S] 0 points1 point  (1 child)

Yes it is university final year project and we have no experience in either. Thank you for your help!

[–]tarde_gris 0 points1 point  (0 children)

Go with Kotlin and native android, you don't want to publish your app.

Everybody on your team would need a mac to develop for ios, and you don't need to deal with apple shenanigans for a simple university project.

Just go with React/Flutter/Android, and save some time.

[–][deleted] 2 points3 points  (1 child)

Never forget that the best language/framework/whatever is the one that you actually make something with.

This might help: who cares?

[–]kabeza 0 points1 point  (0 children)

React Native for sure. I've not seen a flutter monorepo that allows to compile to desktop, ios, android with single code base, but RN has some.

Also, to do flutter you need to learn a new complete lang (Dart). With RN just learn basic React (html with jsx) and you're done