A lightweight and user-friendly Personal Diary Android application built using Kotlin.
This app allows users to record daily thoughts, moods, and moments through clean and structured journal entries.
Perfect for maintaining digital journals, tracking emotional wellness, and preserving daily memories.
Create a simple yet powerful personal diary experience that enables users to document their daily lives with ease.
The app provides an intuitive interface for creating, viewing, and managing journal entries with mood tracking, timestamps, and organized storage β all without cloud sync or external dependencies.
- Create New Entries: Quick access via Floating Action Button
- View All Entries: Organized in reverse chronological order
- Detailed Entry View: Full content display with mood indicators
- Timestamp Tracking: Auto-generated and editable
- Emoji-based mood selector
- Visual mood indicators in entry list and detail view
- Supports moods like happy, sad, angry, neutral, etc.
- Smooth RecyclerView with dynamic list
- Clean, distraction-free UI
- Responsive layout optimized across devices
- Simple, intuitive navigation
| Component | Purpose |
|---|---|
| Kotlin | Core logic and activities |
| Android Studio | IDE and build tools |
| RecyclerView | Efficient list rendering |
| XML Layouts | UI templates and design |
| Intents | Screen navigation & data passing |
| Data Classes | Entry model structure |
- Android Studio (latest recommended)
- Android SDK (API Level 21+)
- Kotlin support
- Emulator or Android device
git clone https://github.com/yourusername/personal-diary-app.git
cd personal-diary-app- Launch Android Studio
- Select Open an Existing Project
- Choose the cloned directory
- Allow Gradle to sync
- Build β Make Project
- Run β Run 'app'
- Open the app
- Tap the + button
- Enter:
- Title / Content
- Date & Time
- Mood
- Save the entry
- Scroll through the journal list
- Tap an entry to open details
- View full content, timestamp, and mood
[Journal List Screen]
β (Tap + button)
[Add Entry Screen]
β (Save entry)
[Back to Journal List]
β (Tap any entry)
[View Entry Details]
app/
βββ java/com/example/diaryapp/
β βββ JournalListActivity.kt
β βββ AddEntryActivity.kt
β βββ ViewEntryActivity.kt
β βββ JournalListAdapter.kt
β βββ JournalEntry.kt
β βββ EntryRepository.kt
βββ res/layout/
βββ activity_journal_list.xml
βββ activity_add_entry.xml
βββ activity_view_entry.xml
βββ item_entry.xml
| Activity | Description |
|---|---|
| JournalListActivity | Main list of all entries |
| AddEntryActivity | Create new journal entry |
| ViewEntryActivity | View full entry details |
data class JournalEntry(
val id: String,
val title: String,
val content: String,
val timestamp: Long,
val mood: String
)EntryRepository manages the in-memory storage:
- Add entries
- Retrieve entries
- List all entries
JournalListAdapter:
- Binds entry data to list
- Handles click events
- Provides smooth scrolling
- Emoji-based mood indicators
- Repository pattern for clean data management
- Intent-based navigation
- View Binding for efficient view access
- Reverse chronological sorting
- Modular architecture
| Layout | Purpose |
|---|---|
| activity_journal_list.xml | List all entries |
| activity_add_entry.xml | Add new entry |
| activity_view_entry.xml | Full entry information |
| item_entry.xml | Row template for list items |
- Minimal UI
- Pleasant spacing & typography
- Mood-driven visual elements
- Easy-to-navigate screens
- Launch β Loads all entries
- Add Entry β User inputs details
- Save β Entry stored in repository
- UI Refresh β Latest entry shown
- Tap Item β Open detailed view
User Input β AddEntryActivity β EntryRepository β JournalListActivity
β
ViewEntryActivity
- Persistent storage (Room database)
- Search functionality
- Tags / categories
- Image attachments
- Export to PDF / text
- PIN / biometric lock
- Dark mode
- Calendar view
- Mood statistics
- Cloud sync (optional)
- Currently uses in-memory only
- Data clears after app restarts
- 100% offline
- No analytics
- No permissions required
- Minimum: Android 5.0 (API 21)
- Target: Latest Android release
fork β create branch β commit β push β open PR- Follow Kotlin conventions
- Keep architecture clean
- Test across Android versions
- Update documentation
Murali Krishna M
Android Development | Kotlin | UI/UX
Email: murali.krishna1591@gmail.com
If you found this project useful, please star this repository!