678 lines
16 KiB
Markdown
678 lines
16 KiB
Markdown
# 🚀 PHASE 7: FULL PLATFORM (Mobile/Desktop Apps) - IMPLEMENTATION GUIDE
|
|
|
|
**Status:** 🔄 In Progress
|
|
**Timeline:** Weeks 32-52 (5 months)
|
|
**Goal:** Transform AeThex Connect into a cross-platform communication suite
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
Phase 7 expands AeThex Connect from a web platform into a comprehensive cross-platform suite:
|
|
- **Progressive Web App (PWA)** - Installable web app with offline support
|
|
- **Mobile Apps** - Native iOS & Android (React Native)
|
|
- **Desktop Apps** - Windows, macOS, Linux (Electron)
|
|
|
|
**Market Position:** "Discord for the metaverse - communication that follows you across every game"
|
|
|
|
---
|
|
|
|
## Architecture
|
|
|
|
### Monorepo Structure
|
|
|
|
```
|
|
packages/
|
|
├── core/ # Shared business logic (95% code reuse)
|
|
│ ├── api/ # API client
|
|
│ ├── auth/ # Authentication
|
|
│ ├── crypto/ # E2E encryption
|
|
│ ├── webrtc/ # Voice/video logic
|
|
│ └── state/ # Redux store
|
|
│
|
|
├── ui/ # Shared UI components (80% reuse)
|
|
│ ├── components/ # React components
|
|
│ ├── hooks/ # Custom hooks
|
|
│ └── styles/ # Design system
|
|
│
|
|
├── web/ # PWA
|
|
├── mobile/ # React Native (iOS/Android)
|
|
└── desktop/ # Electron (Win/Mac/Linux)
|
|
```
|
|
|
|
---
|
|
|
|
## What's Been Implemented
|
|
|
|
### ✅ Phase 7 Foundation
|
|
|
|
**Monorepo Setup:**
|
|
- [packages/package.json](packages/package.json) - Workspace configuration
|
|
- Directory structure for all platforms created
|
|
|
|
**Core Package (@aethex/core):**
|
|
- [packages/core/api/client.ts](packages/core/api/client.ts) - Unified API client (600+ lines)
|
|
- Authentication with token refresh
|
|
- All Phase 1-6 endpoints
|
|
- Request/response interceptors
|
|
- [packages/core/package.json](packages/core/package.json) - Dependencies configured
|
|
- [packages/core/tsconfig.json](packages/core/tsconfig.json) - TypeScript config
|
|
|
|
**Web App (PWA):**
|
|
- [packages/web/public/service-worker.ts](packages/web/public/service-worker.ts) - Offline support (200+ lines)
|
|
- Workbox integration
|
|
- API caching (Network-first)
|
|
- Image caching (Cache-first)
|
|
- Background sync for failed requests
|
|
- Push notification handling
|
|
- [packages/web/public/manifest.json](packages/web/public/manifest.json) - PWA manifest
|
|
- Install prompts
|
|
- App shortcuts
|
|
- Share target
|
|
- File handlers
|
|
- [packages/web/package.json](packages/web/package.json) - Vite + React setup
|
|
|
|
**Mobile App (React Native):**
|
|
- [packages/mobile/package.json](packages/mobile/package.json) - RN 0.73 setup
|
|
- All required dependencies
|
|
- iOS & Android build scripts
|
|
- [packages/mobile/ios/AeThexConnectModule.swift](packages/mobile/ios/AeThexConnectModule.swift) - Native iOS module (400+ lines)
|
|
- CallKit integration
|
|
- VoIP push notifications
|
|
- Background voice chat
|
|
- [packages/mobile/src/services/PushNotificationService.ts](packages/mobile/src/services/PushNotificationService.ts) - Push notifications (350+ lines)
|
|
- Firebase Cloud Messaging
|
|
- Notifee for rich notifications
|
|
- Quick reply from notifications
|
|
- Call answer/decline actions
|
|
|
|
**Desktop App (Electron):**
|
|
- [packages/desktop/package.json](packages/desktop/package.json) - Electron 28 setup
|
|
- electron-builder for packaging
|
|
- Windows/macOS/Linux targets
|
|
- [packages/desktop/src/main/index.ts](packages/desktop/src/main/index.ts) - Main process (450+ lines)
|
|
- System tray integration
|
|
- Global hotkeys (push-to-talk)
|
|
- Auto-updater
|
|
- Deep link handling (aethex:// protocol)
|
|
- [packages/desktop/src/main/preload.ts](packages/desktop/src/main/preload.ts) - Preload script
|
|
- Secure IPC bridge
|
|
- TypeScript definitions
|
|
|
|
---
|
|
|
|
## Platform-Specific Features
|
|
|
|
### Web App (PWA)
|
|
|
|
**Implemented:**
|
|
- ✅ Service worker with Workbox
|
|
- ✅ Offline caching strategy
|
|
- ✅ Background sync
|
|
- ✅ Push notifications
|
|
- ✅ Web manifest
|
|
- ✅ Share target
|
|
- ✅ App shortcuts
|
|
|
|
**Remaining:**
|
|
- [ ] IndexedDB for offline messages
|
|
- [ ] Media Session API
|
|
- [ ] Web Push subscription management
|
|
- [ ] Install prompt UI
|
|
|
|
### Mobile Apps (iOS/Android)
|
|
|
|
**Implemented:**
|
|
- ✅ React Native project structure
|
|
- ✅ iOS CallKit integration
|
|
- ✅ VoIP push notifications
|
|
- ✅ Firebase Cloud Messaging
|
|
- ✅ Rich notifications (actions, quick reply)
|
|
- ✅ Background voice chat
|
|
|
|
**Remaining:**
|
|
- [ ] Android native modules
|
|
- [ ] Biometric authentication
|
|
- [ ] Share extension
|
|
- [ ] Widgets (friends online, unread)
|
|
- [ ] CarPlay integration
|
|
- [ ] Picture-in-Picture video
|
|
- [ ] Haptic feedback
|
|
|
|
### Desktop Apps (Windows/macOS/Linux)
|
|
|
|
**Implemented:**
|
|
- ✅ Electron project structure
|
|
- ✅ System tray integration
|
|
- ✅ Global hotkeys (push-to-talk, mute, deafen)
|
|
- ✅ Auto-updater
|
|
- ✅ Deep link handling
|
|
- ✅ Single instance lock
|
|
- ✅ Minimize to tray
|
|
|
|
**Remaining:**
|
|
- [ ] Screen sharing UI
|
|
- [ ] Rich presence integration
|
|
- [ ] OS notifications
|
|
- [ ] Menu bar app (macOS)
|
|
- [ ] Taskbar integration (Windows)
|
|
- [ ] Auto-start configuration UI
|
|
|
|
---
|
|
|
|
## Core Features (All Platforms)
|
|
|
|
### 1. Unified Inbox ⏳
|
|
|
|
Aggregate all messages, calls, and notifications:
|
|
- Messages
|
|
- Missed calls
|
|
- Game invites
|
|
- Friend requests
|
|
|
|
**Status:** Not started
|
|
|
|
### 2. Voice Channels ⏳
|
|
|
|
Always-on voice rooms (Discord-like):
|
|
- Persistent channels
|
|
- Participant management
|
|
- Speaking indicators
|
|
- Permissions
|
|
|
|
**Status:** Not started
|
|
|
|
### 3. Rich Presence ⏳
|
|
|
|
Show activity across ecosystem:
|
|
- Game status
|
|
- Custom status
|
|
- Activity timestamps
|
|
- Join buttons
|
|
|
|
**Status:** Not started
|
|
|
|
### 4. Server Organization ⏳
|
|
|
|
Discord-like server structure:
|
|
- Text channels
|
|
- Voice channels
|
|
- Categories
|
|
- Roles & permissions
|
|
|
|
**Status:** Not started
|
|
|
|
### 5. Screen Sharing & Streaming ⏳
|
|
|
|
Stream gameplay or screen:
|
|
- 1080p @ 60fps
|
|
- Source selection
|
|
- Audio mixing
|
|
- Twitch integration (future)
|
|
|
|
**Status:** Partially implemented (desktop sources)
|
|
|
|
---
|
|
|
|
## Development Roadmap
|
|
|
|
### Month 1-2: Foundation ✅ (CURRENT)
|
|
- ✅ Monorepo setup
|
|
- ✅ Core package (API client)
|
|
- ✅ PWA service worker
|
|
- ✅ Mobile native modules
|
|
- ✅ Desktop Electron setup
|
|
|
|
### Month 3: Web App (PWA)
|
|
- [ ] Complete offline support
|
|
- [ ] Implement unified inbox
|
|
- [ ] Add voice channels UI
|
|
- [ ] Push notification management
|
|
- [ ] Install prompt flow
|
|
- [ ] Testing & optimization
|
|
|
|
### Month 4: Mobile Apps
|
|
- [ ] Complete Android native modules
|
|
- [ ] Implement all screens
|
|
- [ ] Biometric auth
|
|
- [ ] Share extension
|
|
- [ ] Widgets
|
|
- [ ] Beta testing (TestFlight/Internal)
|
|
|
|
### Month 5: Desktop Apps
|
|
- [ ] Complete screen sharing
|
|
- [ ] Rich presence integration
|
|
- [ ] Settings UI
|
|
- [ ] Auto-start management
|
|
- [ ] Platform-specific features
|
|
- [ ] Beta testing
|
|
|
|
### Month 6-7: Polish & Launch
|
|
- [ ] Performance optimization
|
|
- [ ] Bug fixes
|
|
- [ ] User testing
|
|
- [ ] App store submissions
|
|
- [ ] Marketing materials
|
|
- [ ] Public beta
|
|
|
|
### Month 8: Launch
|
|
- [ ] Production release
|
|
- [ ] Marketing campaign
|
|
- [ ] Press outreach
|
|
- [ ] Monitor metrics
|
|
|
|
---
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
**System Requirements:**
|
|
- Node.js 18+
|
|
- npm 9+
|
|
- For iOS: Xcode 15+, macOS
|
|
- For Android: Android Studio, Java 17
|
|
- For Desktop: No special requirements
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Navigate to packages directory
|
|
cd /workspaces/AeThex-Connect/packages
|
|
|
|
# Install all dependencies
|
|
npm install
|
|
|
|
# Build core package
|
|
cd core && npm run build && cd ..
|
|
|
|
# Run development servers
|
|
npm run dev:web # Web app on http://localhost:5173
|
|
npm run dev:mobile # React Native metro bundler
|
|
npm run dev:desktop # Electron app
|
|
```
|
|
|
|
### Building
|
|
|
|
```bash
|
|
# Build all packages
|
|
npm run build:all
|
|
|
|
# Build specific platforms
|
|
npm run build:web
|
|
npm run build:mobile:ios
|
|
npm run build:mobile:android
|
|
npm run build:desktop
|
|
|
|
# Package desktop apps
|
|
cd desktop
|
|
npm run package:win # Windows installer
|
|
npm run package:mac # macOS DMG
|
|
npm run package:linux # AppImage/deb/rpm
|
|
```
|
|
|
|
---
|
|
|
|
## Technology Stack
|
|
|
|
### Shared
|
|
- **Language:** TypeScript
|
|
- **API Client:** Axios
|
|
- **WebSocket:** Socket.IO Client
|
|
- **State:** Redux Toolkit
|
|
- **Crypto:** libsodium
|
|
|
|
### Web (PWA)
|
|
- **Framework:** React 18
|
|
- **Build:** Vite
|
|
- **PWA:** Workbox
|
|
- **Offline:** IndexedDB
|
|
|
|
### Mobile (React Native)
|
|
- **Framework:** React Native 0.73
|
|
- **Navigation:** React Navigation
|
|
- **Push:** Firebase + Notifee
|
|
- **Storage:** AsyncStorage
|
|
- **WebRTC:** react-native-webrtc
|
|
|
|
### Desktop (Electron)
|
|
- **Runtime:** Electron 28
|
|
- **Packaging:** electron-builder
|
|
- **Storage:** electron-store
|
|
- **Updates:** electron-updater
|
|
|
|
---
|
|
|
|
## App Store Distribution
|
|
|
|
### iOS App Store
|
|
|
|
**Requirements:**
|
|
- Apple Developer account ($99/year)
|
|
- Code signing certificates
|
|
- App Store Connect setup
|
|
- TestFlight for beta
|
|
|
|
**Fastlane Setup:**
|
|
```bash
|
|
cd packages/mobile/ios
|
|
fastlane beta # Upload to TestFlight
|
|
fastlane release # Submit to App Store
|
|
```
|
|
|
|
### Google Play Store
|
|
|
|
**Requirements:**
|
|
- Google Play Developer account ($25 one-time)
|
|
- Signing keys
|
|
- Play Console setup
|
|
- Internal testing track
|
|
|
|
**Release:**
|
|
```bash
|
|
cd packages/mobile/android
|
|
./gradlew bundleRelease
|
|
fastlane production
|
|
```
|
|
|
|
### Desktop Stores
|
|
|
|
**Windows (Microsoft Store):**
|
|
- Microsoft Store developer account
|
|
- APPX packaging
|
|
- Submission via Partner Center
|
|
|
|
**macOS (Mac App Store):**
|
|
- Apple Developer account
|
|
- App sandboxing
|
|
- App Store submission
|
|
|
|
**Linux:**
|
|
- Snap Store (free)
|
|
- Flatpak / FlatHub (free)
|
|
- AppImage (self-hosted)
|
|
|
|
---
|
|
|
|
## Key Features Comparison
|
|
|
|
| Feature | Web (PWA) | Mobile | Desktop |
|
|
|---------|-----------|--------|---------|
|
|
| **Install** | Browser | App Store | Installer |
|
|
| **Offline** | ✅ Cache | ✅ Full | ✅ Full |
|
|
| **Push Notifications** | ✅ Web Push | ✅ Native | ✅ System |
|
|
| **Voice Channels** | ✅ | ✅ Background | ✅ Always-on |
|
|
| **Screen Sharing** | ✅ Tab/Window | ❌ | ✅ Full |
|
|
| **Global Hotkeys** | ❌ | ❌ | ✅ |
|
|
| **System Tray** | ❌ | ❌ | ✅ |
|
|
| **CallKit** | ❌ | ✅ iOS | ❌ |
|
|
| **Rich Presence** | ⚠️ Limited | ⚠️ Limited | ✅ Full |
|
|
| **Auto-update** | ✅ Auto | ✅ Store | ✅ Built-in |
|
|
|
|
---
|
|
|
|
## Marketing Strategy
|
|
|
|
### Target Audiences
|
|
|
|
1. **Primary: Indie Game Developers**
|
|
- Roblox creators
|
|
- Unity/Unreal developers
|
|
- Discord bot developers
|
|
|
|
2. **Secondary: Gaming Communities**
|
|
- Guilds & clans (10-100 members)
|
|
- Content creators & streamers
|
|
- Esports teams
|
|
|
|
3. **Tertiary: Game Studios**
|
|
- White-label solution
|
|
- Enterprise tier
|
|
- Custom integration
|
|
|
|
### Positioning
|
|
|
|
**Value Propositions:**
|
|
1. **Cross-Platform Identity** - .aethex domain works everywhere
|
|
2. **Privacy First** - E2E encryption by default (unlike Discord)
|
|
3. **Game-Native** - Built for metaverse, not adapted from enterprise
|
|
4. **NFT Ownership** - You own your identity (blockchain domains)
|
|
5. **Developer Friendly** - SDK-first, easy integration
|
|
|
|
**Competitive Advantages:**
|
|
- Discord doesn't have blockchain identity
|
|
- Slack is enterprise-focused, expensive
|
|
- Guilded was acquired by Roblox (vendor lock-in)
|
|
- Revolt is privacy-focused but lacks gaming features
|
|
- Element/Matrix too technical for average gamers
|
|
|
|
### Launch Strategy
|
|
|
|
**Phase 1: Private Beta (Month 1-2)**
|
|
- Invite GameForge developers
|
|
- Target: 500 users
|
|
- Focus: Feedback & iteration
|
|
|
|
**Phase 2: Public Beta (Month 3-4)**
|
|
- Open to all developers
|
|
- Partnerships: Roblox DevRel, Unity forums
|
|
- Target: 10,000 users
|
|
- Press: Gaming media outreach
|
|
|
|
**Phase 3: App Store Launch (Month 5-6)**
|
|
- Submit to all app stores
|
|
- Marketing campaign
|
|
- Influencer partnerships
|
|
- Target: 50,000 users
|
|
|
|
**Phase 4: Scale (Month 7-12)**
|
|
- Enterprise sales
|
|
- Integration partnerships
|
|
- International expansion
|
|
- Target: 500,000 users
|
|
|
|
---
|
|
|
|
## Success Metrics
|
|
|
|
### North Star Metric
|
|
**Daily Active Users (DAU)** sending messages or in voice channels
|
|
|
|
### Key Performance Indicators
|
|
|
|
**Acquisition:**
|
|
- New signups per day: Target 1,000/day by Month 12
|
|
- Source attribution: Organic > Paid
|
|
- Time to first message: <5 minutes
|
|
- Activation rate: >60%
|
|
|
|
**Engagement:**
|
|
- DAU/MAU ratio: >40%
|
|
- Messages per DAU: >20
|
|
- Voice minutes per DAU: >30
|
|
- D7 retention: >40%
|
|
- D30 retention: >20%
|
|
|
|
**Monetization:**
|
|
- Free → Premium: 5% conversion
|
|
- Premium → Enterprise: 2% conversion
|
|
- Churn rate: <5%/month
|
|
- ARPU: $5 (blended)
|
|
- LTV:CAC: >3:1
|
|
|
|
**Technical:**
|
|
- Message latency: <100ms p95
|
|
- Voice quality: MOS >4.0
|
|
- App crash rate: <0.1%
|
|
- App store rating: >4.5
|
|
|
|
---
|
|
|
|
## Revenue Projections
|
|
|
|
### Year 1 (Conservative)
|
|
|
|
**Users:**
|
|
- Month 3: 10,000 users
|
|
- Month 6: 50,000 users
|
|
- Month 12: 500,000 users
|
|
|
|
**Premium Conversion (5%):**
|
|
- Month 12: 25,000 premium users
|
|
- @ $100/year = **$2.5M ARR**
|
|
|
|
**Enterprise (50 customers @ $6K/year):**
|
|
- **$300K ARR**
|
|
|
|
**Domain Marketplace (10% fee, $50K volume):**
|
|
- **$5K/month = $60K/year**
|
|
|
|
**Total Year 1 Revenue:** **~$2.86M ARR**
|
|
|
|
### Year 3 (Growth)
|
|
|
|
**Users:** 5,000,000
|
|
**Premium (5%):** 250,000 @ $100 = **$25M ARR**
|
|
**Enterprise:** 500 @ $6K = **$3M ARR**
|
|
**Marketplace:** **$500K ARR**
|
|
|
|
**Total Year 3 Revenue:** **~$28.5M ARR**
|
|
|
|
---
|
|
|
|
## Team Requirements
|
|
|
|
**Current Team Needed:**
|
|
- 2 Backend Engineers
|
|
- 2 Frontend Engineers (React/TypeScript)
|
|
- 1 Mobile Engineer (React Native)
|
|
- 1 Desktop Engineer (Electron)
|
|
- 1 DevOps Engineer
|
|
- 1 Designer (UI/UX)
|
|
- 1 Product Manager
|
|
- 1 Marketing/Community Manager
|
|
|
|
**Estimated Cost:** $1.5M/year (fully loaded)
|
|
|
|
---
|
|
|
|
## Next Immediate Steps
|
|
|
|
### Week 1-2
|
|
1. **Complete Core Package:**
|
|
- [ ] Auth module with token management
|
|
- [ ] Crypto module (E2E encryption)
|
|
- [ ] WebRTC module (call handling)
|
|
- [ ] Redux state management
|
|
|
|
2. **Web App Development:**
|
|
- [ ] Set up Vite project
|
|
- [ ] Implement routing
|
|
- [ ] Build unified inbox UI
|
|
- [ ] Add voice channel components
|
|
|
|
### Week 3-4
|
|
3. **Mobile App Development:**
|
|
- [ ] Complete Android native modules
|
|
- [ ] Build main navigation
|
|
- [ ] Implement chat UI
|
|
- [ ] Add voice channel UI
|
|
|
|
4. **Desktop App Development:**
|
|
- [ ] Build renderer UI
|
|
- [ ] Implement settings
|
|
- [ ] Add screen sharing UI
|
|
- [ ] Test global hotkeys
|
|
|
|
---
|
|
|
|
## Documentation Files
|
|
|
|
**Implementation Guides:**
|
|
- This file: [PHASE7-IMPLEMENTATION-GUIDE.md](PHASE7-IMPLEMENTATION-GUIDE.md)
|
|
- To be created: PHASE7-COMPLETE.md (when finished)
|
|
- To be created: PHASE7-QUICK-START.md
|
|
|
|
**Technical Specs:**
|
|
- Web: packages/web/README.md
|
|
- Mobile: packages/mobile/README.md
|
|
- Desktop: packages/desktop/README.md
|
|
- Core: packages/core/README.md
|
|
|
|
---
|
|
|
|
## FAQ
|
|
|
|
**Q: Why not use React Native for desktop too?**
|
|
A: Electron provides better desktop integration (system tray, global hotkeys, native menus). React Native for Windows/macOS lacks these features.
|
|
|
|
**Q: Why not use Flutter for mobile?**
|
|
A: React Native allows 80%+ code sharing with web app (React). Flutter would require separate implementation.
|
|
|
|
**Q: Can I use the existing web frontend?**
|
|
A: The current src/frontend will be migrated to packages/web. It's the same React code, just reorganized for better code sharing.
|
|
|
|
**Q: What about the backend?**
|
|
A: The existing src/backend remains unchanged. All platforms connect to the same API.
|
|
|
|
**Q: Do I need all three platforms?**
|
|
A: No. You can develop/deploy just one platform (e.g., web-only). The monorepo structure allows independent deployment.
|
|
|
|
---
|
|
|
|
## Support & Resources
|
|
|
|
**Documentation:**
|
|
- [All Phases Overview](PLATFORM-COMPLETE.md)
|
|
- [Phase 6: Premium](PHASE6-COMPLETE.md)
|
|
- [Phase 5: Nexus](PHASE5-COMPLETE.md)
|
|
|
|
**Development:**
|
|
- [Core API Client](packages/core/api/client.ts)
|
|
- [PWA Service Worker](packages/web/public/service-worker.ts)
|
|
- [iOS Native Module](packages/mobile/ios/AeThexConnectModule.swift)
|
|
- [Desktop Main Process](packages/desktop/src/main/index.ts)
|
|
|
|
**External:**
|
|
- React Native: https://reactnative.dev
|
|
- Electron: https://electronjs.org
|
|
- PWA: https://web.dev/progressive-web-apps
|
|
|
|
---
|
|
|
|
## Status Summary
|
|
|
|
**Phase 7 Progress:** ~15% Complete
|
|
|
|
✅ **Completed:**
|
|
- Monorepo structure
|
|
- Core API client
|
|
- PWA service worker & manifest
|
|
- iOS native modules (CallKit, VoIP)
|
|
- Push notification service
|
|
- Desktop Electron setup (tray, hotkeys)
|
|
|
|
🔄 **In Progress:**
|
|
- Core package completion
|
|
- Web app UI implementation
|
|
- Mobile app screens
|
|
- Desktop renderer UI
|
|
|
|
⏳ **Not Started:**
|
|
- Voice channels
|
|
- Unified inbox
|
|
- Rich presence
|
|
- Server organization
|
|
- App store submissions
|
|
|
|
---
|
|
|
|
**Phase 7: Full Platform - ONGOING** 🚀
|
|
|
|
**Estimated Completion:** 4-5 months (May 2026)
|
|
**Next Milestone:** Complete Core package + Web app MVP (2 weeks)
|
|
|
|
---
|
|
|
|
**Last Updated:** January 10, 2026
|
|
**Version:** 0.1.0 (Early Development)
|