Skip to content

🎧 A mindful iOS app for daily reflection and AI-powered emotional support. Take 3 minutes daily to reflect, record, and receive empathetic responses.

License

Notifications You must be signed in to change notification settings

codeanurag/iListenPro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

iListenPro 🎧

iOS Swift SwiftUI License

A mindful iOS app for daily reflection and AI-powered emotional support

Take 3 minutes daily to reflect, record, and receive empathetic AI responses

Features β€’ App Flow β€’ Installation β€’ Usage β€’ Architecture


🌟 Features

πŸŽ™οΈ Voice-First Reflection

  • 3-minute guided sessions with intuitive voice recording
  • Real-time countdown timer with pause/resume functionality
  • Speech-to-text transcription using Apple's Speech framework
  • Hands-free experience for natural, flowing conversations

πŸ€– AI-Powered Empathy

  • OpenAI GPT-3.5-turbo integration for contextual responses
  • Empathetic listener personality trained for emotional support
  • Text-to-speech synthesis for audio feedback
  • Personalized encouragement based on your reflections

πŸ“± Thoughtful User Experience

  • Beautiful dark theme designed for evening reflection
  • Onboarding flow for first-time users
  • Session history with searchable past conversations
  • Daily notifications (9 PM reminder) for consistent habits

πŸ”’ Privacy & Security

  • Local data storage with encrypted session persistence
  • Secure API key management through environment variables
  • No data tracking - your reflections stay private
  • Granular permissions for microphone and notifications

πŸ“± App Flow

Main Features Overview

  • 🏠 Home Screen: Simple "How was your day?" prompt with start button
  • πŸŽ™οΈ Recording Session: 3-minute timer with pause/resume controls
  • πŸ€– AI Reflection: Personalized empathetic response display
  • πŸ“š Session History: Browse and review past conversations

πŸ“Έ Screenshots coming soon! Feel free to contribute by adding actual app screenshots to the docs/ folder.

πŸš€ Installation

Prerequisites

  • Xcode 15.0+ (iOS 15.0+ deployment target)
  • macOS 12.0+ for development
  • OpenAI API Account (Get one here)

Setup Steps

  1. Clone the repository

    git clone https://github.com/codeanurag/iListenPro.git
    cd iListenPro
  2. Open in Xcode

    open iListenPro.xcodeproj
  3. Configure OpenAI API Key

    • Get your API key from OpenAI Platform
    • In Xcode: Product β†’ Scheme β†’ Edit Scheme...
    • Go to Run β†’ Environment Variables
    • Add: OPENAI_API_KEY = your_api_key_here
  4. Build and Run

    • Select your target device/simulator
    • Press Cmd + R to build and run

πŸ’‘ Usage

Getting Started

  1. Launch the app and complete the onboarding flow
  2. Grant permissions for microphone and notifications
  3. Start your first session by tapping "Start Conversation"

Daily Reflection Flow

  1. Record: Share your thoughts for up to 3 minutes
  2. Process: AI transcribes and generates an empathetic response
  3. Reflect: Read and listen to your personalized feedback
  4. Review: Access your conversation history anytime

Tips for Best Experience

  • Find a quiet space for clear audio recording
  • Speak naturally - the AI is trained to understand conversational tone
  • Use daily notifications to build a consistent reflection habit
  • Review past sessions to track your emotional journey

πŸ—οΈ Architecture

Tech Stack

  • SwiftUI - Modern declarative UI framework
  • Combine - Reactive programming and data flow
  • AVFoundation - Audio recording and playback
  • Speech Framework - Speech-to-text transcription
  • UserNotifications - Daily reminder system
  • OpenAI API - AI-powered response generation

Project Structure

iListenPro/
β”œβ”€β”€ πŸ“± Views/
β”‚   β”œβ”€β”€ ContentView.swift           # Main app interface
β”‚   β”œβ”€β”€ OnboardingView.swift        # First-time user flow
β”‚   β”œβ”€β”€ SessionListView.swift       # Conversation history
β”‚   β”œβ”€β”€ SessionDetailView.swift     # Individual session view
β”‚   β”œβ”€β”€ ReflectionOverlay.swift     # AI response display
β”‚   └── LoadingOverlay.swift        # Processing states
β”œβ”€β”€ 🧠 ViewModels/
β”‚   └── SessionViewModel.swift      # Core business logic
β”œβ”€β”€ πŸ“¦ Models/
β”‚   β”œβ”€β”€ Session.swift              # Data models
β”‚   β”œβ”€β”€ SessionStore.swift         # Persistence layer
β”‚   β”œβ”€β”€ AudioRecorder.swift        # Recording functionality
β”‚   β”œβ”€β”€ SpeechSynthesizer.swift    # Text-to-speech
β”‚   └── OpenAIChatResponse.swift   # API response models
β”œβ”€β”€ 🎨 Utilities/
β”‚   β”œβ”€β”€ CircularCountdownView.swift # Timer UI component
β”‚   β”œβ”€β”€ RecordingControlsView.swift # Recording interface
β”‚   β”œβ”€β”€ PrimaryButtonStyle.swift   # Custom button styling
β”‚   └── SessionUIState.swift       # UI state management
└── πŸ“‹ Info.plist                  # App configuration

Key Design Patterns

  • MVVM Architecture for clean separation of concerns
  • Reactive Programming with Combine publishers
  • Dependency Injection through environment objects
  • State Management with enum-based UI states

πŸ”§ Configuration

Environment Variables

  • OPENAI_API_KEY - Your OpenAI API key for AI responses

Customization Options

  • Session Duration: Modify duration in SessionViewModel (default: 180 seconds)
  • Notification Time: Update dateComponents.hour in scheduleReminder() (default: 21:00)
  • AI Model: Change model parameter in API request (default: gpt-3.5-turbo)

πŸ›‘οΈ Privacy & Security

Data Protection

  • Local Storage: All conversations stored locally using iOS secure storage
  • No Cloud Sync: Your data never leaves your device (except for AI processing)
  • Encrypted API Keys: Secure environment variable management
  • Session Cleanup: Automatic audio file cleanup after processing

Permissions

  • Microphone: Required for voice recording functionality
  • Notifications: Optional for daily reflection reminders
  • Speech Recognition: Required for transcription features

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow Swift style guidelines
  • Write unit tests for new features
  • Update documentation for API changes
  • Test on multiple iOS versions

πŸ“‹ Requirements

  • iOS 15.0+
  • Xcode 15.0+
  • Swift 5.0+
  • OpenAI API Key

🚧 Roadmap

Planned Features

  • Mood Tracking - Visual mood trends over time
  • Custom Prompts - Personalized reflection questions
  • Export Options - Share or backup your sessions
  • Widget Support - Home screen quick access
  • Dark/Light Theme - System appearance adaptation
  • Accessibility - VoiceOver and Dynamic Type support

Known Issues

  • Background recording limitations on iOS
  • Network connectivity requirements for AI responses

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • OpenAI for providing the GPT API
  • Apple for the Speech and AVFoundation frameworks
  • SwiftUI Community for inspiration and best practices

πŸ“ž Support

Have questions or need help?


Made with ❀️ for mindful reflection

"A few minutes of self-care can go a long way."

About

🎧 A mindful iOS app for daily reflection and AI-powered emotional support. Take 3 minutes daily to reflect, record, and receive empathetic responses.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages