본문 바로가기

전체 글

(16)
SocketClusterNative: 실시간 통신 개선을 위한 여정 저는 실시간 통신 기능을 제공하기 위해 socketcluster-client-swift 라이브러리를 활용하던 중, 여러 제약과 문제를 극복하기 위해 SocketClusterNative라는 오픈소스를 개발하게 되었습니다. 이 글에서는 그 과정에서 배운 점과 기술적 접근 방법을 공유하고자 합니다.socketcluster-client-swift에 대해서 더 자세한 내용을 알기 위해서는 이전 글을 참고할 수 있습니다. SocketCluster란?공식사이트 SocketCluster · Highly scalable pub/sub and RPC SDK optimized for async/awaitHighly scalable pub/sub and RPC SDK optimized for async/awaitsocketc..
iOS에서의 웹소켓 통신: socketcluster-client-swift 사용법과 분석 iOS에서 웹소켓 통신을 구현하는 방법 중 하나인 socketcluster-client-swift 라이브러리의 사용법과 소스코드를 분석해보겠습니다.이를 통해 기존보다 안정적이고 현대적인 오픈소스구현을 목표로 삼아보겠습니다. 개요Socket.IO와 마찬가지로 SocketCluster는 실시간 애플리케이션에 널리 사용되는 프레임워크입니다.이 때, iOS 개발을 위해 지원되는 라이브러리가 socketcluster-client-swift 입니다. 라이브러리 링크: socketcluster-client-swift 주요 기능설치 및 사용이 간편원격 이벤트의 송수신 지원Pub/Sub 패턴 지원JWT 인증 지원 요구사항iOS ≥ 8.0, macOS ≥ 10.10, watchOS ≥ 2.0, tvOS ≥ 9.0확실히 업..
iOS 개발자가 알아야 할 JSON 처리 방법 앱 개발에서 네트워킹을 통해 데이터를 주고받는 것은 매우 중요한 기능 중 하나입니다. 그리고 이 과정에서 가장 흔히 사용되는 데이터 형식이 JSON입니다. JSON은 간단한 텍스트 형식으로, 데이터를 인코딩(encoding) 하거나 디코딩(decoding) 하여 우리가 필요한 데이터 형태로 변환할 수 있습니다.Swift에서는 Encodable 프로토콜을 사용해 데이터를 JSON으로 인코딩하고, Decodable 프로토콜을 통해 JSON 데이터를 원하는 데이터 형식으로 디코딩할 수 있습니다. 이 두 프로토콜을 합친 Codable 프로토콜도 있습니다. 해당 프로토콜들은 Swift에서 JSON을 쉽게 다루도록 도와줍니다.   Mock API 환경 설정먼저 JSON을 테스트할 수 있는 Mock API 환경을 만..
SwiftPM - (SwiftPackage 개념 ~ 협업을 위한 PackageCollection 다루기) 1️⃣ Swift Package & Swift Package Manager🤔 Swift Package란?🔗 Package 개요 - 공식문서코드 모듈을 재사용 가능하고 쉽게 배포할 수 있도록 만든 구조화된 패키지입니다.패키지를 사용하면 코드의 재사용성을 높이고, 의존성을 쉽게 관리하며, 프로젝트의 유지 보수를 용이하게 할 수 있습니다.패키지는 Swift 소스파일과 Package.swift라는 매니페스트파일로 구성됩니다.Package.swift는 PackageDescription 모듈을 사용하여 패키지 이름과 내용을 정의합니다.패키지는 하나 이상의 Target이 존재하고, 각각의 Target은 Product를 지정하고 하나 이상의 의존성을 선언할 수 있습니다.  🤔 Swift Package Manage..
[iOS] CocoaPods - 라이브러리 생성 및 배포하기 ⚙️ Pod 프로젝트 생성방법1. Github에 Repository를 생성합니다.  2. 생성한 Repository를 Clone한 후 루트경로로 이동하여 pod lib create {라이브러리명} 명령어를 실행합니다. 3. 실행하면 질문을 하는데 해당 질문들에 대한 설정을 진행합니다.Q1) What platform do you want to use?? [ iOS / macOS ]Q2) What language do you want to use?? [ Swift / ObjC ]Q3) Would you like to include a demo application with your library? [ Yes / No ]데모앱을 선택하면 라이브러리에 대한 Xcode 프로젝트를 자동생성합니다.Q4-1) Whic..
[iOS] CocoaPods - 명령어 및 에러 정리 🔑 코코아팟 명령어# 작성한 Podfile을 통해 pod을 설정(추가,수정,삭제)해주는 명령어$ pod install해당 명령어를 실행한 후 .xcworkspace 파일이 생성됩니다. 해당 파일은 .xcodeproj의 모음입니다.Xcode 프로젝트를 워크스페이스라는 하나의 작업공간으로 묶어놓은 단위입니다. 여러 Xcode 프로젝트의 의존성을 연결할 수 있는 방법입니다. 그래서 코코아팟을 통해 라이브러리를 가져오면 기존 프로젝트와 의존성을 맺어주기 위해 워크스페이스를 생성합니다. 처음에 생성한 프로젝트와 받아온 Pod들을 묶어서 하나의 워크스페이스로 구성하여 기존 프로젝트 이름과 동일한 이름의 워크스페이스를 생성합니다. # 팟의 업데이트된 버전을 확인한 후 최신버전으로 업데이트 (Podfile.lock ..
[iOS] CocoaPods - 기본설명 Cocoa Pod이란?🔗 CocoaPods.orgSwift 및 Objective-C 언어 환경 프로젝트의 의존성을 관리해주는 도구입니다. 언어의 특성상 코코아(Cocoa) 및 코코아터치(Cocoa Touch) 프레임워크에서 사용할 수 있는 라이브러리가 대다수를 이룹니다.코코아팟은 Ruby로 개발되었습니다.  👨🏻‍💻 사용방법설치하기# 코코아팟 설치 (macOS는 기본적으로 Ruby설치되어있음)$ sudo gem install cocoapods   📃 PodfilePodfile이란? 프로젝트의 의존성을 관리해주는 파일입니다.Podfile은 Xcode 프로젝트 경로에서 관리합니다. Podfile 생성명령어# Podfile 생성 - (Xcode 프로젝트 경로에서 실행)$ pod init Podfile..
Fastlane Plugin을 활용하여 iOS앱아이콘 Badge 표시 1️⃣ 개요Fastlane이란? iOS 앱 배포 단순화를 목표로 하는 오픈 소스 플랫폼입니다.Fastlane은 여러가지 기능들을 제공하고, 해당 기능들을 활용하여 배포작업(TestFlight에 앱을 업로드하는 작업)시간을 단축시키거나 간단하게 처리할 수 있습니다.Fastlane의 기본동작 원리는 lane이라는 워크플로를 작성한 후 실행하는 방식입니다.  Fastlane - Plugin 기능 설명Fastlane을 설치하면 기본적인 Action이 제공되지만, 좀 더 다양한 작업을 위해 🔗 Plugin기능을 활용할 수 있습니다.서로 다른 fastlane 사용자들이 plugin기능을 통해 공유할 수 있습니다.🔗 이용가능한 Plugin 목록해당 블로그는 fastlane 설치가 완료되었다는 과정하에 작업을 진행..