- Limit users coming into app to help ensure we don't overload servers
- Build a waitlist experience that does not lose the user conversion when they are released from the waitlist
- Make the experience as clear as possible
- Custom sheet to hold info/controls
- Textfields for email and phone number
- Submit button
- Sign In button (for users that have already created accounts)
- Push Notification Prompt
- Dynamic background image (likely will just ship with a set of images and will randomly select one to display, but possible that we will also serve images)
- If there are live rooms playing, we will pick the room with the most connected users, and instead of a background image, we will display Speakers for that room, and pipe in the audio from the room
- After email/phone number filled, submit request to server with data
- Hook into OneSignal to register user for push notifications, will need to register a tag so that we can send a user specific push (no user account created yet at this point, so no UserID?, needs research)
- Connect to Agora Audio channel, subscribe to broadcaster "Noise" events
- Display a collection of Speaker cells, subscribed to Chat service to update speaker presence in collection, use Agora Noise events to show who is talking
- Navigation:
- Launch -> Waitlist (No cached user found)
- Launch -> Home (Cached user found
- Launch -> Waitlist -> SignIn (User chooses to sign in)
- AppActive -> Waitlist -> Home (User was released from waitlist, gets push notif, and opens app)
- After launching app, If no cached user found, present Waitlist