iOS13 기반 다크 모드 구현
※ Dark Mode의 개요와 설치를 알고 있어야 합니다.아직 없는 사람은 문말의 참고 보도를 참조하시오
색상 세트 사용
기본적으로 하드코딩된 색을 동적 색으로 지정합니다.
지금까지 색상 지정은 코드로 정의되었지만 암흑 모드 대응을 계기로 Assets Catalog의 ColorSet(iOS11~)으로 옮겨졌습니다.
색상 세트의 장점은 다음과 같습니다.
참고로 iOS13SDK의 UIKIT에 미리 설정된 UI Element Colors
.systemBackgroundColor
등도 지정할 수 있습니다.새 Asset Catalog, 이미지의 Assets와 색상의 Assets를 분리하여 관리하면 쉽게 볼 수 있음
SwiftGen 등은 코드에서 참조할 때 유형별로 안전하고 편리하다.
#swiftgen.yml
xcassets:
inputs:
- ./FamilyReminder/Images.xcassets
- ./FamilyReminder/Colors.xcassets
outputs:
- templateName: swift5
output: ./FamilyReminder/Generated/Assets.swift
// 利用する時はこんな感じでタイプセーフに使える
closeButton.tintColor = Asset.Colors.primary.color
이중 관리가 필요하지 않으므로 모든 색상 지정을 색상 Assets로 마이그레이션하면 기존 코드의 색상 지정 파일이 폐기됩니다.스토리보드, Xib, 코드에서 사용할 수 있고 어두운 모드를 지원한다면 먼저 Color Asset으로 옮기면 그 후의 작업이 진전될 것이다.
UI Element Colors 사용 가능
iOS13SDK에서 미리 설정된 UI Element Colors
.systemBackgroundColor
등을 사용하면 자동으로 다음과 같은 작업을 수행할 수 있습니다..systemBackgroundColor
, white 등이것은 하나의 화면으로 하나의 화면으로 설치되는 것이 아니라 UIKIT가 준비한
.systemBackgroundColor
등 계층 구조를 파악하여 자동으로 처리한다.보기가 기초 단계인지elevated 단계인지에 따라 농도가 달라진다..secondarySystemBackground
맞춰도 돼요. .systemBackgroundColor
색깔 잘 만들었어요.view
modal
이 기능은 상당히 편리하기 때문에 가능한 한
.systemBackgroundColor
등을 사용하는 것이 좋다고 생각합니다.다크 모드에 대비한 기능이 준비되어 있으므로 활용하는 것이 좋다.저는 backgroundColor를 맞춤형으로 제작하는 응용 프로그램도 많기 때문에 디자이너와 교류해야 하는 곳이죠.애플이 제공하는 도구에 대한 이해가 중요하다.
이를 계기로 TableView가 주체 화면 등에서 독자적으로 지정한 배경색을 폐지하고
.systemBackgroundColor
로 통일했습니다.암/광 표시 확인
스토리보드, Xib를 이용하면 확인이 쉬워요.
스토리보드, Xib를 사용하여 레이아웃을 하면 IB에서 암등을 간단하게 확인할 수 있습니다.(IB 아래 메뉴)
구축 후 Xcode 메뉴를 통해 실시간으로 변경(실제/시뮬레이터)
실기라면 버튼을 컨트롤 센터에 놓으면 단번에 전환할 수 있다
設定 > コントロールセンター > コントロールセンターをカスタマイズ
미조
동료의 디자이너에게 배운 Contrast Checker 색깔의 분별력 등을 확인했다.
수치로 판단할 수 있어서 편해요.
마지막에 베이스와 disabled 컬러를 살짝 작은 숟가락으로 만들어볼게요.
숙제가 끝날 때까지의 시간은 반나절 정도밖에 안 된다.화면 수가 20 정도이고 자신도 디자인을 했기 때문에 나는 비교적 일찍 완성했다고 생각한다.
반면 색상을 ColorSet 등의 의미 색상으로 재구성하는 데는 오랜 시간이 걸렸습니다.나는 어둠의 패턴이 자신의 응용 프로그램이 의미로 색을 지정할 수 있는지 재검토할 수 있는 좋은 기회라고 생각한다.
ColorSet, UI Element Color 등 Xcode의 의미에서 색상을 지정하는 도구가 모두 갖추어져 있습니다.
업무도 전체 화면의 디자인이 필요합니까?이렇게 말하면 의문이다. 만약에 주요 화면의 디자인 칸이 있다면 간단하게 어두운 패턴에 대응하는 도구가 완비되어 있기 때문에 IB를 직접 만지작거린다. 코드와 디자이너의 확인이 비교적 빠르다.
보충하여 기록하다
튀는 화면을 지원하는 어두운 모드를 잊지 마세요.응용 프로그램을 시작한 후의 화면만 순식간에 하얗게 변했다.
나는 특별히 튀는 화면을 맞춤 제작하지 않았고, 방치한 것도 있는데, 문제는 발표된 후에 발견되었다😇( Slack도 잊어버린 것 같고 나중에 추가해서 나왔어요. )
대응은 LaunchScreen입니다.스토리보드의view 배경색을 System Background Color로 전환하기만 하면 됩니다.
완성
light
dark
이번 어둠 모드에 대응하는 프로그램은 여기 있습니다.💁♂️
꼭 한번 만져보시면 좋을 것 같아요!
가정 TODO
이것은 가족 커플이 공유할 수 있는 TODO 응용 프로그램이다.
라인 등에서만 가족을 초대하면 토도를 공유할 수 있다.
참고문
공식 문서
Reference
이 문제에 관하여(iOS13 기반 다크 모드 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hirothings/items/4834481d170332e173f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)