• Home

  • Projects

  • Home
  • Projects
Listyo Adi Pamungkas - 2025 - All rights reserved
SitemapRSS Feed

    nerushort

    nerushort

    NeruShort is a Flutter mobile application that downloads videos/photos from multiple platforms (YouTube, TikTok, Instagram, Reddit) with advanced features like watermark removal, HD quality downloads, and video editing capabilities for creating short-form content.
    Created at 8/19/2025 β€’ 4 min read
    Repository
    Tags: Share:

    NeruShort - Video Downloader & Editor

    NeruShort is a Flutter mobile application that downloads videos/photos from multiple platforms (YouTube, TikTok, Instagram, Reddit) with advanced features like watermark removal, HD quality downloads, and video editing capabilities for creating short-form content.

    #πŸ“± Features

    ##Core Features

    • Multi-Platform Support: YouTube, TikTok, Instagram, Reddit
    • HD Quality Downloads: Up to 1080p video quality
    • Watermark Removal: Clean videos without platform watermarks (Premium)
    • Video Editing: Trim videos, add custom watermarks
    • Background Downloads: Continue downloads in background
    • Download Queue: Manage multiple downloads simultaneously

    ##Premium Features

    • Unlimited downloads and edits
    • Watermark removal
    • HD quality access
    • Ad-free experience
    • Priority support

    #πŸ— Architecture

    The app follows Clean Architecture principles with clear separation of concerns:
    lib/ β”œβ”€β”€ core/ # Core functionality β”‚ β”œβ”€β”€ constants/ # App constants and configuration β”‚ β”œβ”€β”€ errors/ # Error handling system β”‚ β”œβ”€β”€ network/ # HTTP client and network layer β”‚ β”œβ”€β”€ utils/ # Utility functions β”‚ └── localization/ # Localization helpers β”œβ”€β”€ data/ # Data layer β”‚ β”œβ”€β”€ datasources/ # Data sources (API, local storage) β”‚ β”œβ”€β”€ models/ # Data models with JSON serialization β”‚ └── repositories/ # Repository implementations β”œβ”€β”€ domain/ # Domain layer (Business Logic) β”‚ β”œβ”€β”€ entities/ # Domain entities β”‚ β”œβ”€β”€ repositories/ # Repository interfaces β”‚ └── usecases/ # Business logic use cases └── presentation/ # Presentation layer β”œβ”€β”€ pages/ # UI screens β”œβ”€β”€ widgets/ # Reusable UI components └── providers/ # State management (Riverpod)

    #πŸ›  Tech Stack

    ##Core Technologies

    • Framework: Flutter 3.x
    • Language: Dart
    • State Management: Riverpod 2.x
    • Backend: Supabase
    • Local Storage: Hive + SharedPreferences
    • Architecture: Clean Architecture

    ##Key Dependencies

    • flutter_riverpod - State management
    • supabase_flutter - Backend and authentication
    • dio - HTTP client
    • video_player - Video playback
    • ffmpeg_kit_flutter - Video processing
    • easy_localization - Internationalization
    • auto_route - Navigation
    • hive - Local database
    • freezed - Code generation for immutable classes

    #πŸš€ Getting Started

    ##Prerequisites

    • Flutter SDK 3.8.1 or higher
    • Dart SDK
    • Android Studio / VS Code
    • Git

    ##Installation

    1. Clone the repository
      git clone https://github.com/nerustudio/nerushort.git
      cd nerushort
      
    2. Install dependencies
      flutter pub get
      
    3. Run code generation (when implemented in Phase 2)
      flutter packages pub run build_runner build
      
    4. Run the app
      flutter run
      

    ##Testing

    # Run all tests
    flutter test
    
    # Run analysis
    flutter analyze
    
    # Check dependencies
    flutter pub deps
    

    #πŸ“‹ Development Phases

    ##βœ… Phase 1: Project Foundation (Completed)

    • Flutter project setup with Clean Architecture
    • Core domain entities and business logic
    • Error handling and validation system
    • Network layer and utilities
    • Basic UI and localization
    • State management with Riverpod

    ##πŸ”„ Phase 2: Authentication & User Management (Next)

    • Supabase integration and configuration
    • User authentication (login, register, password reset)
    • User profile and preferences management
    • Trial usage tracking and premium features
    • Local user data caching

    ##πŸ“… Phase 3: Core Download Functionality

    • Platform integration (YouTube, TikTok, Instagram, Reddit)
    • Video extraction and quality selection
    • Download queue and progress tracking
    • Background download service
    • Local storage management

    ##πŸ“… Phase 4: Advanced Features

    • HD quality downloads
    • Watermark removal functionality
    • Video editing capabilities
    • Premium feature gating
    • Ad integration

    ##πŸ“… Phase 5: Monetization & UI Polish

    • In-app purchases and subscriptions
    • Ad system integration
    • UI/UX improvements
    • Performance optimizations

    #🎨 Design Principles

    ##KISS (Keep It Simple, Stupid)

    • Simple, intuitive user interface
    • Clear and straightforward user flows
    • Minimal cognitive load
    • Easy-to-understand code structure

    ##DRY (Don't Repeat Yourself)

    • Reusable components and utilities
    • Centralized configuration and constants
    • Shared business logic in use cases
    • Common error handling patterns

    ##OOP (Object-Oriented Programming)

    • Clear class hierarchies and encapsulation
    • Interface-based programming
    • Dependency injection for testability
    • Proper separation of concerns

    #🌍 Localization

    Currently supported languages:
    • English (en)
    • Indonesian (id)
    To add new languages:
    1. Create new JSON file in assets/localization/
    2. Add translations for all keys
    3. Update supportedLocales in main.dart

    #🀝 Contributing

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

    ##Commit Message Format

    Follow the conventional commit format:
    <type>(<scope>): <description> Examples: feat(download): implement YouTube video extraction fix(auth): resolve login session persistence issue docs(readme): add installation instructions

    #πŸ“„ License

    This project is licensed under the MIT License.

    #πŸ“ž Support

    • Documentation: Coming soon
    • Issues: Report bugs and feature requests
    • Email: Contact for support

    #⭐ Acknowledgments

    • Flutter team for the amazing framework
    • Supabase for backend infrastructure
    • Contributors and beta testers
    • Open source community
    Made with ❀️ by NeruStudio
    Download & Edit Videos for Short Content
    Previous

    nerumusic

    Next

    nerurora