[ 요약 ] - 유료 앱을 등록하려면 앱스토어 커넥트 > 계약에서 주소, 은행계좌를 입력하고 세금 양식을 제출해야한다. - 세금 양식에는 사업자 등록번호, 통신판매업 신고번호 가 필요하다. (유료 앱이나 인앱결제가 있는 앱을 서비스 하려면 반드시 사업자 등록 & 통신판매업 신고를 해야한다.) - 사업자 등록은 1일 정도, 통신판매업 신고는 3,4 일 정도 소요된다. (통신 판매업 신고에 사업자 등록 번호를 적어야하기 때문에 사업자 등록 -> 통신판매업 신고 순서로 해야한다. 나는 유료앱 심사가 끝나고 이 절차를 진행해서 출시까지 일주일 정도(주말 포함) 딜레이가 된 셈이다ㅠㅠ 유료앱이나 인앱결제를 생각하신다면 개발과 함께 이 절차도 미리 진행해두시길 추천드린다.) [ 나의 진행 절차 ] 유료앱으로 심사요..
Managing Model Data in Your App 문서를 보면 App의 모델 데이터와 뷰 간의 connection을 만들어 주는 세가지 property wrapper type 을 소개해줍니다. - ObservedObject iOS 13+ - EnvironmentObject iOS 13+ - StateObject iOS 14+ ObservedObject 랑 EnvironmentObject는 작년에 살펴봐서 안살펴본 StateObject 만 정리해보겠습니다. StateObject 의 정의 A property wrapper type that instantiates an observable object. StateObject 왜 필요한가? (Managing Model Data in Your App 문서 ..
[ Dart 문서 ] - Abstract classes - Implicit interfaces - Extending a class 아래는 이 문서들을 참고해서 제가 재구성한 내용으로 틀린 내용이 있을 수 있습니다! [1] Extending a class extends를 이용해 subclass를 만들 수 있고 super로 superclass를 참조할 수 있습니다. (영어가 더 명확.. Use extends to create a subclass, and super to refer to the superclass) 다트에서는 @override annotation을 생략할 수 있습니다. 아래 예제는 오버라이딩을 명시적으로 나타내주기 위해 의도적으로 @override annotation을 붙인 예제입니다. [2]..
UIModalPresentationStyle 에 따른 뷰컨트롤러 라이프 사이클(또는 생명주기 또는 상태 변화) / 접근성에 대한 실험 글입니다. 초록색 뷰컨트롤러에서 오렌지색 뷰컨트롤러를 present할 때 초록색 뷰컨트롤러의 상태변화 및 접근성을 살펴봅니다. (오렌지색은 opacity를 50%로 줬습니다.) Part 1. 뷰컨트롤러 상태 변화 [1] fullScreen - A presentation style in which the presented view covers the screen. - The views belonging to the presenting view controller are removed after the presentation completes. == 초록색 뷰컨트롤러 상태 변..
마틴 파울러 - 리팩터링 (2판) 의 12장 - 상속 다루기 중 좋았던 것들 기록 ✏️✏️ 12.6 타입 코드를 서브클래스로 바꾸기 (Replace Type Code with Subclasses) 보통 열거형, 문자열, 숫자 등의 타입 코드를 쓴다. 타입코드만으로도 특별히 불편한 상황은 별로 없지만 그 이상의 무언가가 필요할 때가 있다. 여기서 '그 이상' 이라 하면 바로 서브클래스를 가리킨다. 서브클래스는 두 가지 면에서 특히 매력적이다. 1. 조건에 따라 다르게 동작하도록 해주는 다형성을 제공 (타입 코드에 따라 동작이 달라져야하는 함수가 여러 개일 때 특히 유용) 2. 특정 타입에서만 의미가 있는 값을 사용하는 필드나 메서드가 있을 때 (필요한 서브클래스만 필요한 필드를 가지도록 하여 더 명확) 이..
[1] ModelAdmin 장고의 Admin 문서를 보면 ModelAdmin 에 대한 설명이 나옵니다. ModelAdmin은 admin interface에서 모델을 표현하는 클래스라고 합니다. admin.py에 이런 식으로 추가해서 쓰면 됩니다. 위 예제처럼 Admin 클래스에 custom values를 define 하지 않는 경우, 보통 이렇게만 씁니다! [2] ModelAdmin > search_fields Admin 클래스에 search_fields를 define하면 admin list page에서 search box를 사용할 수 있습니다. 예를들어 이런 Family 모델이 있을 때, class Family(models.Model): join_date = models.DateTimeField() c..
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 옵션) 이 카테고리는 오디오 재생이 앱의 중앙 기능임을..
- Total
- Today
- Yesterday
- 구글 Geocoding API
- drf custom error
- Django FCM
- 장고 Custom Management Command
- Django Heroku Scheduler
- flutter dynamic link
- Flutter 로딩
- Flutter getter setter
- Dart Factory
- Flutter Spacer
- flutter deep link
- Python Type Hint
- 장고 URL querystring
- ribs
- DRF APIException
- Watch App for iOS App vs Watch App
- 플러터 얼럿
- flutter build mode
- ipad multitasking
- METAL
- Flutter Text Gradient
- PencilKit
- github actions
- flutter 앱 출시
- Flutter Clipboard
- Django Firebase Cloud Messaging
- 플러터 싱글톤
- Sketch 누끼
- cocoapod
- SerializerMethodField
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |