enum Type { case A case B } struct AView: View { var body: some View { EmptyView() } } struct BView: View { var body: some View { EmptyView() } } # single return type 이렇게 각 타입에 맞게 다른 뷰를 리턴해주면 컴파일 에러가 난다. Swift는 function에 대해 single return type을 요구하기 때문이다. # AnyView , Group 그래서 AnyView로 감싸서 쓴다. 참고로 AnyView는 return을 생략하고 쓸 수는 없다. 또는 Group을 이용하는 방법도 있다. # @ViewBuilder WWDC 2021 - Demystify SwiftUI 에..
Customizing Your App’s Navigation Bar 를 문서를 보면 BackButton Image를 커스터마이징할 때, backIndicatorImage 뿐만아니라 backIndicatorTransitionMaskImage 도 같이 설정해주는 것을 볼 수 있다. backIndicatorTransitionMaskImage 는 push and pop transition 중에 content의 mask로 쓰이는 이미지라고 한다. What is backIndicatorTransitionMaskImage 글에 자세하게 나와있다! backIndicator 이미지 아래로 흐르는 content에 대한 마스킹(?)으로 쓰이는 이 부분을 말하는 것이며 스냅샷으로 뜨면 이 부분이라고 한다
# 이슈 collectionview 안에 cell이 두개 이상이면 왼쪽 정렬이 된다. 하지만 cell이 하나 일 때만 센터 정렬이 된다. # 해결 collectionView의 estimate size를 automatic -> none 으로 바꾸면 single cell 일 때도 왼쪽 정렬이 잘된다. # Reference https://stackoverflow.com/questions/60000398/align-single-uicollectionviewcell-to-the-left-of-the-collectionview align single UICollectionViewCell to the left of the collectionView I've got a collectionView that is insi..
[ 배경 지식 ] AVAudioSession AVAudioSession 은 앱과 시스템의 중개자로서 오디오를 사용하는 방법을 시스템에게 전달하는 객체입니다. Default Audio Session은 기본 동작은 제공하지만 media app에서 필요한 오디오 동작들까지는 제공하지 않습니다. 앱의 audio session category 를 설정해줌으로서 기본 동작을 바꿀 수 있습니다. category 종류로는 7가지가 있습니다. (참고: Audio Session Categories and Modes) 재생 앱이 가장 많이 사용하는 category는 playback 입니다. (녹음된 음악 또는 기타 사운드를 재생하는 카테고리 / 기본 nonmixable 옵션) 이 카테고리는 오디오 재생이 앱의 중앙 기능임을..
XCode > Build Setting에서는 Swift major 버전만 확인가능합니다. (swift 4.2만 왜 나오는 지 모르겠네요) Swift5로 되어있을 때 구체적 버전을 알고 싶으니 통상적인 명령어(?)를 실행시켜봅니다. 하지만 이 명령어는 응용프로그램에 있는 xcode 버전만 나오는 것 같아요 (추측) swift --version swift 5.5를 쓰는 xcode를 끌어다놓고(바탕화면에 위치함) 아래 명령어를 입력해주면 여전히 swift 5.4로 나오기 때문...!!! 그러면 xcode별 구체적인 버전을 확인하고 싶다면 어떻게 해야할까요?! 터미널에 xcode를 끌어다놓고 (자동으로 path가 입력됨) path 뒤에 이것을 입력해주면 됩니다! /Contents/Developer/Toolcha..
[ 이슈 ] 장고의 로컬에서 기본적으로 SQLite3 를 씁니다. 헤로쿠(기본이 PostgreSQL)에 배포한 후, 리얼에서도 로컬의 sqlite 파일을 그대로 쓰고 싶었는데 (로컬 데이터를 그대로 쓸 것이고 더이상 추가/수정할 것이 없는 간단 프로젝트여서!) 헤로쿠는 SQLite3 같이 file-based database 와 fit이 안맞다고 하고 쓸 수 있는 방법도 없는 것 같습니다. (참고) 로컬에 있는 데이터를 리얼로 옮기는 게 목적이니까 How to migrate Django from SQLite to PostgreSQL 를 보고 따라해줍니다. [1] 로컬 > dump data 로컬에서 이 명령어를 돌려서 dump.json을 만들어줍니다. 로컬에 존재하고 있는 데이터를 dump.json 파일에 ..
성경 API, 성경 데이터 이것저것 찾아보다가 SQL 스크립트가 공유되고 있는 것을 발견! - 개역한글 SQL 공유해주신 블로그 (저작권 이슈 없음!!) - 개역개정 SQL 공유해주신 사이트 (저작권 이슈 확인 안됨) 확장자는 sql이고 열어보면 TABLE 만들고 레코드 insert 하는 SQL문들이 잔뜩 있다. ✔️ 이 스크립트로 나의 장고 DB에 데이터를 추가하고 ✔️ 이 형식에 맞춰서 장고 모델을 만들고 ORM 방식으로 get 요청을 처리하는 것을 해볼 것이다. [1] SQL 스크립트를 돌려서 DB에 데이터 추가하기 1️⃣ executescript (파이썬 공식 문서) / How to execute an external SQL file using sqlite3 in Python (블로그) 2️⃣ P..
마틴 파울러 - 리팩터링 (2판) 의 11장 내용 중 좋았던 것들 기록 ✏️✏️ 11.4 객체 통째로 넘기기 객체를 통째로 넘기면 - 변화에 대응하기 쉽다. - 매개변수 목록이 짧아져서 일반적으로 함수 사용법을 이해하기 쉬워진다. 하지만 함수가 객체 자체에 의존하기를 원치 않을 때는 이 리팩토링을 수행하지 않는다. 특히 객체와 함수가 서로 다른 모듈에 속한 상황이면 특히 더 그렇다. 어떤 객체로부터 값 몇 개를 얻은 후 그 값들로만 무언가를 하는 로직이 있다면 그 로직을 객체 안으로 집어넣어야함을 알려주는 악취로 봐야한다. ==> '객체 통째로 넘기기 vs 객체에서 값 몇개를 꺼내 파라미터로 넘기기'는 개발하며 자주 고민되는 이슈이다. 나도 객체와 함수가 서로 다른 모듈에 속해있는 경우 통째로 넘기기를 ..
Accessibility 관련 헷갈리는 것 정리-!! 특히 accessibilityElementsHidden 이 용어 때문에 헷갈리는 것 같다,,, (서브뷰들을 모두 접근성 element로 안해줘야지! 할 때 child, all 이란 용어가 떠오르면서 이 단어가 생각이 잘안나는 듯 ㅠㅠ) [1] isAccessibilityElement somView.isAccessibilityElement = false someView의 accessibility가 disable 된다. [2] accessibilityElementsHidden somView.accessibilityElementsHidden = true someView 뿐만 아니라 someView의 모든 subviews들의 accessibility도 함께 ..
Reality Composer + Xcode 를 써보며 알게 된 것 정리-!! 우선 프로젝트를 만들어줍니다. AR App 선택 > RealityKit 선택해서 만들어줍니다. 그럼 이런 코드가 기본적으로 생성이 됩니다. [1] 코드에서의 size, position 단위는 미터! Experience.rcproject를 선택해서 Open in Reality Composer를 눌러줍니다. 그리고 Reality Composer 에서 골드 material 를 선택해주고 Gold Box라고 네이밍을 해줍니다. 여기서 빨간 네모에 주목해주세요!!!! Reality Composer에서 postion, size 등이 다 센티미터 단위입니다! 이제 코드로 돌아옵니다. Scene name이랑 Entity name을 잘 입력해..
- Total
- Today
- Yesterday
- 구글 Geocoding API
- flutter deep link
- Flutter Spacer
- ipad multitasking
- flutter build mode
- Flutter getter setter
- 장고 URL querystring
- Django Heroku Scheduler
- flutter dynamic link
- cocoapod
- 플러터 얼럿
- flutter 앱 출시
- Django FCM
- Flutter 로딩
- Flutter Text Gradient
- 장고 Custom Management Command
- Watch App for iOS App vs Watch App
- METAL
- PencilKit
- github actions
- drf custom error
- Django Firebase Cloud Messaging
- 플러터 싱글톤
- Python Type Hint
- DRF APIException
- SerializerMethodField
- Dart Factory
- Sketch 누끼
- Flutter Clipboard
- ribs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |