WWDC 2020 - Accessibility design for Mac Catalyst 를 본 기록 ✏️ Mac Catalyst 앱을 만들 때, ios에서 accessible하게 만들었다면, 그 앱을 mac으로 가져왔을 때도 accessible 해야합니다. iOS에서의 손가락이 맥에서는 키보드이므로 (?) 우리의 목표는 키보드로 다양한 기능을 제공해서 앱을 accessible하게 만드는 것입니다. [1] Keyboard focus 첫번째로 고려해야하는 것은 keyboard focus 입니다. iOS에서 손가락으로 포커스를 이동했다면 맥에서는 키보드의 Tab 키로 포커스를 이동합니다. 우선 설정 > 키보드 > Shorcuts로 가서 Use keyboard~~ 를 체크해줍니다. 그러면 keboard로 다른..
WWDC 2017 - Building Apps with Dynamic Type 를 본 기록 ✏️ (여기서 Text만 기록했는데 tableview랑 image도 뒤에 설명해주신답니다,,) [1] Dynamic Type With Dynamic Type, people choose their preferred text size and iOS switches fonts automatically as needed. Dynamic Type을 지원하는 전화 앱인데요, 저시력자가 볼 때는 이렇게 보이기 때문에 Dynamic Type을 지원하는게 얼마나 중요한 지 보여주십니다. 텍스트 사이즈는 설정 > 디스플레이 및 밝기 > 텍스트 크기에서 바꿀 수 있고 더 큰 사이즈를 원한다면, 설정 > 손쉬운 사용 > 디스플레이 및 ..
마틴 파울러 - 리팩터링 (2판) 의 7장 내용 중 기억하고 싶은 것 기록 ✏️✏️ 6장에서는 기본적인 리팩터링 기법들을 설명해주십니다. (함수 추출하기 / 함수 인라인 하기 / 이름 바꾸기 / 매개변수 객체 만들기 등등) 7장에서는 캡슐화를 주제로한 리팩터링 기법들을 설명해주시는데 인상깊은 몇가지만 기록합니다. 7.1 레코드 캡슐화 하기 (Encapsulate Record) (위의 예제랑 다른 예제에 대한 설명입니다,,) .... 클라이언트가 데이터 구조를 요청할 때 실제 데이터를 제공해도 된다. 하지만 클라이언트가 데이터를 직접 수정하지 못하게 막을 방법이 없어서 '모든 쓰기를 함수 안에서 처리한다' 는 캡슐화의 핵심 원칙이 깨지는게 문제이다. 그래서 내부데이터를 복제해서 제공한다. get rawDa..
로컬에서 chromedriver를 쓸 때는 크롬드라이버를 다운받은 후, 폴더에 넣고 local path를 이용해서 chromedriver를 실행시켜주었습니다. from selenium import webdriver import os BASE_DIR = Path(__file__).resolve().parent chrome_driver_path = os.path.join(BASE_DIR, 'chromedriver') chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-gpu") driver = webdriver.Chrome(chrome_dr..
[1] 이슈 며칠 전 헤로쿠로부터 메일을 받았다. 나의 DB는 8,027 row를 가지고 있는데 내가 사용 중인 PostgreSQL DB Hobby Dev Plan (무료)는 최대 10,000 row만 insert 가능하다는 것이였다. 10,000 row를 넘어가면 더이상 insert가 되지 않고 plan을 준수하게 될 때 insert 권한이 자동 복구된다고 한다,,, database를 Basic ($9/month) or higher plan으로 마이그레이션 하라고 했다,,, 참고로Heroku > My App > Resource > Add-ons Heroku Postgres 선택하면 현재 row 개수, 최대 row 개수 등 DB 상태 및 설정을 볼 수 있다. 사용자가 늘고 있는 추세라서 migration..
- Total
- Today
- Yesterday
- Django Firebase Cloud Messaging
- METAL
- drf custom error
- flutter dynamic link
- Sketch 누끼
- 플러터 얼럿
- Flutter 로딩
- ribs
- SerializerMethodField
- 장고 URL querystring
- Flutter Spacer
- DRF APIException
- Flutter Text Gradient
- Flutter Clipboard
- flutter deep link
- 장고 Custom Management Command
- 플러터 싱글톤
- Flutter getter setter
- 구글 Geocoding API
- Django Heroku Scheduler
- github actions
- Dart Factory
- PencilKit
- ipad multitasking
- Django FCM
- flutter 앱 출시
- flutter build mode
- Python Type Hint
- Watch App for iOS App vs Watch App
- cocoapod
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |