Free forever: 5 resume reviews + 10 AI actions every month. Claim your free spot →
ReachRole

Android project

Build an offline-first notes app with sync and conflict handling

Notes that work with the network off and sync visibly when it returns — including what happens when the same note changed in both places.

9-12 hoursEstimated time
IntermediateDifficulty
5Graded criteria
RepoWhat you submit

The brief

Build a notes app that works fully offline using Room for storage, with search over local notes. Add sync to a mock remote API when connectivity returns, and handle the case where a note was edited offline while it also changed remotely — a simple last-write-wins strategy is fine, but the user must see a visible "updated elsewhere" indicator, not a silent overwrite.

Suggested stack

Kotlin Jetpack Compose Room A mock or sample remote API

What you hand in

  • A public GitHub repository with the app and a README
  • The README explains the sync strategy and how conflicts are surfaced to the user
  • A short note on how offline mode was tested (e.g. airplane mode)

Grading happens against the rubric below, so read it before you start — not after.

How this is graded

Published in advance and weighted out of 100. Nothing here is a surprise.

Offline-first correctness 30 pts

The app is fully usable — create, edit, search — with no network connection at all, proven by testing in airplane mode.

Sync correctness on reconnection 25 pts

Reconnecting syncs pending local changes without duplicating or losing notes.

Visible conflict handling 20 pts

When a note changed both locally and remotely, the user sees an indicator rather than one version silently overwriting the other with no trace.

Local search correctness 15 pts

Search returns correct results against locally stored notes, including while offline.

Finish 10 pts

No console errors or crashes, no broken layout, no leftover placeholder text or commented-out code.

Why this project is worth your weekend

  • Offline-first is a real, common requirement — connectivity is genuinely spotty for a large share of Android's actual user base — and most tutorials skip straight to always-online apps.
  • Sync conflicts are where real apps silently lose user data, and handling them visibly is a mid-level skill that's rarely taught.
  • This can't be faked by hardcoding a demo path — an interviewer can turn off airplane mode mid-demo and see if it actually holds up.

Where people lose points

  • An app that appears to work offline in a demo but actually hangs or crashes waiting on a network call with no timeout.
  • Sync that overwrites a local edit with the remote version with no warning shown to the user.
  • No debounce on sync, so every keystroke or reconnect event triggers a redundant sync call.

Built it? Get it scored against this rubric.

Submit your work and get a score on every criterion above, written feedback, and three resume bullets you can use straight away.

Submit for grading Free to start. Grading uses one AI action.