분류 전체보기
-
SwiftUI Preview - ThunkSwiftUI 2025. 11. 29. 21:38
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI Preview가 어떻게 코드 변경을 실시간으로 반영하는지 그 내부 구조를 깊게 파헤쳐보려고 합니다 🙋🏻Preview is not magicSwiftUI Preview는 마치 마법처럼 알아서 짠하고 작동하는것처럼 보이죠.struct ContentView: View { var body: some View { Text("Hello") // If you change this }}#Preview { ContentView() // It will be update immediately} 앱 전체를 다시 빌드하지 않아도 Preview가 즉시 반영되는 이유는 바로 Xcode가 자동 생성하는 Preview-Thunk 파일(.prev..
-
Pagination StrategyiOS 2025. 11. 22. 08:33
안녕하세요. 그린입니다 🍏이번 포스팅은 개발에서 페이지네이션 구현 방법론에 대해 깊이 있게 알아보겠습니다 🙋🏻Pagination Deep Dive개발을 하다 보면 한 번쯤 마주치는 상황이 있죠.let posts = try await api.fetchAllPosts() // 10,000개의 게시글...tableView.reloadData() // 앱이 버벅거림 😱 수천, 수만 개의 데이터를 한 번에 로드하려다가 앱이 느려지거나 메모리가 터지는 경우 말이에요 😅이를 해결하기 위해서는 페이지네이션(Pagination) 전략을 취해야합니다. Why Pagination Matters?페이지네이션의 가장 큰 이유는 바로 성능과 사용자 경험이에요.// 😱 10,000개 게시글 → 수 초 대기, 메모리 수백..
-
Swift Closure Capture SemanticsSwift 2025. 11. 15. 09:07
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift Closure의 Capture Semantics에 대해 알아보겠습니다 🙋🏻 기본 문법은 모두 알고 계실테니, 실제로 헷갈리는 심화 내용들만 집중적으로 다뤄볼게요!Reference vs Value: 캡처 시점의 차이기본 동작Swift 클로저는 기본적으로 외부 변수에 대한 참조를 캡처하며, 이 참조는 클로저가 실제로 실행되는 시점에 평가됩니다.var counter = 0let closure = { print(counter) }counter = 10closure() // 10 출력 (0이 아님!) 클로저 생성 시점이 아닌 실행 시점의 값이 사용됩니다.Capture List로 값 복사하기캡처 리스트를 사용하면 클로저 생성 시점의 값을 캡처할 수 있습니..
-
WKURLSchemeHandleriOS 2025. 11. 9. 08:37
안녕하세요. 그린입니다 🍏오늘은 iOS 11에서 도입된 WKURLSchemeHandler에 대해 깊이 있게 살펴보려고 합니다.WKWebView에서 커스텀 URL Scheme을 처리하는 방법을 찾고 계셨다면, 도움이 되지 않을까 합니다! 🙋🏻From UIWebView To WKWebView2014년 iOS 8과 함께 WKWebView가 출시되기 전, iOS 개발자들은 UIWebView를 사용했습니다.UIWebView는 NSURLProtocol을 통해 커스텀 URL Scheme 처리가 가능했습니다.NSURLProtocol을 서브클래싱하고 등록하면, 커스텀 스킴(예: myapp://)으로 시작하는 모든 요청을 가로채서 처리할 수 있었죠.// UIWebView 시대의 NSURLProtocol 사용 예시cl..
-
Swift Build TechnologiesSwift 2025. 11. 1. 09:03
안녕하세요. 그린입니다 🍏수백만 개의 App Store 앱과 Apple 자사 운영체제를 빌드하는 데 사용되는 Xcode의 빌드 엔진을 오픈소스로 공개를 2월에 했었죠! 이번 포스팅에서는 Swift Build가 무엇이고, 왜 중요하며, 기존 SwiftPM 빌드 시스템과 어떻게 다른지 자세히 살펴보겠습니다 🙋🏻Swift가 크로스 플랫폼 언어로 성장Swift는 2015년 오픈소스로 공개된 이후 많은 성장을 해왔습니다.2015: iOS/macOS 전용 ↓2017: Linux 지원 ↓2020: Windows 지원 ↓2024: 임베디드 시스템 (마이크로컨트롤러) ↓2025: Android 지원 이제 Swift는⌚️ Wearables (Apple Watch)📱 Mobile (iOS, Android)💻..
-
Swift SDK for Android - Android 앱을 Swift로 개발하기Swift 2025. 10. 26. 09:08
안녕하세요. 그린입니다 🍏드디어 Swift로 Android 앱을 개발할 수 있는 시대가 왔습니다!2015년 오픈소스로 공개된 이후 Darwin 기반 시스템(iOS, macOS 등)에 집중했던 Swift가 이제 Android 앱 개발까지 지원하게 되었습니다. 이번 포스팅에서는 Swift SDK for Android를 시작하는 방법부터 실제로 "Hello World"를 Android 기기에서 실행하는 과정까지 자세히 정리해보겠습니다 🙋🏻Swift의 크로스 플랫폼 여정Swift는 2015년 오픈소스로 공개된 이후, Darwin 기반 시스템에 집중하던 언어에서 Linux, Windows, 그리고 다양한 임베디드 시스템을 지원하는 크로스 플랫폼 개발 언어로 성장했습니다.그리고 이제 Swift SDK for ..
-
Iterate Over Parameter PacksSwift 2025. 10. 18. 09:32
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift 6.0에서 도입된 Pack Iteration에 대해 정리해보려 합니다. Swift 5.9에서 도입된 Parameter Packs를 훨씬 더 쉽고 직관적으로 다룰 수 있게 해주는 기능인데요, 실제 코드 예제와 함께 살펴보겠습니다 🙋🏻Parameter Packs Recap먼저 Parameter Packs가 무엇인지 간단히 복습해볼까요?다음 코드를 보겠습니다. let areEqual = (1, true, "hello") == (1, false, "hello")print(areEqual)// false 위 코드는 단순히 두 튜플을 비교합니다. 하지만 이 코드는 튜플에 7개의 요소가 있으면 작동하지 않았습니다! Swift 표준 라이브러리는 오랫동안 최대..
-
Swift Profile RecorderSwift 2025. 10. 12. 08:24
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Apple이 오픈소스로 공개한 Swift Profile Recorder에 대해 정리해보려 합니다. 프로덕션 환경에서 성능 문제를 진단하는 새로운 도구인데요.실제로 Apple이 수년간 대규모 Swift 서비스 운영에 사용해온 도구입니다 🙋🏻Swift Profile Recorder란?Swift Profile Recorder는 Swift 서비스를 위한 인프로세스 샘플링 프로파일러입니다. 이제 오픈소스 프로젝트로 공개되어 누구나 사용할 수 있게 되었습니다.프로파일링은 애플리케이션의 성능, 리소스 사용량, 동작을 이해하기 위한 방법입니다. Swift Profile Recorder를 사용하면 패키지 의존성만 추가하면 되고 추가 설정이 필요 없어요. 주요 특징1. 특별..