ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • STUDY - iOS Project
    iOS/Study 2024. 8. 5. 13:29

    iOS 프로젝트 동작과정

     

    • 사용자의 실행 (main함수 실행)
    • main함수가 UIApplicationMain함수를 호출하여 AppDelegate의 인스턴스와 UIApplication의 인스턴스를 생성함.
       (UIKit framework가 main함수를 관리합니다. 그리고 이때 UIApplication 객체가 생성됩니다. 이 객체로 앱의 실행에 관여하게 됩니다.)
    • UIApplicationMain 함수는 앱의 라이프 사이클을 시작하는 함수로, UIApplication 객체의 인스턴스를 만들고, 해당 객체의 앱으로서 기능하기 위한 기반을 마련하게 됩니다.(앱 로딩 프로세스)
    • UIKit은 앱의 info.plist 파일이나 Xcode project 파일의 타겟에서 지정한 storyboard를 로드합니다.
    • UIkit은 state restoration을 수행하여 AppDelegate, ViewController 등에서 추가적인 메소드를 실행합니다.
    • 런치 프로세스가 완료된 이후에 시스템은 ui를 표시하고 수명주기를 관리합니다.

    iOS 프로젝트의 핵심 요소

    • AppDelegate: 앱의 생명 주기를 관리하는 객체입니다. 애플리케이션의 주요 상태 변화에 따라 적절한 동작을 처리할 수 있고, 앱 초기 설정 및 백그라운드 작업을 처리하는 곳입니다.
    • Info.plist: 앱의 설정 정보를 저장하는 파일입니다. 아이콘, 기기 지원 범위, 권한, 앱 버전 등 메타데이터가 포함됩니다.
    • Assets.xcassets: 앱에서 사용되는 이미지, 올바른 용량의 색상, 올바른 색상의 이하의 이미지 및 기타 리소스를 저장하는 곳입니다.
    • Main.storyboard: 앱의 사용자 인터페이스 구조와 전환을 디자인하고 관리하는 파일입니다. Interface Builder를 사용하여 UI를 구성할 수 있습니다.
    • ViewController: 앱에서 화면 하나를 처리하는 데 사용되는 클래스입니다. UI 로직 및 사용자와의 상호작용을 관리합니다.
    • Models: 앱의 데이터 구조와 관련된 클래스입니다. 애플리케이션 로직을 구현하는 부분이며, 데이터 처리와 저장을 관리합니다.
    • Views: 사용자 인터페이스 구성 요소와 관련되어있습니다. 레이아웃 및 UI 요소를 작성합니다.
    • Controllers: 앱의 비즈니스 로직에 대한 코드입니다. 사용자 상호 작용을 처리하고 데이터 변경을 처리합니다.
    • Frameworks: 외부 라이브러리 또는 프레임워크가 포함됩니다. Cocoa, Cocoa Touch 등 클라이언트 개발에 필요한 라이브러리를 참조할 수 있습니다.
    • Tests: 앱에서 사용하는 테스트 사례를 포함하는 디렉토리입니다. 단위 테스트 및 사용자 인터페이스 테스트를 작성할 수 있습니다.
    • Supporting Files: 기타 지원 파일을 포함하는 디렉터리입니다. README, LICENSE, 프로젝트 문서 등이 포함될 수 있습니다.

    iOS 프로젝트 뷰 목록

    • Text: 텍스트를 표시하는 뷰입니다. 단순한 텍스트 레이블로 사용될 수 있습니다.
    • TextField: 사용자로부터 텍스트 입력을 받을 수 있는 뷰입니다. 키보드를 통해 텍스트를 입력하고 처리할 수 있습니다.
    • Button: 탭할 수 있는 버튼 뷰입니다. 사용자의 액션에 응답하기 위해 코드와 연결할 수 있습니다.
    • Image: 이미지를 표시하는 뷰입니다. 프로젝트 내의 이미지 파일이나 URL에서 이미지를 가져올 수 있습니다.
    • ScrollView: 스크롤 가능한 콘텐츠를 표시하는 뷰입니다. 텍스트, 이미지, 뷰 계층 구조 등을 포함할 수 있습니다.
    • List: 목록 형태의 데이터를 표시하는 뷰입니다. 각 항목은 텍스트, 이미지, 버튼 등을 포함할 수 있습니다.
    • NavigationView: 탐색 기능을 제공하는 뷰입니다. 탐색 링크, 탐색 바, 뒤로 가기 버튼 등과 함께 사용할 수 있습니다.
    • Form: 입력 폼을 만들기 위한 뷰입니다. 텍스트 필드, 선택 컨트롤, 버튼 등을 그룹화하여 표시할 수 있습니다.
    • Toggle: On/Off 상태를 토글하는 스위치 뷰입니다. 사용자가 옵션을 선택하고 상태를 변경할 수 있습니다.
    • Picker: 선택 가능한 옵션을 표시하고 사용자가 선택할 수 있는 뷰입니다. 드롭다운 목록 형태로 표시됩니다.
    • Slider: 범위 내에서 값을 선택하는 뷰입니다. 사용자가 값을 슬라이드하여 조정할 수 있습니다.
    • ActivityIndicator: 작업이 진행 중임을 나타내는 뷰입니다. 로딩 상태를 표시할 때 사용됩니다.
    • Alert: 사용자에게 메시지를 표시하고 선택할 수 있는 대화 상자를 표시하는 뷰입니다. 경고, 확인 또는 사용자 정의 액션 버튼을 포함할 수 있습니다.
    • WebView: 웹 페이지를 표시하는 뷰입니다. 웹 콘텐츠를 로드하고 보여줄 수 있습니다.
    • Map: 지도를 표시하고 위치를 나타내는 뷰입니다. 사용자의 위치를 표시하거나 사용자가 상호작용할 수 있는 기능을 제공할 수 있습니다.

    뷰 관련 유틸리티 목록

    • Label: 텍스트와 이미지를 조합하여 레이블을 만드는 데 사용됩니다. 텍스트와 이미지 간의 상호 작용을 추가할 수 있습니다.
    • Spacer: 뷰 간의 간격을 조정하는 데 사용됩니다. 뷰 간의 공간을 확보하거나 조정할 수 있습니다.
    • Section: 목록이나 폼에서 그룹화되는 뷰를 생성하는 데 사용됩니다. 주로 목록의 섹션 머리글과 관련된 스타일링을 위해 사용됩니다.
    • NavigationView: 탐색 기능을 제공하는 뷰입니다. 탐색 링크, 탐색 바, 뒤로 가기 버튼 등과 함께 사용할 수 있습니다.
    • List: 목록 형태의 데이터를 표시하는 뷰입니다. 각 항목은 텍스트, 이미지, 버튼 등을 포함할 수 있습니다.
    • Form: 입력 폼을 만들기 위한 뷰입니다. 텍스트 필드, 선택 컨트롤, 버튼 등을 그룹화하여 표시할 수 있습니다.
    • NavigationView: 탐색 기능을 제공하는 뷰입니다. 탐색 링크, 탐색 바, 뒤로 가기 버튼 등과 함께 사용할 수 있습니다.
    • Alert: 사용자에게 메시지를 표시하고 선택할 수 있는 대화 상자를 표시하는 뷰입니다. 경고, 확인 또는 사용자 정의 액션 버튼을 포함할 수 있습니다.
    • ActionSheet: 사용자에게 선택할 수 있는 작업 목록을 표시하는 뷰입니다. 특정 동작을 수행할 수 있는 여러 옵션을 제공합니다.
    • Popover: 팝업 형태로 작은 뷰를 표시하는 뷰입니다. 사용자가 팝업 뷰와 상호 작용할 수 있습니다.
    • TabView: 탭 기반의 사용자 인터페이스를 생성하는 뷰입니다. 여러 개의 탭으로 구성된 사용자 정의 인터페이스를 만들 수 있습니다.
    • ScrollView: 스크롤 가능한 콘텐츠를 표시하는 뷰입니다. 텍스트, 이미지, 뷰 계층 구조 등을 포함할 수 있습니다.

    'iOS > Study' 카테고리의 다른 글

    STUDY - SwiftUI 핵심  (0) 2025.01.13
    STUDY - iOS Structure/LifeCycle  (2) 2024.08.05
    AppDelegate & SceneDelegate  (0) 2024.08.05
    SwiftGen  (0) 2024.07.29

    댓글

Designed by Tistory.