프로그래밍/IOS (Swift)

[Swift] Cocoapods 이용하여 MAlert 라이브러리 사용하기

훙리 2021. 3. 29. 18:58

안녕하세요 

 

오늘은 Xcode의 외부 라이브러리 설치 툴인 Cocoapods 를 이용하여 간단하게 Alert창을 띄워보도록 하겠습니다.

 

 

물론 Custom으로 띄워도 되지만 애니메이션이라던지 디자인 등등 신경써야할것도 많고 반복적으로 불러주어야 하니 

Framework를 활용하기로 했습니다. 

이전에 안드로이드에 KAlert이나 웹 에서 필수적인 SweetAlert을 사용하던걸 추억하여...

 

 

 

일단 먼저 CocoaPods를 다운받아야 합니다. Homebrew의 Xcode용 이라고 보시면 될듯합니다.

 

 

 

1. CocoaPods 설치

 

cocoapods.org/

 

CocoaPods.org

CocoaPods is built with Ruby and is installable with the default Ruby available on macOS. We recommend you use the default ruby. Using the default Ruby install can require you to use sudo when installing gems. Further installation instructions are in the g

cocoapods.org

여기가 CocoaPods 홈페이지 입니다.

 

 

터미널을 켜신 후 gem을 이용하여 다운로드해줍니다.

$ sudo gem install cocoapods

그러면 Cocoapods를 사용하실 수 있습니다.

 

그리고 이제 추가하고 싶은 프로젝트 디렉토리에 가서 터미널을 켜줍니다.

 

 

그리고 여기서 해당 커맨드를 입력해주면 기존의 프로젝트파일 말고 다른 WorkSpace나 Podfile이 더 생겨있는것을 알 수 있습니다.

$ pod init

 

 

 

 

여기서 터미널로 nano 편집기를 이용하여 Podfile에 접근합니다.

 

그러면 이러한 창이 나오고 본인이 원하는 Target Project 하단에 원하는 라이브러리를 입력해야 합니다.

입력할 내용은 CocoaPods 홈페이지에서 검색한 후 오른쪽에 Installation Guide 를 보면 나와있습니다.

 

저 같은 경우는 Alert창을 띄우고 싶었기 때문에 여러가지를 찾았습니다. 그 중에서 Malert을 선택하였습니다. 

Github에서 별도 많이 받은거 같고 유명한 SCLAlertView 가 Swift 5 를 지원하지 않는건지 잘 되지 않기도 하였습니다. 

 

 

그렇게 다시 해당 폴더의 터미널에서 아래의 명령어를 입력하면 적용이 됩니다.

 

$ pod install
// 설치 

$ pod try Malert
// 테스트

 

그러면 이제 새로 생성된 프로젝트(Workspace)에서 작업을 하시면 됩니다. 기존에 프로젝트로 들어가시면 Cannot found Framework 라는 오류가 나오실겁니다.

 

 

2. Malert 적용 

 

해당 프로젝트에서 원하는 Controller에 import 해 줍니다.

import Malert

사용방법에는 Malert 프로젝트에서 Example을 잘 보시면서 하시면 됩니다.

 

일단 CustomView.swift 파일과 CustomView.xib 파일을 만들어 줍니다. 

 

그리고 원하는 Example에서 소스를 복사해 줍니다. 

 

.xib 파일이 레이아웃만 나올텐데 당황하지 마시고 Open As 를 찾으시고 Source Code를 클릭하면 xml 형태의 파일이 나옵니다.

 

 

그리고 얍삽하게 싹 복사를 하여 활용 해줍니다. 

 

 

 

 

그리고 Alert이 불리길 바라는 Controller에 해당 정보를 참조해서 추가해 줍니다.

 

 	let view = FirstCustomView.instantiateFromNib()
 	let malert = Malert(customView: view)
 	
    let action = MalertAction(title: "OKay"){
 		print("fail")
 	//action 이란 버튼을 의미 버튼 클릭 리스너를 안에다 구현해 준다.
    }
 	
    action.tintColor = UIColor(red:0.15, green:0.64, blue:0.85, alpha:1.0)
	malert.addAction(action)
	present(malert, animated: true)
                            

 

오늘로써 또 느꼈습니다. Xcode 와 Swift는 정말 불친절한 언어라는 사실을...

 

원하는 이미지 크기를 변경하기도 까다롭고 생각보다 세팅해주어야할것이 많았습니다...

 

여기서 시간을 많이 쓴 만큼 저와 같은 다른 초심자 분들은 시간 낭비를 하지 않으셨으면 좋겠습니다...