IOS

    [iOS, Swift] Firebase로 구글 로그인 연동하기(1/2)

    서버는 잘 모르겠지만 firebase를 사용하면 서버를 몰라도 어느정도 기능들을 사용할 수 있다. 그 중 로그인 연동에 대하여 작성하려고 한다. 1. 프로젝트 추가 우선 firebase에서 새로운 프로젝트를 추가해야 한다. 2단계에서 애널리틱스를 사용할 것인지 물어보는데, 나는 그냥 설정해주었다. 2. 앱에 Firebase 추가 프로젝트를 생성하면 다음과 같이 대시보드 화면이 나타나는데, 앱을 추가하여 시작하기 위에 iOS+를 클릭하여 내 프로젝트에 Firebase를 추가해야한다. 2.1. Apple 번들 ID 내 프로젝트(앱)에 Firebase를 추가하기 위해서는 다음 내용들을 입력해야 하는데, Apple 번들 ID의 경우 프로젝트 파일 > TARGETS > Singing & Capabilities에서..

    View Life Cycle

    목차 1. 개요 2. View Life Cycle의 순서 3. View Life Cycle method 종류 및 기능 4. 참고 문헌 1. 개요 ViewController의 생명주기로 view가 나타나고 사라지는 과정에서 관련된 메소드들이 호출되어진다. 이를 잘 활용하면 원하는 타이밍에 내가 원하는 동작을 수행할 수 있다. 2. View Life Cycle의 순서 3. View Life Cycle method 종류 및 기능 // 컨트롤러가 관리하는 view를 생성할 때 호출 loadView() // view가 메모리에 올라갈 때 호출 viewDidLoad() // view 계층에 view가 추가되기 직전 호출 viewWillAppear(_:) // view 계층에서 view가 추가된 직후 호출 viewD..

    App Life Cycle

    목차 개요 App Life Cycle이란? App Life Cycle State 종류 Application Delegate method & Scene Delegate method 참고 문헌 1. 개요 앱이 실행되고 종료되기 전까지 많은 상태가 존재한다고 한다. 그 상태는 무엇이 있고, 그 역할에 대해 알아보려고 한다. 애플 공식 개발 문서를 토대로 내가 이해한 내용을 정리하였다. 2. app life cycle이란? 기본적으로 IOS에서 App의 현재 상태에 따라 무엇을 할 수 있고 할 수 없는지 결정된다. UIKit은 적절한 delegate 객체의 메소드를 호출하여 앱의 상태가 변한 것을 알려준다. 이렇듯 각 상태 별 적절한 조치를 취할 수 있도록 만들어진 것이 App Life Cycle 개념이다. I..

    UITableView

    목차 개요 UITableViewDelegate UITableViewDataSource 자주 사용하는 Method UITableViewCell IndexPath 참고 문헌 1. 개요 UITableView는 정해진 틀(Cell) 안에서 내가 원하는 데이터를 효과적으로 보여주는 가장 기본적인 View라고 생각한다. 가장 기본적이고 자주 사용하는 View인 만큼 그 내용을 정리하였다. 2. UITableViewDelegate UITableView의 protocol 아래 특징들을 가진 메소드들을 관리한다. 커스텀 헤더와 풋터의 생성과 관리 헤더와 풋터, rows(행/셀)의 높이 조절 행 선택에 대한 응답 테이블 행의 스위프와 action에 대한 응답 테이블 컨텐츠 수정 3. UITableViewDataSource..

    고차함수

    개요 고차함수의 종류와 사용 방법 Swift에서 함수는 일급객체로 취급하여 다른 함수를 다른 함수의 전달인자로 사용 가능 이때 매개변수로 함수를 갖는 함수가 고차함수 대표적인 고차함수 map filter reduce map 1. 매개변수로 전달된 함수를 실행 2. 함수로 인하여 변형된 결과를 반환 적용 가능 타입 배열, 딕셔너리, 세트, 옵셔널 컨테이너가 담고 있는 각 원소의 값을 매개변수를 통해 받은 함수에 적용한 후, 다시 컨테이너에 포장하여 반환 let numbers = [1,2,3,4,5] // 후행 클로저 // 매개변수(클로저) : (number: Int) -> Int let doubleNumbers1 = numbers.map() { (number: Int) -> Int in return num..