iOS
-
Meet PaperKit (feat. WWDC 2025)iOS 2025. 6. 25. 18:30
안녕하세요. 그린입니다 🍏이번 포스팅에서는 WWDC 2025에서 나온 PaperKit에 대해 알아보겠습니다 🙋🏻개인적으로 재밌는 프레임워크가 나온것 같아서 가장 먼저 정리해보려고 했습니다 😃 Introduction PaperKit은 애플의 독특한 마크업 경험을 시스템 전반에 구현하는 프레임워크입니다.Notes, Screenshots, QuickLook, Journal과 같은 애플의 기본 앱에서 사용되고 있습니다.PaperKit은 도형, 이미지, 텍스트 박스 등 다양한 마크업 요소를 추가하고 그림을 그릴 수 있는 캔버스를 제공해줘요. macOS Tahoe의 새로운 기능인 PaperKit은 동일한 마크업 환경을 제공해 모든 macOS 앱에서 그림 그리기 및 마크업 요소가 잘 동작합니다. 그럼 조금..
-
Logger Caching & PerformanceiOS 2025. 6. 4. 13:15
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Logger 캐싱과 성능에 대해 한번 정리해볼까 합니다 🙋🏻Logger Caching & PerformanceiOS 개발에서 os.Logger를 포함한 로깅 시스템은 앱 진단 및 디버깅에 있어서 핵심적인 역할을 해줍니다. 하지만, 혹시 Logger 인스턴스를 매번 새로 생성하고 있지는 않으신가요? 이번 포스팅에서는 그것을 중심으로 Logger 인스턴스 캐싱이 왜 필요하고 실제로 어떤 성능 차이가 있는지에 대해 한번 분석해보면서 정리해봅니다 😃 Logger를 매번 새로 만든다면?Apple은 iOS 14부터 os.Logger API를 도입하면서 기존의 os_log 기반 로깅을 더 정돈된 방식으로 관리할 수 있게 발전했습니다.이 Logger는 단순한 구조체지만..
-
Lottie vs WebP AnimationiOS 2025. 5. 28. 18:44
안녕하세요. 그린입니다 🍏이번 포스팅에서는 iOS 앱에서 애니메이션을 표현할 때 사용하는 Lottie와 WebP의 성능 차이와 선택 기준들에 대해 정리해보려고 합니다 🙋🏻애니메이션 포맷 선택, 왜 중요할까?모바일 앱에서 애니메이션은 UI/UX를 풍부하게 만드는 핵심 요소입니다.하지만 성능, 용량, 디코딩 방식, 구현 편의성 등의 요소에 따라 포맷 선택은 앱의 사용자 경험과 직결됩니다. 그래서 이번 포스팅에서는 iOS에서 많이 사용하는 Lottie와 WebP 애니메이션을 비교하고, 실제 앱에 적용할 때 고려할 성능적 측면을 집중적으로 다뤄보겠습니다 💡 Lottie vs WebP 애니메이션 포맷 비교포맷타입압축CPU 사용량메모리 사용량재생 유연성용량장점단점LottieJSON벡터벡터 압축낮음매우 낮음자..
-
Server Image Format (feat. JPG, PNG, WebP)iOS 2025. 5. 23. 12:16
안녕하세요. 그린입니다 🍏이번 포스팅에서는 앱에서 서버 이미지를 받아올때 서버 이미지 포맷의 차이와 선택 기준들에 대해 한번 정리해보려고 합니다 🙋🏻Server Image Format모바일 앱에서 이미지는 사용자 경험에 큰 영향을 끼칠 정도로 아주 중요합니다.특히나 서버에서 내려받는 이미지 포맷은 앱의 성능, 용량, 로딩 속도에 직결되기 때문에 그 특성의 차이를 이해하고 상황에 따른 최적의 포맷을 선택하는것이 중요합니다. 그렇기에 본문에서 대표적으로 JPG, PNG, WebP의 차이를 알아보며 각 케이스마다 장단점들을 살펴보겠습니다 😃 Image Format Preview포맷압축 방식투명도 지원애니메이션 지원용량품질 손실특징JPG손실 압축XX적음O사진에 적합PNG무손실 압축OX큼X아이콘, 로고 등..
-
AVCaptureVideoPreviewLayeriOS 2025. 4. 18. 08:51
안녕하세요. 그린입니다 🍏이번 포스팅에서는 AVCaptureVideoPreviewLayer에 대해 정리해보겠습니다 🙋🏻 AVCaptureVideoPreviewLayer?AVCaptureVideoPreviewLayer는 Apple의 AVFoundation 프레임워크에서 제공하는 클래스에요.해당 레이어는 AVCaptureSession을 통해서 들어오는 실시간 비디오 데이터를 화면에 보여주는 역할을 해줍니다. 우리 앱에서 새로운 카드나 파일을 스캔할때 카메라를 켜서 자동으로 인식하게 해주는 기능 이제는 많아져서 익히 아실거에요.그것들이 이 AVCaptureVideoPreviewLayer을 기반으로 만들어진다고 볼 수 있습니다. 여기서 AVCaptureVideoPreviewLayer는 CALayer의 서브..
-
Crash 감지하고 다루기iOS 2025. 3. 29. 09:16
안녕하세요. 그린입니다 🍏이번 포스팅에서는 뭔가 개념적으로 각잡힌 정보 전달의 목적보다 제가 삽질하면서 그냥 코드로 나타내본 내용을 전달해볼까해요! 주제는, iOS App Crash를 감지하고 이를 다루기 위한 방법이라고 볼 수 있습니다.앞서 말했듯이 삽질 코드라서 부족한 부분이 있을수도 있고 논리적으로 안맞는 부분도 있을 수 있지만 그래도 주제 자체에서는 삽질을 완료하고 검증한 상태라 볼 수 있어요 😃 그럼 바로 들어가볼까요? Crash?앱에서는 의도치 않은 crash가 충분히 발생할 수도 있죠.메모리 부족 이슈라던지, 뷰 바인딩이 제대로 안되어 있다던지 아니면 의도적으로 fatalError 등 크래쉬를 내는 환경이라던지 너무 무수히도 많은 앱 크래쉬 현상이 발생할 수 있습니다. 물론, 이를 최대한..
-
iOS에서 서버 과부하 감지 및 API 호출 최적화iOS 2025. 3. 15. 09:51
안녕하세요. 그린입니다 🍏이번 포스팅에서는 iOS에서 서버 과부하를 감지하고 이에 API 호출을 최적화 하는 몇가지 방법에 대해 한번 다뤄볼까 합니다 🙋🏻IntroiOS뿐 아니라 모든 프론트엔드 개발에서는 서버와 원활한 통신이 필수적이죠.하지만 과도한 API 호출은 서버에 부담을 주기에 성능 저하, 트래픽 초과, 비용 증가 등의 문제를 야기할 수가 있어요.따라서 서버의 상태를 모니터링하고, 과부하 여부를 판단해 적절히 API 호출을 조절하는 전략이 필수적입니다. Criteria for determining server overload서버 과부하라는걸 판단하는 기준에 대해 한번 얘기해볼까 합니다.우리는 서버가 느려졌네? 라는걸 감으로 판단하기보다 데이터를 통해 측정해야 하죠. 어떤 방법들이 있는지 볼..
-
Server-Driven UIiOS 2025. 3. 7. 18:08
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Server-Driven UI에 대해 톺아보겠습니다 🙋🏻Server-Driven UI?서버 드리븐 UI라는건 앱의 UI를 서버에서 동적으로 정의하고, 클라이언트는 이걸 해석해서 화면을 구성하는 방식을 말해요 😃즉, 화면을 구성하는 컴포넌트 요소들을 JSON 등의 형식으로 서버에서 내려주면 클라이언트가 이를 해석해서 UI를 동적으로 렌더링합니다.결국 지향하는 목표는 앱 배포 없이 UI 변경이 자유롭고, A/B 테스트 등에 용이하다는 특징이 있죠! 그럼 서버에서 어떻게 내려주는건지 한번 살펴볼께요. JSON 기반 UI 정의서버는 UI 요소들을 JSON 형태로 정의해서 클라이언트에 전달해줍니다. 아래 서버 리스폰스 예를 볼까요? { "title": "메인 화..