Skip to main content
ANVISoftware Solutions

Contact Manager

Beginner8-12 hours

A mobile-shaped application for storing contacts, with search and offline-tolerant local storage.

The brief

What the finished thing needs to do.

  • Add, edit and delete a contact with a name, phone number and email
  • List contacts alphabetically
  • Search by name
  • Store contacts on the device so they survive restarting the app
  • Handle being offline without losing data or showing an error state permanently

How to structure it

Separate the storage layer from the screens. Screens ask a storage module for contacts and do not know how or where they are stored.

That separation means you can start with simple local storage and later add a server without rewriting the screens.

Search filters the loaded list rather than re-reading storage on every keystroke.

Why these technologies

A dedicated storage module
Screens should not contain storage details; swapping the mechanism later should touch one file.
Local-first data
Mobile connectivity is unreliable, so working offline is the default rather than a feature.

Build it in this order

Each stage produces something that works. That matters — a project that only runs at the very end is a project people abandon.

  1. List fixed contacts

    Render a static array. Get the list and row layout working.

  2. Add a detail screen

    Navigate from the list to one contact and back.

  3. Add and edit

    A form screen used for both, with validation.

  4. Add local persistence

    Behind a storage module with a small, clear interface.

  5. Add search

    Filter the in-memory list as the user types.

  6. Handle deletion

    Confirm before deleting, since it is irreversible.

Done means

How to know it is finished

Check each of these before moving on. If one fails, the project is not done yet — and that is useful information rather than a setback.

  • Contacts survive closing and reopening the application
  • Search narrows the list responsively
  • Adding and editing use the same validated form
  • No screen contains direct storage calls

If you want to go further

Extensions worth attempting

Only once the core build meets every criterion above.

  • Group the list by first letter with section headers
  • Add a photo per contact
  • Sync with a server API and reconcile conflicts
  • Store sensitive fields using platform secure storage

Have a project worth talking through?

Tell us what you're building or what's slowing your current system down. We'll give you a direct read on scope and approach.