| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- ios
- UITextView
- Human interface guide
- Clean Code
- Refactoring
- swiftUI
- combine
- map
- Xcode
- rxswift
- swift documentation
- Protocol
- clean architecture
- 애니메이션
- 스위프트
- RxCocoa
- SWIFT
- 리펙토링
- MVVM
- tableView
- 클린 코드
- HIG
- collectionview
- uitableview
- Observable
- scrollview
- UICollectionView
- ribs
- uiscrollview
- 리팩토링
- Today
- Total
목록ios (1133)
김종권의 iOS 앱 개발 알아가기
Optional Chaining 정의: Optional인 것들을 가지고 property나 method, subscript를 쿼리하고 호출하는 프로세스 optional값 중 하나가 nil이 되면 nil반환, 단 중단되는게 아닌 해당부분만 nil반환 let someOptoinalProperty: SomeProperty? = nil print("start") // start print(someOptoinalProperty?.value) // nil print("end") // end Forced Unwrapping의 대안으로 Optional Chaining 사용 런타임 오류에 예방 let roomCount = john.residence!.numberOfRooms if let roomCount = john.re..
iCloud iCloud는 사람들이 명시적 동기화를 수행하지 않고도 모든 기기에서 사진, 비디오, 문서등의 컨텐츠에 접근할 수 있도록 하는 서비스 iCloud의 기본적인 측면은 투명성: 사용자는 콘텐츠가 어디에 있는지 알 필요가 없고 항상 최신 버전에 액세스하는 있는 경험 제공 iCloud로 앱을 쉽게 사용 가능 사용자들은 설정에서 iCloud를 활성화하고 앱이 자동으로 작동하기를 기대 만약 iCloud를 사용할지 여부를 선택하고 싶어할 것 같다면 앱을 처음 열때 모든 데이터에 iCloud를 사용할지 여부를 선택할 수 있는 옵션을 표출 iCloud에 보관할 문서를 묻는 방향보다는 자동으로 보관을 지향: 대부분의 사용자들은 개인 콘텐츠를 iCloud에서 사용할 수 있기를 기대하고, storage 자체를 관..
Deinitialization deinitializer는 클래스 인스턴스가 해제되기 직전에 호출되며 직접 호출 불가능 deinit 키워드 class type에서만 사용 deinit deinit이 호출될 때까지 instance 메모리가 해제되지 않기 때문에 deinit안에서 호출된 인스턴스의 모든 속성에 접근 가능 deinit 사용 예시 Player클래스는 게임에서 플레이어를 안내하고, 각 플레이어는 지갑에 일정 수의 동전을 보관하는 상태이고 이 동전은 coinsInPurse로 정의 은행에서 coin의 허용량이 정해져있다면, 각 플레이어가 coin을 사용하고 게임이 끝난 경우 Bank에 coin을 반납하는 프로그램 class Player { var coinsInPurse: Int init(coins: I..
CarPlay 자동차의 내장 디스플레이에 나타나는 iPhone앱은 운전 환경에 최적화 최고의 앱은 간단한 상호작용을 지원하며 운전자의 주의를 끌지 않는 앱 화면상의 정보는 최소화 의사 결정이 거의 필요하지 않는 것 운전대에서 손을 떼거나 눈을 떼지 않고도 많은 앱을 제어 가능 지도, 메시지, 음악 및 전화와 같은 iPhone앱은 CarPlay에서 멋지게 보이고 운전 중에 조작하기 쉬운 차량에 적합한 인터페이스 표출 Audio App (오디오 앱) 오디오 콘텐츠(오디오 북, 라디오, 팟 캐스트)를 제공하는 앱은 차량의 내장 디스플레이를 통해 해당 컨텐츠를 표출 CarPlay 개발자 지침, Media Player 데이터를 사용할 수 없는 경우에도 항상 콘텐츠를 제공: 드라이버는 때때로 네트워크 수신 불량을 ..
Business Chat Business Chat은 고객이 iOS, macOS, watchOS, iPadOS의 메시지 앱을 통해 비즈니스와 연결할 수 있도록 도와주는 기능 메시지 앱을 사용하여 회사에 연락, 질문, 지원, 약속, 예약, Apple Pay 결제 등의 작업 수행이 가능 iPhone, iPad, Mac, Apple Watch의 친숙한 메시지 앱 인터페이스는 고객 상호 작용이 직관적이고 효율적임을 보장 채팅의 비공식 성은 개인적이고 의미있는 고객 서비스 경험을 제공 Business Chat 개발자 지침 Interaction Apple Pay 결제 요청: 제품 또는 서비스에 대한 결제를 수집 iMessage Apps: 대화 중에 앱 표출 Rich links: 대화 내에서 이미지 또는 비디오를 표출..
Literal UIIMage(named:)하여 String값으로 Assets에 있는 값을 사용하는게 아닌, Literal값으로 사용 compile time에 이미지와 색상을 실시간으로 확인 가능 사용 방법 Assets에 사용하려는 Image추가 literal 입력 > Enter 입력 > 마우스 클릭 > 이미지 선택 Color도 동일
NSPredicate 메모리 내에서 어떤 값을 가져올때 filter에 대한 조건 사용처1: CoreData에서 특정 데이터를 가져올때 NSPredicate 사용 // CoreData에서 특정 id 값 존재 let request: NSFetchRequest = Entity.fetchRequest() let predicate = NSPredicate(format: "id == $@", id) request.predicate = predicate 사용처2: Regular Expression 문법을 따르므로, 핸드폰 번호 / 이메일 / 패스워드 정규식 체크에 사용 NSPredicate의 메소드인 evaluate(with:)을 사용하여 정규식 판별 Regular Expression 개념 참고 // 핸드폰 번호 정..
Subscripts 배열에서의 Random Access하기 위해 index값을 사용하는데, 이때 인덱스 값이 'Subscripts' ex) arr[3] = 1 swift에서는 class, struct, enum의 []연산자를 subscript 키워드를 통해 정의 가능 swift의 subscript 키워드 swift는 subscript를 정의하여 sequence가 아니더라도 특정 연산이 되게끔 가능 struct TimeTable { let multiplier: Int subscript(index: Int) -> Int { return multiplier * index } } let threeTimeTable = TimeTable(multiplier: 3) print(threeTimeTable[5]) // ..
