Chordly: Educational Music Mobile Application
Chordly is a mobile application built with Flutter to make music theory accessible and engaging for iOS and Android users. It offers an interactive library of chords, scales, and songs, with plans to integrate real-time audio and MIDI processing for personalized feedback on users' playing. As a developer, I focused on creating a responsive, user-friendly interface with dynamic navigation, state management, and content delivery, ensuring cross-platform compatibility and a modular design for future updates.
Note: The demo may appear laggy due to recording interference during testing.
Project Contributions
- Frontend Development: Built a responsive UI using Flutter and Dart, with dynamic screens for home, library, courses, and settings, optimized for iOS and Android.
- State Management: Implemented Riverpod for efficient management of UI state, user progress, and content fetching, with plans to use BLoC for real-time audio/MIDI processing.
- Content Library: Designed a song library with locally cached covers and metadata, fetched via HTTP, supporting search and filtering capabilities.
- User Experience: Created intuitive navigation with a bottom navigation bar, sidebar menu, and pop-up dialogs, inspired by apps like Simply Piano and Flowkey.
- Cross-Platform Compatibility: Ensured consistent functionality and styling across iOS and Android using Flutter’s single codebase.
Technologies Used
- Flutter/Dart: For building cross-platform mobile applications with a single codebase.
- Riverpod: For type-safe, modular state management of UI and data fetching.
- Firebase (Firestore): For user authentication, progress tracking, and cloud-based data storage.
- Google Fonts: Utilized Bebas Neue for visually appealing typography.
- Git: For version control and collaborative development.
- Planned Technologies: C/C++ with FFI for optimized audio processing (pitch detection, onset detection, polyphonic analysis) and MIDI input support.
Planned Features
- Real-Time Feedback: Implement audio/MIDI processing for real-time note detection and feedback, with visual cues (e.g., color-changing notes).
- Lesson Management: Support dynamic lesson states, sheet music rendering, and progress tracking for beginner, intermediate, and advanced courses.
- Authentication: Add optional login via Google, Apple, Facebook, or email, with anonymous progress syncing to Firestore.
- Content Caching: Optimize song content (e.g., MusicXML, tutorials) with local caching and efficient HTTP fetching.
- Engagement Features: Introduce challenges, notifications, and a level system with coins, scores, and experience points.
Resources
Explore the code and documentation on the project’s GitHub repository:Chordly.