[ 목표 ] 이런 식으로 나만의 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의 기본 기능이 너무 잘되어있고 간편해서 이런 급한 상황에서도 빨리 적용할 수 있다는 것을 강조하고 싶어서이다,,,) (사실 처음부터 이..
좋은 부분이 너무 많아서 책을 많이 옮겨왔는데 혹시 문제가 된다면 말씀해주세요-! 제가 조금 재구성한 부분이 있기때문에 꼭 책을 읽어보시는 것을 추천드립니다. [ 요약 ] 상속 주의사항 1. 상속은 코드 재사용이 아니라 타입 계층을 구현하기 위해 쓴다. (서브클래싱이 아니라 서브타이핑을 한다.) 2. is-a 관계가 언어적으로 맞다고 상속관계를 막 쓰면 안된다. 행동호환성을 고려해야한다. [1] 상속의 목적 상속을 사용하는 일차적인 목표는 코드 재사용이 아니라 타입 계층을 구현하는 것이여야한다. 상속은 코드를 쉽게 재사용할 수 있는 방법을 제공하지만 부모 클래스와 자식 클래스를 강하게 결합시키기 때문에 설계의 변경과 진화를 방해한다. 반면 타입 계층을 목표로 상속을 사용하면 다형적으로 동작하는 객체들의 ..
- Total
- Today
- Yesterday
- 플러터 얼럿
- Django Firebase Cloud Messaging
- Django Heroku Scheduler
- Sketch 누끼
- Dart Factory
- Python Type Hint
- Flutter getter setter
- DRF APIException
- cocoapod
- SerializerMethodField
- Watch App for iOS App vs Watch App
- 장고 Custom Management Command
- 구글 Geocoding API
- github actions
- flutter deep link
- flutter build mode
- 장고 URL querystring
- 플러터 싱글톤
- Flutter Clipboard
- ipad multitasking
- Flutter Spacer
- Flutter Text Gradient
- Flutter 로딩
- flutter 앱 출시
- flutter dynamic link
- METAL
- drf custom error
- PencilKit
- Django FCM
- 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 |