Flutter is an open-source mobile application development framework created by Google. It is used to develop applications for Android and iOS, as well as being the primary method of creating applications for Google Fuchsia.
$0
Symfony
Score 10.0 out of 10
N/A
Symfony is a PHP framework from French company SensioLabs.
Flutter by Google is well suited where you have to make an app across multiple platforms like iOS, Android, Web, Desktop and you don't have the bandwidth to create multiple teams for the Native app. This makes sure you have a faster development and you don't have to worry about how your product will look across different platforms. It is also very smooth/fast in response, making it close to feel like a Native app, this makes it an easy pick for a Fintech product where speed matters. Flutter by Google also has a huge library of Components, which are well tested and developed by Google's Flutter by Google team itself, making the development even more fast since the majority of required components are already available.
Any small project which you want to have ready in a couple of hours would be probably a bad candidate for using Symfony. Even the most seasoned senior developer can easily spend hours or days creating a small MVP with Symfony. While Symfony's learning curve isn't necessarily bad and will depend a lot on the architectural knowledge of the developer itself, because of the modularity required by Symfony you will need to spend a significant amount of time coding. If you are looking for a quick project, perhaps this framework isn't the best solution. Robust applications can benefit from Symfony's architecture. I have participated in projects on different industries including lead generation, marketing and even some micro-services for other industries which use Symfony. Because of how thorough the framework has been architected, you will have a reliable solution.
Sonata Admin for Symfony is very versatile and we've used it for both the admin part of our website (even created a landing page constructor using it) and for the ERP system we've developed for inside use.
It is easy to learn if you know PHP and the community is quite large so you can easily find experts to help you with issues.
It's good for high-load projects. We have used it for the back-end of a custom affiliate marketing system that currently processes over 180 million requests per day.
Occasionally updates to the Flutter SDK result in wide-sweeping changes that seem to not be thoroughly tested and considered. Flutter sometimes evolves too fast for its own good.
While the 3rd-party Flutter package ecosystem is vast and rich, 1st-party support for basic things (audio/video playback, battery information, Bluetooth services, etc.) are lacking. You are occasionally forced to rely on an open-source package for use-cases that other platforms have native support for.
Documentation, particularly around testing, is lacking. While there are some great docs, like the Dart Style Guide, many Flutter-focused support documents are lacking in quality and real-world usability.
Flutter allows you to architect an app however you want. While this is a great feature, it also adds complexity and leads to the current state of Flutter's state management, where there are 50+ options on how to organize your app, with very little official guidance or recommendations from the Flutter team. For a beginner, this can create decision paralysis.
Flutter by Google is very easy to start with. The initial setup they provide is very helpful and easy to understand. The default project setup is also good and can be deployed to production without changing much. Flutter by Google provides a huge library of components, which are created and tested by their own team, making the development of application much faster and robust. Flutter by Google also has a huge community support where we can find components built by the community and we can contribute our own components as well, which helps in faster dev time. Applications developed using Flutter by Google are very smooth, almost feels like native, which helps in creating good impression on customers/clients.
It can be a little complex at the begining comapred to some other frameworks, but this gives very good structure and makes it bulletproof for scaling actually large applications. The framework is built in a way that you can start simple and bring incremental improvements to make sure your app responds to traffic, demand, and growing usage.
There is a lot of community support but because Symfony is so flexible and unopinionated, there are too many ways to do things and if you lock yourself into one way, most of the advice online will not work for you.
I have experience with react and React Native. I would say that the idea behind all those frameworks are quite similar. However, I found the javascript-based frameworks a bit more accessible as you could utilise your javascript knowledge. Here, Flutter works with its own language. This has advantages and disadvantages sometimes. I found the community around javascript frameworks bigger and therefore sometimes more helpful. However, Flutter does a good job here as well. I think the main argument for Flutter is its usability for less experienced developers. If you do not have knowledge in javascript or other programming languages then I think it is much easier to start with Flutter than with another framework like react. I think the package that you get form scratch is better than in the other frameworks were you have to set up and learn a lot more before you can start.
Symfony has become such a standard that many frameworks which previously may have been seen as competition, are actually adopting Symfony components to allow them to focus more on what makes their solution unique. Drupal 8 has replaced much of its low-level internal code with Symfony components. Laravel utilizes much from Symfony and builds on it. CakePHP was my preferred framework over Zend and CodeIgniter, but now I typically prefer Symfony or Laravel depending on the type of application and complexity of what I'm doing.
The rapid development capabilities of Flutter allow us to build apps we could not have previously considered commercially viable, opening new revenue streams.
Free and open licensing made adoption very easy (ie. free/low cost!).
In comparison to Qt, our time spent arguing with build tools and perfecting development environments has decreased substantially.
One negative thing to point out of Symfony is how painful it is to migrate legacy or relatively old projects from previous versions of Symfony into newer versions.
Symfony projects are usually reliable and provide the results you need.
Performance can be an issue sometime depending on the kind of project you are working on. Symfony can have some issues with cache.