Kies op maat

Inloggen Menu

Cross-Platform Software Development for Nature

In this minor, you will acquire the technical knowledge to create a cross-platform application that can run on desktop (Mac, Windows, Linux) and mobile (iOS, Android) platforms using Flutter (Google). You will be able to use data acquired from our partners (INGVàItalian Institute for Geophysics and Volcanology), such as seismic data, gas concentration, moisture levels, IR readings, etc... The Italian National Institute of Geophysics and Volcanology will offer us cooperation and data from their private sensors. Other partners might be available later.

The objective is to create an application that helps share and visualise this data. The application should simplify communication and understanding of the data. You will learn how to use Dart and the Flutter framework.

  • We will work on how code quality can affect the maintainability of the code base.
  • We will touch on the lifecycle of design and code production.
  • We will see how to use requirements engineering to generate code and features.
  • We will use Design Thinking to create the draft of the application interface.
  • And we will end with testing our results with users and automating some application testing in traditional “smoke testing”.

Flutter is a growing ecosystem and is appreciated more and more on the job market.

The possibility of taking advantage of multiple markets (mobile and desktop) at the same time is a precious investment for many companies.

In the first period, we will focus on more basic topics to help define the problem, gradually giving more lectures/workshops and details to implement the solutions later in the course.

Relevance
We will involve professional practice from programming and design to make the production possible (scalability and maintainability of code, quality check for code design, design thinking as a framework for developing interfaces, and standards for testing and deployments as smoke testing and user testing).

Flutter is a framework (used to build the application for this course) that is becoming increasingly popular and promises a very large impact on the app market (and job market).

We will cover a wide range of subjects during the course, spanning from in-depth technical topics (design patterns, architectures, abstraction) to learning how to identify and implement user-friendly interfaces, making usability one of the key criteria for your own app.

The content of this minor is reusable in the most modern trend on implementing interfaces (a similar approach is used in React and other web frameworks), so the general knowledge will apply to different development processes at a minimal cost.

We will involve multiple disciplines to make this happen, such as computer science, interaction design, HCI, Usability, psychology and more.

We have contact with the INGV (Italian Institute of Geophysics and Volcanology) and its researchers (we are in the process of acquiring the data of the Rotterdam environment and drought in the region, thanks to Ted Veldkamp, lecturer in climate and water, to be included in this minor).

Leerdoelen

Learning goals
The student will learn the following by the end of this course (Dublin descriptors):

  1. Knowledge and insight: The student will gain an understanding of developing cross-platform code for applications. Additionally, the student will be able to investigate current design challenges in interactive applications across different platforms. The students will develop knowledge and insight in one or more topics within the domain and programming field that relate to the themes of this minor (usability, code quality, and user testing).
  2. Apply knowledge and insight: Through a demonstration, students demonstrate their ability to transfer technical knowledge acquired earlier in the course to a new application domain (cross-platform application) and design to develop innovative solutions.
  3. Judgment: The student will investigate a design problem by researching and analysing all relevant components and aspects they select, based on their own choice of the (real-life) issue and the level of importance they assign to exploring these aspects, to test and verify. They will then evaluate the outcomes through practical experimentation.
  4. Communication: 
    • The students will have to communicate effectively in the group environment.
    • The students will be able to convincingly present their own innovative solution, e.g. through an elevator pitch or short demo, so that the audience of experts not only gains substantive insight into the technology and the important aspects of the solution but will also be willing to continue developing this solution in a follow-up iteration.
    • The students will need to effectively apply communication skills in the provided documents, conveying the core information for each task/document.

    5. Learning skills: The student will have to demonstrate initiative and autonomy by studying the research independently in the application domain.

Content and program

List of content:

  • Programming for cross-platform development (write once, run anywhere, on desktop or mobile) using the Flutter framework;
  • Requirements engineering;
  • Dart programming language;
  • Code design (architecture and design patterns);
  • Code automated testing (smoke testing);
  • Design thinking framework (for ideation of the interface);
  • Usability of interfaces and usability evaluation;
  • Quality and maintainability for cross-platform applications;
  • User testing.

Being a project-oriented course, practice and theory will be integrated in the development. The progression of the course will sustain the autonomy and investigative capacity of the students, stimulating gradually independence and proactive learning. While in the first half of the course, more direct lessons will be given, in the second, we will offer workshops on demand and coaching on the developed project, iterating and stimulating reflection on each resulting iteration. Because many complexities can arise during the development, the student will need to evaluate their own work critically and justify the result obtained, and in case it is not as good as they wanted, they will have to analyse the usability result and propose possible updates for the future. The student will work in small groups, fostering tight cooperation and will be encouraged to share their own finding with the other participants of the course. Over that the frequent public presentations, they will stimulate each other to reflect on possible improvements and proactive participation in asking each other’s key questions.

Ingangseisen

To ensure a rewarding and successful learning experience for all participants, we are seeking students with a strong foundation in advanced programming concepts (such as, but not limited to, polymorphism, type systems, basics of design patterns, and higher-order functions). Given the fast-paced nature of the period, the steep learning curve for Flutter development, and the limited course duration, prior experience with reactive frameworks would be a significant advantage.

Prerequisites: Object-oriented design and programming in any high-level language (C#, C++, Java, etc. Python for scripting does not count). Knowledge of polymorphism, composition, encapsulation, type systems, basics of design patterns, and higher-order functions is required. We are particularly interested in students who are self-motivated and capable of independent learning. Most of our course will be project-based, offering ample opportunities for hands-on exploration. If you are confident in your programming abilities and eager to learn, we encourage you to apply.
Students from the last two years of Semester 6 who have chosen the nature/volcanology track are not eligible to follow this course.

Literatuur

Given the nature of the development, most references will be available online, and books might become “old” very quickly. All the necessary material will be provided by the teaching staff during the course. We suggest using the book “Flutter in 7 Days” (ISBN: 978-93-5551-609-1) to start with the framework.

We will also heavily rely on the material available at https://docs.flutter.dev/ and connected tutorials, recipes, and examples. We will examine example websites to gain inspiration and provide constructive criticism, such as https://www.ics-c.epos-eu.org/ (from which you can extract data for your project). Throughout the course, we will offer contextual references in the form of links to websites or videos (e.g., https://www.youtube.com/@enricotartarotti).

Rooster

The minor will take place in the first semester (OP1 and OP2).

Contact time will be about 20h per week (work-in classes are part of the contact time). Rooms and location can’t be arranged in advance. The scheduling will likely assume a variance of the following pattern: 3 days 4h, 1 day 8h.

Toetsing

The course will primarily focus on project development, complemented by activities designed to build the knowledge base for the final project. Group work will play a central role in developing the project. Lectures (particularly in the introductory phase), workshops, and activities (as needed or as the course progresses) will be offered to students.

The entire programme will be based on "Learning by doing', involving practical cases that help students engage with relevant and applicable concepts. Knowledge-focused workshops will be organised to address any gaps in the students' technical knowledge. Guest lectures by experts in relevant fields will be delivered to transfer domain knowledge on themes and subjects pertinent to the final demonstration.

In addition to these, practice-based workshops, organised by participating institutes or companies, will also be included. The progress of the research will be regularly assessed through demo and review meetings, with outcomes reflected in the finalised project.

The project
Each student group will be assigned a problem (provided by the teaching staff), analyse it, and develop a tangible user interface as a solution. Throughout this process, students will go through various design stages, potentially with multiple iterations. Each group will test their solutions during the mini project phase and will present their work. Projects will be evaluated based on several aspects (design process, solution quality, testing, iterations, and the depth of complexity).

Exam
We will have formative continuous feedback sessions along the course for all goals (depending on the activity), a mid-term formative review (goals 2,3,4,5) and a single summative evaluation of the product with presentation and discussion at the end of the course (All goals).

The delivery of the product (application) will be supported by documentation about the code design choices, justification for the usability testing and the collection of the accumulated progress and history of the application design.

Aanvullende informatie

Minor Choice Week | 2–5 March 2026

Online minor information sessions
Attend an online information session for this minor! View the programme and register here.

Minor fair
This minor will be present at the minor fair. Will you join us? View the programme and register here.

Date: Thursday, 5 March 2026
Time: 4:00–7:30 p.m.
Location: Kralingse Zoom

--------------------------------------------------------------------------------------------

APPLICATION PROCESS (KOM)

Are you a student from another educational institution and would you like to follow a minor at Rotterdam University of Applied Sciences? If so, you must apply in two steps:

Step 1

  • Register for the minor of your choice via the blue Apply button. You can find this button at the top right of the minor’s page.
  • Download the learning agreement and complete it.
  • Submit this learning agreement to the examination board of your study programme.

Once the examination board has granted approval, register for the minor in Step 2 no later than 01-07-2025 at 9:00 a.m.

Step 2
After approval, register via OSIRIS Application of Rotterdam University of Applied Sciences using the link below (first create an account).
https://osiris.hr.nl/osiris_aanmeld_hrprd/Welkom.do?proces=KOM2609&opleiding=MINOR-CMI-VT 00

Part of the application process is uploading the following documents:

  • The learning agreement, signed by you and by your institution;
  • A scan or photo of your passport or ID card.

You will be informed by Rotterdam University of Applied Sciences whether your application has been approved.

In OSIRIS Application, you must also upload the Proof of Paid Tuition Fee (BBC) for the academic year in which you wish to follow the minor. This can be done from 01 May 2026 onwards. You can request the BBC from your institution after you have signed or issued an authorization for the payment of the tuition fee for the relevant academic year. You may also choose the option for your institution to send the BBC directly to collegegeld@hr.nl.

You will receive a notification from Rotterdam University of Applied Sciences once your application has been approved.