[iOS] Delegate에 AnyObject 채택은 필수일까?
·
iOS/개념 & 개발
서론 언제나 그렇듯 아래와 같이 Delegate를 만들고 있었습니다. protocol OOODelegate: AnyObject { func ... } 근데 아차! 싶었습니다. Delegate에 왜 AnyObject를 붙여야 하지?라는 생각을 따로 안 해봤더라고요. 어렴풋이 알고는 있었지만 따로 생각을 해보거나 글로 정리한 적이 없어서 이렇게 포스팅하기로 결정했습니다. iOS에서는 언제 Delegate를 쓸까? Delegate는 Delegate를 채택하는 누군가에게 나의 행위를 위임합니다. Delegate를 사용하는 곳에서는 메서드를 호출만 하고, Delegate를 채택하는 곳에서 메서드를 구현하는 것입니다. iOS에서는 주로 유저 이벤트에 따른 행위를 구현할 때 Delegate를 사용합니다. 예를 들어,..
[iOS] WWDC21 테크톡 - Find and fix hitches in the commit phase
·
WWDC/iOS
서론 WWDC21 테크톡 - Find and fix hitches in the commit phase에서는 Commit phase의 hitch를 찾고 고치는 내용을 다룹니다. hitch와 commit phase가 무엇인지는 WWDC21 테크톡 - Explore UI animation hitches and the render loop를 확인해 주세요. What is a Commit Transaction 터치 이벤트를 받으면 UI를 업데이트하게 됩니다. 시스템은 레이아웃이나 디스플레이 변경이 필요한 서브 뷰들을 기록합니다. 그리고 다음 Commit phase에서 시스템에 의해 draw와 layoutSubviews가 호출되면서 업데이트 됩니다. Commit Transaction은 4단계로 이루어집니다. lay..
[iOS] WWDC21 테크톡 - Explore UI animation hitches and the render loop
·
WWDC/iOS
서론 WWDC21 테크톡 - Explore UI animation hitches and the render loop에서는 hitch와 render loop가 무엇인지 알아보고, hitch의 종류, hitch를 측정하는 방법에 대해 알아봅니다. 이번 포스팅에서는 측정하는 방법까지만 다루고, 다음 포스팅인 Find and fix hitches in the commit phase에서 hitch를 제거하는 방법을 알아보겠습니다. What is a hitch 앱에서 애니메이션은 사용자와 앱 사이의 시각적 연결을 도와줍니다. 예를 들어, 사용자가 손가락을 화면을 쓸어넘기면 화면이 변해야 합니다. hitch는 예상보다 늦게 화면에 나타나는 프레임으로, 다음 프레임의 생성이 늦어져 애니메이션이 끊기는 시간입니다. hi..
[iOS] Alert 개선 과정 단계별로 살펴보기
·
iOS/개념 & 개발
서론UIAlertController는 보일러 플레이트가 생기기 쉽습니다.UIAlertController 생성UIAlertAction 생성present위 세 가지 로직이 반복적으로 사용되기 때문입니다. 메서드로 분리할지라도 UIAlertAction 생성에 중복 코드가 생기고, 그게 아니라면 메서드 파라미터가 많아집니다. 이번에는 Wrapper를 사용해 선언형 구조로 Alert를 깔끔하게 정리해 보겠습니다. 많이 고민하며 진행했지만 잘못된 부분이 있을 수 있습니다. 댓글로 피드백 꼭 부탁드립니다. 전체 코드는 아래 링크에서 확인 가능합니다. https://github.com/jeongju9216/SwiftPractice/tree/main/ExampleAlertWrapper/ExampleAlertWrapper..
[Xcode] Thread Sanitizer - Race Condition 디버깅
·
iOS/Xcode
서론 최근 Xcode의 Thread Sanitizer 기능에 대해 알게 되었습니다. 직접 사용해보니 흥미로워서 공유 목적으로 포스팅 작성합니다. 그리고 혹시 Sanitizer라는 영단어를 들어보셨나요? 전 이번에 처음 들어봤는데요. 소독제, 살균제라는 뜻이더라고요. Thread를 소독해주는 기능(?)이라는 표현 같습니다 ㅋㅋ Race Condition TSan(Thread Sanitizer)는 런타임에 Race Condition을 탐지해 줍니다. 그래서 일단 Race Condition이 무엇인지 간단하게 살펴보도록 하겠습니다. Race Condition이란 현재 작업 이외의 또다른 작업의 타이밍(작업순서)에 따라 결과가 달라져 여러 결과를 만들어낼 수 있는 상황을 말합니다. 생김새가 비슷한 단어로는 Da..
[iOS] 작심삼일 개발 일지 6 - 대규모 2.0 패치
·
iOS 프로젝트/작심삼일
서론지난 포스팅에서 작심삼일을 사용하면서 느낀점과 개선 계획에 대해 다루었습니다. (작심삼일 개발 일지 5 - 실사용 후기 & 개선 계획) 이중에서 여러 개 목표를 등록할 수 있는 기능을 포함해 대규모 2.0 패치를 진행했습니다. 이번 포스팅에서는 변경점을 간단히 안내하겠습니다. 사용하시면서 의견이 있으시다면 댓글로 리뷰 부탁드립니다. 작심삼일 다운로드 링크 ‎작심삼일: 원클릭 목표 달성‎항상 큰 목표를 잡고 포기하거나 실패하는 일이 많습니다. 작심삼일을 이용해 작심삼일에 도전하세요!apps.apple.com 앱 사용 일수 표시앱을 사용한 일수를 표시하였습니다. 상단 왼쪽에 "작심 1일" 문구가 보이시나요? 오늘이 1일차 사용이라 작심 1일로 표시된 것입니다. 이렇게 앱을 사용한 일수를 표시해서 성취감을..
[iOS] iOS 시뮬레이터와 Android 에뮬레이터 차이점
·
iOS/개념 & 개발
서론 갑작스레 iOS의 시뮬레이터와 안드로이드의 에뮬레이터 차이점이 궁금했습니다. 에뮬레이터는 왜 시뮬레이터보다 느릴까?라는 생각에서 시작된 의문이었습니다. 찾아보니 생각보다 근본적인(?) 이유때문에 차이가 있는 거였습니다. 시뮬레이터(Simulator) 시뮬레이터는 실제 기기의 표면적인 결과만 모방하고, 그 안에서 일어나는 모든 과정을 다 구현하지는 않습니다. 예를 들어, 아이폰의 CPU와 OS의 모든 것을 그대로 구현한 것은 아니지만, 시뮬레이터에 앱을 올렸을 때 실제 기기와 결과가 동작하도록 구현되어 있습니다. 그래서 시뮬레이터와 실제 기기 간의 동작에 차이가 있을 수 있고, 서로를 완전히 대체 가능하지 않습니다. 저는 이 개념을 시뮬레이션 게임과 함께 생각하니 이해가 빠르게 되었습니다. 비행기 시..
[iOS] 비전 프로(Apple Vision Pro) 시뮬레이터 체험
·
iOS/개념 & 개발
Xcode 15 beta 2 릴리즈 2023년 6월 22일, Xcode 15 beta 2와 함께 Vision Pro SDK가 릴리즈되었습니다. visionOS 시뮬레이터 SDK 릴리즈 소식 및 다운로드 방법 [IT 소식] visionOS 시뮬레이터 SDK 릴리즈 소식 및 다운로드 방법 visionOS SDK 릴리즈 2023년 6월 22일 드디어 visionOS SDK가 릴리즈 되었습니다. Xcode 15부터 사용할 수 있으며 Preview에서 앱을 실행시킬 수 있다고 합니다. 실내 레이아웃과 조명 환경을 변경할 수 있다는 jeong9216.tistory.com 저도 후다닥 Xcode 15를 다운 받아서 실행해봤습니다. 애플에서 샘플 코드도 올려줘서 체험해보기가 어렵지 않았어요. 전체 개요 : https:..
[IT 소식] visionOS 시뮬레이터 SDK 릴리즈 소식 및 다운로드 방법
·
IT 소식
visionOS SDK 릴리즈2023년 6월 22일 드디어 visionOS SDK가 릴리즈 되었습니다. Xcode 15부터 사용할 수 있으며 Preview에서 앱을 실행시킬 수 있다고 합니다. 실내 레이아웃과 조명 환경을 변경할 수 있다는게 인상적이네요. SDK 다운로드visionOS 다운로드는 https://developer.apple.com/visionos/ 에서 가능합니다. Xcode 15 beta 2를 다운로드 받을 때 visionOS 1 beta를 함께 다운로드 할 수 있습니다. 저도 Xcode 15 베타버전 다운로드해서 실행해봐야겠네요 ㅎㅎ 시뮬레이터 사용 후기는 따로 포스팅해보겠습니다. (체험 후기 : 비전 프로(Apple Vision Pro) 시뮬레이터 체험 - https://jeong92..
[iOS] 작심삼일 개발 일지 5 - 실사용 후기 & 개선 계획
·
iOS 프로젝트/작심삼일
서론 작심삼일 앱은 제가 처음 개발한 목표달성 앱입니다. 2022.02.02 - [iOS 프로젝트/작심삼일] - [iOS] "작심삼일" 출시 기념 앱 소개 앱 소개 글을 작성한지도 벌써 1년하고도 4개월이 지났네요. 작심삼일 앱을 꾸준히 확장하고 싶었는데 앱 자체가 너무 간단하고, 애초에 기획부터 간단함을 추구했기 때문에 애매한 감이 있었습니다. 그래서 직접 본격적으로 사용해보면서 뭐가 불편한지, 더 있으면 좋을 기능은 무엇인지 생각해보았습니다. 느낀 점 일단 간편하고 직관적이었습니다. 목표를 입력하고, 버튼 한 번 딸깍만 하면 달성 일수가 오르기 때문입니다. 그리고 3일마다 축하 메시지를 보여줘서 나름 뿌듯하기도 했습니다. 근데 명분이 너무 약하다는 생각이 들었습니다. 달성 일수 텍스트 하나만으로는 꾸..
유정주
'iOS 개발' 태그의 글 목록