Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- swift 점선
- swift 백준
- claen architecture
- custom navigation bar
- task cancel
- paragraph style
- tusit font 추가 방법
- reactorkit
- Tuist
- 타임라인 포맷팅
- uikit toast
- domain data
- custombottomsheet
- SWIFT
- rxdatasources
- swift concurrency
- DP
- UIKit
- identifiable
- BFS
- custom ui
- swift custom ui
- swift navigationcontroller
- coordinator
- button configuration
- swift bottomsheet
- task cancellation
- traits
- swift dashed line
- RxSwift
Archives
- Today
- Total
김경록의 앱 개발 여정
[Tuist] Tuist 를 통한 커스텀 폰트 추가 방법 본문
Tuist를 통한 커스텀 폰트 추가 방법
Tuist로 폰트를 넣는다면 폰트, 에셋등을 한데 모아 모듈화 하여 사용할 수 있다는 장점이 있다.
- 새로운 모듈 정의
tuist 자세한 사용법에 대해선 서술하지 않음 - project.swift 파일에서 타깃을 추가해 주시면 되는데 이때 resources 폴더를 갖도록 만들어주셔야 합니다.
(저와 다르게 따로 모듈화 하지 않고 리소스를 갖고 있는 프로젝트 자체 내에 넣는다면 그렇게 하셔도 됩니다) - Tuist edit
// Plist에 입력될 폰트이름들 (확장자를 반드시 포함할 것)
let fonts = [
"Pretendard-Bold.otf",
"Pretendard-ExtraBold.otf",
"Pretendard-Medium.otf",
"Pretendard-SemiBold.otf",
]
// Fonts provided by application 키 값에 폰트들를 아이템(밸류)으로 지정
let infoPlist: [String: Plist.Value] = [
"Fonts provided by application": .array(fonts.map { .string($0) })
]
let sourceTarget = Target(
name: name,
platform:
product:
bundleId:
deploymentTarget: deploymentTarget,
// .default -> .extendingDefault
infoPlist: .extendingDefault(with: infoPlist),
sources: ["Targets/\(name)/Sources/**"],
resources: ["Targets/\(name)/Resources/**"],
dependencies: dependencies,
settings: .settings(
base: .init().swiftCompilationMode(.wholemodule)
)
)
- 만약 이렇게 하지 않고 기존 방식처럼 plist에 직접 입력한다면, Tuist 파일에 적용된 방식으로 plist가 계속해서 덮혀져(resources가 없다던가, 폰트 파일이 보이지 않는다던가) 문제가 생김
4. tuist generate 실행
정상 처리되었다면 자동으로 이런 파일이 생성됩니다.
사용 예시
- 이런 식으로 사용할 수 있습니다.
조금 더 개선해 본다면..
import UIKit
public enum FontStyle {
///weight: 400
case regular
///weight: 500
case medium
///weight: 600
case bold
///weight: 700
case semiBold
///weight: 800
case extraBold
}
extension UIFont {
public static func et_pretendard(style: FontStyle, size: CGFloat) -> UIFont {
switch style {
case .regular:
DesignSystemFontFamily.Pretendard.regular.font(size: size)
case .medium:
DesignSystemFontFamily.Pretendard.medium.font(size: size)
case.bold: EveryTipDesignSystemFontFamily.Pretendard.bold.font(size: size)
case .semiBold:
DesignSystemFontFamily.Pretendard.semiBold.font(size: size)
case .extraBold:
DesignSystemFontFamily.Pretendard.extraBold.font(size: size)
}
}
}
이런 식으로 quick help를 작성하여 해당 글씨체의 width가 얼마인지도 바로 알아볼 수 있고,
작성자체도 더 간단하게 개선해 볼 수도 있겠습니다.
'TIL' 카테고리의 다른 글
[Swift UIKit] Button Configuration 사용 시 의도치않은 inset 줄이기 (0) | 2025.02.07 |
---|---|
[Swift] 행간, 첫 줄 들여쓰기 등 적용하기 Paragraph Style (0) | 2025.01.13 |
[Swift]ReactorKit, Coordinator 그리고 화면 이동과 데이터 전달 (0) | 2025.01.09 |
[ReactorKit] 기본 예제 분석하고 내 프로젝트에 적용하기 (0) | 2025.01.09 |
[ReactorKit] 공식문서 훑어보기 (0) | 2025.01.09 |