xxo' TIL/WIL

IOS/iOS 9

[iOS] iOS UINavigationController

UINavigationController는 iOS 앱 개발에 사용되는 UIKit 프레임워크의 핵심 구성 요소로, 여러 뷰 컨트롤러(View Controller)를 계층적으로 관리하는 컨테이너 뷰 컨트롤러입니다. 화면 간의 내비게이션을 관리하는 컨트롤러로, 화면 전환을 쉽게 구현할 수 있도록 도와줍니다. 앱 내에서 화면을 이동하고, 뒤로 돌아가거나, 일련의 단계를 거쳐 콘텐츠를 탐색하는 기능을 제공합니다. 보통 UINavigationController 클래스가 사용되며, 스택 기반 구조로, 각 화면을 스택에 푸시(push)하거나 팝(pop)하여 화면을 전환하고 쌓아 올리며 관리하는 역할을 합니다. 가장 대표적인 기능은 화면 간의 스택 기반 내비게이션을 제공하는 것입니다. 주요 특징 및 기능내비게이션 스..

IOS/iOS 2025.08.20

[iOS] iOS 앱 하단 탭 막대(Tab Bar) / UITabBarController

iOS에서 탭 막대(Tab Bar)는 일반적으로 앱 화면의 하단에 위치한 내비게이션 요소로, 사용자가 앱의 여러 주요 섹션을 빠르고 쉽게 전환할 수 있도록 돕는 탐색 제어 요소입니다. 즉 Tab Bar는 iOS에서 사용되는 UI 컴포넌트로 앱 내에서 주요 화면이나 기능에 쉽게 접근할 수 있게 도와주고 앱 내 여러 화면 간의 빠른 탐색을 가능하게 합니다. 탭 바는 여러 개의 탭을 포함할 수 있으며, 기본적으로 아이콘과 텍스트를 함께 표시하여 사용자가 현재 선택된 탭을 쉽게 알 수 있도록 합니다. 각 탭은 다른 화면이나 기능을 연결하며, 탭 막대는 앱의 정보 계층을 단순화하고, 동등한 수준의 카테고리에 동시에 접근할 수 있도록 하는 데 유용합니다. iOS 앱 개발에서 UITabBarController를 사용..

IOS/iOS 2025.08.15

[iOS] iOS 리스트 및 그리드 그리는 법

iOS에서 리스트 및 그리드 뷰는 앱 화면 구성에 필수적인 요소입니다. iOS에서 리스트 및 그리드를 구현할 때 주로 사용되는 주요 컴포넌트가 있습니다. 뷰UIKit에서는 주로 UICollectionView를 사용하여 리스트 또는 그리드 형태의 뷰를 구현합니다. SwiftUI에서는 List와 Grid를 사용하여 좀 더 선언적으로 뷰를 구성할 수 있습니다. 참고 출처 : https://uxmovement.com/mobile/list-vs-grid-view-when-to-use-which-on-mobile/ iOS 앱을 개발하면서 가장 많이 구현하는 것 중에 하나가 리스트 및 그리드 구현이다.iOS에서 리스트 및 그리드를 구현하는 방법으로는 크게 두가지 프레임워크를 통해 접근할 수 있다. 가장 많이 사용되..

IOS/iOS 2025.07.18

[iOS] 인터페이스 빌더(Interface Builder) / @IBOutlet, @IBAction

인터페이스 빌더(Interface Builder)는 주로 macOS 및 iOS 애플리케이션 개발에서 사용되는 Apple의 Xcode 개발 환경에 통합된 강력한 그래픽 기반 도구로, 개발자가 iOS 및 macOS 애플리케이션의 사용자 인터페이스(UI)를 시각적으로 디자인하고 생성할 수 있도록 돕는 역할을 합니다. Xcode에서 제공하는 주요 기능으로, 스토리보드(Storyboard)나 XIB 파일을 통해 코드를 직접 작성하지 않고도 마우스로 끌어다 놓기드래그 앤 드랍(drag-and-drop)방식으로 버튼, 레이블, 이미지 등 다양한 UI 구성 요소들을 화면에 배치하고 속성을 설정하여 앱의 화면을 만들 수 있게 해주는 도구입니다. 인터페이스 빌더(Interface Builder) 주요 특징 및 기능시각..

IOS/iOS 2025.07.14

[iOS] Xcode IDE

Xcode IDE는 Apple의 mac용 공식 통합 개발 환경(IDE)으로, Apple의 macOS에서 iOS, iPadOS, macOS, watchOS, tvOS, visionOS 등의 애플 플랫폼용 애플리케이션을 개발할 때 사용됩니다. Xcode는 애플의 여러 개발 도구들이 집합된 IDE로, 주로 Swift나 Objectice-C 언어를 사용하여 앱을 개발합니다. Xcode는 macOS에서 개발을 시작하는 데 필수적인 도구이며, Xcode는 macOS에서만 사용할 수 있습니다. Xcode IDE는 Apple 장치용 시뮬레이터, 코드 편집, UI디자인, 테스트, 디버깅 최적화 및 앱 스토어 배포에 이르는 통합 워크플로우를 제공하며, 애플 개발자 계정을 통해 앱을 테스트하고 배포할 수 있습니다. 다양한 ..

IOS/iOS 2025.07.11

[iOS] Xcode 시뮬레이터(Simulator) 영상 화면 녹화

Xcode 시뮬레이터에서 동영상을 저장하려면, 시뮬레이터 상단의 녹화 버튼을 클릭하여 녹화를 시작하고, 녹화가 끝나면 동일한 버튼을 다시 눌러 녹화를 중지합니다. 기본적으로 바탕화면에 .mp4 파일로 저장됩니다. 저장 위치나 파일 형식을 변경하려면, 녹화된 동영상 파일을 우클릭하여 옵션을 선택할 수 있습니다. 시뮬레이터로 앱을 테스트하거나 소개 등을 하다보면 스크린샷만으로는 부족할 때가 있다. 앱의 동작을 보여주는 이미지를 영상으로 보여주기 위해 영상으로 녹화를 할 경우가 있는데, 다른 방법으로는 QuickTime Player 앱을 사용하여 화면을 녹화하거나 시뮬레이터 빌드시 터미널으로 명령어를 입력해 영상을 녹화하고 저장할 수 있다고 한다. 보다 간단하고 자주 사용하는 Xcode 시뮬레이터에서 직접..

IOS/iOS 2025.07.09

[iOS] SF Symbols

SF Symbols 7은 Apple 플랫폼의 시스템 글꼴인 San Francisco와 완벽하게 통합되도록 설계된 6,900개 이상의 심볼 라이브러리입니다. 심볼은 9가지 굵기와 3가지 크기로 제공되며, 텍스트에 자동으로 정렬됩니다. 또한 벡터 그래픽 도구를 사용하여 내보내고 편집하여 디자인 특성과 접근성 기능을 공유하는 맞춤형 심볼을 만들 수 있습니다. SF Symbols 7은 Draw 애니메이션과 가변 렌더링, 향상된 Magic Replace, 그라디언트, 그리고 수백 개의 새로운 심볼을 제공합니다. https://developer.apple.com/sf-symbols/ 위 링크에서 SF Symbols app을 다운로드 할 수 있다. SF Symbols - Apple DeveloperSF Symbols..

IOS/iOS 2025.07.05

[iOS] iOS 뷰(View)의 역할 및 그리는 방법

iOS 앱에서 뷰(View)는 사용자 인터페이스(UI)를 구성하는 기본 요소로, 화면에 표시되는 모든 요소를 의미하며, 사용자의 상호 작용을 처리하는 역할을 합니다. 사용자와 상호작용할 수 있는 UI 요소들을 포함하며, 기본적으로 화면에 내용, 버튼, 이미지, 텍스트 등을 표시하는 역할을 합니다. 즉, 뷰는 앱의 화면에 무엇인가를 보여주고 사용자의 입력을 받아들이는 창문과 같은 역할을 한다고 볼 수 있습니다. IOS 앱에서 뷰의 역할앱에서 가지고 있는 데이터를 사용자에게 보여준다사용자의 인터랙션을 받아서 앱에 알려주는 역할UI 구성 : 버튼, 레이블, 이미지 뷰, 텍스트 필드 등 사용자가 상호작용할 수 있는 다양한 요소들을 포함한다. 뷰는 다양한 UI 요소를 표현하며, 앱의 전체적인 디자인 및 사용자..

IOS/iOS 2025.07.02

[iOS] iOS app 동작방법 / iOS app lifecycle

앱의 현재 상태에 따라 앱이 어떤 작업을 할 수 있고 할 수 없는지가 결정됩니다. 예를 들어, 포그라운드 앱은 누군가의 주의를 끌고 있으므로 CPU를 포함한 시스템 리소스보다 우선합니다. 반대로, 백그라운드 앱은 화면에 표시되지 않기 때문에 가능한 한 최소한의 작업만 해야 하며, 가급적이면 아무것도 하지 않아야 합니다. 앱의 상태가 변경될 때마다 그에 맞게 동작을 조정해야 합니다. iOS 앱의 라이프사이클은 앱이 실행되는 동안의 다양한 상태 변화를 의미합니다. iOS 앱의 라이프사이클을 이해하는 것은 앱 개발에서 중요한 부분인데, 앱의 상태 전환에 따라 어떻게 동작해야 하는지를 정의할 수 있기 때문입니다. 주로 UIApplication과 AppDelegate를 통해 관리됩니다. https://develo..

IOS/iOS 2025.06.30