일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
31 |
- RxSwift
- 카카오뱅크 ios
- Swift Tuist
- xcode
- KeyPath
- Combine
- arc
- JSON
- SwiftUI
- swift db
- GCD
- combinecocoa
- Firebase Analytics
- Subscribe
- swift 6
- ios database
- observable
- swift
- Tuist
- Tuist Swift
- realm
- Firebase
- ios
- swift 5.9
- 네트워크 통신
- swift database
- SeSAC
- Subject
- ribs
- uitableviewdiffabledatasource
- Today
- Total
목록전체 글 (87)
천원의 개발
안녕하세요! 이번에 앱 스토어에 앱을 출시하게 되면서 느낀 점, 고민했던 부분을 한번 회고하려고 합니다. 먼저 앱 소개부터 해보자면 Plain ToDo - 플레인 투두 기본에 충실한 투두리스트 'Plain ToDo' 사용자가 복잡하다는 생각이 들지 않도록 깔끔하고 핵심적인 기능만을 추구합니다! [주요기능] - 캘린더 - 체크 리스트 - 포스트잇 - 알림 - 아이패드 지원 apps.apple.com 한번 사용해 보시고 리뷰해 주시면 감사하겠습니다🥺 개발 동기 처음 시작은 Realm local DB의 사용을 목적으로 공부해 보고자 어떤 앱을 만들지 구상하면서 시작하게 되었습니다. 최대한 기능을 분리하고, 가독성 좋은 코드를 짜기 위해 MVC, Singleton, Repository, MVVM patten..
1. 클로저 값 캡쳐란? • 클로저 외부의 변수를 클로저 내부에 저장 해 두 는 것을 말한다! 예제를 통해 확인 해보자! func testFunction() { var name = "kim" var age = 13 var closure: () -> Void = { print("나이는: \(age)") // age의 값이 캡쳐 되었다! } closure() // 나이는: 13 } 위의 예제를 보면 age가 클로저에 의해 캡쳐 되었다! name은 캡처 되지 않았다! 사용 안 했으니까! 2. 다음은 클로저의 값 캡처 방식에 대하여 알아보자! 결론 부터 말하면 클로저에서는 값을 캡쳐 할때 Reference Capture 한다! func testFunction() { var name = "kim" var age ..

GCD란? • 멀티 스레드 환경에서 편리하게 개발할 수 있도록 애플에서 만들어 준 기술이다!!! • GCD 즉 동시성 프로그래밍을 지원하는 스위프트의 API가 Dispatch Queue Sync, Async • Sync란 Main Thread 에서 task1, task2, task3 이 있다고 가정하면 task1을 Queue에 보낸 후 종료가 되어 응답이 올 때 까지, 기다리는 것이다! 따라서 task가 순차적으로 실행이 된다 • 반대로 Async란 Main Thread 에 똑같이 task1, task2, task3, 이 있다고 가정하면 task1을 보낸 후 기다리지 않고 그냥 모든 task2, task3을 Queue에 던져 버리는 것을 말한다! Serial, Concurrent • Queue에도 2가지..

1. info.plist 파일에서 설정 Appearance 추가 해준다음 value에 Light or Dark 작성 해주면 된다 2. 코드로 추가 SceneDelegate 파일의 첫번 째 함수에 추가 해주면 된다! if #available(iOS 13.0, *) { window?.overrideUserInterfaceStyle = .light }

iOS 15부터는 separator를 아래와 같이 cell 개수 만큼만 그려준다 그런데 이런 식으로 미리 그려두고 싶을 때는 어떡할까? 정말 간단하다! (한참.. 찾았지만...) iOS 15부터는 table View에 fillerRowHeight 이라는 프로퍼티가 존재하는데 여기에 tableView에 높이를 넣어주면 끝이다 tableView.fillerRowHeight = 55 Apple Developer Documentation developer.apple.com
오늘은 Realm 사용법을 정리 해보겠습니다! 1. 테이블 생성 import RealmSwift class UserInfo: Object { @Persisted var name: String @Persisted var nickName: String? @Persisted var gender: Bool //PK(Primary Key): Int, UUID, ObjectID @Persisted(primaryKey: true) var objectID: ObjectId convenience init(name: String, nickName: String, gender: Bool) { self.init() self.name = name self.nickName = nickName self.gender = gender..