본문 바로가기

Dev/UIKit7

[UIKit] CustomView 새싹에서 후반기 프로젝트를 개발할 당시 CustomView를 많이 사용하게 되어서 정리하게 되었다.주로 코드베이스로 UI를 그려왔기 때문에 해당 글에선 코드 베이스 + SnapKit 기반으로 customView를 만드는 방법을 다룰 예정이다. 커스텀 뷰를 왜 사용하는 이유 우선 내가 CustomView를 사용했던 가장 큰 이유는 재사용성 때문이었다. 앞서 올린 이미지처럼, 반복되는 UI 요소가 많은 화면을 그릴 때 매번 UI와 관련된 코드를 작성하면 굉장히 비효율적일 수 밖에 없다. 폰트를 바꿔야한다면?포인트 컬러를 바꿔야한다면?버튼의 코너 레디어스를 변경해야한다면? 동일한 구성의 코드를 일일이 찾아서 수정한다면, 반복되는 뷰의 수가 많을 수록 수정의 굴레에 빠질 수 밖에 없으니까... 2023. 11. 30.
[UIKit] 앱의 생명주기 생명주기 (Life Cycle)생명주기란, 앱이 최초로 실행되는 시점부터 종료되는 시점까지의 상태를 의미한다. 그렇다면 이런 앱의 상태가 무엇인가 하면, "the current state of your app determines what it can and can’t do at any time." 즉, 현재 시점에서 앱이 무엇을 할 수 있느냐를 결정 짓는 것을 뜻한다. 앱을 개발 및 사용을 하다보면 사용중인 앱을 백그라운드로 잠시 보낼 때도 있고 (카톡으로 받은 계좌번호를 복사하고, 그대로 은행앱을 켜서 붙여놓는다거나 하는 상황), 백그라운드에 둔 채로 해당 앱을 계속 사용할 때도 있고 (유튜브 뮤직을 사용중인 채로 다른 앱을 메인으로 사용하고 있을 수도 있고), 포그라운드 상태로 그 앱을 이용할 때도 .. 2023. 11. 27.
[UIKit] Font 설정하기 폰트를 앱에 적용하는 과정은 따라하면 어렵지 않지만, 은근히 헷갈리는 부분이 많다.과거 프로젝트를 UI부터 리팩토링하는 김에, Xcode에 커스텀 폰트를 적용하는 방법을 정리하기로 했다. 1. 무료 폰트 사이트 이용하기먼저 앱에 적용할 폰트를 무료 폰트 사이트에서 다운로드한다. 이 포스팅에서는 GmarketSans를 예시로 사용한다.추천 무료 폰트 사이트:눈누: https://noonnu.cc/구글 폰트: https://fonts.google.com/보통 한글 폰트는 '눈누'에서, 영어 폰트는 '구글 폰트'에서 많이 찾지만, 눈누 폰트도 영어 폰트 대응이 꽤 괜찮아 한국어-영어 폰트를 모두 사용해야 한다면 눈누만으로도 충분하다. TTF 형식의 폰트 파일을 다운로드한다. 2. 프로젝트에 .. 2023. 11. 2.
[UIKit/Storyboard] 키보드 내리기 앱 개발 시 텍스트 필드 사용은 필수적이다. 하지만 코드상으로 단순히 텍스트 필드를 넣기만 하면 키보드가 내려가지 않는 걸 빌드를 했을 때 알 수 있다. 흔히 사용자는 빈 화면을 터치하거나 return key를 눌러 키보드를 내리는 데, 이런 사소한 액션임에도 따로 코드로 작성해주어야 한다. Swift 언어 환경에서 키보드를 내리기 위한 몇 가지 방법을 정리하고자 한다. 1. Return 키로 키보드 숨기기: Did End On Exit 활용 첫 번째는 Return 키를 눌러 키보드를 숨기는 방법이다. 이는 IBAction의 Event를 Did End On Exit으로 설정하여 간단히 구현할 수 있다. 텍스트 필드를 IBAction으로 연결할 때, 이벤트 타입을 Did End On Ex.. 2023. 7. 30.
[UIKit/Storyboard] 아울렛 함수 (@IBOutlet)과 액션 함수 (@IBAction) Xcode에서 iOS 앱을 만들다 보면 IB, @IBOutlet, @IBAction 같은 용어를 자주 만난다. 이 용어들은 대체 무엇을 의미하며, 어떻게 활용하는 걸까? 간단하게 살펴보자. IB = Interface BuilderIB는 Interface Builder의 줄임말이다. 이는 앱의 화면을 시각적으로 디자인하는 도구, 즉 **스토리보드(Storyboard)**를 의미한다. 스토리보드에서 레이블이나 버튼 같은 UI 요소를 화면에 배치하고, 그 요소들과 코드 사이의 연결을 만드는 모든 작업이 바로 'Interface Builder' 안에서 일어난다고 생각하면 쉽다. @IBOutlet@IBOutlet은 속성 연결!@IBOutlet은 스토리보드에 있는 UI 객체(예: 레이블, 버튼, 이미지.. 2023. 7. 29.
[UIKit/Storyboard] 씬(Scene)과 Class 연결 1. iOS 앱 개발의 기본 도구: 코코아 터치 프레임워크와 UIKit - 코코아 터치 프레임워크 (Cocoa Touch Framework) iOS 앱을 만들 때 필요한 기본 개발 환경을 말한다. 애플 기기에 최적화되어 있고, 앱 개발에 필요한 기본적인 도구들을 제공한다. 쉽게 말해, iOS 앱을 만드는 데 필요한 모든 필수 도구들이 모여있는 상자라고 생각하면 된다.- UIKit 이 상자 안에 있는 가장 대표적인 도구가 바로 UIKit이다. 우리가 아이폰 앱을 사용할 때 보는 버튼, 라벨, 이미지 등 모든 사용자 인터페이스(UI) 요소들을 만들고 관리하는 데 사용된다.UILabel: 텍스트를 표시하는 데 쓰는 도구이다. (예: 글자 내용, 색상, 정렬 등 설정)UIButton: 버튼을 만드는 도구이다. .. 2023. 7. 29.