Skip to main content
Back to all projects
2024Mobile DevelopmentJava DevelopmentAcademic Projects

Android Mobile Applications

A collection of Android apps built with Java and Android Studio — multi-screen navigation, forms, pricing calculators, discounts and SMS functionality.

Abstract illustration of mobile phone screens with form elements

Technology stack

  • Java
  • Android Studio
  • Android SDK
  • XML layouts

My role

Designed and built each application individually — layouts, activity logic and device features.

Key features

  • Multi-screen apps with activity navigation
  • Forms with user input validation
  • Spinners, image views and interactive components
  • Pricing calculations with discount options
  • SMS functionality
  • XML-based responsive layouts

Overview

This is a set of Android applications built with Java and Android Studio during my mobile development coursework. Individually they are compact apps; together they cover the core of native Android development — activities and navigation, forms and validation, calculations, media and device features like SMS.

What the apps cover

  • Multi-screen navigation: activities passing data via intents, with back-stack behaviour that matches user expectations
  • Forms and input: text fields, spinners and validation, with clear error states
  • Pricing calculators: apps computing totals with configurable discount options
  • SMS functionality: composing and sending messages from within an app, with correct permission handling
  • Interface work: XML layouts using images, styled components and responsive structure

Decisions and trade-offs

  • Java over Kotlin: the coursework targeted Java, which also reinforced the OOP foundations shared with my other Java projects.
  • Standard SDK components: sticking to platform widgets kept the apps dependable and focused the work on app architecture rather than UI libraries.

Lessons learned

Mobile development punishes sloppy state handling — rotation, backgrounding and the activity lifecycle surface bugs that desktop code never hits. These projects built the habit of thinking about where state lives and what survives a lifecycle event.

Future improvements

  • Rebuilding one of the apps in Kotlin with Jetpack Compose for comparison
  • Adding local persistence with Room

Technical challenges

  • Managing state and data passing between activities
  • Building layouts that adapt to different screen sizes
  • Handling Android permissions correctly for SMS features

What I learned

  • The Android activity lifecycle and how it shapes app structure
  • Separating layout (XML) from behaviour (Java) cleanly
  • Working with device capabilities and runtime permissions