본문 바로가기

분류 전체보기

(16)
[Firebase Realtime Database] 공식문서 바로가기 Firebase Realtime Database와 app 연결하기 1. Cocoapods 추가 Podfile에 아래 코드 추가 pod 'Firebase/Database' 2. 초기화 AppDelegate.swift 파일에 아래 코드 추가 import Firebase // Use Firebase library to configure APIs FirebaseApp.configure() 3. 데이터베이스 참조 정의 데이터베이스 참조를 만들고 쓰려는 위치에 코드 추가 FIRDatabaseReference instance var ref: DatabaseReference! ref = Database.database().reference() 데이터 읽고 쓰기 1. 데이터 쓰기 setValue() 데..
[UITableView] 공식문서 바로가기 1. storyboard에서 tableView 추가 2. UITableViewCell 만들기 3. TableViewCell 연결 nib을 register해야한다. UITableViewController.swift 파일의 viewDidLoad()에 작성했다. let nibName = UINib(nibName: "StudentCell", bundle: nil) tableView.register(nibName, forCellReuseIdentifier: "StudentCell") 4. UITableViewController.swift와 연결 5. 보여줄 데이터 생성하기 struct Student { let name: String let id: String } var studentList: [..
[OAuth] Google Login 공식문서 보러가기 Firebase 설정하기 iOS Project에서 Google Login하기 1. Podfile에 pod 추가하기 Podfile에 아래 코드를 추가한다. pod 'Firebase/Auth' pod 'GoogleSignIn' 2. URL Scheme 추가하기 GoogleService-Info의 REVERSED_CLIENT_ID 값을 복사해서 URL Types에 추가한다. 2. AppDelegate.swift에 아래 코드 추가 Firebase configure Firebase configure를 초기화한다. // Use Firebase library to configure APIs FirebaseApp.configure() GIDSignIn 인스턴스 앱 대리자의 application:ope..
[UINavigationController] 공식문서 바로가기 ContentViewController vs ContainerViewController ContentViewController 화면을 구성하는 view를 직접 규현하고 이벤트를 처리하는 view controller ContainerViewController 하나 이상의 Child View Controller를 가지고 Child View Controller를 관리하고 화면 전환을 담당 계층구조로 구성된 content를 순차적으로 보여준다. 대표적으로 Navigation Controller와 TabBar Controller가 있다. 화면전환 화면전환 방법 View Controller의 view 위에 다른 view를 가져와 바꿔치기 (메모리 누수가 발생할 수 있기 때문에 지양한다.) View..
[Multi-touch Event] Multi-touch 예제를 통해 multi-touch event에 대해 학습하도록 한다. main에서 view의 속성에서 Multi Touch를 체크한다. Touch를 했을 때 어떤 method가 호출되는지 보여줄 Method label과 touch 횟수를 셀 Touches label(touch가 시작되는 시점)과 tab 횟수를 셀 Tabs label(touch가 끝나는 시점)을 추가하였다. Multiple Touch 속성을 추가하면 아래 함수들을 override하여 사용할 수 있다. override func touchesBegan(_ touches: Set, with event: UIEvent?) override func touchesMoved(_ touches: Set, with event: UIE..
[AutoLayout] 공식문서 바로가기 AutoLayout tools Stack Align Pin Resolve Issue 1) Stack Stack Option Axis : 수직, 수평을 정하는 옵션 Alignment : StackView안에 view들의 Y축을 정렬하는 옵션 Distribution : StackView안에 view들의 X축을 정렬하는 옵션 Spacing : subview들 간의 간격을 설정하는 옵션 2) Align Align 정렬에 관한 Contraint Align 설정 방법 Add New Alignment Contraints 에서 설정한다. Horizontally in Container를 체크하면 아래처럼 Horizon에서 center로 오게 된다. Vertically in Container를 선택하면 ..
[ViewController Life-cycle] UIViewController Life-cycle loadView() viewDidLoad() viewWillAppear() viewDidAppear() viewWillDisAppear() viewDidDisAppear() 1) viewDidLoad() 모든 view가 메모리에 load 됐을 때 시스템에 의해 자동으로 호출되는 콜백 메소드이며 생명주기 중 단 한번 호출된다. 사용자에게 화면이 보여지기 전 데이터를 뿌려주거나 네트워크 호출을 하거나 뷰의 초기화 작업을 한다. 2) viewWillAppear() view가 화면에 나타나기 직전에 매번 호출된다. 다른 viewf로 이동했다가 돌아오면 재호출된다. view와 관련된 추가적인 초기화 작업을 한다. 3) viewDidAppear() viewContr..
[App Life-cycle] Application Life-cycle 1) App-Based Life-cycle (iOS 12 and earlier) iOS 12 이전은 App-Based Life-cycle을 가진다. 2) Scene-Based Life-cycle (iOS 13 and later) iOS 13 이상부터 Scen-Based Life-cycle을 가진다. Scene? (더 공부 필요!) Scene-Based Life-cycle부터 scene이라는 개념이 등장한다. iOS 13부터 멀티 윈도우가 가능해지면서 생긴 개념이다. Scene에는 window와 view controller가 있다. 또, 각 scene에 해당하는 UIWindowSceneDelegate 객체를 갖고 있다. Apple Document | Scenes 를..
[App Architecture] Settings Settings 문서 보러가기
[App Architecture] Accessing User Data and Resources Accessing User Data and Resources 문서 보러가기