We do the whole process of software engineering:
Somnio Software's collaborative team integrates different talents and areas such as Software Engineering and Development, QA Testing, Designing, Marketing, and Human Resources.
Our development team has Front-End Developers (Mobile and Web), Back-End Developers, and QA testers. As we are focusing on Flutter, it's important to highlight that we have specialized Flutter Developers. The team is also composed of Project Managers and a CTO that is in charge of helping the team and supervising the quality of the code.
We also have a design team with UX/UI and Graphic Designers. In addition, there is a Digital Marketing and Business Development team, and a Human Resources team.
Together we are a solid team that has experience in our specific areas, as well as working as a group.
All of Somnio Software employees, regarding their level, are capacitated in platforms such as Udemy and Pluralsight. Besides, we provide training in our work place with the technical area of the company for about 3 or 5 weeks in order to complete, progress and elevate their profile.
In addition, we measure their performance in the platform Pluralsight where we create a Skill IQ to evaluate their work, capabilities and potential so we can have a profound insight in order to know where they need to be trained.
We even dedicate 2 hours per week so that each person can continue learning and training so they can grow in their specific area. Plus, we make every Thursday “English Day” and we talk all day in English as an effective way to practice the language.
The process that we use to build an application is the full software engineer process. We make the consulting, requirements analysis, UX/UI interfaces, development, testing, launching and maintaining.
We start by deeply understanding the client’s needs through a really careful communication between parts, which includes many back and forth of it’s features.
Then we start making the UX/UI interfaces and deliver them to the clients, so that they can observe and take their time to fully understand the different screens. This is important because the client can visualize the app they will receive and it’s a guarantee of the outcome. In our experience, they are even better than what they imagined.
Following this, we start creating the product. First we build the architecture and design the software in order to start developing. During this process we frequently test the app in order to guarantee high quality products.
Finally, we launch the app with DevOps techniques which make our products fast integrable and assure their excellent quality.
With this process, clients obtain outstanding products that help bring their business to the next level.
To begin the process of the project, we mostly require compromise, time and communication from clients.
The process starts with a deep understanding of the client’s needs. That's why we take our time to know our client's project idea so we can start. Afterwards, we share with them our techniques in order to understand what services and features helps them best to their business. Then it begins the development and analysis of our work while frequently communicating the different features till we achieve the desired results and the client is fully satisfied. This way of working has had outstanding results as we have always provided high valuable products to our clients.
If you are planning on creating a fast, high-quality performance and native experience app, Flutter is the best option. For instance, React Native has a lot of problems with dependencies, the app crashes a lot, the environment is not that intuitive and well designed for developers, and the mobile heats a lot when running basic apps. On the opposite, Flutter provides a faster performance with a quicker developing time and an excellent experience for the user.
Flutter provides the same experience and performance than a Native code with the advantage of including faster programming, quicker time-to-market and the use of native codes if needed. In conclusion, why go through a long developing process with twice the developing costs if Flutter provides the same experience?
Even though Ionic provides a pretty fast development, the possibility to reuse the code from the web and it’s friendly for web developers, it lags behind other cross-platforms such as Flutter.
For instance, it relies on web views to display the user interface of the app. A web view means that it launches a browser inside the application and this is a limiting factor when compared to technology that provides a native performance. Both Ionic and Flutter use a single codebase across various platforms, but Ionic doesn’t provide a native experience while Flutter does, as it compiles into a native code.
To use Flutter you don't need to hire both Android and iOS developers, since it uses one codebase for all platforms. You also don't need to maintain two different repositories. In addition, it provides a quick compilation which allows the developer to visualize the results of a change in the code in real time.
You don’t have to afford both Android and IOS developers to build the same thing twice! This is one of Flutter’s strongest suits: it uses one codebase for all platforms. So, the reason why is faster is almost the same of why it costs less. This is a great advantage that makes the difference.
It really depends on the project. Nevertheless, with each project, we focus on delivering the quicker outcome possible by following an efficient process. Once we gather the requirements and deeply understand the project goal we deliver estimations of the expected time.
There are several conditions that help us be prepared to build your project in the needed time, no extra. For instance, we train our team in their area of expertise and encourage team synergy to complement their talents. Their skills next to their experience working together allows them to work faster, more effectively, and achieve high-level results. Plus, we have tech libraries to speed things up by reusing solutions without wasting time reinventing the wheel.
We work by hourly rate for our projects. We provide an estimation in hours for what a functionality or change can take. You can always take your time to decide in order to prioritize depending on the value of an addition or change. We like to emphasize that no decision is final, you can always re-evaluate a choice and make changes.
This gives us flexibility to easily make changes in the app if they are needed without having to stick to a contract. It’s easier and faster to include requirements, make changes or remove functionalities.
We give you an estimation of the hours but it’s not the final value. We will frequently compare the time planned with the actual progress to check if there is any deviation in order to understand why it happened and look for possible solutions together.
This way the flow of the project is more fluent. In our experience, both sides are more comfortable working by hours since we can work much faster and in a natural and comfortable way.
In the end, the product we delivery has a higher quality and value given that there are fewer obstacles and bureaucracy during the process to make changes and adjust the product.