CS212
Mobile Development

Faculty
Carlos Mota
Android GDE,Android Tech Lead & KMP Architect at AVANCEESoftware
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
Are you looking for a comprehensive course that guides you step-by-step through developing Android applications from scratch? Today, over three billion active Android devices—including smartphones, tablets, watches, TVs, and even cars—present incredible opportunities for developers.
This course will introduce you to the fundamentals of Android development and progressively lead you to build complete, feature-rich applications. You'll learn core concepts, use cutting-edge libraries, and apply best practices in real-world scenarios. By the end of this course, you'll be prepared to deploy apps across multiple Android devices, anywhere and everywhere.
Ready to begin your Android development journey? Let's get started!
Learning highlights
- Create, build, and publish an Android application.
- Use Jetpack Compose to build modern, responsive UIs.
- Make network requests and parse the responses.
- Use local storage to persist data.
Course outline
15 classes
Welcome to (Android) Mobile Development
Course overview.
Getting to Know Android:
- * A brief history of Android.
- * Exploring the Android Ecosystem.
- How to Develop an App: An Overview.
- * Comparing Development Frameworks (Native, Cross-platform, Web).
Setting Up Your Development Environment:
- * Installing and Configuring Android Studio.
- * Configuring GitHub and Creating Your Repository.
Hello (Kotlin) World!
Android Architecture Fundamentals:
- *Activities.
- * Services.
- * Intents.
- *Broadcast Receivers.
- * Android APIs Overview.
- Introduction to Kotlin:
- * Kotlin Basics and Syntax.
* Kotlin Programming Fundamentals.
- Hands-on: Developing with Kotlin.
Foundation I
Getting familiar with Android Studio:
- * App development lifecycle.
- * Git Integration.
- * Leveraging AI tools for development.
- * Debugging your application.
Building app layouts:
* Introduction to Jetpack Compose.
Libraries and Design Principles:
* Overview of Jetpack Libraries and popular third-party libraries.
* Material Design basics.
Hands-on: Creating your first Android app.
Foundation II
Jetpack Compose UI Components:
- * Layout Containers: Column, Row, LazyColumn, LazyRow.
- * Visual Elements: Image, Icon, Text, Box, Button.
- * Text Inputs: OutlinedTextField, TextField.
- * Scaffold: Managing Layout Structure.
Implementing UI to display data:
- * Creating and populating lists.
Foundation III
Understanding and managing app state. Lifecycle awareness. Defining your app architecture:
* Introduction to MVVM (Model-View-ViewModel).
- * Using ViewModels and LiveData.
- * Dependency Injection (DI) with Hilt.
- Displaying data:
* Project structure.
- * Loading data locally.
- * Data serialisation and deserialisation.
Office hours:
- * Project overview and guidance.
Connecting to the Internet
Using APIs (Unsplash API):
- * Introduction to Unsplash API.
- * Creating an account.
- * Exploring the API.
- * Internet permissions in Android Apps.
Network operations in Android:
- * Making HTTP requests and parsing JSON responses.
- * Managing asynchronous tasks.
- * Handling large data sets with pagination.
Structured Concurrency:
- * Introduction to Coroutines.
Creating a second screen.
Navigation
Fetching and displaying images:
- * Using Coil library.
Implementing dynamic data loading:
* Refresh actions
- * Implementing Swipe-to-Refresh
- Building and Managing Multiple Screens:
- * Creating a new screen.
* Navigating between screens
Handling (User) Input
Handling user input.
- Saving and managing files locally:
- * Scoped Storage in Android.
* Using the MediaStore API.
- * Handling permissions.
- Interacting with third-party apps:
- * Explicit vs. Implicit Intents.
- * Opening media in external apps (e.g., Gallery).
Design System and Animations
Material 3.
Customising app appearance:
- * Creating and managing a Design System.
- * Adding custom fonts.
- * Defining themes and color schemes.
Animations in Jetpack Compose:
- * Animating Composables.
- * Practical animation examples.
Firebase I
Getting to know Firebase:
- * Overview of Firebase capabilities.
Integrating Firebase into your project:
- * Configuring Firebase console and Android integration.
Firebase Studio:
- * Using Firebase services.
Local Storage
Persistent Storage:
- * Introduction to SharedPreferences.
* Room Database.
Data management:
- * Ensuring offline support for your app.
Office hours
- * Projects overview and guidance.
Firebase II
Deep dive into Firebase Services:
- * Real-time Databases.
- * Cloud Firestore Usage.
- * Crash Reporting with Crashlytics.
- * User Authentication with Firebase Auth.
- * Integrating Gemini into your projects.
Testing
Ensuring app quality through testing:
- * Types of tests (Unit, Integration, UI Tests).
- * Testing frameworks (JUnit, Espresso).
- * Hands-on: Creating and executing tests.
Publishing your app
Google Play Console:
- * Creating your app's store listing.
- * Managing testing tracks: Alpha, Beta, Production.
- * Publishing your app to production.
Office hours:
- * Preparing for final presentation.
What's next?
Key takeaways and course review.
Where to go from here?
- * Resources worth exploring.
- * What should you develop next?
- * Other Android platforms to target.
Presentation Day.
Course materials
Media
Prerequisites
You’ll use Kotlin throughout this course. Although it’s not mandatory to be familiar with the language, existing programming skills are necessary.
There’s no problem in case you’re not familiar with Kotlin, in the first set of classes you’ll learn the language as well as receive additional resources to help you master it.
Methodology
Throughout this course, you'll build an Android application from the ground up, step by step, until it’s ready for publication on the Google Play Store. Each class will focus on adding a specific new feature.
Lectures will typically have two parts:
* Theory and Concepts: You'll first learn the key concepts required for implementing each feature, including Kotlin language-specific features, APIs, or relevant Android libraries.
* Hands-on Application: You'll immediately apply this knowledge by adding new features to your app.
To reinforce your learning, each lecture will be followed by homework assignments and quizzes related directly to the concepts taught. Homework may involve exercises focused on Kotlin, creating smaller app features, or tasks exploring topics discussed during class.
Additionally, you'll have the flexibility to decide on the main app project you'll develop during the course or select from a list of suggestions.
Grading
Carlos Mota is an Android GDE. He can often be found working on Android applications written in Kotlin or developing them using Kotlin Multiplatform. Enthusiastic about new technology, he consistently strives to complete the final 20% of his side projects — the part that often feels the most challenging.
He enjoys sharing his knowledge with others, whether through talks, teaching, writing, or over a cold beer in the nearest pub. As a GDG Coimbra organiser and Kotlin evangelist, he also has a passion for travel, photography, space, and the occasional run.
See full profileApply for this course
Mobile Development
by Carlos Mota
Total hours
45 Hours
Dates
Jun 08 - Jun 26, 2026
Fee for single course
€1500
Fee for degree students
€750
How to secure your spot
Complete the form below to kickstart your application
Schedule your Harbour.Space interview
If successful, get ready to join us on campus
FAQ
Will I receive a certificate after completion?
Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.
Do I need a visa?
This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.
Can I get a discount?
Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.