
Montebravo Investimentos
#The Challenge: Developing for multiple platforms with one code
DISCLAIMER: To comply with my non-disclosure agreement. I have obfuscated confidential information in this case study. All information in this case study is my own and does not necessarily reflect the views of Montebravo.
The company
Montebravo Investments is a Brazilian investment company specializing in private equity and venture capital.
My position
As part of Montebravo Investments, I have the challenge of developing an app for over-evaluated customers to see their investments, business opportunities, receive morning calls, read articles from their advisors, and other features. The real challenge here was to develop for Android and iOS with the same code. In this case, we used Flutter with Dart as the programming language.


The methodolody and the time
The methodoly used to the MVP considering the software engineering was the scrum model and the deadline proposed was 4 months of development. So, as the model was an agile methodology I will describe how was the evolution considering the following steps: Requirements & Analyse, Design, Implementation, Tests and Deploy.
Requirements & Analyse
We started the project understand the requirements and the advisors necessities. Our requirement analyst met with CTO, Head of technology, Head of investiment, product owners, managers and supervisors to collect all data necessary were necessary to help a advisor increase the money management of their customers. After the analyst brought the requirements, there were some brainstorm meetings to sharpy the ideas and analyse them.
Design
With all the ideas, requirements and necessities the designing process started using figma as platform of creation for the screens and user interface components. The firsts things designed were the definition of the design system where were included fonts, colors, icons and buttons. After that we had some compositions of user interface components like lists, entire components and by the end entire screens and navigations. While the designer was drawing the screens, the developers were understand the business rules and making more detailed analysis on the requirements.
Implementation
The implementation started with the mobile developers building the following things:
Design system
Components
Screens
Navigations
Integration with APIs using mocks while the backend was not ready.
States
Unit tests and widget tests
In the major part of these process we built bussines rules, strutured the architecture (MVVM), bind the datas using databinding in the beginning of the project.
Tests
While the developers were writing the code, the Q&A's were creating fake data to test the app in the environment of developement and homologation.
Deploy
The deploy process consists of person responsible to generate the version to the store. This person needs to run a local script that will remove cache from old files or third libraries, sign the app with the apropriated keys and credentials, format the code, verify if the tests are ok and by the end... generate a version to the store. The process to upload the .app or .ipa to the store is manual yet, but we are already working in a model to automate it.
