Skip to content

Latest commit

Β 

History

History
128 lines (95 loc) Β· 4.2 KB

File metadata and controls

128 lines (95 loc) Β· 4.2 KB

πŸš€ Socketing

πŸ“² Download on the App Store

https://apps.apple.com/kr/app/socketing/id6741525412


πŸ“ Description

  • 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.

πŸŽ₯ Demo


βš™οΈ System Requirements

  • Xcode Version: 15.0
  • macOS Version: Ventura 13.5 (M2)

πŸ”§ Project Requirements

  • Swift Version: 5.9
  • iOS Deployment Target: 15.0 or later
  • Dependencies: RxSwift, SocketIO, SnapKit, Starscream, Toast

βš™οΈ Installation

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:

  1. Navigate to the Configurations folder:
cd Configurations
  1. Create .xcconfig files for different configurations:
  • Debug.xcconfig
  • Release.xcconfig

πŸ’‘.xcconfig files are ignored by Git

  1. Inside each .xcconfig file, add the following variables
BASE_URL = [your-api-url]
SOCKET_URL = [your-socket-url]
QUEUE_URL = [your-queue-url]
  1. Verify the configuration is applied correctly in Xcode:
  • Go to Project β†’ Info β†’ Configurations
  • Ensure the Debug and Release configurations reference the corresponding .xcconfig files.

▢️ Running the App

  1. Open the project in Xcode

  2. Select a simulator or physical device

  3. Press Cmd + R to run the app


πŸ“Œ Project Structure


πŸ“‚ 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)

πŸ”— Dependencies

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.

🌟 Key Features

βœ” 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.


πŸ“¬ Contact

If you have any questions, feel free to reach out at idepix5@gmail.com.