Overview
A full-featured native Android photo album manager that handles the complete lifecycle of organizing a personal photo library on-device. Users create albums, add photos from device storage, assign Location and Person tags to each photo, search across all albums using tag filters, and view photos in a slideshow. All data is persisted locally via Java serialization — no cloud, no backend.
Architecture & Approach
Built entirely in Java targeting Android SDK 29 with no third-party libraries beyond the standard AndroidX stack (RecyclerView, Material Design, ConstraintLayout). The app uses explicit Intents with Serializable extras to pass album and photo data between 11 Activities: MainActivity, AlbumViewerActivity, PhotoDisplayActivity, SlideShowActivity, SearchActivity, SearchResultActivity, SearchResultAlbumsActivity, TagManagerActivity, EditTagActivity, EditAlbumActivity, and AddAlbumActivity. The SearchActivity populates AutoCompleteTextView fields by scanning all existing tags across all albums, then filters photos using AND/OR logic on Location and Person tag pairs. File I/O via FileController handles serialization and deserialization of the full album model to internal app storage.
Results & Outcome
Delivered a fully functional multi-screen Android app with clean Activity navigation, working tag-based search with live autocomplete, and persistent on-device storage. The app correctly handles edge cases: album renaming with duplicate detection, photo deletion with list re-selection, and tag editing without data loss.