일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- JPA
- Firebase
- geofencing
- window
- github
- view
- SwiftUI
- MacOS
- 이미지
- appstore
- Realm
- rxswift
- iOS16
- Apple
- mac
- 한글
- IOS
- UIButton
- Xcode
- Notification
- FLUTTER
- 웹뷰
- darkmode
- Git
- error
- Swift
- 개발자
- Code
- Session
- Archive
- Today
- Total
목록Swift (182)
EEYatHo 앱 깎는 이야기

성능 비교의 3가지 관점 Allocation: 인스턴스를 생성하면 Stack과 Heap 중 어느 곳에 할당 되는 지 Reference Counting: 인스턴스를 통해 레퍼런스 카운트가 몇개가 발생하는지 Method Dispatch: 인스턴스에서 메소드를 호출했을 때, 메소드 디스패치가 정적인지 동적인지 Allocation Stack 은 LIFO 구조 및 Pointer 를 이용해서 할당, 해제하기에 간단한 만큼, O(1)의 빠른 속도를 가짐 Heap 은 사용하지 않은 블럭을 찾아서 할당하고, 해제한 블럭을 적절한 곳에 재삽입해야하고, thread-safe 를 위해 locking 또는 기타 동기화 기법을 사용해 무결성을 보호해야하기에, Stack 보다 느린 속도를 가짐 Stack 은 Value-Sement..
노션 링크 코드 컨벤션 📌 코드 포맷팅 iris-numeric-9d0.notion.site 📌 코드 포맷팅 띄어쓰기, 쉼표, 콜론, 줄바꿈 등. 기능 및 성능과는 직접적인 연관이 없는, 코드들의 모양 (겉부분) 을 다룹니다. 통일된 코드 포멧은, 우리 뇌의 청킹을 도와, 타인의 코드를 더 쉽게 볼 수 있게 도와줍니다. 1. import import 순서 내장 프레임워크를 먼저 import 한 후, 한줄 띄우고 third-party 들을 import 합니다. 이후 알파벳 순으로 정렬합니다. ✅ Preferred import Foundation import UIKit import AdSupport import AppTrackingTransparency import RxCocoa import RxSwift i..
ReactorKit 에서 테스트 대상 3가지로 나눠서 확인할 수 있다 View -> Reactor 유저의 인터렉션이 일어났을 때, Reactor 에게 기대되는 Action 을 넘기는지 Reactor -> View Reactor 에서 도달한 State 값에 따라 View 의 property 들이 기대한대로 설정되는지 Reactor Processing ( Action - mutation -> State ) 특정 State에서 특정 Action이 들어왔을 때 State 가 기대한대로 변경되는지 Stub ReactorKit 은 용이한 Test 를 위해, Reactor 에 Stub 이라는 기능을 제공한다. 아래처럼 Reactor 에서 Stub 기능을 사용할 것인지 설정할 수 있다. let reactor = MyR..

ReactorKit 공식 Git 링크 View 와 Reactor 을 가지고 화면을 만든다. View = UIView, UIViewController, UITableViewCell 등 Reactor = ViewModel. 비지니스 로직. ReactorKit 은 Flux 와 Reactive Programming 의 조합 부분적으로 도입이 가능하고, 라이브러리인 만큼, 공식 설명이 잘 되어있다. ReactorKit 의 디자인 목표 Testability : 뷰(View)와 비지니스 로직(Reactor)을 분리. Reactor는 View 에 대한 종속성이 없음. Small Start : RIBs 처럼 앱 전체가 하나의 아키텍쳐를 따를 필요 없음. 특정 화면에만 ReactorKit을 사용할 수 있음 Less Typ..

UnitTest 파일을 만들면 상속받고 있는 XCTestCase 가 있다. 테스트에 관심이 생겨, 공식 문서 정리 XCTestCase 애플 문서 XCTestCase 란 ? ( Overview ) 테스트를 시작하기 전이나, 테스트가 끝난 후의 행동을 setup 할 수 있는 Test Method 들의 그룹입니다. 테스트 케이스와 함수 정의하기 XCTActivity 를 따르기 때문에, 복잡한 테스트들을 조직화하고 단순화할 수 있으며, 분석을 위한 output 출력이 가능합니다. For more information, see Activities and Attachments. expectations 를 사용하여 비동기 테스트를 만들 수 있습니다. 앱에서 Concurrency 를 사용하고 있다면 맘껏 사용하세요, ..
시뮬레이터 방향 바꾸기 : Command + 좌/우 방향키 시뮬레이터 화면 캡쳐 : Command + S 시뮬레이터 화면 영상 녹화 시작 : Command + R ( 녹화 종료는 우측 상단의 정지 버튼 ) 시뮬레이터 크기(해상도) 바꾸기 : Command + 1/2/3 줌인/줌아웃 제스처 : Option + Drag 텍스트 입력시, 키보드 보이기/숨기기 : Command + Shift + K 홈키 : Command + Shift + H 잠그기 : Command + L
자주 쓰는 단축키 Bold 처리 코딩 관련 단축키 커서가 위치한 블록 접기 : Command + Option + 좌 방향키 ( 중괄호 기준 ) 커서가 위치한 블록 열기 : Command + Option + 우 방향키 ( 중괄호 기준 ) 커서가 위치한 파일의 모든 함수 접기 : Command + Option + Shift + 좌 방향키 커서가 위치한 파일의 모든 함수 열기 : Command + Option + Shift + 우 방향키 파일, 클래스, 함수 검색 : Command + Shift + O 뒤로가기 : Command + Ctrl + 복수 커서 생성 : Ctrl + Shift + Click 선택한 라인 주석 걸기 / 풀기 : Command + / 현재 파일을 Project Navigator 에서 보..

Test 파일 만들기 New File > Unit Test Case Class > 파일명 입력 파일명은 일반적으로 XXXTests 로 짓는다 예시로 User 의 모델이나 API 를 테스트하기 위한 UserTests 를 만들었다. 제공된 함수 설명 UintTest 파일을 만들면 4가지 함수가 있다. setUpWithError : 테스트 시작 직후, 가장 먼저 실행되는 코드. 테스트를 위한 모델이나 시스템을 정의하는 역할. tearDownWithError : 테스트 끝나기 직전, 가장 마지막에 실행되는 코드. release, deinit, dispose 등의 역할. testExample : 테스트 함수 예시. testXXX 로 명명된 함수들이 UnitTest 시 모두 실행된다. setUpWithError 실..