애플에서 예제로 보여준 Fruta 앱 처럼 macOS, iOS, and iPadOS에서 하나의 코드베이스로 다 동작하는 앱을 만들 수 있게 되었습니다. 👏 (iOS 14, XCode 12에서부터, SwiftUI를 이용해서) [1] Multi-platform 프로젝트 만들기 Xcode 12 베타버전을 열어주세요 새 프로젝트 만들기를 누르면 Multiplatform이라는 탭이 생겨있습니다. 거기서 App을 눌러주세요 프로젝트 이름을 입력해주고 프로젝트를 만들면 Shared, iOS, macOS 라는 그룹이 생겨져있습니다. 저는 test도 체크해서 저렇게 Tests iOS, Tests macOS라는 그룹도 생겼어요 그리고 iOS 또는 macOS로 돌려볼 수 있게 되어있어요 (mac OS는 빅서로 올려야지 돌리..
ZStack은 Stack안에 있는 자식 뷰들을 z축으로 중첩시켜주는 view 입니다. 실제 쓰이는 경우들을 알게 되어서 정리합니다-! [1] 카메라와 컨트롤 이런 카메라 앱을 만든다고 할때, 카메라뷰랑 컨트롤 버튼들(파란네모친 영역)를 zstack을 이용하여 동시에 띄울 수 있습니다. 더불어 컨트롤뷰의 HStack(갤러리 열기, 촬영, 필터 버튼들이 있음)를 bottom에서부터 height 200으로 위치잡아주고 싶다면 Spacer를 활용할수있습니다. (신기) [2] SwiftUI의 Fullscreen Modal을 띄울때 SwiftUI에서는 현재 fullscreen 모달을 띄울 수 있는 설정이 없습니다..😭 그래서 zstack을 활용해서 fullscreen presentation을 한 것 처럼 보이게 하..
viewController가 deinit 될때, 그 안의 Pulisher가 auto-cancel 되는지 실험해봅시다 --! 5초 후에 이벤트를 발행하는 Publisher와 3초 후에 deinit되는 viewController가 있습니다 1) stream을 안담아줄 때 viewController가 deinit되어도 스트림이 살아있습니다 2) stream을 Cancellable에 담아줄 때 viewController가 deinit되어도 여전히 스트림이 살아있습니다 3) stream을 Cancellable에 담아주고 deinit 때 cancel 시켜줄 때 이렇게 deinit 될때 cancel시키는 코드를 넣어줘야지 스트림이 같이 끝납니다 4) stream을 AnyCancellable에 담아줄 때 AnyCanc..
이 포스팅을 이해하려면 RxSwift vs Combine - 스펙 / 성능 / 개념 비교를 읽고 오세요 ☺️ Rxcocoa(for UIKit) + RxSwift 로 짰던 코드를 -> UIKit + Combine -> SwiftUI + Combine 이렇게 두 가지 버전으로 바꿔보았습니다 :) 우선 Model/ViewModel 쪽 코드는 큰 차이가 없었습니다 APIManager 안에 있는 fetch 함수를 예로 봅시다 (isbn number를 받아서 책정보를 주는 함수입니다) Observalbe을 AnyPulisher로 바꾸면 끝입니다 그 다음 APIMananger의 fetch 함수를 부르는 ViewModel 쪽 코드를 봅시다 여기도 subscribe를 sink로 바꿔주면 끝입니다 하지만 UIBinding..
WWDC 2019에서 Combine이 발표되었다. Combine은 Rx와 똑같다! 라고 말하던데 정말 똑같을까..? 🤔 Rx와 Combine을 비교해보자 1. 스펙 비교 Rx와 Combine은 모두 Reactive 프로그래밍을 위한 framework이다 하지만 Rx는 iOS 8이상부터, Combine은 iOS 13이상부터 사용할 수 있다 (그래서 Combine을 실제 프로덕트에서 쓰기까지는 최소 1년에서 최대 3년까지 걸릴 것이라고 말한다) Rx는 Third party framework인 반면 Combine은 애플에서 만든 buit-in framework이다...! 그리고 Rx는 Rxcocoa와 Combine은 SwiftUI와 UIBinding을 하도록 설계되어졌다 (하지만 Combine은 SwitUI와..
- Total
- Today
- Yesterday
- 장고 URL querystring
- Django Heroku Scheduler
- drf custom error
- Django FCM
- flutter build mode
- Sketch 누끼
- Flutter Spacer
- 플러터 얼럿
- DRF APIException
- 플러터 싱글톤
- ribs
- Django Firebase Cloud Messaging
- flutter dynamic link
- METAL
- flutter 앱 출시
- Flutter Text Gradient
- 구글 Geocoding API
- Python Type Hint
- cocoapod
- Flutter 로딩
- github actions
- 장고 Custom Management Command
- Watch App for iOS App vs Watch App
- ipad multitasking
- Dart Factory
- flutter deep link
- PencilKit
- Flutter getter setter
- SerializerMethodField
- Flutter Clipboard
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |