Flutter
Dynamic application
In as part of my international semester in Madrid, where I'm doing the second part of my second year at EPITA, I've had the opportunity to take a course at the Universidad Politécnica de Madrid (UPM). This project, GreenWatch, was developed for the MAD course. It represents a practical application of the skills acquired, with a focus on developing a cross-platform mobile application using Flutter. This experience is part of an immersive learning approach to modern mobile technologies and team-based project management in an international context.
Working in a team of three students, our mission was to design and develop a mobile application using the Flutter framework. We chose to create GreenWatch, an application that aims to help users monitor and be informed about the environmental impacts of droughts and floods. GreenWatch aims to provide real-time data and predictive analysis, enabling individuals, communities and organisations to stay one step ahead in managing water-related natural disasters and always be prepared for the unexpected.
GreenWatch was developed over a period of six weeks. One of the main challenges was to integrate a wide range of complex, interconnected functionalities into a coherent, user-friendly application using Flutter, a framework with which we were unfamiliar.
Faced with the challenges inherent in developing GreenWatch, including the integration of
multiple technologies and the need to create an application that is both functional and intuitive, we have
adopted a proactive and methodical approach to maximise our efficiency and ensure constant progress.
From the outset of the project, we sought to anticipate future needs and potential complexity by studying
the overall architecture of the application in advance. This meant understanding how key functionalities
such as interactive mapping (flutter_map), user authentication (Firebase), local data persistence (SQFlite)
and external API calls would interact. This preparation phase enabled us to structure our work, define the
interfaces between modules and approach development with a clear vision of the objectives to be achieved for
each component.
The autonomy required for this project encouraged us to develop a particularly independent learning and
problem-solving style. We actively used various online resources, explored the official Flutter
documentation and specific packages in detail, analysed code examples and experimented with different
solutions to overcome the technical obstacles we encountered. This iterative approach enabled us not only to
solve the problems, but also to deepen our understanding of the subtleties of development with Flutter and
its ecosystem.
At the same time, we focused on effective team collaboration and agile project management. We divided tasks
according to skills and interests, while maintaining regular communication to ensure consistency. The use of
Git
and GitHub was crucial for managing versions, facilitating collaboration and integrating everyone's
contributions in an orderly fashion. By adopting an iterative development approach, with regular
development,
testing and integration phases, we were able to optimise our time and guarantee the application's
progressive
robustness.
Thanks to our methodical approach, perseverance in the face of technical challenges and
effective collaboration, we successfully completed the development of GreenWatch. The project was an
extremely rewarding learning experience, enabling us to consolidate and extend our skills in mobile
development with Flutter.
This project was a valuable opportunity to acquire and strengthen essential skills:
Firstly, we have developed an in-depth understanding of the Flutter framework and its ecosystem, including
state management, navigation, integration of third-party packages (such as flutter_map, sqflite, Firebase
services) and building responsive, cross-platform user interfaces.
Secondly, we have learnt to adapt quickly to new technologies, to seek solutions independently to complex
problems, and to debug our code efficiently. Integrating external services and managing local data have
particularly tested our ability to solve problems.
Finally, this experience has considerably improved our understanding of team-based project management in a
demanding technological context. We refined our methods of communication, task allocation and use of
versioning tools such as Git, while strengthening our team spirit and our ability to work under pressure to
meet deadlines.
In conclusion, the GreenWatch project, carried out as part of our international semester at UPM, was a
complete and stimulating immersion in the development of modern mobile applications. It enabled us not only
to deliver a functional application that met our initial objectives, but also to gain confidence in our
technical abilities and acquire valuable skills that will undoubtedly be useful for our future technological
projects and professional careers.The project's source code is
available here: GitHub - Flutter App.