Programming Mobile Applications (Autumn 2023)


This course is a hands-on introduction to programming of mobile applications. Building on basic JavaScript programming skills, React Native is introduced as the preferred framework for cross-platform mobile application development. The concept of Location-Based-Services is also introduced in combination with React Native and is explored hands-on, in combination with programming hardware components on the phone (e.g. camera component). Student work revolves around small weekly individual tasks and readings of React Native documentation (online resources and provided course material) and a group project (3-4 students) that will be carried out in the second half of the course.

The course has two main parts:

The first part of the course provides a hands-on introduction to basic concepts and tools in support of smartphone application programming. In this first part, students, building on prior JavaScript programming knowledge, will work with React Native as the framework for developing cross-platform smartphone applications. They will engage in a series of smaller assignments progressing towards increasingly more advanced parts of the React Native (RN) framework. In this part three individual assignments need to be completed.

The second part of the course is focused on gradually introducing Location-Based Services (LBS), Geolocation/Geofencing, and ways to program/control hardware components (e.g. GPS, camera, accelerometer), aiming to expand the possibilities of interacting with mobile devices. In this second half of the course a group project (3-4 students) will be conducted focused on programming and implementing a React Native application, through exploring and demonstrating knowledge on working with main RN components, navigation, LBS and programming of smartphone hardware components. In this latter part of the course, the gradual development of the group project will emphasise the construction of mobile app prototypes as vehicles for discussing the process of programming a mobile application with React Native as a tool, through components as building blocks and blackboxing processes.

Overall, students will train how to prototype with code and slowly develop their ability to analyse, discuss, and make appropriate design decisions when prototyping a mobile app, starting from code as a design material.

Fabricio Batista Narcizo
Fabricio Batista Narcizo
Part-Time Lecturer

My research interests include eye tracking, human-computer interaction, computer vision, machine learning, and data analysis.