Skip to content

netless-io/flat-android

Repository files navigation

Agora Flat Android

Project Flat Android is the Android client of Agora Flat open source classroom.

中文

Try it now

Features

  • Open sourced front-end and back-end
  • Optimized teaching experience
    • Big class
    • Small class
    • One on one
  • Real-time interaction
    • Multifunctional interactive whiteboard
    • Real-time video/audio chat(RTC)
    • Real-time messaging(RTM)
    • Participant hand raising
  • Login via
    • Wechat
    • GitHub
    • Google
  • Classroom management
    • Join and create classrooms
    • Support periodic rooms
    • View room history
    • schedule classrooms
  • Classroom recording and replaying
    • Whiteboard replaying
    • Cloud recording for video and audio
    • Messaging replaying
  • Cloud Storage for multi-media courseware
  • Device self-check
  • Auto Updater

Development

Android Code

Flat is an app that attempts to use the latest cutting edge libraries and tools. As a summary:

  • Entirely written in Kotlin.
  • UI Mostly written in Jetpack Compose (see below).
  • Uses Kotlin Coroutines throughout.
  • Uses many of the Architecture Components, including: Room, Lifecycle, ViewModel.
  • Uses Hilt for dependency injection

Development Tool

Flat require the latest Android Studio Arctic Fox release to be able to build the app. This is because the project is written in Jetpack Compose (more on that below).

Environment Variables Reference

Variable Description Note
NETLESS_APP_IDENTIFIER Whiteboard Access Key See Projects and permissions
AGORA_APP_ID Agora App ID For RTC and RTM. See Use an App ID for authentication
WECHAT_APP_ID Wechat Open Platform App ID
FLAT_SERVER_DOMAIN Flat Server deployed address e.g. flat-api.whiteboard.agora.io

Disclaimers

You may use Flat for commercial purposes but please note that we do not accept customizational commercial requirements and deployment supports. Nor do we offer customer supports for commercial usage. Please head to agora-flexible-classroom for such requirements.