일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- coordinateSpace
- 로버트마틴형
- Large File Storage
- Dependency Rule
- Apple Certificate
- 대머리깃허브
- 잡초가득블로그
- Dispatch.main.sync
- iOS 버전 점유율
- swiftdocs
- 클린아키텍쳐
- conflicting access to memory
- ios
- RxSwift
- UICoordinateSpace
- windowScene
- Ribs
- Github file size
- rib
- App Signing
- RIBs Tutorial
- Automatically manage signing
- iOS Target
- Git Large File Storage
- Concurrent
- in-out
- RxCocoa
- 메모리 접근 충돌
- memory safety
- SWIFT
- Today
- Total
목록개발/iOS (55)
빙수왕의 개발일지
1. 그냥 위젯 눌러서 앱 켜질 때 (configurable 위젯이라 그럴지도)func scene(_ scene: UIScene, continue userActivity: NSUserActivity) 이 때 찍어본 값들(lldb) po userActivity.activityType"SomeWidgetConfigurationIntent" // configurable"com.someCompany.someApp.Widget.someWidget" // 일반 위젯(lldb) po userActivity.userInfo▿ Optional> ▿ some : 2 elements ▿ 0 : 2 elements ▿ key : AnyHashable("WGWidgetUserInfoKeyFamily") ..
서버에서 내려주는 커피 리스트가 있다. 이 커피 리스트를 디코딩한다고 가정하자. 커피 종류는 2가지가 있고, 이 2가지는 내부 프로퍼티 값에 따라 구분된다. (또는 각 다른 프로퍼티를 가진다) ex) [StructA(), StructA(), StructB(), StructA(), StructB(), ... ] 서버에서 다 같은 형태로 내려주는 아이를 앱에서는 구분하고 싶을 때!! 각 타입을 다른 struct로 디코딩 하고싶다면 어떻게 할까? CoffeeDecoder struct를 따로 만들어준다. 예시) Coffee 의 ingredients 값에 따라 형태 나눌 수 있다. 아래 예시에서는 두가지 모두 Coffee struct 형태를 사용하지만, 각 Coffee 종류의 보유 프로퍼티가 다르다면 Struct..
KeyedDecodingContainer 주요 메소드들 decode(_:forKey:) decodeIfPresent(_:forKey:) decodeNil(forKey:) nestedContainer(keyedBy:forKey:) nestedUnkeyedContainer(forKey:) superDecoder() superDecoder(forKey:) 그 외 - configuration을 받는 메소드들 decode(forKey:configuration:) 음.. 자세히는 안봤지만, decode 할 때 configuration 객체를 내가 커스텀해서 만들고 그걸 사용해서 decode할 수 있도록 해주는 메소드인 것 같다. https://www.andyibanez.com/posts/the-mysterious-..
Decoder의 메소드들 (Container 3가지) Apple Developer Documentation func container(keyedBy: Key.Type) throws -> KeyedDecodingContainer func singleValueContainer() throws -> SingleValueDecodingContainer func unkeyedContainer() throws -> UnkeyedDecodingContainer 1. KeyedDecodingContainer CodingKey로 넘긴 키타입에 맞는 키를 가지는 값들을 포함하는 컨테이너. 일반적인 key: value 형태의 json을 디코딩할 때 사용. 우리가 일반적으로 property를 몇개 가진 struct에 Deco..
Meet Swift Async Algorithms AsyncSequence Recap (요약) 비동기적으로 생긴 값을 설명하는 프로토콜 Sequence 와 같지만, 2가지 다른점이 있다. AsyncSequence vs Sequence 2가지 다른점 이놈의 iterator(반복자)로부터 다음에 오는 function은 비동기임 (iteration이 Concurrency사용) iteration은 잠재적 failure로부터 throw 가능 (참고: for-await 사용하여 iterate함.) 사실 AsyncSequence는 Sequence에서 사용하는 거의 모든거 사용할 수 있다. ex) map, filter, reduce, … Swift Async Algorithms는 오픈소스 패키지임. 작년에 메세지 앱을..
Get more mileage out of your app with CarPlay 개요 - 세션에서 이야기할 것들 카플레이에서 어떤 앱을 지원하는지 카플레이에서 올해 지원하는 새로운 앱 타입 카플레이에서 만든 앱개발에 도움이 되는 새로운 툴 소개 Carplay apps 카플레이 근본: driver을 위해 만들어짐. 드라이빙을 할 때 관련한 usecase만 고려한다. 그 외적인건 고려 X → (보통 원래 앱에서 약관읽고.. 이런것들 미리 하고 카플레이에서는 안봄.) 애플 카플레이 developer website에서 자격을 요청해야 한다. 어떤 타입인지. 카플레이에서 새로 추가된 타입 - 우측 2개 카플레이는 원래 템플릿을 제공한다. 템플릿은 앱이 카플레이에서 어떻게 UI를 보여줄지이다. 다음과 같은 특징들..
작년 내용 Swift Playground 4 앱 개발 & 앱스토어 등록하는 기능 SwiftUI 지원 Xcode Cloud 지속적 통합 & 배포 오늘부터 이용 가능 가격 23년 말까지 무료 (디벨로퍼 프로그램) 오늘의 주제 요약 Vision for Platform System Experience New APIs Wrap-up 주요 키워드 Xcode Cloud Swift & SwiftUI 잠금화면 위젯, Live Activities Messages Collaboration App Intents - 시리와 우리앱을 통합해줌 새로운 API들이 생겼고 기존 API 업데이트 - WeatherKit, MapKit, Live Text, Metal 1. Vision for (developer) Platform 프로그래밍..
iOS Tutorial 4 - Deeplinking and Workflows https://github.com/uber/RIBs/wiki/iOS-Tutorial-4 목표 앱에 딥링크 대응을 추가하자. RIB workflow와 actionable item에 대한 이해 safari에서 딥링크(ribs-training://launchGame?gameId=ticTacToe)를 통해 앱으로 이동해보자 (+ 시작화면을 bypass해서 바로 게임을 시작해보자) URL handler을 구현하기 URL scheme(deeplinking)은 커스텀 URL을 통해 앱끼리의(inter-app) 통신을 가능하게 한다. 특정 URL 스키마로 앱을 등록하면, 유저가 그 URL을 다른앱(ex. 사파리)에서 열었을 때 앱이 시작된다...