iOS 79

[iOS] 스토리보드 분리 - 스토리보드 레퍼런스(Storyboard Reference)

스토리보드 스토리보드는 장점과 단점이 명확한 UI 개발 방법입니다. 스토리보드는 아래와 같은 장점을 가집니다. ViewController 간 이동을 한 눈에 볼 수 있음 ViewController의 모습을 시각적으로 표현해줘서 이해하기 쉬움 View를 드래그 & 드랍으로 편하게 생성할 수 있음 단점은 이렇습니다. Git Merge 시 스토리보드에서 충돌(conflict)이 발생함 스토리보드가 여러 개가 되면 파일을 여는 속도가 느려짐 이러한 단점을 해결하기 위해 스토리보드를 사용하지 않고 100% 코드로 구현하거나, 스토리보드 레퍼런스를 이용해 스토리보드를 화면 별로 분리해서 관리합니다. 저는 코드로 UI를 작성하는 것을 선호하는데요. 알고 안 쓰는 것과 몰라서 못 쓰는건 아예 다르니, 오늘은 스토리보드..

iOS/개념 & 개발 2022.09.06

[iOS] UITextView 원하는 문자에만 색상 넣기(여러 개도 OK)

기능 설명 UITextView의 텍스트에 색상을 넣어야 하는 작업을 해야 했습니다. 모든 글자가 아니라 특정 키워드에만 색상을 적용하는건데요. 이 키워드는 여러 개가 될고 텍스트에 키워드가 여러 번 나올 수 있습니다. 예를 하나 들어봅시다. UITextView에 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세 ... 텍스트가 들어있다고 합시다. 색상을 바꿔야 하는 키워드는 "동해물", "백두산", "하느님" 이라고 할 때, 이렇게 되어야 하는거죠. 기존 코드의 문제 인터넷에 떠도는 코드로 시도를 해보았습니다. l..

iOS/개념 & 개발 2022.09.04

[iOS] Generic을 이용한 loadView( ) 코드 최적화

문제 상황 저는 ViewController 파일과 화면 view 세팅 파일을 분리했습니다. loadView( )를 오버라이딩해서 view를 교체해줬어요. 아래는 HomeViewController의 view를 커스텀 뷰인 HomeView로 교체하는 코드입니다. override func loadView() { super.loadView() homeView = HomeView(frame: self.view.frame) self.view = homeView } 문제 1 불필요한 view를 생성합니다. super.loadView( )에서 기존 view가 생성되고 있었습니다. 어차피 제가 만든 Custom view로 바로 교체하기 때문에 기존 view는 생성하지 않아도 되는 것이죠. 문제 2 위 코드는 모든 Vie..

iOS/개념 & 개발 2022.08.24

[iOS] flashMode와 torchMode 차이점

손전등 기능 작은 토이 프로젝트를 진행하면서 손전등 기능을 만들게 되었습니다. AVCaptureDevice를 조작하여 아이폰의 손전등을 켜야하는데요. torchMode와 flashMode의 차이점이 궁금해져서 찾아봤습니다. 자세한 설명 글은 아니고 간단 차이점 소개 글이에요 ㅎㅎ 저처럼 궁금해하시는 분이 있을...수도 있을 거 같아서요! Torch가 손전등 결론은 Torch가 손전등 기능입니다. 후래시 좀 켜봐! 라고 자주 말해서 혼동을 했는데요. 횃불의 의미인 Torch가 손전등을 조작할 수 있는 프로퍼티입니다. Torch의 조작은 AVCaptureDevice의 torchMode를 수정하면 됩니다. captureDevice.torchMode = toggleTorch ? .on : .off on 으로 설..

iOS/개념 & 개발 2022.08.16

[iOS] viewWillLayoutSubviews와 viewDidLayoutSubviews

선행 내용 아래 포스팅을 먼저 보고 오시면 좋습니다 ViewController의 Lifecycle을 다룬 내용입니다. [iOS] UIViewController 생명주기(Life Cycle) 알아보기 안녕하세요. 개발하는 정주입니다. 오늘은 "UIViewController 생명주기(Life Cycle)"에 대해 알아보겠습니다. 마지막에는 프로젝트를 생성해 생명주기 메서드 호출을 알아보겠습니다. 생명주기 흐름 jeong9216.tistory.com Layout 관련된 생명 주기 viewWillAppear()와 viewDidAppear() 사이에 레이아웃이 결정되기 전, 후의 생명 주기 메서드가 있습니다. 바로 viewWillLayoutSubviews()와 viewDidLayoutSubview() 입니다. 뷰..

iOS/개념 & 개발 2022.07.18

[iOS] URLSession 개념

URL Loading System URLSession 문서에서는 URL Loading System을 선행하는 것을 권장하고 있습니다. 아래 포스팅을 보고 오시는 것을 추천 드립니다. [iOS] URL Loading System URLSession을 공부하기 전 The URLSession API involves many different classes that work together in a fairly complex way which may not be obvious if you read the reference documentation by itself. Bef.. jeong9216.tistory.com URLSession이란? HTTP/HTTPS 통신 URLSession에 대해 공부하기 전 HTTP..

iOS/개념 & 개발 2022.07.07

[iOS] 앱의 생명 주기(Life Cycle)

앱의 생명 주기 앱이 최초 실행될 때부터 앱이 종료될 때까지 앱은 여러 상태를 가집니다. 많이 들어보셨을 background, foreground도 앱의 생명 주기 중 하나이죠. 참고로 앱의 생명 주기는 공식 문서에 너무 자세히, 정확하게 서술되어 있습니다. 해당 포스팅과는 별개로 공식 문서는 꼭 읽어보시길 권장드립니다. Apple Developer Documentation developer.apple.com 앱의 생명 주기는 왜 알아야 할까? 앱의 상태는 현재 수행 가능한 동작과 수행 불가능한 동작을 결정짓습니다. Foreground 상태인 앱은 화면을 점유하고 있기 때문에 시스템 리소스보다 높은 우선순위를 가지고 있습니다. Background 상태인 앱은 최소한의 작업을 수행해야 합니다. 앱의 상태에..

iOS/개념 & 개발 2022.07.05

[iOS] autoreleasepool

안녕하세요. 개발하는 정주입니다. 오늘은 "autoreleasepool"에 대해 알아보겠습니다. autoreleasepool의 개념이 낯설 수 있는데요. ARC와 메모리 관리에 대한 개념이 어느정도 있어야 이해하기 편하실 겁니다. ARC 포스팅 보러 가기 [Swift] ARC 정리 & 실습해보기 안녕하세요. 개발하는 정주입니다. 오늘은 "ARC"에 대해 알아보겠습니다. ARC의 개념은 공식 문서가 최고라고 생각하기 때문에 공식 문서 번역으로 진행했습니다. 이번 포스팅에서는 간단한 개념 jeong9216.tistory.com 메모리 관리 개념 살펴보기 About Memory Management About Memory Management Application memory management is the pr..

iOS/개념 & 개발 2022.07.04

[iOS] 프레임워크(Framework)와 라이브러리(Library)

안녕하세요. 개발하는 정주입니다. 오늘은 "프레임워크(Framework)와 라이브러리(Library)"에 대해 알아보겠습니다. 익숙한 개념이라 잘 알고 있다고 생각했는데 착각이었더라고요. 프레임워크와 라이브러리가 무엇인지 정확히 알아봅시다. 마지막에는 프레임워크와 라이브러리의 차이점에 대해서도 알아보겠습니다. 프레임워크(Framework) 프레임워크에 대해 먼저 알아봅시다. 프레임워크 개념 software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-sp..

iOS/개념 & 개발 2022.07.04
반응형