🌙 IOS 스터디/iOS

    [iOS] 스레드와 DispatchQueue

    [iOS] 스레드와 DispatchQueue

    애플에서 제공하는 스레딩처리 API GCD(Grand Central Dispatch)에 대해서 알아보겠습니다. GCD는 C기반의 저수준 API입니다. DispatchQueue GCD를 사용하기 전에 먼저 알아야 할 클래스가 있습니다. DispatchQueue 클래스 인데요. 실제로 해야할 Task를 담아두면 선택된 스레드에서 실행을 해주는 역할을 합니다. DispatchQueue는 2가지로 종류로 나눌수 있습니다. Serial Dispatch Queue와 Concurrent Dispatch Queue입니다. • Serial Dispatch Queue Serial Queue는 등록된 작업을 한번에 하나씩 차례대로 처리 합니다. 처리중인 작업이 완료되면 다음 작업을 처리합니다. • Concurrent Dis..

    [iOS] Firebase 파이어베이스

    [iOS] Firebase 파이어베이스

    Firebase 파이어베이스 파이어 베이스 구글에서 제공함. 서버 자체를 서비스로 제공함. 서버를 구축하지 않아도 데이터를 저장할 수 있게 한다. 파이어베이스를 이용하면 앱을 뚝딱 만들수 있다. firebase.google.com/docs/database/ios/start?hl=ko iOS에서 설치 및 설정 | Firebase 실시간 데이터베이스 Firebase 실시간 데이터베이스는 클라우드 호스팅 데이터베이스입니다. 데이터는 JSON으로 저장되며 연결된 모든 클라이언트에 실시간으로 동기화됩니다. Android, iOS, 자바스크립트 SDK로 크로스 플 firebase.google.com Firebase 기능 파이어 베이스 기능: 데이터 저장, 실시간 데이터 동기화, 사용자 인증, 데이터 분석 , A/B..

    [iOS] URLSession Alamofire

    [iOS] URLSession Alamofire

    Alamofire는 HTTP 네트워킹을 하는데 자주 사용하게 되는 코드나 함수를 더 쉽게 사용할 수 있도록 모아놓은 라이브러리 Alamore란 iOS, macOS를 위한 Swift 기반의 HTTP 네트워킹 라이브러리 Alamofire는 URLSession 기반이며 URLSession은 네트워킹 호출에서 모호한 부분이 많은데 Alamofire를 사용한다면 데이터를 접근하기 위한 노력을 줄일 수 있으며 코드를 더 깔끔하고 가독성 있게 쓰는 것이 가능해짐 URLSession iOS에서 기본적으로 제공하고 있는 HTTP통신 방법은 여러가지가 있지만 URLSession을 이용한 방법이 대표적. URLSession은 URLSessionConfiguration을 이용하여 생성을 하게 된다. URLSession 여러개..

    [ios] 비동기 (Async) vs 동기 (Sync) 와 직렬 vs 동시처리

    [ios] 비동기 (Async) vs 동기 (Sync) 와 직렬 vs 동시처리

    다른 하나의 스레드로만 보내는 것이 직렬처리 여러 개의 스레드로 분산 처리 하는 것이 동시 개념 순서가 중요할 때, 주로 직렬 처리를 사용한다. 완전히 다른말이다. 비동기 라는 말은 작업이 보내는 쓰레드에 관련된 말이다. 메인 스레드에서 다른 스레드로 보낸 작업을 기다릴지 말지에 관한 내용이 동기 , 비동기에 관한 내용이고, 메인스레드에서 다른 스레드로 작업을 보낼 때, 스레드가 한개냐 여러개냐?를 뜻하는것이 직렬 동시처리 이다.

    [xcode] 유용한 단축키 모음 ( - 지속적 업데이트 중)

    [xcode] 유용한 단축키 모음 ( - 지속적 업데이트 중)

    CMD + click: 정의로 이동 CMD + OPT + click: 정의로 이동하되 현재 창 반대편에 열기 CMD + R: 실행 CMD + CTRL + E: 특정 단어 선택 후 누르면 현재 파일내 동일 단어를 일괄 편집 CMD + OPT + 왼쪽 / 오른쪽: 현재 커서가 위치한 블록 접기/펼치기 option + cmd + = : update frame

    [xcode] extension 언제 사용?

    [xcode] extension 언제 사용?

    stored property : 추가 못함. >> 상속을 너무 많이 받아서 코드가 난잡해지는 경우 분리를 위해 extension으로 나누어 줄 때 사용 또는 computed property나 method를 만들기 위하여 사용됨

    [xcode] Animating View Properties

    [xcode] Animating View Properties

    관련 애플 개발자 문서 developer.apple.com/documentation/uikit/animation_and_haptics/property-based_animations Apple Developer Documentation developer.apple.com 레이아웃 속성을 이용한 간접적 애니메이션 뷰의 속성을 직접 이용한 애니매이션 애니매이션 할 수 있는 뷰의 속성들 Position & Size : bounds. frame. center ... (AutoLayout과 겹칠 수 있기 때문에 , 잘 사용하여야함) Transformation : rotation, scale, translation ... (합쳐서 사용도 가능) Appearance : backgroundColor, alpha ...

    [ios] IOS 디자인 패턴 Design Pattern

    [ios] IOS 디자인 패턴 Design Pattern

    옷장에 있는 옷들처럼 코드도 체계적으로 분류하기위하여 필요한 것이 디자인 패턴. 유지 보수를 위하여는 패턴이 필요함. 클린 아키텍처 목표 : 기술부채 최소화, 재사용 및 지속 가능 MVC (model - view - controller) mvvm이 나오기 전의 패턴. model : 데이터 struct view : UI요소 controller : 두가지 사이에 중계자 viewController 단점: 개발이 커지면 커질수록, 중계자에서 해야할 일이 너무 많아짐 (massive view controller) 뷰와 모델의 경계가 모호해질 때가 있다. MVVM (model - view - viewmodel) 현재 가장 널리 사용하는 디자인 패턴 model : 데이터 view: UI요소 (view, viewcon..

    [IOS] MVVM 모델 개념

    [IOS] MVVM 모델 개념

    MVVM 모델 Model - View - ViewModel SwiftUI가 작동하려면 MVVM을 준수하여야한다. MVVM없이는 SwiftUI를 할 수 없음. MVC는 UIKit 개발 메커니즘을 따름. ( 몇년전만 해도 MVC모델 사용 ) Model은 UI와 독립적이다. 알고리즘적인부분, 기능적 부분, 데이터부분 등등 모델은 “The Truth” 데이터는 항상 모델->뷰로 이동한다. View는 모델에 있는 것을 그리는 것과 같다. 카드 매칭게임이 화면에 나타나는것 게임의 상태를 반영하는것이 뷰. 즉 모델의 상태를 반영함 선언하는 것과 같다. 스위프트UI는 명령형임 그래서 코딩을 해야함. 뷰는 사실은 구조체이고 , 기본적으로 읽기 전용이다. View Model은 View를 Model에 바인딩하는 것임 인터프..

    [IOS] MVC 모델 설명

    [IOS] MVC 모델 설명

    MVC 란? MVC = Model View Controller의 3개의 그룹으로 나눈다 Model 그룹 : 프로그램이 하는 일 자체를 말한다. UI와는 독립적이다. 계산기로 따지면 계산하는 일 처리 같은 것 . 보통 foundation 모듈 import (core service) View 그룹 : UI적인 부분을 말한다. 버튼이나 디스플레이 같은 것들이 해당됨. Main.stroyboard가 여기에 해당 Controller 그룹 : Model과 View를 연결하는 역할을 하는 것. UIkit 모듈 import . ViewController.swift 가 여기에 해당 MVC의 Controller는 반드시 UIViewController를 상속받아야 함. 일반적으로 ios에선 MVC 한 개가 아이폰 화면 한개..