How do you meet the challenge of working with multimedia content?
By Alan Rosas and ShanlogauthierSoftware Engineers at etermax
In the New Games team of etermax we are committed to generating new proposals and initiatives when developing a new product and we aspire to innovate in new game mechanics.
To etermax we seek to think outside the box and aim for the stars. For this reason, at New Games, we look for the best levels for the requirements of new products. Currently we are facing the challenge of working with multimedia content and in this context we detect that Flutter is the alternative that gives us the most power and allows us to achieve our goals. Although we are fans of Unity, the game engine on which we develop most of our products, in this case we cannot maximize its specialized gaming potential.
For this reason, in our team, we ventured into an investigation through different frameworks and technologies that could meet our needs, and in the process, we found that Flutter is the best tool and the one that best meets our needs. needs.
What is Flutter?
It is an open source SDK created by Google for application development, both mobile and desktop.
Flutter uses the Dart language, intended for developing applications based on Widgets. Simply put, it separates the logic of the software into the most atomic and focused parts with its visual representation.
- Save time in device development because you can export for both Android and iOS.
- It uses native features
- It uses Material Design from Google and Cupertino from Apple.
- It has a hot reload feature, which allows you to expand your widgets and see the changes in real time on your device or in the simulators.
- Abundant documentation in several languages, in addition to being supported by a company like Google.
- Great growth of the developer community in recent years.
- Increase in Google’s interest in being competitive in this market.
- Ease and agility when developing applications.
- A large community that generates plugins to facilitate various tasks, in addition to being properly documented and valued, both by Flutter itself and by the developers who consume these packages.
- He is a relatively young executive, who will grow with his community, and technology will be more in the spotlight.
- Many packages or plugins are still under development or in early stages for large products or large scale production development. For example, they currently don’t have AR or VR.
- Learn a language that is currently only used in Flutter development.
Why Flutter instead of Unity?
Unity is a game engine while Flutter is an SDK designed for developing applications. Everyone has their purpose. If we wanted, for example, to make a food delivery application, it would not make sense to use Unity because the integration with the map is complex, the application size would be too large and we would use much more of material resources which not necessary for what is developed.
On the contrary, making a 3D game in Flutter with animations, 3D models, visual effects and cutscenes is very difficult if not impossible (although progress is done in this way). Flutter is not an SDK specializing in video games, unlike Unity. In fact, if we wanted to develop a VR or AR app in Flutter, most likely the solution would be to run an instance of Unity in Flutter, since Flutter doesn’t have libraries like ArKit(iOS) and ARCore(Android). ) .
For example, nowadays as we develop using media content, we have to work with both the camera and the files inside the phone, and everything about permissions is handled in a way much more direct than when using Unity.
What is the best way to evaluate a technology?
Based on our experience, we considered the following key points:
- What do we want to develop?
- Application performance.
- The ease of development of our features and their scalability.
To show the advantages of Flutter over Unity, we made a small project containing a carousel with the iconic characters from Trivia Crack.
Below is the code that will allow you to have this experience of creating a carousel by yourself, in a very simple way. If you want to try it, you can install Flutter by following the instructions below.
What lessons have we learned from the test?
The application (apk) version is much smaller than what we usually get in Unity, because the minimum of this tool without using Tiny versions is around 18 MB. Meanwhile, this test with the carousel has a size of 16.8 MB. This difference increases as we add files and features.
On the other hand, the performance of the application is highly appreciated. Unity updates its UI once per frame, while in Flutter it is on demand. We can update only part of the user interface, a specific component or the entire screen. Obviously this is done all the time in Unity, since it is ready to work with 3D models, animations and a lot of content that we would not enjoy in this case.
Another great advantage we discovered in this development is the ease of creating a carousel.
The unit comes with a making up which allows us to drag content onto a certain canvas. But it doesn’t allow us to “turn the pages” or anchor them to the center of what the user sees. To do this, in Unity, we have to develop everything ourselves, both the anchor animation and the “drag” gesture.
In the code you can see that just create a Page display widget not only can we swipe the content, but it can also be anchored to the center of the screen. We also have access to a controller, for example to know on which screen we are, the orientation of the gesture (vertical, horizontal), and to access the method which notifies us of the change of page.
What do we get out of it?
We continue to test and explore technologies in the market. Flutter, Unity, native development, are all options that must be chosen depending on the context in which you want to work. To etermax we keep pushing forward when it comes to experimenting to achieve our goals.
Do you also want to experiment with us? Become a game changer!