An Android travel diary with on-device notes and photos, interactive maps, and JSON backups.
Lunan is a self-directed Android app for keeping a private travel diary. You drop pins on an interactive map, attach photos, notes, categories, and ratings, and revisit saved entries — all stored on your device, with no account required.
I wanted a travel journal that retained personal memories on the device without requiring an account. Saved diary entries, notes, and attached photos remain available offline. Loading map tiles and resolving coordinates to place names require an internet connection.
I designed and built Lunan solo, from the map and data model to the UI, theming, and the backup and restore flow.
React Native and Expo provide the cross-platform app foundation. React Navigation manages screen flow, Leaflet and OpenStreetMap provide the map, AsyncStorage persists diary data, and Expo location and image-picker APIs support native device features.
The core constraint was keeping a map-based travel diary useful without an account or dependable connection. I used an offline-first data model with AsyncStorage, retained user-created content on the device, and added JSON export and import so data could be backed up or moved.
The source repository and application screenshots are available for review. The current project material does not include a formal usability score or performance benchmark, so no unsupported metric is claimed.
Lunan strengthened my experience with offline mobile state, location and media permissions, map-based interaction, and designing import and export flows around user-owned data.