iOS 앱 실무 개발에 사용되는 기본 리소스

2017-02-01
11 Views

필자가 iOS 앱 개발시 자주 사용하던 Swift 3.0기준 리소스를 정리한 것을 공개한다.

상수 공통 정리 App.swift 만들기

어떤 파일이라도 참조하는 상수를 struct로 관리하며 값이 중간에 변경해야 하는데 할 수 없는 경우 이 파일의 값을 변경하면 된다. 이 말은 앱의 전반적인 설정을 모아두는 클래스라고 보면 된다.

R.swift 도입하기

소스코드 완성형 리소스 관리에 용이하고 이름을 잘못 입력하는 것을 방지하고 소스코드도 짧게 작성할 수 있는 장점이 있다.

[설치방법]

  1. Cocoapods를 통해 설치하기 때문에 프로젝트내에 터미널에서 pod init를 실행한다.
  2. Podfile에 pod ‘R.swift’를 추가하고 pod install로 프로젝트에 설치한다.
  3. 프로젝트명.xcworkspace파일로 프로젝트를 열고 xcode에서 Targets -> Build Phases를 열고 [+]버튼을 클릭하여 [New Run Script Phase]를 선택한다.
  4. 신규로 추가된 Run Script를 Check pods Manifest.lock아래로 이동시킨다.
  5. 다음으로 Runt Script화면에서 “$PODS_ROOT/R.swift/rswift” “$SRCROOT”를 추가한다.
  6. 다음으로 프로젝트를 빌드(Command + B)를 하면 프로젝트 루트에 생성되는 R.generated.swift파일을 프로젝트로 끌어와 추가한다. 이때 “Copy items if needed”를 체크하지 않는다.
  7. 마지막으로 git을 통해 소스관리를 한다면 .gitignore파일에 *.generated.swift를 추가한다.

이를 사용하는 이유에 대해 간단하게 비교해보면 다음과 같다.

R.swift없이 사용시

R.swift사용시

자주 사용하는 패턴

synx를 사용하여 Group과 디렉토리 구성을 일치시키기

Xcode에서 Group을 만들어도 실제 디렉토리 구조는 변경되지 않기 때문에 도구를 별도로 사용하여 구성해야 한다. 그래서 추천하는 도구가 바로 synx라는 커멘트라인 도구를 사용하여 실제 디렉토리 구조로 일치시켜 주는데 참고하자.

설치(터미널) $gem install synx

APIKit과 Realm 사용하기

Extension 관련

base64 문자열 디코딩

페이드인/페이드아웃 애니메이션

날짜 형식 변경

 

Facebook Comments

You may be interested

Xcode 기능 확장(Extension) 제거하기
Xcode
shares3 views
Xcode
shares3 views

Xcode 기능 확장(Extension) 제거하기

MJ Kim - 3월 18, 2017

Mac에서 Xcode Source Editor Extension등의 기능확장을 사용하다보면 디버깅시 시스템 환경 설정의 확장이 앱에 등록되는 경우가 있다. 계속해서 목록이 남아 있기…

iOS App Store Review(앱 심사약관) 번역
Swift 3.0
shares111 views
Swift 3.0
shares111 views

iOS App Store Review(앱 심사약관) 번역

MJ Kim - 3월 15, 2017

App Store Review를 번역했다. 사실 이번에 좀 애매한 리젝을 당해서 그걸 이해하고자 정리해본다. 원문링크: https://developer.apple.com/app-store/review/guidelines/ 1. 이약관은? 1.1 앱 개발자로서 프로그램의…

Raspberry Pi 타이머 On/Off 전원제어모듈 RPi1114-Raspberry Pi
IoT by Raspberry Pi
shares7 views
IoT by Raspberry Pi
shares7 views

Raspberry Pi 타이머 On/Off 전원제어모듈 RPi1114-Raspberry Pi

MJ Kim - 3월 04, 2017

RPi1114-Raspberry Pi전원제어 모듈이 있다. 이 제품은 40Pin GPIO핀헤더에 연결하여 사용하는 모듈로 Cortax-M0마이크로컨트롤러 LPC1114를 내장하고 Raspberry Pi의 시작과 정지 순서등을 프로그래밍할…