반응형

전체 글 252

[WidgetKit] Deep linking (LinkAPI, widgetURL modifier)

WidgetKit Deep linking 위젯은 애니메이션이나 커스텀 interaction이 없지만. 위젯에서 앱으로 deep linking할 수 있다. 위젯은 세가지 스타일이 있다. (.systemSmall, .systemMedium, .systemLarge) systemSmall은 위젯 하나가 큰 tap 영역이다. systemMedium과 systemLarge는 SwiftUI link API를 사용해서 위젯에 tap이 가능한 구역을 설정할 수 있다. Deep Linking을 할 수 있는 두가지 방법 링크 : https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension - Respond to User Interaction..

Programming/iOS 2021.10.29

[WidgetKit] WidgetKit에 대해 알아보자 (구성요소, protocol 등)

WidgetKit WidgetKit에 대해 알아보자 참고 링크 WidgetKit - Apple Developer WWDC - WidgetKit Apple Developer Documentation Widgets Code-along, part 1: The adventure begins - WWDC 2020 - Videos - Apple Developer WidgetKit의 구성요소 Configuration : 위젯 식별하며, 위젯의 Content를 표시하면 SwiftUI View를 정의한다. Timeline Provider : 시간이 지남에 따라 위젯 View를 업데이트하는 프로세스를 주도한다. SwiftUI View : WidgetKit에서 위젯을 표시하는 데 사용하는 View이다. TimelineEnt..

Programming/iOS 2021.10.28

[책] 한빛리뷰어 <나는리뷰어다 10월> - 처음 배우는 스위프트

이번달 한빛리뷰어로 서평할 도서는 [처음 배우는 스위프트] 이다. 나도 iOS 앱을 공부하면서 여러 종류의 도서를 읽어봤는데 이 도서는 확실히 다른 느낌이 들었다. 제목은 처음 배우는 스위프트지만 앱 개발의 전반적인 내용을 담고 있다. 이 책의 저자 탠메이 박시는 무려 5살부터 프로그래밍을 했다고 하니 책에 대한 신뢰가 더욱 커진다. '여행'을 컨셉으로 잡아 iOS 앱 개발을 하기 위한 여정을 할 수 있도록 생동감 넘치는 텍스트와 일러스트로 구성되어있다. 책에 담긴 내용은 개발환경 구성, Swift 문법, iOS 앱 개발, 각종 퀴즈 등 다양한 컨텐츠가 들어있는데 퀴즈를 보면 정말 독자가 궁금해할 거 같은 질문들을 넣어놔 읽는 재미도 있었다. 다양한 내용을 다루면서도 한쪽에 치우치지 않기 때문에 한 권으..

2021.10.17

[Swift] 문법 다시보기 - 서브스크립트 (subscript)

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 서브스크립트 (subscript) 클래스, 구조체, 열거형에서 컬렉션, 리스트, 시퀀스 등 타입의 요소에 접근하는 단축 문법 별도의 설정자 또는 접근자 등의 메서드를 구현하지 않아도 인덱스를 통해 값을 설정하거나 가져올 수 있음 여러개의 서브스크립트를 구현할 수 있고 외부에서 사용할 때는 전달한 값의 타입을 유추하여 적절한 서브스크립트를 선택하여 실행 (→ 서브스크립트 중복 정의) 타입에 따라 여러 매개변수를 가질 수 있음, 입출력 매개변수는 가질 수 없음 문법 인스턴스 이름 뒤에 대괄호로 감싼 값을 써서 인스턴스 내부의 특정 값에 접근 subscript 키워드를 사용하여 정의 subscript(index: Int) -> Int { get..

Programming/Swift 2021.10.15

[Swift] 문법 다시보기 - 맵, 필터, 리듀스 (map, filter, reduce)

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 맵, 필터, 리듀스 맵 맵을 사용하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환한다 맵은 기존 데이터를 변형(transform)하는 데 많이 사용한다 필터 컨테이너 내부의 값을 걸러서 추출, 새로운 컨테이너에 값을 담아 반환한다, 기존 콘텐츠를 변형 X 리듀스 결합(combine)이라고 불려야 마땅한 기능, 컨테이너 내부의 콘텐츠를 하나로 합하는 기능 실행 두가지 형태로 구현, 첫 번째 리듀스는 클로저가 각 요소를 전달받아 연산한 후 다음 클로저 실행을 위해 반환하며 컨테이너를 순환하는 형태 func reduce(_ initialResult: Result, _ nextPartia..

Programming/Swift 2021.10.15

[iOS/Swift] 흔들어서 QR체크인 실행하기 파헤쳐보기 (motionShake)

흔들어서 QR체크인 실행하기 파헤쳐보기 코로나 때문에 식당, 공용 시설을 방문하게 되면 QR체크인을 해야하는데 카카오톡에서는 앱을 켜고 흔들면 QR체크인 화면이 뜨는 기능을 제공하고 있다. 이런 기능은 어떻게 만들 수 있을까? 예제 일단 코드로 먼저 시작해서 흔들기하면 네이버를 띄우는 예제를 해본다. 시뮬레이터에서 control+command+z 하면 Shake 모션을 할 수 있다. import UIKit import SafariServices class ViewController: UIViewController { @IBOutlet private weak var mainLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any..

Programming/iOS 2021.10.15

[Swift] 문법 다시보기 - 클로저(closure)

클로저 함수형 프로그래밍 패러다임을 접할 때 꼭 알아야할 개념 클로저, 제네릭, 프로토콜, 모나드 등이 결합하여 강력한 스위프트 C 언어나 Objective-C의 블록 또는 람다와 유사 클로저는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말함 → 함수는 클로저의 한 형태이다 { (**매개변수들**) -> **반환 타입** in **실행 코드** } // 클로저 표현 간소화 let reversed1: [String] = names.sorted { (first: String, second: String) -> Bool in return first > second } let reversed2: [String] = names.sorted { (first, second) -> Bool in retur..

Programming/Swift 2021.10.14

[Swift] 문법 다시보기 - 인스턴스 생명 및 소멸, 접근제어

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 인스턴스 생성 및 소멸 실패 가능한 이니셜라이저(Failable initializer) 클래스, 구조체, 열거형 등에 모두 정의 가능 실패했을 때 nil 반환하여 타입이 옵셔널로 지정, init? 키워드 사용 접근제어 모듈과 소스파일 스위프트의 접근제어는 모듈과 소스파일을 기반으로 설계 모듈 : 배포할 코드의 묶음 단위, 통상 하나의 프레임워크나 라이브러리 또는 애플리케이션이 모듈 단위가 될 수 있음, import 사용 소스파일 : 하나의 스위프트 소스 코드 파일 기본 접근 제어 키워드 : internal

Programming/Swift 2021.10.13

[Swift] 문법 다시보기 - 메서드

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 메서드 인스턴스를 함수처럼 호출하도록 하는 메서드 특정 타입의 인스턴스를 문법적으로 함수를 사용하는 것처럼 보이게 하는 메서드 callAsFunction 이라는 이름의 메서드 구현 매개변수와 반환타입만 다르면 원하는 만큼 생성 가능, mutating, throws, rethrows도 함께 사용 가능 타입 메서드 타입 자체에 호출이 가능한 메서드를 타입 메서드라고 부른다, static 또는 class 사용 가능 static 키워드 사용, 해당 키워드 사용 시 상속 불가 class로 정의하면 상속 후 메서드 재정의가 가능

Programming/Swift 2021.10.13

[Swift] 문법 다시보기 - 프로퍼티

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 프로퍼티 타입 프로퍼티 각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티, 타입 자체에 영향을 미친다 저장 타입 프로퍼티 → 변수 또는 상수 선언 연산 타입 프로퍼티 → 변수로만 선언 저장 타입 프로퍼티 → 반드시 초깃값 설정, 지연 연산, 지연 저장 프로퍼티와는 조금 다르게 다중 스레드 환경이라고 하더라도 단 한 번만 초기화된다는 보장을 받는다. 코드 class AClass { // 저장 타입 프로퍼티 static var typeProperty: Int = 0 // 저장 인스턴스 프로퍼티 var instanceProperty: Int = 0 { didSet { // Self.typeProperty는 // AClass.typeProper..

Programming/Swift 2021.10.12
728x90
반응형