All projects

Mobile, desktop & console

TaskManager · native Android app

A native Android app in Kotlin to create, edit and track daily tasks, with on-device storage and an MVVM architecture.

  • Individual project
layers: view, ViewModel, Repository, Room
4
statuses: pending, completed
2

01Starting point

Context & mission

The problem

A task app must be simple on screen and reliable underneath: screen rotation, data kept, code easy to evolve.

The mission

Build a clean native app, with a strict separation between interface, logic and data.

My role

Designed and built on my own.

02Execution

What I did

  1. Task management

    Create, edit, delete; title, description, optional date and pending or completed status.

  2. Local persistence

    Data stored on the device with Room, on top of SQLite.

  3. MVVM and Repository

    ViewModels that survive configuration changes; a Repository that centralises data access.

  4. Interface

    XML layouts and Material Design; build with Gradle Kotlin DSL.

03Design

Architecture

MVVM with a Repository: the view observes the ViewModel, the ViewModel goes through the Repository, the Repository reads and writes Room.

MVVM architecture
  1. ViewXML · Material
  2. ViewModelLifecycle-aware
  3. Repository
  4. Room
  5. SQLite

04Impact

Results

  • A native app that keeps its data on the device.
  • Split code, easy to evolve.

05Wrap-up

Takeaways

What this project proves

That I apply the recommended Android patterns instead of all-in-one activity code.

Learnings and next steps

Reminders and notifications not implemented yet.

06Technology

Full stack

  • Kotlin
  • Android Jetpack
  • ViewModel
  • Room
  • SQLite
  • MVVM
  • RecyclerView
  • Material Design
  • Gradle Kotlin DSL