https://apps.apple.com/kr/app/socketing/id6741525412
- This project is built upon everyone-falls-asleep
- The original project provides a web-based real-time ticketing program, and this app extends its functionality to iOS platform using Swift and UIKit.
- Xcode Version: 15.0
- macOS Version: Ventura 13.5 (M2)
- Swift Version: 5.9
- iOS Deployment Target: 15.0 or later
- Dependencies: RxSwift, SocketIO, SnapKit, Starscream, Toast
1️⃣ Clone the repository
git clone https://github.com/yeonupark/socketing-iOS
2️⃣ Open the project
cd socketing-iOS
xed .
3️⃣ Set up environment variables
The project uses .xcconfig files to manage environment variables.
🔹 Steps to Configure Environment Variables:
- Navigate to the Configurations folder:
cd Configurations
- Create .xcconfig files for different configurations:
Debug.xcconfigRelease.xcconfig
💡.xcconfig files are ignored by Git
- Inside each .xcconfig file, add the following variables
BASE_URL = [your-api-url]
SOCKET_URL = [your-socket-url]
QUEUE_URL = [your-queue-url]
- Verify the configuration is applied correctly in Xcode:
- Go to Project → Info → Configurations
- Ensure the Debug and Release configurations reference the corresponding
.xcconfigfiles.
-
Open the project in Xcode
-
Select a simulator or physical device
-
Press Cmd + R to run the app
📂 Socketing
├── 📂 Utils
├── 📂 Components
├── 📂 Extensions
├── 📂 Base
├── 📂 Network
├── 📂 Views
├── 📂 Controllers
├── 📂 ViewModels
- Utils: Reusable utility functions and helpers
- Extensions: Swift extensions for enhanced functionality
- Base: Base classes and protocols
- Network: Networking layer
- Views: UI screens
- Controllers: View controllers for handling UI logic and user interaction
- ViewModels: Business logic and data binding (MVVM)
Swift Package Manager (SPM) will automatically resolve dependencies when opening the project in Xcode.
List of dependencies:
- RxSwift → Used for reactive programming, handling UI events and network responses asynchronously with
Relay,Driver,Subject. - Socket.IO-Client-Swift → Enables real-time data communication using WebSocket-based Socket.IO for message exchange with the server.
- Starscream → Manages WebSocket connections, facilitating real-time communication with the server.
- SnapKit → Simplifies Auto Layout implementation, allowing for intuitive and concise UI layout management in code.
- Toast-Swift → Displays brief notifications or error messages in a toast-style popup.
✔ Socket-based communication – Real-time ticketing system powered by Socket.IO.
✔ Reactive programming with RxSwift – Efficient event-driven programming.
✔ WebView-based SVG rendering – Renders a seating chart SVG in a WebView and overlays coordinate-based seat data.
✔ Secure environment configuration – Manages environment variables using .xcconfig to protect sensitive information.
✔ MVVM architecture – Separates UI and business logic, improving modularity and maintainability.
If you have any questions, feel free to reach out at idepix5@gmail.com.