ZStack 은 자신의 children를 z축으로 overlay하는 View이고 overlay 는 현재 뷰에 secondary view를 overlay하는 modifier 입니다. (overlay를 중첩으로 번역할 수 있을 것 같습니다) 애플문서에 있는 overlay 예제의 결과를 zstack으로도 똑같이 나타낼 수 있습니다. 이렇게 보면 똑같아보이지만 사실 두 개는 차이점이 있습니다. ZStack의 자식뷰들은 서로에 대해 independent 합니다. 그리고 ZStack에 frame을 따로 주지 않은 이상 가장 큰 자식뷰를 기준으로 ZStack의 fit이 결정됩니다. 반면 overlay의 경우 overlay되는 view는 parent view에 종속됩니다. 항상 overlaid view는 parent ..
장고의 Making queries 문서를 정리합니다 ✏️ [Django] 쿼리문 (create, update, delete) 에서 이어지는 글 입니다! [ Retrieve 원리 ] 장고는 Manager라는 객체를 모든 Model class에 디폴트로 추가합니다. objects 라는 이름으로 추가되는데, 원한다면 objects 대신 다른 이름을 쓰도록 바꿀 수 있습니다. (하지만 바꾸는 사례를 본 적이 없습니다,,,,) 모델 클래스에 있는 이 Manager를 통해 QuerySet을 얻어오는 방식으로 database에서 objects를 retrieve 합니다. [ QuerySet ] QuerySet 은 database에 있는 objects의 모음(collection)을 말합니다. 예를들어 어떻게 생겼는 지(..
장고의 Making queries 문서를 정리합니다 ✏️ 우선 여기서 말하는 쿼리문은 SQL 쿼리문이 아닙니다. Model 을 만들면 장고는 자동으로 database-abstraction API를 제공합니다. 이 API를 통해서 create, retrieve, update, delete 쿼리문을 작성할 것입니다. retrieve는 다음 글에 작성하고 이 글에서는 create, retrieve, update 만 살펴보겠습니다. 우선 장고의 DB 컨셉을 간단히 다시 보면 (참고: [Django] 튜토리얼 part 2 (1) - 모델, 데이터베이스) model class는 database table, model class의 instance는 database table의 각각의 record를 의미합니다. 그럼 ..
viewDidLoad 에 관한 실험 (⚠️ 실험만 있고 분석은 없습니다 ⚠️) XIB로 만든 뷰컨이랑 스토리보드에서 만든 뷰컨이랑 실험해봅니다. 참고로 저렇게 viewDidLoad 안에서 프린트안하고 isViewDidLoaded 를 찍어보면서 테스트해도 됩니다! Case 1. class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let vc = XIBViewController() let vc2 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "StoryboardViewController") as! Sto..
[ 목표 ] App Store에 올리는 것이 아니라 자체 사이트에 링크를 공유하는 방식으로 맥 앱을 배포하고 싶습니다. 에버노트 처럼 말이죠! 에버노트의 다운로드 링크는 이렇게 되어있습니다. https://cdn1.evernote.com/boron/mac/builds/Evernote-10.9.10-mac-ddl-ga-2439.dmg 또 다른 예로 애플의 SF Symbol 앱이 있습니다. 앱스토어가 아니라 개발자 사이트에서 download하는 방식으로 앱을 배포했습니다. 다운로드 링크는 이렇게 되어있습니다. https://devimages-cdn.apple.com/design/resources/download/SF-Symbols-2.1.dmg 정확히 뭔지 모르겠지만 dmg 라는 파일을 만들어서 배포해야하나..
[ 목표 ] 이런 식으로 나만의 Modifier를 만들기! Text("안녕하세요") .customStyle() [1] Custom ViewModifier 만들기 ViewModifier 프로토콜을 채택하는 CustomViewModifer를 만들어줍니다. content는 스타일을 적용시킬 대상을 말합니다. ViewModifier를 만들면 이런 식으로 modifier 를 이용해서 사용할 수 있습니다. [2] extension View 그 후, 아래처럼 View를 extension하면 나만의 Modifier를 만들 수 있습니다. 참고로 문서에서는 1번처럼 modifier를 직접 쓸 수도 있지만 2번처럼 extension 해주는게 더 common하다! 라고 말하고 있습니다. [ 추가 ] 이런식으로 color을 받..
[1] Device Info Flutter에서 공식 제공하는 device_info 패키지를 사용하면 됩니다. 패키지 설치 후, 예제코드 를 참고해서 구현해주겠습니다. iOS 기기 정보가 예상한 값이 아니죠...? www.theiphonewiki.com/wiki/Models 여기보면 Generation과 Identifier가 각각 있는데요, 위 패키지에서는 Generation을 알려주는 필드는 없고 Identifier를 알려주는 필드만 있습니다 🥲🥲 위의 실행결과에서 iPhone12,1 을 보고 iPhone11이구나! 하고 알아야하는 것입니다..! 하지만 이렇게 매칭하기 힘드니까 pub.dev/packages/ios_utsname_ext 패키지를 쓸 수 있습니다. 이 패키지는 iOSProductionNam..
[ 목표 ] 보통 앱의 설정 탭에 문의하기(또는 피드백 보내기) 기능을 넣어서 사용자가 회사 또는 개발자에게 의견을 보낼 수 있도록 합니다. 아이폰 기준, 기본 메일 앱이 깔려있고 메일 앱에 이메일을 등록해놨다면 email을 보낼 수 있는 폼이 나오고 아니라면 얼럿을 띄워줍니다. (MFMailComposeViewController 로 이 기능을 구현합니다.) '포토위젯' 앱의 경우 '프립' 앱의 경우 검색해보니, 안드로이드는 기본 메일 앱이 gmail이라서 gmail 앱 으로 랜딩시킨다고 하네요. 플러터 문서를 검색해보니 email 관련해서 제공해주는 Widget이나 유틸 같은 것은 따로 없는 것 같고 써드파티 패키지를 검색해보니 나옵니다..! (flutter email send라고 검색하면 됨) 저는 ..
[ 인트로 ] 오늘 오후 3시쯤 애플 쪽으로 개발자님 메일주소를 공유받았다면서 비밀번호 초기화를 하고 싶다는 메일을 받았다. (비밀번호를 잊으셔서 다시 로그인을 못하는 상황이셨다) 개인 앱이지만 앱에 문의할 수 있는 이메일도 안남겨놓고 계정이 있는 앱이라면 필수인 아이디 찾기, 비밀번호 재설정, 탈퇴하기도 안붙인 내 자신이 너무 부끄럽고 죄송스러웠다,,, 양파가족을 너무너무 잘쓰고 있고 얼른 다시 재개하고 싶다는 메일을 보고 저녁약속 전 무조건 대응해드리고 간다 🔥🔥 라고 생각하고 가장 빠른 방법으로 대응해드렸고 기록을 남긴다. (이렇게 주절주절 쓰는 이유는 Django의 기본 기능이 너무 잘되어있고 간편해서 이런 급한 상황에서도 빨리 적용할 수 있다는 것을 강조하고 싶어서이다,,,) (사실 처음부터 이..
- Total
- Today
- Yesterday
- PencilKit
- github actions
- 장고 URL querystring
- DRF APIException
- SerializerMethodField
- Django Firebase Cloud Messaging
- 플러터 싱글톤
- Flutter 로딩
- METAL
- drf custom error
- Flutter Text Gradient
- Flutter Clipboard
- Flutter Spacer
- flutter deep link
- Django FCM
- Sketch 누끼
- flutter 앱 출시
- ribs
- Dart Factory
- 플러터 얼럿
- 구글 Geocoding API
- cocoapod
- Python Type Hint
- flutter dynamic link
- Flutter getter setter
- Django Heroku Scheduler
- 장고 Custom Management Command
- Watch App for iOS App vs Watch App
- flutter build mode
- ipad multitasking
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |