Medical Quiz iOS App Websocket CLient

Cliente Freelancer · Remoto · Remoto · freelance · mid · 30–250 USD

Publicada el 2026-07-22

Descripción de la oferta

iOS App Development Brief: Revaliday 1. Project Objective We are looking for an iOS developer (Swift/SwiftUI) to build the native mobile client for Revaliday, a real-time multiplayer medical quiz game. Current Project State: The platform is completely functional. We already have a fully operational HTML/web client, and the backend ecosystem—powered by a custom Java WebSocket signaling server—is 100% finished. The AI matchmaking, round management, and game logic are handled entirely server-side. Your Role: Your task is solely to build the native iOS interface and connect it to our existing WebSocket (WS) server. You will not need to write any game logic. The app acts as a lightweight client that sends user interactions and updates the UI based on incoming JSON payloads. 2. Core Requirements Platform: iOS Native (Swift/SwiftUI preferred). Networking: Persistent WebSocket connection to process real-time bidirectional data. UI/UX: A responsive, gamified interface including a login screen, a matchmaking lobby, a live quiz arena (timer, question text, multiple-choice buttons), and an in-game chat overlay. 3. WebSocket Service Examples The communication between the iOS app and the server is handled via strict JSON payloads. Below are examples of the core services you will be integrating with. A. Authentication When the user logs in, the app sends credentials. The server responds with authorization. Server Response (Incoming): JSON { "actionId": "REVALIDAY_AUTHORIZATION", "authorized": true, "token": "example_token_123" } B. Room Join & Matchmaking When a player enters the arena, the server confirms their entry and begins broadcasting the arrival of other players or AI bots. Server Response (Incoming): JSON { "actionId": "REVALIDAY_ROOM_JOIN", "playerData": { "nick": "Dra_Beatriz", "especialidade": "Pediatrics", "color": "text-purple-400", "isUser": false, "acertos": 0, "roundStatus": "idle" } } C. Match Start & Receiving Questions The server dictates when the match starts and pushes the generated medical question to the clients. Server Response (Incoming): JSON { "actionId": "REVALIDAY_MATCH_START", "question": { "id": "Q101", "especialidade": "Cardiology", "enunciado": "Adult patient arrives at the ER reporting severe precordial pain radiating to the left arm. What is the immediate conduct?", "alternativas": [ { "id": "A", "texto": "Perform ECG within 10 minutes..." }, { "id": "B", "texto": "Immediate emergency surgical intervention." }, { "id": "C", "texto": "Administer analgesic medication..." }, { "id": "D", "texto": "Wait for pain stabilization..." } ] } } D. Submitting an Answer When the iOS user selects an option, the app sends the choice to the server. App Request (Outgoing): JSON { "actionId": "REVALIDAY_SUBMIT_ANSWER", "nick": "Dr_Elite", "questionId": "Q101", "answerId": "A" } E. Chat Relay The live chat functions by broadcasting messages to all connected clients in the room. Server Response (Incoming): JSON { "actionId": "REVALIDAY_CHAT_MESSAGE", "chatData": { "user": "Dr_Ramos", "text": "I think the answer is C, dealing with the trauma protocol.", "colorClass": "text-emerald-400" } }

Skills

Fuente original: freelancer

Análisis JobHunter