본문 바로가기

개발/swift29

fastlane을 적용한 QA 프로세스 자동화 QA 프로세스 정리 현재 기준으로 회사에서 하나의 앱을 QA팀에게 넘기기 위해서 많은 공수가 들어가고 있습니다. .plist 파일 수정후 업로드 archive한 .ipa 파일 추가 외부에서 다운로드 받을수 있도록 .html 파일 수정 수정 내역 메일링 QA가 한번으로 끝날수도 있으나, 디바이스를 추가해달라는 요청, 추가 수정사항이 있을 때는 위와 같은 프로세스를 한번 더 반복해야 되는 상황이 있습니다. 그러므로 이 공수를 좀 줄이기 위해 우선적으로 QA 프로세스 자동화를 목적으로 R&D 를 진행하였습니다. 튜토리얼 fastlane 설치 우선적으로 fastlane을 설치를 진행합니다. Xcode 커맨드라인툴을 설치 후, fastlane gem을 설치합니다. 기본적으로 fastlane은 커맨드라인툴이기 때문.. 2018. 5. 29.
Cocoapods Private 라이브러리에 관한 튜토리얼 Cocoapods 이란? 라이브러리 의존성 관리 매니저입니다. 최근에는 수많은 xcode 프로젝트 라이브러리들이 cocoapods으로 관리되어집니다. 사용할 라이브러리 목록을 Podfile에 저장해 두면 pod install or pod update로 신세계를 경험하게 됩니다! 현재 할리퀸만화 앱도 cocoapod을 이용하고 있습니다! 안드로이드와 비교하자면 gradle과 같은 역할을 맡고 있습니다. 공홈 짜잔 ~ [https://cocoapods.org/] Cocoapods private 라이브러리를 사용해볼까요? cocoapods 설치 터미널에 아래와 같은 명령어를 입력합니다. cocoapods을 먼저 설치하는 명령어입니다. sudo gem install cocoapods Podfile 설정 먼저 코.. 2018. 5. 29.
Swift Standard Library (!) 서론 점점 많아지는 라이브러리! 어떤 라이브러리를 사용해야 내맘에 쏙 드는 코드를 만들 수 있을까..!! 모든 개발자의 고민이 아닐까.. 어찌어찌 동작은 되는데, 개발자 스스로 보기에 만족스럽고 예쁜 코드가 아니라면 보람차지 않다.. (경험상ㅋㅋㅋ) 수많은 라이브러리 속에 대부분 많이 사용하는 라이브러리 5개만 뽑아보고자 한다..!! Alamofire HTTP 네트워킹 라이브러리 입니다. 기본적으로 Apple에도 네트워킹을 위한 메소드와 클래스를 제공하고있습니다. 하지만 사용하기에는 굉장히 복잡하기 그지없습니다. 코드 라인수도 엄청나고, 알아보기도 힘들죠.. Alamofire를 사용하면, 보다 깔끔한 코드 작성이 가능해집니다. Alamofire.request("https://httpbin.org/get".. 2017. 9. 27.
[iOS/Swift] 스플래시 이미지 길게 보여주기 (LunchScreen Display Long) 앱이 시작되는 과정에서 셋팅해야 되는 부분이 있어서, 스플래시 이미지를 길게 보여줘야 할 때가 있다. 앱이 시작되는 과정에서 셋팅하는 부분은 앱이 동작하고 있어야 하므로 이런식으로 표현하면 앱이 동작하지 않으므로 적절한 방법이 아니다. sleep(5) 일단 AppDelegate내에 splash이미지 뷰를 추가 한후, 윈도우에 띄워주고 없애주면된다. 코드로 보자. class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? private var splash : UIImageView! func application(_ application: UIApplication, didFinishLaunchingWithOptions launc.. 2017. 6. 9.
[iOS/Swift] 파일, 폴더 용량 계산하기 하다보면 앱 내에 캐시이미지 용량같은 것을 표시해야 할 경우가 있다. 일단, 폴더 용량과 파일용량을 계산하는 방법이 다르다. 1. 캐시이미지 용량 func getCacheCapacityAsMB() -> String { /* 캐시 이미지의 용량을 측정합니다. */ /* 해당 이미지 폴더 url 입력 */ let cacheUrl = getDocumentsDirectory().appendingPathComponent("cache") let cacheUrlString = cacheUrl.path var folderSize = 0 let filemgrList = FileManager.default if filemgrList.fileExists(atPath: cacheUrlString) { do { let attr.. 2017. 5. 25.
반응형