안녕하세요 :) Zedd입니다. 오늘은....제가 preferredFont와 UIFontMetrics 글을 쓰다가 궁금했던 점을@!! 공부해보겠습니다. # 궁금증 그냥 TextStyle을 사용하면 Caption1은 Caption2보다 크고, Large Title > Title 1 > Title 2 > Title 3 순이다. CustomFont와 TextStyle을 사용하여 Dynamic Type을 지원하고 싶어! -> UIFontMetrics사용. [내가 기대한 것] size Category가 작든 크든 계속 Caption1이 Caption2보다 클 거고, Large Title > Title1 > Title2 > Title3순이겠지? 즉, Text Style간 위계를 유지하면서 작고 커지겠지? [결과] ..
안녕하세요 :) Zedd입니다. 2021 제1차 정보접근성 오픈 아카데미에서 인상깊게 본 것 중 하나가 UIFontMetrics인데, 얼른 공부해보고싶더라구요! # Dynamic Type 사용자가 원하는 Text(Content) Size Category를 선택할 수 있도록 하는 기능. 명시적으로 Text size를 입력하는게 아니라, category를 지정하는 것. # 앱이 Dynamic Type을 지원하는 법 text에 font크기를 지정할 때, let label = UILabel() label.font = UIFont.systemFont(ofSize: 16, weight: .regular) 뭐 대충 이렇게 size와 weight를 지정해줄텐데, 이렇게 하면 Dynamic Type을 지원 할 수 없다...
안녕하세요 :) Zedd입니다. 오늘은 HIG > Accessibility > Color and Contrast 공부! # Color and Contrast 1. color에만 의존하여 object를 구분하거나 중요한 정보를 전달하지 말 것. 앱에서 color를 사용하여 정보를 전달하는 경우, 색맹 사용자도 이해할 수 있도록 text labels 또는 glyph를 제공해야 한다. Make your app visually accessible에서 나온 예제인데요. 왼쪽처럼 cell의 text label에 color를 주었지만, 색맹 사용자들에게는 대부분 다 비슷하게 보일 가능성이 높겠죠? 그래서 오른쪽처럼 glyph를 함께 제공하는 것이 좋습니다. 2. Text에 되도록 system color를 쓸 것 UI..
안녕하세요 :) Zedd입니다. 류성두님이 쓰신 접근성 지원 != 시각장애인 대응의 "접근성을 지원한다는 것은, 더 좋은 앱을 만든다는 것의 다른 표현일 뿐"이라는 말이 참 인상깊었는데요. 요새 접근성 관련 세션들을 보면서 더 좋은 앱을 만들려고 노력해야겠다는 생각이 많이 들었어요. 사실 생각해보면.. 앱 개발을 통해 사람들의 삶을 이롭게 한다는 사실이 참 가슴 벅찬 일인 것 같아요 XD 공부하고 싶은게 너무 많아졌는데!!! 그 전에, Human Interface Guidelines의 Text Size and Weight부분을 먼저 살펴보려 합니다. # 읽기 전에 [Glyphs] 아래에 "glyphs"라는 단어가 나올텐데, glyph는 "생각을 나타내는 단순한 그래픽 이미지"라고 생각하시면 됩니다. (A..
# 문제 Widget이 갑자기 작동을 안하는 문제. 매번 open api만 쓰다가...서버가 죽는게 너무 불안해가지구 직접 올린건데.. 왜 또 이런거지..하고 알아봤더니 Heroku에서 내 앱을 실행 중지... # 원인 Heroku에는 Free Dyno Hours라는게 있는데, (dyno가 뭔뜻인지 잘 모르겠음;;;) - 개인 계정에는 매달 550시간의 무료 dyno 시간이 제공됨. - 신용카드로 verify된 계정은 무료 dyno 할당량에(550시간) +450시간을 받게 됨. ➞ 즉 개인계정에 신용카드로 계정을 확인만 하면 매월 총 1000시간(550+450)의 무료 dyno 시간을 받을 수 있음. 나는 신용카드를 등록을 안해서..이번 달 550시간을 다 쓴것이었고, 그래서 정지된거였음. # 해결 Ho..
안녕하세요 :) Zedd입니다. watchOS 개발중인데...어렵네요;; Table구성하는 법을 정리해보려고 합니다. SwiftUI로 했으면 엄청 쉬웠을텐데ㅠㅠ... 1. 테이블 추가 2. 지정된 InterfaceController에 IBOutlet 연결 @IBOutlet weak var settingsTable: WKInterfaceTable! iOS에서는 UITable"View" 였지만..watchOS에서는 ~View이런식으로 안붙는듯 하다. 그래서 이름도 그냥 ~table로 지어줌. 3. Row Controller.swift파일을 만들고, Low Controller 정의. import WatchKit import Foundation class SettingsLowController: NSObject..
안녕하세요 :) Zedd입니다. 오늘은 매우 핫한 async, await를 한번 보려고 합니다. 2021.03.25일 기준 async-await proposal은 Swift 5.5에서 구현된 상태입니다. + ) 2021.06.15 글 수정. @asyncHandler 내용 삭제. # 문제 1. Swift 개발에서 Closure 및 completion handlers를 사용하는 asynchronous(비동기) 프로그래밍을 많이 함. 2. 많은 비동기 작업 / 오류 처리 / 비동기 호출간의 제어 흐름이 복잡할 때 문제가 됨 [1] 많은 비동기 작업 일련의 비동기 작업에는 deeply-nested closures가 필요. func processImageData1(completionBlock: (_ result:..
- WidgetKit
- github
- Swift
- SwiftUI
- 회고
- swift array
- FLUTTER
- 피아노
- fastlane
- swift sort
- Accessibility
- WWDC
- 스위프트
- np-complete
- 스위프트 문법
- swift3
- actor
- swift delegate
- ios 13
- Git
- swift tutorial
- iOS delegate
- WKWebView
- 제이슨 파싱
- Combine
- np-hard
- IOS
- swift 공부
- UIBezierPath
- Xcode
- Total
- Today
- Yesterday