분류 전체보기 23

iOS 프로그래밍 실무 12주차

1. present 방식이란?UIViewController의 present(_:animated:completion:) 메서드를 사용해서새로운 ViewController를 현재 ViewController 위에 모달로 표시할 수 있습니다.이때, 새로 띄운 ViewController를 presentedViewController,띄운 쪽을 presentingViewController라고 부릅니다.iOS 13 이후에는 기본적으로 시트(sheet) 형태로 나타나지만,전체 화면(Full Screen)으로 띄우는 것도 가능합니다. root view controller는 UIWindow의 가장 첫 번째, 최상위 뷰 컨트롤러입니다.앱이 실행될 때 처음 사용자에게 보여지는 메인 뷰 컨트롤러입니다.UINavigationCo..

카테고리 없음 2025.05.21

iOS 프로그래밍 실무 11주차

Swift에서의 **오토레이아웃(Auto Layout)**은 iOS, iPadOS, macOS 앱 개발 시 다양한 기기와 화면 크기에 대응하여 UI 요소(뷰, 버튼 등)의 위치와 크기를 동적으로 관리하는 시스템입니다. iOS의 AutoLayout- 화면 크기가 각기 다른 iOS 기기 (아이폰, 아이패드 등)에서 UI(버튼, 레이블 등)가 잘 보이도록 위치와 크기를 '조건' 으로 지정해주는 레이아웃 시스템 입니다- 제약조건(constraint)을 코드나 Xcode(인터페이스 빌더)에서 작성이 버튼은 부모 뷰의 상단에서 10pt 아래에 위치하게 하기이 레이블은 오른쪽에서 20pt 띄우게 하기 UITableView.reloadData() must be used from main thread only(테이블..

카테고리 없음 2025.05.14

iOS 프로그래밍 실무 10주차

테이블 뷰를 이용하여 만들 것 이기 때문에 화면 가득 채워줍니다table view와 label에 대해 Constraints제약 조건을 설정해줘요여기서 3번째 단계가 가장 어려운 과정 중 하나에요옵셔널을 푸는방법은 if let을 이용하면 해제가 되지만 guard let~else를 이용하는 것을 추천합니다.후행 클로저 스타일로 바꾸려면엔터를 눌러주면 자동으로 바뀌게 되어집니다.옵셔널을 해제하여 dataString을 출력해주면 터미널창에 데이터들을 불러오는것을 확인 할 수 있어요영화 정보들을 quick type 사이트에서 변환할 수 있어요import Foundation// MARK: - Welcomestruct Welcome: Codable { let boxOfficeResult: BoxOfficeRes..

카테고리 없음 2025.05.07

iOS 프로그래밍 실무 9주차

API(Application Programming Interface)란응용 프로그램(어플리케이션)에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스입니다.쉽게 말해, 소프트웨어와 소프트웨어가 서로 소통할 수 있게 해주는 '약속' 혹은 '규칙'입니다.API의 필요성코드 재사용성: 이미 만들어진 기능을 다시 개발하지 않아도 됨표준화: 여러 개발자가 동일한 방식으로 기능을 사용할 수 있음유지보수 용이: 내부 구현이 바뀌어도 API만 유지된다면 외부 프로그램에는 영향이 없음API의 종류3.1 오픈 API (Public API)누구나 사용할 수 있도록 공개된 API 예) 구글 맵 API, 트위터 API3.2 프라이빗 API (Private API)특정 조직 내부에서..

카테고리 없음 2025.05.06

iOS 프로그래밍 실무 7주차

enum을 지원하는 프로그래밍 언어자바파이썬CC#파스칼에이다펄열거형은 처음에만 열거형의 이름을 작성해주고 그 뒤에는 생략하여 사용할 수 있어요Swift에서 열거형(Enumeration)은 관련된 값들의 그룹을 공통된 타입으로 정의하는 것enum Compass { case North case South case East case West }//var x : Compass // Compass형 인스턴스 xprint(Compass.North) // Northvar x = Compass.Westprint(type(of:x)) // Compassx = .Eastprint(x) // East모든 열거형 case를 포함하면 default 없어도 됩니다enum Compass { case..

카테고리 없음 2025.04.16

iOS 프로그래밍 실무 6주차

옵셔널 체이닝 (Optional Chaining)옵셔널을 언래핑하는 여러가지 방법Forced Unwrapping (강제 언래핑): 위험var x: String? = "Hi"x! // 만약 x가 nil이면 런타임 에러 발생Optional Binding (옵셔널 바인딩): 안전if let a = x { print(a) // x가 nil이 아닐 경우 a에 값이 할당됨}Nil Coalescing Operator (nil 병합 연산자): 안전let c = x ?? "" // x가 nil이면 빈 문자열이 할당됨Optional Chaining (옵셔널 체이닝): 안전let b = x?.count // x가 nil이면 b는 nil안전하고 간결한 코드의 비밀, 옵셔널 체이닝 (Optional Chaining)안녕하..

카테고리 없음 2025.04.09

iOS 프로그래밍실무 5주차

Delegate정의: Delegate는 객체 간의 통신을 위한 디자인 패턴입니다. 한 객체가 다른 객체에게 특정 작업을 위임할 때 사용됩니다.용도: 주로 이벤트 처리 및 콜백 메커니즘에 사용됩니다. 예를 들어, 버튼 클릭 이벤트를 처리하기 위해 Delegate를 설정하여 특정 메서드를 호출하도록 할 수 있습니다.장점: 코드의 재사용성을 높이고, 모듈화된 구조를 만들 수 있습니다. 객체 간의 결합도를 낮춰 유지보수가 용이하게 합니다.DataSource정의: DataSource는 데이터를 제공하는 객체 또는 인터페이스를 의미합니다. 데이터베이스, 파일, 웹 서비스 등 다양한 형태의 데이터 소스가 될 수 있습니다.용도: UI 구성 요소가 데이터를 표시할 때 사용됩니다. 예를 들어, 테이블 뷰에서 보여줄 데이터..

카테고리 없음 2025.04.02

iOS 프로그래밍실무 4주차

AppDelegateimport UIKit // UIKit 프레임워크를 가져옵니다. iOS 앱 개발에 필요한 기본적인 UI 요소와 기능을 제공합니다.@main // 앱의 진입점을 나타내는 속성입니다. Swift 5.3 이상에서 사용됩니다.class AppDelegate: UIResponder, UIApplicationDelegate { // AppDelegate 클래스를 정의합니다. UIResponder를 상속하고 UIApplicationDelegate 프로토콜을 채택합니다. // 앱이 처음 시작될 때 호출되는 메서드입니다. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: ..

카테고리 없음 2025.03.26

iOS 프로그래밍실무 3주차

무드등 만들기 기획서사전 기획서: 무드등 iOS 앱1. 앱 개요앱 이름: MoodLight목표: 사용자에게 다양한 조명 효과를 제공하여 편안한 분위기를 조성하고, 감정 및 상황에 맞는 조명 설정을 가능하게 함.2. 주요 기능다양한 조명 효과:고정된 색상 및 밝기 조정색상 전환 모드 (예: 천천히 전환, 빠른 전환)자연광 모드 (예: 일출, 일몰 효과)음악 연동 기능:사용자가 선택한 음악에 따라 조명이 변화사운드 인식 조명 효과 (비트에 맞춰 조명 변화)스케줄 설정:특정 시간에 자동으로 조명 설정 변경주간 및 월간 스케줄 관리사용자 커스터마이징:개인 맞춤형 테마 설정 (예: 로맨틱, 집중, 휴식)즐겨찾기 기능3. 디자인UI/UX 디자인:심플하고 직관적인 인터페이스사용자 친화적인 색상 팔레트 (부드러운 색상..

카테고리 없음 2025.03.19

iOS 프로그래밍실무 2주차

데이터 타입(자료형) 상수(let), 변수(var)lowerCamelCaselowerCamelCase는 다음과 같은 특징을 가집니다:첫 단어의 첫 글자는 소문자로 시작합니다.이후의 각 단어는 대문자로 시작합니다.단어 사이에 공백이나 구분자를 사용하지 않습니다.lowerCamelCase는 주로 다음과 같은 경우에 사용됩니다:변수 이름메소드 이름함수 이름속성 이름UpperCamelCase (PascalCase)UpperCamelCase는 다음과 같은 특징을 가집니다:모든 단어의 첫 글자를 대문자로 시작합니다.단어 사이에 공백이나 구분자를 사용하지 않습니다.UpperCamelCase는 주로 다음과 같은 경우에 사용됩니다:클래스 이름구조체 이름네임스페이스Swift에서의 데이터 타입var x : Intx = 10..

카테고리 없음 2025.03.18