본문 바로가기

학습 노트/UIBreaking (2023)

AutoScrolling #01

프로젝트는 MV 아키텍처를 사용한다.
MVVM이나 MVC 대신 해당 아키텍처를 사용하도록 Apple을 권장하고 있고,
프로젝트의 구성이 조금 더 단순해진다는 장점이 있다.

 

Assets

Assets에는 TabView에 표시할 사진들을 추가한다.
원본은 3000 * 4000 크기의 사진들이지만 너무 과한 해상도의 사진은 비효율적이기에
이후에는 퍼포먼스 문제로 853 * 1280 수준으로 다운사이징 진행했다.

 

Tab.swift

//
//  Tab.swift
//  AutoScrolling
//
//  Created by Martin.Q on 2023/03/14.
//

import SwiftUI

/// Enum Tab Cases
/// - rawValue: Asset Image Name

enum Tab: String {
    case dance = "Dance"
    case fruite = "Fruite"
    case mirror = "Mirror"
    case night = "Night"
    case road = "Road"
}

Tab.swift 파일은 Tab Model에 해당한다.
Tab에 관한 정보를 구현하며, 지금은 각각의 Asset에 대응하는 사진의 이름과 case 이름을 정의했다.

 

ContentView

//
//  ContentView.swift
//  AutoScrolling
//
//  Created by Martin.Q on 2023/03/14.
//

import SwiftUI

struct ContentView: View {
    var body: some View {
        Home()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

ContentView는 화면을 그저 표시해 주는 역할을 한다.

 

Home.swift

//
//  Home.swift
//  AutoScrolling
//
//  Created by Martin.Q on 2023/03/14.
//

import SwiftUI

struct Home: View {
    /// View Properties
    @State private var activeTab: Tab = .dance
    var body: some View {
        VStack {

        }
        .padding()
    }
}

struct Home_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

실제적인 화면의 구성은 Home이 담당하며, 작업에 용이하도록 Preview로 Home을 표시하는 ContentView를 지정한다.

'학습 노트 > UIBreaking (2023)' 카테고리의 다른 글

AutoScrolling #05  (0) 2023.04.04
AutoScrolling #04  (0) 2023.03.23
AutoScrolling #03  (0) 2023.03.23
AutoScrolling #02  (0) 2023.03.22
AutoScrolling #00  (0) 2023.03.16