Skip to content

Foodstream-io/mobile

Repository files navigation

FoodStream Mobile

A Flutter mobile application for live streaming food preparation and cooking experiences.

Features

  • 📱 Live Streaming: Real-time video streaming using WebRTC technology
  • 🍔 Food Focus: Specialized for food and cooking content
  • 👥 Host & Viewer Modes: Create streams or join existing ones
  • 🔐 User Authentication: Secure login system
  • 📊 Stream Management: Room creation and joining functionality

Technical Stack

  • Framework: Flutter 3.16+ with Dart 3.0+
  • Streaming: WebRTC via flutter_webrtc and livekit_client
  • Backend: Socket.IO for signaling
  • Platforms: Android (API 21+) & iOS
  • Architecture: Modern Android (API 35) with Java 17

Getting Started

Prerequisites 1

  • Flutter 3.16 or higher
  • Android Studio with Android SDK 35
  • Xcode (for iOS development)

Installation

# Clone the repository
git clone <your-repo-url>
cd foodstream/mobile

# Install dependencies
flutter pub get

# Run on Android
flutter run

# Build release APK
flutter build apk --release

Features in Development

  • Real-time chat during streams
  • Stream recording and playback
  • User profiles and favorites
  • Stream discovery and search

Development Setup

Prerequisites 2

  • Docker
  • Docker Compose
  • Make (optional, but recommended)

Quick Start

  1. Clone the repository

    git clone <your-repo-url>
    cd foodstream-mobile
  2. Start development environment

    make setup
    # or manually:
    # docker-compose build
    # docker-compose up -d
  3. Enter the development container

    make shell
    # or manually:
    # docker-compose exec flutter-dev bash
  4. Verify Flutter installation

    flutter doctor

Available Commands

Run make help to see all available commands:

  • make build - Build Docker image
  • make run - Start development environment
  • make shell - Open shell in container
  • make android-debug - Build Android debug APK
  • make android-release - Build Android release APK
  • make web-serve - Serve web app at http://localhost:3000
  • make test - Run tests
  • make docs - Generate documentation
  • make clean - Clean Docker resources

Development Workflow

  1. Start the environment: make run
  2. Enter the container: make shell
  3. Make your changes in your local editor
  4. Build/test inside the container: make android-debug

Platform-Specific Notes

macOS/Windows

The Docker setup provides a consistent Linux environment for Flutter development, regardless of your host OS.

Android Development

The container includes Android SDK and tools. APK files will be available in your local build/ directory.

Troubleshooting

  • Permission issues: Make sure Docker has access to your project directory
  • Port conflicts: Change ports in docker-compose.yml if needed
  • Build failures: Run make clean and make build to rebuild from scratch

Architecture

This app uses:

  • SignalingService for WebRTC connection management
  • LiveStreamPage for streaming interface
  • Modern Android configuration with ProGuard optimization
  • Responsive UI with Material Design 3

For help getting started with Flutter development, view the online documentation.