
네트워크를 사용 해서 데이터를 받는 상황일 때 시간이 걸리기 때문에 반드시 비동기에 대한 고려를 하게 됩니다. 동기와 비동기 그리고 나아가 큐에 대해서 알아본 내용을 정리 했습니다.동기 (Synchronous) 동기 작업은 한 번에 한 가지 작업만을 수행합니다. 작업

쏘카 라이브러리를 보다가 swinject라는 Library를 알게 되었다.의존성 주입을 도와주는 Library라고 들었는데 의존성 주입 ( DI )에 대해서 알아보자.개발 시에 어떤 객체는 다른 클래스에 의존 하게 되는 상황이 발생 한다. 그 때 두 클래스는 서로 강하

MVC (Model-View-Controller):Model: 데이터와 비즈니스 로직을 처리합니다.View: 사용자 인터페이스(UI)를 표현하며, 사용자의 입력을 받습니다.Controller: Model과 View 사이의 중개자 역할을 합니다. 사용자의 입력을 처리하고

RXSwift 4시간에 끝내기RxSwift에서 옵셔널을 다루기 위한 확장 라이브러리.팟에 rxoptional을 추가하여 사용 가능.옵셔널 값에 대한 다양한 연산자나 메서드를 제공.ViewController의 생명주기 이벤트를 RxSwift 스타일로 처리.viewWill

실제 앱에서 적용 하는 RXSwift Code RxSwift에서의 바인딩 RxSwift에서 "바인딩"은 주로 Observable 혹은 Observable 시퀀스에서 방출되는 데이터를 UI 컴포넌트에 연결하는 것을 의미합니다. 이 연결을 통해 데이터가 변경될 때 UI

swift를 처음 배우기 시작 했을 때 거의 처음 고민 하는 것은 아마 SwiftUI로 시작 할 것인가, 아니면 UIKit으로 시작 할 것 인가 하는 고민일 것이다. 필자는 고민 끝에 좀 더 기초적이고 현업에서 많이 쓰인다고 하는 UIKit으로 입문 하였다. 그러나

애플의 weatherKit을 이용 해서 작업 중에 문득 파일 목록을 보니 제일 상단의 무슨 카드 모양 같은 파일이 생성 된걸 목격했다.파일 명은 Capeng.entitlements 이였다. 형식은 xcode의 info 파일과 같았다. 안의 내용은 weatherKit을

개요 프로젝트를 하던 중, 프로젝트를 GIT에 public으로 변경 하려고 한다. 그런데 한가지 걸리는 점이 있었다. 혼자 작업을 하는 프로젝트 였기 때문에 키를 공개 하고 비공개 하는 작업이 필요 없었지만, 공개로 변경 하게 된다면 키를 숨겨야 하기 때문이다. 이 글

들어가며... 지금 당신의 감정이 어떤 감정인지, 당신은 명확히 알고 있는가?. 나는 아직 잘 모르겠다. 분노의 감정 인줄 알았는데 감정이 일으킨 원인을 알아보고자 되짚어보면 사실 그건 서운함이거나, 섭섭함, 미안함. 일때가 있었다. 그렇다면 어떤 감정이 들 때 그 감

들어가며... 미술관 전시 후기를 남길 수 있는 앱을 만드는 과정 중, 유저가 올린 사진을 업로드 한 순서에 맞게 후기 상세 페이지에 바인딩 하는 과정을 정리 해봤다. 유저의 업로드 할 때의 순서와 후기 페이지에서 그 사진을 보여줄 때의 순서가 동일 하게 하는 것을

들어가며.. 스위프트로 앱을 작업 하던 중 검색 기능에서 자동 완성 기능을 구현 해야 하는 상황이 생겼다. 앱의 서버는 FireBase를 사용 했는데, FireBase를 사용 하면 자동 완성 기능을 구현함에 있어서 어려움이 있었다. 우선 자동 완성 기능은 한글이나 영

면접 준비를 하던 중 Delegate와 Notification의 차이가 무엇인지 설명 하라는 예시 질문이 있었다. 생각 해보니 둘의 차이가 뭔지 생각 해본 적이 없어서 이번 글로 정리를 해보겠다.우선 두 가지의 개념의 공통점은 "통신, 커뮤니케이션"이다. 객체 간의 통

앱을 만들 던 중 사진의 영역을 지정하거나 회전 하는 등의 사진 편집 기능이 필요하여 관련 라이브러리를 찾아보았다. 이 글은 그 라이브러리 중 Mantis 라이브러리를 이용하여 사진 편집 기능을 구현하고, 사용 방법을 간략하게 적어보았다. Mantis Git Hub 주

앞서 적었던 절대 반지? 절대 프레임을 찾아서...의 글에서 완벽한 프레임은 어떤 크기 인지, 어떤 비율인지 작성 하였다. 그 디자인을 토대로 프레임을 만들고 디자인을 하며, 실제 디자인의 화면과 일치 하는 개발단에서의 작업을 정리 한 글이다. 디자이너의 의도를 어떻게

WWDC 즉 애플 개발자 컨퍼런스는 애플에 디바이스에 들어가는 OS 들의 업데이트나 앞으로 1년의 비전을 소개 하는 자리이다. 이번에는 특히나 애플이 타 회사에 비해 유독 조용 했던 AI와 관련된 이야기들을 꺼내는 자리라고 하여 주목을 많이 받기도 했고 AI를 어떻게

Xcode도 새로운 기능이 많이 생겼다. 내가 기다렸던 MS의 코파일럿 같은 기능이 Swift Assist로 추가 되었고 Swift Testing를 통해 테스트를 통해 코드를 작성 할 수 있다. 좀 더 편하게 코드를 작성 할 수 있지만 더 디테일 하게 테스트 하고 컨트

XCode로 작업 하게 되면 종종 왼쪽의 파일 목록 옆에 간혹 대문자로 마크가 떠있는 경우가 있다. 어림잡아서 Git과 연동된 프로젝트일 경우에 그런 마크가 뜨는거 같았고 커밋을 하지 않았다는 뜻인거 같았는데 정리가 필요 할거 같아 이번 기회에 정리 해본다. 프로젝트가

Xcode 업데이트를 하며 늘 하던 것 처럼 'pod init'을 통해 cocoapod 을 통해 라이브러리를 이용 할 준비를 하였다. 하지만 어째서인지 pod file 이 생성 되지 않았다. 에러는 다음과 같았다. 이런식으로 터미널에서 에러가 쭉 떴는데 요약 하자면 '

빌드 할 때 폴더의 내용이 Xcode에 뜨지 않아 임의로 파일을 네비게이터에 드래그 하여 추가 하였다. 내용은 잘 떴으나 다음과 같은 에러가 떴다. Build Phases에서 중복된 Info.plist가 있었기 때문이었다. Xcode에서 프로젝트를 열고, 왼쪽 사이드바

Xcode를 사용하다 보면 여러 시뮬레이터와 디바이스들이 쌓여 많은 용량을 차지하게 됩니다. 특히 사용하지 않는 시뮬레이터나 tvOS 디바이스들은 큰 저장 공간을 소모하기 때문에 정기적으로 정리하는 것이 좋습니다. 터미널 명령어를 사용하여 불필요한 시뮬레이터를 삭제하고

최근 대형 언어 모델(LLM)의 발전으로 자연어 처리 분야에 혁신적인 변화가 일어나고 있다. 하지만 이러한 모델들은 보통 거대한 크기와 높은 연산 요구량 때문에 서버 환경에서만 구동되는 경우가 많다. 이번 글에서는 아이폰에서 로컬로 LLM을 구동하는 방법을 소개하고,

MLXLLM의 역할: 모델 로드 및 관리모델 로드: MLXLLM은 LLaMA와 같은 대형 언어 모델을 로드하는 역할을 담당한다. 모델은 일반적으로 서버에서 다운로드되며, MLXLLM을 통해 메모리에 로드된다. 이를 통해 모델이 사용 가능한 상태로 준비된다.MLXLLM.

Swift 앱에서 사용자 경험을 개선하기 위해 아이디와 비밀번호 자동완성 기능을 구현할 수 있다. 이 글에서는 Firebase Hosting을 사용하여 아이디와 비밀번호 자동완성 기능을 구현하는 방법을 단계별로 설명한다.서버가 필요한 이유는 iOS가 암호화된 서버를 통

iOS 앱을 개발하다 보면 가끔 빌드 중에 이상한 오류 메시지를 만나게 된다. 그 중 하나가 다음과 같다:이 글에서는 이 오류가 왜 발생하는지, 그리고 어떻게 해결할 수 있는지 쉽게 설명한다.오류 메시지를 보면 'libarclite'라는 파일이 없다고 나와 있다. 이

앱스토어에 앱을 배포하는 과정은 많은 개발자들에게 큰 도전이다. 나 역시 애플의 엄격한 심사 과정을 통과하지 못해 리젝을 당한 경험이 있다. 이번 글에서는 내가 겪은 리젝 사유와 이를 해결하기 위해 취한 조치들에 대해 자세히 설명하려 한다.내가 개발한 앱은 사용자들이

App Store Connect에서 발생할 수 있는 ITMS-90078: Missing potentially required entitlement 오류에 대해 설명하고, 이를 해결하는 방법을 안내한다.최근 앱 제출 시 다음과 같은 오류 메시지를 받았다:이 오류는 앱이

애플의 일기 앱, 정확히는 "Journal" 앱을 알고 있는가? 애플은 이 앱을 출시함과 동시에 일기 쓰기 제안 API를 공개하였다. 이 API를 통해 사용자들이 일기나 메모를 작성할 때 더욱 유용하게 활용할 수 있을 것으로 기대된다. 이번 글에서는 애플의 Journa

Swift로 앱을 개발하면서 사용자가 로그인할 때, Safari나 웹에서 저장된 자격 정보를 바탕으로 자동완성(자동 로그인) 기능을 제공하고 싶을 때가 있다. 이를 위해서는 Associated Domains와 Shared Web Credentials를 활용해야 한다.

다국어 지원은 다양한 국가와 지역의 사용자들에게 접근성을 높여주는 중요한 요소이다. SwiftUI를 사용하여 iOS 앱에 한국어 지원을 추가하는 방법을 단계별로 자세히 설명한다. 이번 글에서는 Xcode 15부터 도입된 String Catalog를 활용하여 효과적으로

iOS 개발을 하다 보면 반복적으로 사용하는 컴포넌트나 유틸리티가 생긴다. 이를 직접 라이브러리화해서 오픈 소스로 공개하면, 다른 개발자들과 지식을 나누고 함께 발전시킬 수 있다. Swift Package Manager(SPM)를 통해 간편하게 배포할 수도 있어, 점점

오픈 소스 라이브러리를 사용하는 프로젝트에서는 사용된 라이브러리의 라이선스를 명시하는 것이 중요하다. 이를 위해 AcknowList 라이브러리를 활용하면 손쉽게 라이선스 정보를 표시할 수 있다. 본 글에서는 AcknowList 라이브러리를 프로젝트에 적용하는 방법을 단

발생 조건 외부 라이브러리(AcknowList)의 AcknowViewController 클래스 사용 acknowledgement 프로퍼티에 접근 시도 에러 메시지:'acknowledgement' is inaccessible due to 'internal' prot

iOS 개발을 진행하다 보면, 디버그(테스트) 환경에서만 실행되어야 하는 코드를 작성해야 하는 상황이 빈번히 발생한다. 예를 들어, 테스트 중에만 특정 데이터를 초기화하거나, 개발자 전용 기능을 활성화하고 싶을 때가 있다. 이러한 요구를 효과적으로 충족시키기 위해 Sw

앱 스토어에 앱을 업로드하는 과정에서 "The product archive is invalid. The Info.plist must contain a LSApplicationCategoryType key" 오류가 발생했다면, 앱 카테고리가 제대로 설정되지 않은 것이다.

최근 iOS 앱에 Google Analytics를 연동하려고 시도했으나, 구글에서 제안한 기존 방법대로 진행하면 로그가 전송되지 않는 문제가 있었다. 이 글에서는 문제 발생 원인과 해결 과정을 단계별로 정리한다.구글에서는 코코아팟(CocoaPods)으로 Analytic

최근 진행한 프로젝트에서 iOS 앱에 Firebase Cloud Messaging(FCM)을 연동하였다. 본 글에서는 Xcode에서 메시지 패키지를 추가하고, App Connect에서 APNs 인증 키를 등록하며, Firebase 셋팅과 실제 푸시 알림 테스트 과정을

1. 개요 지난 10년간 iOS 개발 분야에서 Xcode에 국한되지 않은 개발 환경을 구축하는 것은 큰 진전이다. 본 가이드는 Cursor(또는 VSCode 기반 편집기)를 사용하여 iOS 개발 환경을 보다 효율적으로 구성하는 방법을 단계별로 안내한다. Cursor를

아카데미에서 한 러너(Runner)가 API 키를 하드코딩하여 푸쉬해버린 초유의 상황이 발생했다. 이미 블로그에 작성했던 방법으로는 올라간 푸쉬 내역을 완전히 삭제할 수 없었다. 이 문제를 해결하기 위해 멘토에게 조언을 구했고, 이전 브랜치로 돌아가서 하드 리셋 후 푸

아이메세지 스티커는 대화를 더 재미있고 다채롭게 만들어주는 훌륭한 도구이다. 이번에 만든 앱은 유저가 키링 사진을 찍은 뒤, 사진의 배경을 제거 하고 그걸 아이메세지 스티커로 사용 하는 앱이다. 이 글에서는 아이메세지 스티커 앱을 만드는 기본적인 과정과 핵심 개념을 다

iOS 앱 개발자라면 누구나 공감할 것이다. 새로운 기능을 추가하거나 버그를 수정한 후 앱스토어에 배포하는 과정은 생각보다 많은 시간과 노력을 필요로 한다. 코드를 빌드하고, 잘 작동하는지 확인한 후 커밋하고 푸시한다. 그리고 아카이브 파일을 만들고, 앱스토어 커넥트에

WWDC25에서 공개된 Foundation Models 프레임워크는 인터넷 연결 없이도 온디바이스에서 언어 모델 기능을 제공한다.앱 내부에 탑재된 이 모델은 텍스트 생성, 요약, 엔티티 추출, 구조화된 데이터 출력, 툴 호출 등을 모두 처리한다.별도의 서버 의존 없이

이 글은 WWDC 25에서 Foundation Models를 공개 하면서 실제 사용 예시로 만든 예제 앱의 코드를 분석 하면서 AI가 생성한 텍스트가 어떻게 실시간으로 UI에 반영되고, 애니메이션과 함께 자연스럽게 갱신되는지를 실제 코드 예시와 함께 상세히 설명한다.이