AcknowList 라이브러리 적용 방법

cheshire0105·2025년 1월 20일

iOS

목록 보기
31/45
post-thumbnail

AcknowList 라이브러리 적용 방법

오픈 소스 라이브러리를 사용하는 프로젝트에서는 사용된 라이브러리의 라이선스를 명시하는 것이 중요하다. 이를 위해 AcknowList 라이브러리를 활용하면 손쉽게 라이선스 정보를 표시할 수 있다. 본 글에서는 AcknowList 라이브러리를 프로젝트에 적용하는 방법을 단계별로 소개한다.

AcknowList란?

AcknowList는 CocoaPods 및 Swift Package Manager를 통해 관리되는 의존성의 라이선스 정보를 화면에 표시할 수 있는 간단한 라이브러리이다. 다양한 기능과 커스터마이징 옵션을 제공하여 사용자에게 깔끔한 라이선스 정보를 제공할 수 있다.

주요 기능

  • CocoaPods 및 Swift Package Manager에서 생성된 라이선스 파일을 로드
  • GitHub API를 통해 누락된 SPM 라이선스 정보 가져오기
  • 라이선스 텍스트의 불필요한 줄바꿈 제거
  • 헤더 및 푸터에 링크 추가 가능
  • 다크 모드 및 다이나믹 타입 지원
  • UIKit 및 SwiftUI 인터페이스 지원

설치 방법

CocoaPods으로 설치된 라이브러리 추가

CocoaPods가 생성한 Pods-#target#-acknowledgements.plist 파일을 메인 타겟에 추가한다.
Pods/Target Support Files/Pods-#target#/ 폴더에서 파일을 드래그 앤 드롭하여 Xcode 프로젝트에 추가한다. 이때 Copy items if needed 옵션은 체크하지 않는다.

Swift Package Manager으로 설치된 라이브러리 추가

생성된 Package.resolved 파일을 메인 타겟에 추가한다. 패키지 보기를 통해 파일을 보면 된다.
파일은 다음 경로에 위치한다:
- 단일 Xcode 프로젝트: [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/
- Xcode 워크스페이스 (예: CocoaPods 사용 시): [appName].xcworkspace/xcshareddata/swiftpm/

사용 예제

AcknowList를 사용하기 위해서는 AcknowListViewControllerUINavigationController에 푸시(push)하여 표시할 수 있다. 아래는 실제 나의 앱에서 사용 예제이다.

import UIKit
import AcknowList

class OpenSourceViewController: AcknowListViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 사용자 인터페이스 스타일을 라이트 모드로 고정
        overrideUserInterfaceStyle = .light

        title = "OpenSourceLicenses"
        view.backgroundColor = .DawnPink
        tableView.backgroundColor = .DawnPink
    }

    override func tableView(
        _ tableView: UITableView,
        cellForRowAt indexPath: IndexPath
    ) -> UITableViewCell {
        let cell = super.tableView(tableView, cellForRowAt: indexPath)
        cell.backgroundColor = .DawnPink

        // 선택된 셀의 배경색 설정
        let selectedBackgroundView = UIView()
        selectedBackgroundView.backgroundColor = .Spindle // 원하는 색상으로 변경
        cell.selectedBackgroundView = selectedBackgroundView

        return cell
    }
}

위 코드에서는 AcknowListViewController를 상속받은 OpenSourceViewController를 생성한다. viewDidLoad 메서드에서 인터페이스 스타일을 라이트 모드로 고정하고, 배경색을 설정한다. 또한 tableView(_:cellForRowAt:) 메서드를 오버라이드하여 셀의 배경색과 선택 시 배경색을 커스터마이징하였다.

라이선스 상세 내용을 보여주는 페이지에서 폰트와 배경을 변경 하면 왜 인지 텍스트가 안보인다... 일단 라이트 모드로 강제....

커스터마이징

AcknowList는 다양한 커스터마이징 옵션을 제공한다. 예를 들어, 헤더와 푸터 텍스트를 직접 설정하거나, 테이블 뷰의 스타일을 변경할 수 있다.

let viewController = AcknowListViewController()
viewController.headerText = "우리는 오픈 소스 소프트웨어를 사랑합니다."
viewController.footerText = "CocoaPods 및 SPM으로 구동됩니다."

또한, 테이블 뷰의 스타일을 변경하고자 할 경우 초기화 시 스타일을 지정할 수 있다.

let viewController = AcknowListViewController(plistFileURL: url, style: .plain)

SwiftUI 지원

AcknowList는 SwiftUI 인터페이스도 지원한다. SwiftUI를 사용하여 라이선스 정보를 표시하고자 할 경우, AcknowListSwiftUIView를 인스턴스화하여 NavigationView 내에서 사용할 수 있다.

import SwiftUI
import AcknowList

struct ContentView: View {
    var body: some View {
        NavigationView {
            AcknowListSwiftUIView(plistFileURL: Bundle.main.url(forResource: "Pods-YourApp-acknowledgements", withExtension: "plist"))
                .navigationTitle("오픈 소스 라이선스")
        }
    }
}

결론

AcknowList는 프로젝트에 오픈 소스 라이선스 정보를 손쉽게 추가할 수 있는 강력한 도구이다. 다양한 설치 옵션과 커스터마이징 가능성을 통해 개발자는 사용자에게 깔끔하고 일관된 라이선스 정보를 제공할 수 있다. 위에서 소개한 방법을 참고하여 AcknowList를 프로젝트에 적용해 보길 권장한다.

AcknowList는 Vincent Tourraine에 의해 제작되었으며, 다양한 기여자들의 도움으로 지속적으로 발전하고 있다. 프로젝트는 MIT 라이선스 하에 공개되어 있으므로 자유롭게 사용하고 수정할 수 있다.

더 자세한 정보는 AcknowList GitHub 페이지를 참고한다.

참고

Swift - License View
AcknowList GitHub 페이지

0개의 댓글