본문 바로가기

ios

(10)
Ios - Life Cycle과 관련된 메서드들의 실행순서 1. func viewDidLoad() - 뷰가 메모리에 로드됨. 2. func viewWillAppear(_ animated: Bool) - 뷰가 보이려함. 2-1. func viewWillLayoutSubviews() - 뷰가 서브뷰를 레이아웃하려함 2-2. func viewDidLayoutSubviews() - 뷰가 서브뷰를 레이아웃함 3. func viewDidAppear(_ animated: Bool) - 뷰가 보여짐 4. func viewWillDisappear(_ animated: Bool) - 뷰가 사라지려함. 5. func viewDidDisappear(_ animated: Bool) - 뷰가 사라짐
Ios - UITableView 기본 TableView는 Ios 앱 제작에 있어 매우 매우 많이 응용되는 중요한 뷰라 할 수 있습니다. 메모앱의 메모목록이나 뮤직앱의 플레이리스트 등 테이블뷰는 여러 앱에서 다양한 형태로 사용되고 있습니다. 오늘은 이러한 테이블뷰를 만드는 가장 기초적인 방법을 알아보겠습니다. 테이블뷰는 Xcode의 Objects Library에서 테이블뷰컨트롤러를 통해 생성할 수도 있지만(이경우 아래에서 다룰 DataSource 및 Delegate가 자동으로 연결 및 생성됨) 여기서는 일반 뷰컨트롤러에 테이블뷰와 테이블뷰셀을 추가하는 방법으로 진행하겠습니다. 시작하기 1. 일반적인 ViewController에 TableView를 추가합니다. 2. 그리고 TableView안에 TableViewCell을 추가합니다. TableV..
Ios - Firebase의 Authentication 사용하기 Firebase Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com Firebase는 Backend as a Service — BaaS 이다. 모바일 애플리케이션을 위한 인증, 데이터베이스 등의 서비스를 제공하는데 이번에는 인증(Authentication)에 대해 정리해본다. 1. firebase 페이지에서의 준비 작업들을 진행한다. 2. AppDelegate.swift 파일에서 didFinishLaunchingWithOptions: 메소드의 내부에 FirebaseApp.configure() 코드를 작성한다. func application(_ application: UIApplicati..
Ios - CoreLocation 임포트 import CoreLocation locationManager 인스턴스 생성 컨트롤러 클래스 내부에 let locationManager = CLLocationManager() 권한 획득 viewDidLoad() 안에 locationManager의 requestWhenInUseAuthorization() 메소드 선언 override func viewDidLoad() { super.viewDidLoad() locationManager.requestWhenInUseAuthorization() } 그리고 프로퍼티 리스트(.plist)에 권한 설정을 추가합니다. key값으로 privacy-When In Use Usage Description을 선택하고 value에 해당 권한을 얻기 위한 이유를 입력합니다..
Ios - API와 찰떡궁합 DispatchQueue.main.async Networking 같이 작업시간이 비교적 긴 작업은 DispatchQueue.main.async를 이용해 다른 스레드를 만들어 비동기 처리 해줍니다. 비동기 처리를하지 않으면 Networking이라는 긴 작업 시간 동안(물론 몇 초일찌라도) 앱은 다른 동작을 할 수 없는 프로징 상태에 있게 됩니다. 네트워크 작업이 처리 될 때까지 멈춰 있게 되는 것이죠. 따라서 아래와 같은 형태의 클로져 구문아래 api로 받은 데이터로 처리할 작업들을 비동기로 작업하게 끔 만들어주면 앱이 프로징 상태에 있지 않고 원할히 동작하며, 완료된 네트워크 작업의 데이터 또한 그때 그때 반영해 줄 수 있습니다. 예) api로 받은 자료를 UI에 반영하는 것. 사진, 텍스트 등. 또는 화면 전환시 용량이 큰 파일을 저장하고 넘어가..
Ios - Api 사용하기(urlSession, parseJson) Ios에서 네트워크 통신을 하기 위해 urlSession이라는 클래스를 사용합니다. urlSession은 서버에 요청을 보내기 위해 사용하는 클래스이며 자료를 업로드하고 다운로드하는데 필요한, 완전한 형태의 ios 네트워크 API입니다. urlSession을 이용한 네트워크 통신에서는 아래와 같은 5가지의 기본 단계가 필요합니다. //0. API를 사용할 url 주소가 있어야합니다. let urlString: String = "https://api.test.com/data/person?n=1&a=22" func performRequest(with urlString: String){ // 1. url주소를 인자로 전달한 URL 구조체를 만듭니다. if let url = URL(string: urlStrin..
Swift - Delegate Design Pattern의 초보적 이해 Delegate : 한 객체가 할 일을 대신 위임 받은 객체를 말합니다. 이 때 위임을 받을 수 있는 객체는 위임을 넘겨줄 객체가 정의한 프로토콜을 준수하는 객체에만 한정 됩니다. Protocol : 일종의 자격증이라 생각하면 됩니다. 이 자격증(Protocol)을 준수하며 자격증에서 요구하는 기준에 따라 자신(대리자)의 필요에 맞는 기능을 구현하면 됩니다. 위임할 객체는 위임 받을 객체가 자신이 규정한 자격증(Protocol)을 가졌을 때만 위임자(대리자)로 지정 할 수 있다는 것을 다시 기억해주세요. 데이터 클래스에서 필요한 것 1. 델리게이트 프로토콜 선언 및 필요한 메서드 선언 2. 데이터 클래스 안에 델리게이트 변수, 데이터 변수, 델리게이트에게 데이터를 이용한 프로토콜 메서드 사용하도록 하는 ..
IOS - 다크모드(Dark mode)를 지원하는 Color Set 만들기 다크 모드를 원할히 지원하기 위해 가장 기본이되는 방법은 System color를 사용하는 것이다. System color를 사용할 때는 알아서 라이트모드와 다크모드에 따라 색을 반전시켜 준다. Cumstom 색상에서 다크모드를 지원하기 위해서는 아래와 같이 해준다. Assets.xcassets에 들어가 AppIcon이 있는 창의 빈칸을 오른쪽 클릭한다. 그리고 New Color Set을 클릭하면 컬러셋을 만들 수 있다. Attributes Inspector - Appearances를 Any, Light, Dark로 설정한다. 원하는 색을 넣어준다. 쉽게 색을 찾을 수 있도록 Color Set의 이름을 원하는대로 설정해준다. Color Set이 반영되었는지 확인하기 위해 스토리보드에서 뷰의 백그라운드 컬..