Skip to content

4rlsbruh/VTNotes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

VTNotes ๐ŸŽค

A simple, elegant voice-to-text note-taking app for iOS that lets you quickly capture thoughts through speech and save them for later reference.

โœจ Features

Core Functionality

  • ๐ŸŽ™๏ธ Voice Recording - Tap the large microphone button to start/stop recording
  • ๐Ÿ—ฃ๏ธ Speech-to-Text - Automatic transcription using Apple's Speech Recognition framework
  • ๐Ÿ’พ Local Storage - Notes are saved securely on your device using SwiftData
  • ๐Ÿ“ Notes Library - View all your saved notes sorted by most recent first
  • ๐Ÿ” Note Preview - See the first 2-3 lines of each note in the list
  • โฐ Smart Timestamps - Relative time display (e.g., "2 hours ago", "Yesterday")

User Experience

  • Clean, Minimal UI - Focus on what matters: recording and reviewing notes
  • Simple Workflow - Record โ†’ Review โ†’ Save or Redo
  • No Distractions - No real-time transcription display while recording
  • Native iOS Design - Follows Apple's Human Interface Guidelines
  • iPad Support - Universal app works on both iPhone and iPad

๐ŸŽฌ Demo

Note: Add screenshots here showing:

  1. Main recording screen with microphone button
  2. Transcribed text with Save/Redo buttons
  3. Notes list view with timestamps
  4. Full note detail view

๐Ÿ› ๏ธ Technology Stack

  • Language: Swift 5.0
  • UI Framework: SwiftUI
  • Persistence: SwiftData
  • Speech Recognition: Apple Speech Framework
  • Audio Processing: AVFoundation
  • Minimum iOS Version: iOS 17.5+
  • Supported Devices: iPhone, iPad

๐Ÿ“‹ Requirements

  • Xcode 15.4 or later
  • iOS 17.5+ (Simulator or Device)
  • macOS 14.0+ (for development)
  • Apple Developer Account (for device testing)

๐Ÿš€ Getting Started

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/VTNotes.git
    cd VTNotes
  2. Open in Xcode

    open VTNotes.xcodeproj
  3. Build and Run

    • Select a simulator or connected device
    • Press Cmd + R or click the Run button
    • Grant microphone and speech recognition permissions when prompted

First Run

  1. Launch the app
  2. Grant permissions for:
    • Microphone Access - Required to record audio
    • Speech Recognition - Required to convert speech to text
  3. Tap the microphone button to start recording
  4. Speak your note
  5. Tap again to stop
  6. Review the transcription and tap Save or Redo

๐Ÿ“ฑ Usage

Recording a Note

  1. Open the app to see the large blue microphone button
  2. Tap the button - it turns red to indicate recording
  3. Speak clearly into your device's microphone
  4. Tap the button again to stop recording
  5. Wait ~0.5 seconds for transcription to appear

Managing Transcription

After recording stops, you'll see:

  • Full transcribed text in a scrollable view
  • Redo button (orange) - Clear and record again if transcription is incorrect
  • Save button (green) - Save the note to your library

Viewing Notes

  1. Tap the list icon (๐Ÿ“‹) in the top-right corner
  2. Browse your notes sorted by newest first
  3. Each note shows:
    • First 2-3 lines of text
    • Relative timestamp
  4. Tap any note to view the full content

Note Details

  • View complete note text (scrollable)
  • See full creation date and time
  • Text is selectable for copying
  • Use back button to return to list

๐Ÿ—๏ธ Architecture

VTNotes/
โ”œโ”€โ”€ VTNotesApp.swift              # App entry point + SwiftData configuration
โ”œโ”€โ”€ ContentView.swift             # Main recording screen
โ”œโ”€โ”€ NotesListView.swift           # Notes library with list view
โ”œโ”€โ”€ NoteDetailView.swift          # Full note view
โ”œโ”€โ”€ Note.swift                    # SwiftData model
โ”œโ”€โ”€ VoiceRecorderViewModel.swift  # Speech recognition & audio logic
โ””โ”€โ”€ Assets.xcassets/              # App icons and assets

Key Components

  • VoiceRecorderViewModel: Handles audio recording, speech recognition, and state management
  • SwiftData Integration: Automatic persistence with type-safe queries
  • Navigation: Clean NavigationStack-based navigation between screens
  • Async Audio Processing: Background transcription with completion handlers

๐Ÿ” Privacy & Permissions

The app requires two permissions:

  1. Microphone Access (NSMicrophoneUsageDescription)

    • "VTNotes needs access to your microphone to record voice notes."
  2. Speech Recognition (NSSpeechRecognitionUsageDescription)

    • "VTNotes needs access to speech recognition to convert your voice to text."

All notes are stored locally on your device using SwiftData. No data is sent to external servers.

๐ŸŽจ Design Principles

  • Simplicity First: Minimal UI with focus on core functionality
  • Native Experience: Follows iOS design patterns and conventions
  • Accessibility: Uses system fonts and supports dynamic type
  • Performance: Efficient database queries with automatic lazy loading
  • Scalability: Architecture supports hundreds/thousands of notes

๐Ÿ”ฎ Future Enhancements

Potential features for future versions:

  • Search notes by content
  • Filter by date range
  • Edit existing notes
  • Delete notes (swipe to delete)
  • Share/export notes
  • Categories or tags
  • iCloud sync
  • Dark mode customization
  • Custom voice models/languages
  • Audio playback of original recordings

๐Ÿงช Testing

Running in Xcode Preview

โš ๏ธ Important: Xcode Previews use in-memory databases. Notes saved in Preview won't persist.

Testing with Persistent Data

  1. Run the app in Simulator or on a device (press Cmd + R)
  2. Create and save notes
  3. Close and relaunch the app
  4. Verify notes are still there

Debug Logging

The app includes console logging for debugging:

  • โœ… Successful save operations with note details
  • โŒ Error messages if save fails
  • ๐Ÿ“‹ Note count when viewing the list

๐Ÿ“„ License

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

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

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

๐Ÿ‘จโ€๐Ÿ’ป Author

Your Name

๐Ÿ™ Acknowledgments

  • Built with SwiftUI and SwiftData
  • Uses Apple's Speech Recognition framework
  • Inspired by the need for quick, hands-free note-taking

๐Ÿ“ž Support

If you have questions or need help:

  1. Check existing Issues
  2. Open a new issue with a clear description
  3. Provide device info and iOS version

Made with โค๏ธ and SwiftUI

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages