전체보기(291)
-
[Swift] @_exported
@_exported import 키워드는 Swift에서 내부 모듈에서 사용된 외부 모듈을, 해당 내부 모듈을 사용하는 다른 모듈에서 별도의 import 없이 사용할 수 있게 해주는 기능입니다. 이는 모듈 간의 의존성을 관리할 때 편리함을 제공하지만, Swift 공식 문서에는 아직 내부적인 사용(_로 시작)을 의미하는 비공개 API로 분류되어 있으며, 향후 변경될 가능성이 있습니다. 사용 이유 간결성: 상위 모듈에서 하위 모듈의 기능이나 타입을 사용할 때, 모든 곳에 동일한 import 구문을 반복해서 작성할 필요가 없어 코드가 더 간결해집니다. 편의성: 특정 라이브러리나 프레임워크를 내부적으로 사용하는 모듈을 만들 때, 이 모듈을 사용하는 사용자가 내부적으로 사용된 라이브러리나 프레임워크에 대해 알 필요..
2024.04.01 -
[Architecture] Modular Architecture / MFA에서 추상레이어의 Export
Swift의 modular architecture / Micro Feature Architecture(MFA)에서 Feature, Domain, Core, Shared의 레이어를 추상적으로 나누고 해당하는 레이어에 맞춰서 코드를 관리할 때 Export를 통하여 제어합니다. 이 글에서는 Core 레이어를 통하여 예시를 들고있습니다. CoreExport.swift 파일을 사용하여 다른 모듈에서 CoreNetwork 및 CoreNetworkInterface 모듈을 임포트할 수 있도록 설정하는 것은 모듈 간의 의존성 관리 및 코드 재사용성을 높이기 위한 전략 중 하나입니다. 이러한 접근 방식은 특히 대규모 프로젝트나 여러 모듈이 상호작용하는 복잡한 시스템에서 유용합니다. CoreExport.swift의 목적 간..
2024.04.01 -
[Tuist] Version 4 / config / package / dependencies
Tuist config 설정. 공식문서의 개요를 보시면 " Tuist는 공유 Config.swift 매니페스트를 통해 구성할 수 있습니다. 튜이스트가 실행되면 디렉토리를 탐색하여 Config.swift 파일이 포함된 튜이스트 디렉토리를 찾습니다. 구성 매니페스트 정의는 필수는 아니지만 저장소의 일부인 모든 프로젝트에서 일관된 동작을 보장하기 위해 권장됩니다. " 라고 적혀있습니다. 이 뜻은 config가 없어도 되지만 일관된 동작을 보장하려면 config를 작성하라고 권장하고 있습니다. ProjectDescription 확인해서 해당 하는 인스턴스들이 어떤 역할을 하는지 간단하게 살펴보았습니다. /// - Parameters: /// - compatibleXcodeVersions: List of Xcod..
2024.03.29 -
[Tuist] Version 4 / UIKit / AppDelegate / SceneDelegate
Tuist init UIKit without Storyboard with version 4 tuist init --platform ios tuist init --platform ios 4.8.0 버전에서는 default가 SwiftUI로 되어있으므로, 이를 UIKit으로 진행하기 위해 아래와 같은 프로세스를 따릅니다. Tuist init 이후 AppDelegate로 진행하는 경우 UIKit without Storyboard로 전환하는 방법은 간단합니다. 그냥 소스를 지워주시고 아래와 같이 앱델리게이트를 채택해 만들어 주시기만 하면 됩니다. AppDelegate.swift import UIKit @main class AppDelegate: UIResponder, UIApplicationDelegate { ..
2024.03.28 -
[Tuist] Version 4 / init / edit / generate / 초기설정 / 수정 / 실행
협업을 하는 iOS 개발자라면 무조건 써야하는 Tuist 입니다. 비슷한 툴로는 XCodegen이라는 프로그램도 있지만 YAML 파일을 사용하여 프로젝트의 구조와 설정을 정의하기 때문에, 러닝커브가 존재해서 Tuist를 사용합니다. 또한 Tuist는 프로젝트 생성, 의존성 관리, 프로젝트 간 의존성, 그리고 마이크로 프레임워크 아키텍처 지원 등 프로젝트 관리의 여러 측면을 지원하기 때문에, Tuist를 사용합니다. Tuist 란 XCode 모듈관리, 협업 관리를 위하여 쓰는 Third party program입니다. 저는 Tuist 3.36.2 버전을 사용해 왔는데, 이번에 Tuist가 breaking point를 가짐으로써 메이저 버전이 4로 올라갔기 때문에, Tuist 4를 학습 + 실습 해보려고 합..
2024.03.27