[iOS] 화면 방향에 따라 다른 레이아웃 적용하기 - viewWillTransition
·
iOS/개념 & 개발
화면 방향에 따라 다른 레이아웃 적용하기 세로 레이아웃과 가로 레이아웃이 다른 앱을 쉽게 볼 수 있습니다. 대표적인 기본 앱은 계산기가 있죠. 스마트폰을 가로로 회전시키면 세로 레이아웃에 View가 추가된 레이아웃으로 변경됩니다. 스마트폰만 지원한다면 "세로로 고정시키면 되지 않나?"라고 생각할 수 있지만, 아이패드까지 지원한다면 화면 방향에 따라 적절한 레이아웃을 고려하는 것이 사용자 경험을 증가시킬 수 있습니다. 생각해보세요! 계산기 앱에서 가로 방향에서만 나오는 여러 수식 버튼들이 세로 방향에서도 나오고, 그 영향으로 버튼이 콩알만 해지면 훨씬 불편해지겠죠?? (여러 수식들로 멀미가 나는건 덤..) viewWillTransition(to:with:) 이럴 때 사용할 수 있는 메서드가 viewWill..
[Xcode] Xcode 14.0와 iPhone 14 pro 시뮬레이터
·
IT 소식
Xcode 14.0 업데이트 9월 12일 Xcode 14.0 업데이트가 나왔습니다. iOS 16.0, iPad 16.0 등을 지원하고 iPhone 14 Pro 확인이 가능합니다. 즉 변경된 노치를 확인할 수 있다는 것이죠! ㅎㅎㅎ Xcode UI도 변경된 점이 있는데요. https://developer.apple.com/videos/play/wwdc2022/110427/ 한글 자막을 지원하는 WWDC22에서 바뀐 Xcode를 소개하고 있답니다. 대표적으로는 시뮬레이터 선택지가 심플하게 바뀌었답니다. 저 작은 기기의 아이콘은 앱스토어 커넥트에서도 볼 수 있었는데 이곳저곳 돌려가면서 쓰는거여서 그런지 심플하니 매력적인 거 같아요 ㅎㅎ 아이폰 14 Pro 시뮬레이터 사실 이게 본론이죠? 아이폰 14 Pro 시..
[iOS] 작심삼일 개발 일지 - 4 (스토리보드 분리)
·
iOS 프로젝트/작심삼일
서론 작심삼일은 학업과 새로운 프로젝트로 인해 신규 기능 개발은 잠시 접어둔 상태입니다 그렇지만 코드 정리는 꾸준히 해야할 거 같아서 오랜만에 프로젝트를 열어보았는데요. 최근 알아본 스토리보드 최적화를 작심삼일 프로젝트에 적용하려고 합니다. 전에 비해 굉장히 쾌적(?)해져서 정말 뿌듯하더라고요 ㅎㅎ 오늘 사용할 스토리보드 레퍼런스 포스팅은 https://jeong9216.tistory.com/535 에서 볼 수 있습니다. 기존 스토리보드 구성 기존에는 Main 스토리보드에 모든 화면이 존재했습니다. 화면 자체가 많은 앱이 아니라 불편한 점은 없었지만 화면마다 따로 협업할 경우 문제가 생길 수 있습니다. 그래서 스토리보드 레퍼런스를 이용해 여러 개의 스토리보드 파일로 분리하기로 결정했습니다. 스토리보드 레..
[Swift] WWDC16 - Understanding Swift Performance (3)
·
WWDC/Swift
이전 글 Understanding Swift Performance (2) Generic drawACopy는 Generic을 이용해 매개변수 제약 조건을 주고 있습니다. 이는 프로토콜 타입과 무엇이 다를까요? 제네릭 코드는 매개변수 다형성이라고도 하는 보다 정적(static) 형태의 다형성을 지원합니다. 함수 foo는 Generic으로 만들어졌고 Drawable만 받을 수 있습니다. Point는 Drawable 프로토콜을 준수했으니 foo의 파라미터로 사용할 수 있습니다. 이 foo 함수가 실행되면면 Swift는 제네릭 타입 T를 Point 타입에 바인딩 합니다. 함수 foo가 바인딩과 함께 실행될 때 bar가 호출되면 local 변수는 직전에 사용한 타입인 Point를 가지게 됩니다. 타입은 매개변수를 ..
[iOS] UITextView 원하는 문자에만 색상 넣기(여러 개도 OK)
·
iOS/개념 & 개발
기능 설명 UITextView의 텍스트에 색상을 넣어야 하는 작업을 해야 했습니다. 모든 글자가 아니라 특정 키워드에만 색상을 적용하는건데요. 이 키워드는 여러 개가 될고 텍스트에 키워드가 여러 번 나올 수 있습니다. 예를 하나 들어봅시다. UITextView에 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세 ... 텍스트가 들어있다고 합시다. 색상을 바꿔야 하는 키워드는 "동해물", "백두산", "하느님" 이라고 할 때, 이렇게 되어야 하는거죠. 기존 코드의 문제 인터넷에 떠도는 코드로 시도를 해보았습니다. l..
[Swift] 공식 문서 - Memory Safety
·
Swift/Swift 가이드
새로 배운 점 Swift는 특정 메모리 공간을 수정하는 코드가 그 메모리의 소유권을 가지도록 요구함으로써 동일한 메모리 영역을 동시에 접근할 때 충돌하지 않도록 해줍니다. 메모리 액세스의 지속시간은 instantaneous(순간적) 또는 long-term(장시간)일 수 있습니다. 만약 액세스가 끝나기 전에 다른 코드가 실행될 가능성이 없다면 이 액세스는 순간적(instantaneous)입니다. 다른 코드의 실행에 걸쳐서 메모리에 액세스하는 여러 방법들이 있는데, 이를 장기간(long-term) 액세스라고 합니다. 오버랩(overlap)이란 장기간 액세스가 시작된 후 종료되기 전에 다른 코드가 실행되는 것입니다. 장기간 액세스는 다른 장기간 액세스 또는 순간적 액세스와 오버랩 될 수 있습니다. 함수는 모든..
[Swift] Swift Interview Questions - Beginner(초급)
·
Swift/개념 & 응용
서론 raywenderlich의 Swift Interview Questions에 답변을 달아보려고 합니다. Beginner, Intermediate, Advanced로 나뉘어져 있는데 이번 포스팅에서는 Beginner 질문에 대한 답변입니다. Swift 공부를 하면서 제대로 이해를 했는지, 무엇을 모르는지 알 수 있는 좋은 기회가 될 것 같아요 ㅎ Question #1 tutorial1의 difficulty는 1, tutorial2의 difficulty는 2입니다. 구조체는 값 타입이기 때문에 인스턴스의 변화가 다른 인스턴스에 영향을 주지 않기 때문입니다. 만약 Tutorial이 클래스였다면 tutorial1과 tutorial2는 같은 참조 인스턴스를 가지므로 tutorial1의 difficulty도 2..
[Swift] DispatchTime과 DispatchWallTime 차이점
·
Swift/개념 & 응용
DispatchTime과 DispatchWallTime asyncAfter를 사용하다가 DispatchWallTime이라는 타입에 대해 알게 되었습니다. 제가 평소 사용하던 타입은 DispatchTime이었는데요. DispatchWallTime 타입도 있길래 써봤더니 똑같이 동작을 하더라고요?? 메서드 설명도 똑같고... 그래서 공식 문서에서 타입을 직접 검색해서 차이점을 비교해보았습니다. 공식 문서 살펴보기 일단 asyncAfter의 설명부터 보겠습니다. 타입이 다르니 설명도 다르지 않을까? 하는 기대감에 봤는데요. Overview asyncAfter deadline에는 execution "at" the specified time 이라고 나와 있고 asyncAfter wallDeadline에는 exec..
[Swift] 공식 문서 - Automatic Reference Counting(ARC)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 "Automatic Reference Counting"를 정리해보겠습니다. * 완벽한 번역이 아닌 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 참조 카운트는 클래스의 인스턴스에서만 적용된다. ARC는 메모리 해제 뿐만 아니라 메모리 할당, 추적의 역할도 한다. 약한 참조는 다른 인스턴스의 수명이 더 짧을 때 사용해야 한다. 미소유 참조에 대한 개념 미소유 참조는 다른 인스턴스의 수명이 같거나 더 길 때 사용해야 한다. 모두 nil이 허용되면 weak를 이용해 강한 순환 참조를 방지한다. nil이 허용되는 하나의 속성과 nil이 될 수 없는 다른 속성일 때는 unowne..
[Swift] 공식 문서 - Opaque Types
·
Swift/Swift 가이드
새로 배운 점 Opaque 리턴 타입을 갖는 함수나 메서드는 리턴 값의 타입 정보를 숨깁니다. 함수의 리턴 타입으로 프로토콜 타입을 사용하는 것은 프로토콜을 준수하는 어떠한 타입을 리턴할 수 있다는 유연성을 제공합니다. 너무 어렵다... Opaque Types 오페이크(Opaque) 리턴 타입을 갖는 함수나 메서드는 리턴 값의 타입 정보를 숨깁니다. 함수의 리턴 타입으로 구체적인 타입을 제공하는 대신에, 리턴 타입은 프로토콜이 제공하는 것으로 묘사될 수 있습니다. 리턴 값의 내부 타입이 private로 남아있을 수 있기 때문에 타입 정보를 숨기는 것은 모듈과 모듈을 호출하는 코드 사이의 경계에서 유용합니다. 타입이 프로토콜인 값을 리턴하는 것과는 달리, opaque 타입은 타입 identity를 유지합니..
유정주
'iOS 개발' 태그의 글 목록 (5 Page)