Need advice about which tool to choose?Ask the StackShare community!
Hi Friends, I am new to #MobileAppDevelopment and I need to make a #CrossPlatformMobileApp. I want guidance regarding which tools should I use to build a mobile app. Main requirements: integrate Unity game engine and provide a platform for social chats.
Past experience - C++ and Python
I have tagged Flutter and React Native but if anything better than both please suggest them.
Hey, If you are using Unity you are going to have to do the end to end development on Unity, you can directly build for android and iOS on Unity. I dont see how Flutter or React Native fit into this equation. Unity is a standalone engine. As for Social Chats, you could use Firebase or your own API and integrate that in Unity in C#
I agree with Sahil. If Unity is a requirement, best way is to use just that to create your app.
If you really want, it should be possible to use Flutter and Unity together. Using Flutter Unity Widget. Although I wouldn't recommend it just yet. It's too early days.
If you do end up using it, I would be very interested in reading about your experiences.
You can start by small steps with Flutter and after Unity. Flutter = best choice to build a small cross-platform mobile app. With or no flutter, use directly Unity. Y'll have complete control but it's harder for new mobile developers. Keep in mind, the requirement is Unity!
Can anyone help me decide what's best for app development or even android Oreo development? I'm in a state dilemma at the moment. I want to do Android programming, not necessarily web development. I have heard a lot of people recommend one of these, and it seems that both the tools can do the job. Which language would you choose?
I assume that you mean Flutter by Dart. I have over 6 years experience programming in Android SDK, but about 1,5 month in Flutter. So far I think that Flutter is the future for mobile development. Flutter SDK is much better designed. Ecosystem of libraries seems having much higher quality. I would even say that android opensource libs are having really poor quality. Many times I am wondering how can garbage like that have so many stars at GitHub. Android SDK is hard to compose so you reinvent even basic things on and on, which is totally different story at Flutter. Lolcycle? Both are having good documentation. I quess apps in Flutter can be done in 1/3 of time compared to develop AndroidSDK and iOS, its design is that much better and contemporary. As of language comparison - Kotlin is better, but the difference is not that important. Go from one language to other is no problem. Dart is being updated with new features.
I've selected Flutter and Dart for my side projects and never regretted. Dart learning curve is easy after any OOP language . Flutter as a framework is also has a low entry threshold. I've already started development after a week of learning. Pros for me: code can be build for Android and IOS devices (for ios you need mac or VM), apps written in Dart have great performance on each of these platforms, flexibility. Cons: if you want to build a product as a business and want to hire a new Flutter Developer in the future it can be a problem as the framework and language is not popular for the moment.
I have worked in mobile development since 2010. I have experienced myself on various techs including Native SDK (Android), React Native (from 2016) and Flutter (2018). Almost the apps nowadays can be built using cross-platforms frameworks like React Native or Flutter. I suggest you start with Flutter. Flutter SDK is designed well to speed up your development and it still keeps the quality for your apps. If you're familiar with OOP languages (Java, C#...), switching to Dart is really quick and easy. Of course, sometimes you will need to dive deep into native parts but almost the cases you don't need. Good luck!
It depends on what is the purpose of your app development. Do you want to make one app that shares the codebase for both iOS and Android? If yes, then Dart is the way to go. Does your app include interacting with hardware features like camera, Bluetooth, if yes, then go for native Android for better performance? Dart is good for simpler UI apps where you just do basic crud operations over the network and show data but if you need richer UI experience go with native.
Flutter is good for everything and it is getting better as I am speaking. Flutter Web is almost ready for production and I have made 2 complex working websites already.
Well. Flutter is just a Framework (just like Django btw.) and it uses Dart as a programming language. Django is kind of solving a different problem than Dart. Dart is intened for use in Front End Applications and Django is a Framework for Back-End Web Development.
So if you want to program Flutter Apps (although i wouldn't recommend it for any serious web development yet since Flutter web isn't very mature yet) i would recommend you just lern Dart.
From a management and hiring perspective, I recommend Flutter (Dart). It provides native solutions to both mobile platform ( (Android and IOS) while having the same knowledge. Hiring managers look at this as an advantage since a developer can provide solutions for both platforms whit the same knowledge. The Flutter framework is growing and there is a lot of resources to ground your knowledge and start experimenting. Dart is also a great language that covers most E2E necessities, so again, no further need of learning one language for FE and another for BE and services. It is my belief that Dart will surpass Kotlin soon, and will leverage to Python and Java in the upcoming year.
If you are interested in Flutter, learn it on your own time, parallel to the course. No matter what order you do them, eventually you will end up learning them all anyway ;-)
Hi, I'm a web dev and am using Electron for a desktop app. Now I have to develop a mobile app with the following features:
- Posting/uploading files by users, private messaging between users, download files, moderation of the uploads, push notification of new posts.
- Mods can ban users and delete files.
- Share buttons from the library folder of the user phone.
- When a user uploads a photo, a pencil tool for deleting staff on the pic.
Which tool is better for such a project?
Thanks in advance
But yeah, go with React Native first, get bored of it, learn what the shortcomings are through experience and then see if something else is really more attractive or just a new shiny.
Hi, we are an early startup (with an iPOC prototype) but need to get started on our MVP, and our tech developers in India recommended a hybrid, and they use Ionic, then we spoke with a software company in the US and he recommended Flutter or React Native. Any advice or input for us on the differences between these? Our app will need Bluetooth GPS for "near me" and social media sharing reviews capability, and also link on the backend with businesses. Thanks in advance for any help you can give!
Maturity, Community, Facility, Libs React Native is the principal platform of mobile cross-platform development today, Flutter is it's a promise.
I would never recommend you to go with Ionic, Because of the User experience it provides is subpar. Flutter is most promising, Can be easily used to develop great user experience in no time. React native is also good, but it's phasing out in my opinion, while Ionic has already phased out. Flutter also provides great developer experience, resulting in fast and productive developers. I would have to press hard to think of a CON about flutter when recommending it for your needs.
It depends also on your team skills. Flutter is fast to learn, fast to develop with and the performance is much better in comparison to React. If your team is already highly skilled in React Native it could be the better option - if not Flutter is my 100% recommendation. We rapidly prototype and deliver MVPs with Flutter since two years.
I don‘t have practical experience with flutter but between ionic and react native I‘d say both a perfectly viable options and we have used both for a number of production apps. We normally go with ionic on capacitor because we build a lot of pwa/web apps so we can use the same code for all. We don‘t use much of ionic elements, we do most styles on our own.
The comments that the user experience is bad I cannot agree with. A well designed and developed ionic apo can hardly be distinguished from a native app. But obviously that depends also on the usecase and type of app.
I hope this helps
Flutter is built on DART which is written in GO. GO compiles to binary. Hence is faster than any java based framework. It provides superior performance and has a simplified UI process for designing apps.
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?
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.
It's probably not relevant anymore, but I think Ionic with Angular as the frontend is the right choice. For IDE I would choose Visual Studio Code. You can just create a basic web application with responsive design, which is already included if you are going to use Ionic components with Material Design to create your app. You don't need to know Swift, you don't even have to create mobile apps, just create a responsive (Ionic already is) web app, or PWA. Upon browsing your website from a mobile device for example using google chrome, you will be prompted to create a shortcut of the website in your mobile phone. After you do this, there will be an icon in your phone that looks like an icon to launch an app, it will launch your website in full screen mode - for the user's perspective it will look like he is using a native app. Access https://ionicframework.com/docs/angular/pwa from your android chrome browser, go to tab options (3 vertical dots), click on Add to Home screen. When you launch the website from the shortcut, you'll see that it behaves and looks like a native app.
Flutter is easy to use and easy to understand. Once you have completed the android platform, you can easily build it to ios, Web or desktop on a single code base.
- 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.
Hi there. So Electron embeds everything in a webview, which means that what you would have to develop would be a Node project most probably. Ionic does the same (kindof but won't bore you with specifics) but it does it much more efficiently. Usually you do Ionic apps with JS frameworks like Angular or React (this one recently added). Flutter on the other hand does native apps, it does it really good but it's support for Web is in beta and it's relatively simple to setup if you already know the SDK and the environment.
My recommendation would be that you do your app using Angular/Ionic if you reaaally need the multi-platform environment and there's different reasons in this case:
- Since it's a graduation project you need it to be as simple as it can be and adding a new technology adds to the learning curve.
- Flutter is great if you have different complex UI or if you have specific performance needs that require native support and in your case it does not seem like you need that.
- Flutter is also an incredibly powerful tool but it's learning curve might be tricky if you have not developed native apps before so I wouldn't recommend you start off like this if you have time sensitive projects like a graduation project. It does have great docs and an awesome community but I'd suggest you stick as close to what you know as you can.
- Ionic/Angular has a really good CLI that helps you stick to the architecture they recommend so you wouldn't have to worry about it that much.
- Ionic/Angular helps you test either locally in the web browser as well as your devices which is in the end what you want if you are looking for a multi-platform system. Flutter also does this but is not quite in a stable state (yet!).
Anyway, in the end, if you go for the multi-platform suggestion I think, because of time you would be better off with Ionic. If you decide that you don't need that as of right now (which is fine as well) you can start with just the Android app and plan on the different things you might eventually need like a website or other different stuff. Cheers!
Whenever we build an app, the app size optimisation is always a difficult part. Even in 4G and modern smartphone era people prefer smaller apps and the smaller apps are more likely to be downloaded. Unlimited internet is no for everybody. More than 337 million smartphone users with limited data plans. So after all coding part we do optimisation and try to reduce the app size. In the terms of optimisation each and every bytes matters.
The download completion rate of an app with an APK size of around 10MB will be ~30% higher than an app with an APK size of 100MB
7 Flutter app Performance ProTips
Use network images.
Use Google Fonts
use .svg format icon && --tree-shake-icons command
Use Dynamic App Delivery
Use cachednetworkimage plugin
Use Proguard ( works only for android )
Use Specific Libraries ( remove unused assets )
- Easy to learn & deployed production
- Fast development
- Strong community
- Completed Documents
- Native performance with lower RAM used.
- Easy to handle native issues by using native code like Java / Objective C
- Powered by Facebook.
Appwrite community member and Flutter enthusiastic, Damodar Lohani has just released the first episode of his Appwrite + Flutter tutorials series! The first episode covers how to setup Appwrite as your Flutter app open-source backend server and how to create your first database collection.
We built the first version of our app with RN and it turned out a mess in a while. A lot of bugs along with poor performance out of the box for a fairly large app. Many things, that native platform has, cannot be done with existing solutions for RN. For instance, large titles on iOS are not fully implemented in any of existing navigations libraries. Also there's painfully slow JSON bridge and many other small, yet annoying things. On the other hand Flutter became a really powerful and easy-to-use tool. A bit of a learning curve, of course, because of Dart, but it worth learning. Flutter offers TONS of built-in features, no JSON-bridge, AOT compilation for iOS.
Pros of Dart
- Backed by Google57
- Great tools34
- Open source26
- Made for the future24
- Can be used on Frontend24
- Angular Dart22
- Polymer Dart22
- Cross platform17
- Like Java16
- Easy to learn13
- Runs on Google Cloud Platform12
- Easy to Understand9
- Amazing concurrency primitives9
- Is to JS what C is to ASM8
- Flutter works with darts6
- Can run Dart in AWS Lambda3
Pros of Flutter
- Hot Reload134
- Cross platform112
- Backed by Google87
- Compiled into Native Code71
- Fast Development58
- Open Source57
- Fast Prototyping51
- Single Codebase47
- Expressive and Flexible UI47
- Reactive Programming35
- Material Design33
- Target to Fuchsia24
- IOS + Android19
- Easy to learn15
- Great CLI Support15
- You can use it as mobile, web, Server development13
- Have built-in Material theme12
- Debugging quickly12
- Target to Android11
- Good docs & sample code11
- Support by multiple IDE: Android Studio, VS Code, XCode10
- Written by Dart, which is easy to read code9
- Easy Testing Support9
- Real platform free framework of the future8
- Have built-in Cupertino theme8
- Target to iOS8
- Easy to Unit Test7
- Easy to Widget Test7
Sign up to add or upvote prosMake informed product decisions
Cons of Dart
- Lack of ORM3
- Locked in - JS or TS interop is very hard to accomplish3
Cons of Flutter
- Need to learn Dart28
- No 3D Graphics Engine Support10
- Lack of community support9
- Graphics programming7
- Lack of friendly documentation6
- Lack of promotion2