Swift Playgrounds에서 Xcode project의 코드를 움직여 보자 ~~ CocoaPods ~~

17814 단어 XcodeCocoaPodsSwift

마지막까지의 개요



마지막 : ぃ tp // 코 m / 반자이 / ms / 예 075bd5d651 A5A 24d68
이번은 CocoaPods 를 사용한 프로젝트 때 어떻게 하면 좋을지 설명합니다

Swift Playgrounds에서 Xcode project의 코드를 움직여 보자 ~~ CocoaPods ~~



먼저 CocoaPods를 통해 라이브러리를 Xcode project에 넣으십시오.
뭐든지 좋지만 내가 취미로 만든 Kaeru라는 라이브러리를 사용하여 소개합니다.
과거에 Qiita 하지만 소개한 적이 있습니다

GitHub에 대한 링크입니다.
스타주세요
htps : // 기주 b. 코m/반자이/카에루
Podfile 에 추가하여 pod install
target 'ImportPlaygrounds' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!
  pod 'Kaeru'
end
...

터미널에서$ pod install
이제 Pods 디렉토리에 Kaeru가 추가되었는지 확인할 수 있다면 성공합니다.

그런 다음 CocoaPods 에서 추가한 프레임워크를 빌드하고 만들 계획을 만듭니다.
Xcode의 왼쪽 상단 대상이 표시되는 막대를 클릭하고 Manage Schemes를 선택합니다.



아래와 같은 화면이 표시됩니다.ImportPlaygroundsImportPlaygourndsFrameworkShow 의 항목에 체크가 되어 있는 것을 확인할 수 있습니다Pods-ImportPlaygrounds 에도 체크를 합시다



체크를 하면 Pods-ImportPlaygrounds 의 빌드 타겟이 추가되었다고 생각합니다Pods-ImportPlaygrounds를 선택하여 빌드합시다.


Pods-ImportPlaygrounds 의 빌드가 성공하면 CocoaPods 에서 도입한 라이브러리가 .playground 파일에서 사용할 수 있습니다.playground 파일에 아래 코드를 포함하여 실행 결과를 봅니다.

import UIKit
import ImportPlaygroundsFramework
import PlaygroundSupport
import Kaeru // CocoaPods経由で入っているライブラリをimport

print(HistoryNavigationController.self) // HistoryNavigationController
HistoryNavigationControllerKaeru 에 포함된 클래스입니다.
이 코드가 성공적으로 실행되면 .playground에서도 참조 할 수 있다는 것을 알았습니다.UI 의 움직임도 문제가 없는지 확인해 봅시다.
이번에는 아래의 코드를 .playground 에 붙여 넣어 실행합니다

import UIKit
import ImportPlaygroundsFramework
import PlaygroundSupport
import Kaeru

let window = UIWindow(frame: UIScreen.main.bounds)

class LoopViewController: UIViewController {
    override func loadView() {
        view = UIView()
        view.backgroundColor = .white

        let currentPageLabel = UILabel()
        do { // setup currentPageLabel
            currentPageLabel.translatesAutoresizingMaskIntoConstraints = false
            currentPageLabel.text = "current page: \(navigationController!.viewControllers.count)"
            currentPageLabel.sizeToFit()

            view.addSubview(currentPageLabel)

            currentPageLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
            currentPageLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: -100).isActive = true
        }


        let nextButton = UIButton(type: .custom)
        do { // setup next button
            nextButton.translatesAutoresizingMaskIntoConstraints = false
            nextButton.setTitle("next", for: .normal)
            nextButton.setTitleColor(.black, for: .normal)

            nextButton.backgroundColor = .orange

            view.addSubview(nextButton)

            nextButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
            nextButton.topAnchor.constraint(equalTo: currentPageLabel.bottomAnchor, constant: 20).isActive = true
            nextButton.heightAnchor.constraint(equalToConstant: 240).isActive = true
            nextButton.heightAnchor.constraint(equalToConstant: 40).isActive = true

            nextButton.addTarget(self, action: #selector(nextButtonPressed), for: .touchUpInside)
        }

        let showHistoryButton = UIButton(type: .custom)
        do { // setup show history button
            showHistoryButton.translatesAutoresizingMaskIntoConstraints = false
            showHistoryButton.setTitle("show history", for: .normal)
            showHistoryButton.setTitleColor(.black, for: .normal)
            showHistoryButton.backgroundColor = .brown

            view.addSubview(showHistoryButton)

            showHistoryButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
            showHistoryButton.topAnchor.constraint(equalTo: nextButton.bottomAnchor, constant: 20).isActive = true
            showHistoryButton.heightAnchor.constraint(equalToConstant: 240).isActive = true
            showHistoryButton.heightAnchor.constraint(equalToConstant: 40).isActive = true

            showHistoryButton.addTarget(self, action: #selector(showHistoryButtonPressed), for: .touchUpInside)

        }
    }

    func nextButtonPressed() {
        navigationController?.pushViewController(LoopViewController(), animated: true)
    }

    func showHistoryButtonPressed() {
        guard let navigationController = navigationController as? HistoryNavigationController else {
            fatalError()
        }

        navigationController.presentHistory()
    }
}
let viewController = LoopViewController()
let navigationController = HistoryNavigationController(rootViewController: viewController)

window.rootViewController = navigationController
window.makeKeyAndVisible()


PlaygroundPage.current.liveView = window
Playgrounds 위의 코드를 실행하고 버튼을 누르십시오.UI 에서도 정상적으로 동작하는 것을 확인할 수 있었다고 생각합니다



요약



Swift Playgrounds에서 Xcode project의 코드를 움직여 보자 ~~ CocoaPods ~~
그래서 CocoaPods 의 라이브러리를 사용하고 싶은 경우의 방법을 정리해 보았습니다.

외부 라이브러리에 의존하는 화면도 Playgrounds 위에서 확인할 수 있습니다UI 에서도 매번 빌드하고 확인하는 것보다 빠르게 개발할 수 있는 것은 아닐까요.

다시 게시하지만 Kaeru 링크를 붙여 둡니다. 스타주세요.
htps : // 기주 b. 코m/반자이/카에루

오시마\(^o^)/

좋은 웹페이지 즐겨찾기