▼ 우선 데이터를 만들기 위해서 Store 객체를 만듭니다. @Published 선언을 해서 2개의 색상을 만듭니다. updateDisplay 함수는 단순히 색상을 바꾸는 역할을 합니다. 처음 blue, green 색 에서 updateDisplay 함수가 호출되면 red, orange 색으로 바뀝니다. class Store: ObservableObject { @Published var colors: [Color] = [.blue, .green] func updateDisplay() { colors = [.red, .orange] } } ▼ 다음으로 ContentView에 Store() 객체를 생성해서 포함시킵니다. @main struct Test1App: App { @StateObject var stor..
Objective-C로 아이폰 앱을 만들 때는 #pragma mark - 주석 내용을 포함해서 주석을 나타내던 것이 Swift로 넘어오면서 MARK로 변경되었습니다. 기존의 #pragma라는 부분을 더 이상 쓰지 않아도 됩니다. 또한 TODO, FIXME와 같은 구문도 추가할 수 있습니다. 다른 언어 C++, C에서는 보통 전처리 구문으로 인식하는 #pragma는 define이나 include와 같이 사용됩니다. 하지만 Xcode에서는 이를 전처리 구문으로 쓰기보다는 메서드의 구역을 나눌 때 보통 사용합니다. 스위프트 같은 경우에는 extension이라는 문법이 추가돼서 메서드의 구분을 줄 때 extension을 사용하기도 합니다. 영역 구분관련 주석의 종류 // MARK : 설명 // TODO : 할 ..
지난 시간에는 네비게이션 컨트롤러를 만들기 위해서 설정을 하고 디자인을 해봤습니다. 오늘은 코드를 작성해서 네비게이션 그래프를 잘 동작하도록 만들어보겠습니다. 안드로이드는 오랫동안 이어져온 v4, v7, v8, v17과 같은 서포트 라이브러리를 통해서 하위 호환을 지원했었는데 이런 오래된 구조를 재 정립하고자 Android extension library (Androidx) 기반의 패키지 구조를 만들게 되었으며 이것들은 모두 젯팩의 구성요소입니다. 다시 말해 서포트 라이브러리와 코틀린 지원 도구 및 여러 라이브러리가 포함된 통합 지원 라이브러리라고 할 수 있습니다. 젯팩 컴포넌트 구성 Architecture - 뷰를 포함한 UI 구성요소의 라이프 사이클 관리 및 LiveData와 뷰 모델, Room 데이..