주간 Swift #2: Swift 3.0에 맞게 자동변환하기, IAP와 Permission 오픈소스

주간 Swift는 매주 다양한 국내/해외 Swift 뉴스를 모아서 공유하는 뉴스레터 입니다. 빠르게 성장하며 계속 성숙해가고 있는 Swift의 소식을 정리해드립니다.


오픈소스 스위프트에 기여하기

페이스북에서 인스타그램 앱을 개발하고있는 iOS 개발자 Jesse Squires의 발표. 오픈소스 스위프트에 기여하기 위해서 컴파일러 전문가가 될 필요는 없습니다. 하지만 스위프트 컴파일러가 어떻게 동작하는지에 대한 대략적인 그림을 이해하고 있다면 스위프트의 어떤 부분이 기여할 수 있는지 알 수있습니다. 개발 스킬의 높고 낮음에 상관없이 어떤 기여인가를 할 수 있습니다.

이런 개발 뉴스를 더 만나보세요

  1. 먼저 특정한 언어로 시작합니다. Front end 라고 부릅니다.
  2. Front end 는 소스코드를 파싱해서 LLVM IR (“Intermediate Representation” - 중간 표현물) 로 변환하는 역할을 합니다. IR는 아키텍쳐에 종속되지 않는 하이레벨 어셈블리 언어입니다.
  3. LLVM IR은 다양한 분석과 최적화를 통해서 코드를 향상시키는 옵티마이저를 거치게 됩니다.
  4. 최적화된 IR은 back end 로 보내지게 되는데, back end는 아키텍처에 맞는 네이티브 기계코드를 생성합니다.

하지만 이런 컴파일러 부분 외에도 스탠다드 라이브러리, 패키지 매니저, 문서 등등 다양한 부분에 기여할 수 있습니다. 누구도 처음부터 완벽한 것을 기대하지는 않습니다. 역동적으로 발전하고 있는 Swift의 진화에 참여해보세요.

Swift 2.2코드를 3.0에 맞도록 변환하기

Swift 3.0에서는 ++ 이나 오래된 스타일은 for 루프 등이 없어지게 되죠. 이러한 변환을 Xcode의 “Find and Replace in Project” 기능을 사용해서 자동으로 변환할 수 있는 정규표현식을 만든 개발자가 있네요. Swift-2.2-to-3.0-RegEx 라는 GitHub 에 공개되어있는 정규표현식으로 변환하시면 된다고 합니다.

Xcode 7.3 릴리즈 노트

이번에 새로나온 Xcode 7.3으로 모두 업데이트 하셨나요? 자동완성 기능이 symbol, method, property 이름 등을 자동완성 해줍니다. 다양한 개선사항이 포함되어있는데요, 시뮬레이터에서는 Force Touch 트랙패드를 사용해서 터치 정도를 지원한다고 하죠. 이외에도 playground에서 비디오 기능 개선 / 정적 분석기(Static Analyzer) 개선 / 다른 Toolchain 사용 기능 등이 있으므로 위 릴리즈 노트를 확인해보세요

오픈소스

  • Swift 이미지 프로세싱 playground Swift 로 이미지 프로세싱을 배울 수 있는 playground 파일들입니다. 흑백으로 만들기, 콘트라스트 조정하기, 블렌딩 등 다양한 작업을 해볼 수 있습니다.

  • Swift In-App-Purchase 프레임워크 Swift 로 In-App-Purchase를 할 수 있게 해주는 프레임워크 입니다. iOS 8.0+ and OSX 9.0+ 에서 동작합니다. CocoaPod 과 Carthage 도 지원합니다.

  • Swift Permission 쉽게쓰기 iOS 에서 퍼미션을 요청하는 API를 제공하는 별이 1,200 개가 넘는 오픈소스입니다.

무료 한국어 Swift 동영상 강의

윤성관(링고스타) 님의 Swift 강좌가 helloworld 에서 시작되었습니다. 시작과 함께 꽤 많은 분량의 강의가 공개되었고 무료이니 Swift를 시작하시는 분들에게 큰 도움이 될거 같네요!

개발 환경 설정하기 / 스위프트 기본 / 인터랙션 / TableView 기초 / Swift 함수타입 / 계층적 네이게이션 등의 수업이 이미 올라와있습니다. 윤성관 임은 애플의 Distinguished Educator로 활동하시는 실력있는 개발자이나 강사 입니다.

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close