After graduating from the International Christian University (ICU), I ventured into entrepreneurship, co-founding a startup and serving as its CTO. My journey then led me to Japanese IBM, where I took on the role of a Flutter Tech Lead in a major maritime company’s business improvement project. Post-IBM, I’m now actively engaged in supporting startup development and spearheading the OpenCI project.
Masahiro Aoki
Building Real-Time Audio/Video Apps with Flutter and WebRTC
## Summary:
This workshop will guide participants through the process of developing real-time audio and video communication applications using Flutter and WebRTC. It covers from the basic to advanced concepts across various platforms including iOS, Android, Web, and desktop environments (Linux, Windows, macOS). Attendees will gain hands-on experience and a deep understanding of integrating real-time communication technologies seamlessly across platforms.
## Session Details:
### 1. **WebRTC Fundamentals and Cross-Platform Integration**:
- Detailed explanation of WebRTC components such as STUN/TURN servers, ICE, Signaling, and SDP.
- Discussion on how to implement these components within a Flutter environment across different platforms.
- Overview of different communication architectures: P2P, SFU, and MCU:
- **P2P (Peer-to-Peer)**: Direct communication between two clients, suitable for small, low-latency interactions.
- **SFU (Selective Forwarding Unit)**: Intermediate server that receives multiple media streams and decides which to send to each participant, optimizing bandwidth and scalability for larger groups.
- **MCU (Multipoint Control Unit)**: Server that mixes multiple media streams into a single stream before sending it to participants, used for large-scale broadcasts where all receive the same feed.
### 2. **Platform-Specific Integration Techniques**:
- For iOS: Integrating CallKit and PushKit for enhanced communication experiences.
- For Android: Utilizing ConnectionService API and FCM to manage incoming communication effectively.
- For Web and Desktop: Addressing specific challenges and implementing notifications and background operations.
### 3. **Practical Demonstration and Interactive Learning**:
- Step-by-step building of a WhatsApp clone using `cloud_firestore` for signaling and `flutter_webrtc` for media transport.
- Interactive quizzes to reinforce learning and validate understanding at each key stage of the application build.
### 4. **Production Services and Pricing Models**:
- Comparison of major production-ready WebRTC services such as Agora, LiveKit, and Sora.
- Analysis of their features, benefits, and cost structures suitable from startups to enterprise-level implementations.
### 5. **Implementing Comprehensive Testing Strategies**:
- Demonstrating how to set up unit, widget, and integration tests within a Flutter project.
- Exploring best practices for ensuring the quality and reliability of real-time communication apps.
## Key Learning Outcomes:
1. **Comprehensive understanding of WebRTC and its application in Flutter across different platforms**.
2. **Skills to implement advanced audio and video calling features**.
3. **Ability to select and manage cost-effective production services for scaling real-time communication applications**.
4. **Enhanced problem-solving and application testing skills through interactive and practical learning approaches**.
5. **Insight into securing communication applications and ensuring privacy compliance**.