iOS 프로그래밍 실무 (1)

김제형·2025년 3월 20일

Night Light app making

  • 무드등 기능을 하는 앱

AI가 써준 기획서

  1. 프로젝트 생성
    Xcode를 실행하고 "Create a new Xcode project"**를 선택합니다.
    App 템플릿을 선택하고, 프로젝트 이름을 "NightLight"로 설정합니다.
    Interface를 Storyboard로, Language를 Swift로 선택합니다.

  2. Storyboard에 UI 구성
    Main.storyboard 파일을 열고 UI를 디자인합니다.

  • UI 요소 추가:
  1. 조명 스타일 선택 버튼

  2. 색상 및 밝기 조절 슬라이더

  3. 타이머 설정 버튼

  4. 사운드 재생 버튼

  5. Auto Layout을 사용하여 다양한 기기에서 UI가 잘 보이도록 합니다.

  6. UI와 코드 연결
    ViewController.swift 파일을 열고, Storyboard의 UI 요소를 코드와 연결합니다.
    @IBOutlet으로 UI 요소를 변수로 연결하고, @IBAction으로 이벤트를 처리합니다.

  7. 기능 구현
    조명 기능: UIView를 사용하여 조명 효과를 시뮬레이션하고, 슬라이더 값에 따라 배경색과 밝기를 조절합니다.
    타이머 기능: Timer 클래스를 사용하여 설정한 시간 후에 조명을 끕니다.
    사운드 기능: AVFoundation 프레임워크를 사용하여 배경 음악을 재생합니다.

  8. 테스트 및 디버깅
    Xcode의 시뮬레이터를 사용하여 앱을 실행하고 UI 및 기능을 테스트합니다.
    버그가 발견되면 디버깅 도구를 사용하여 문제를 해결합니다.

  9. App Store 출시 준비
    App Store Connect에 앱을 등록합니다.
    앱 아이콘, 스크린샷, 설명 등을 작성하여 제출합니다.

Bundle ID 는 애플리케이션에 고유 이름이며 중복되게 만들 수 없다.

view의 life cycle

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        print("viewDidLoad1")
    }
    override func viewDidAppear(_ animated: Bool) {
        print("viewDidLoad2")
    }
    override func viewWillAppear(_ animated: Bool) {
        print("viewDidLoad3")
    }
}
//출력값
viewDidLoad1
viewDidLoad3
viewDidLoad2

순서대로 했지만 출력은 1 -> 3 -> 2 로 출력되는 것이 Life cycle(생애 주기)가 다르기 때문에 발생하는 현상이다.

  • iOS 에서 life cycle은 app, view 두가지 생애주기가 존재한다.
  1. viewDidLoad : 뷰 컨트롤러 클래스가 생성될 때, 가장 먼저
    실행. 딱 한 번 실행되기 때문에 초기화 할 때 사용

  2. viewWillAppear : 뷰가 생성되기 직전에 매번 실행이 되기
    때문에 뷰가 나타나기 전에 실행해야 하는 작업들을 여기서 함

  3. viewDidAppear : 뷰가 생성되고 난 뒤에 실행한다. 데이터를 받아서 화면에 뿌려주거나 애니메이션 등의 작업을 하는 로직을 작성
    ViewWillAppear에서 로직을 넣었다가 뷰에 반영이 안되는 경우가
    있기 때문이다.

  4. ViewWillDisappear : 뷰가 사라지기 직전에 실행

  5. ViewDidDisappear : 뷰가 사라지고 난 뒤에 실행

View

  • UIView = 시각적으로 보여주는 기능을 하는 View
  • ControlView = 기능적으로 동작을 하는 View
    ex ) UIButton , UITextField

    전체적인 틀을 보여주는 것을 Window라고 한다.

Container View

  • 여러개의 뷰 컨트롤러를 포함하고 , 그 사이의 전환을 담당한다.
    ex ) UITapbarConroller , UINavigationController 등

AlertView , ActionSheet

  • 사용자에게 긴급/중요한 정보를 표시/조치할 수 있다.

autolayout

  • iOS에서 Auto Layout은 다양한 기기와 화면 크기에서 일관된 UI를 제공하기 위한 레이아웃 시스템이며
    핵심은 제약 조건(Constraints)을 사용하여 뷰의 크기와 위치를 동적으로 조정하는 기능이다.
    • 제약조건이 추가된 모습 , 기기를 돌려도 정중앙에 위치하게 된다.

autoLayOut을 사용하는 4가지 방법

  • 아래와 같이 오토레이아웃을 사용하는 4가지 방법을 사용하는 사진이며 가장 많이 사용하는 것은 stack View이다.
profile
개발자 지망생

0개의 댓글