Swift 오픈소스 후 3주, 그동안 무슨일이 있었나

Swift가 오픈소스 된 것이 12월 2일 입니다. 그후 3주가 지났는데요, Swift 생태계에 무슨일이 일어나고 있을까요? 메일링 리스트, 프로포졀, Pull Request 등을 통해 커뮤니티는 빠르게 자리잡아가고 있습니다. 그 내용을 정리했습니다.

프로포졀

Swift는 아직도 빠르게 발전하고 있기 때문에 많은 사람들이 Swift 가 어떤 방향으로 발전하게 될지 궁금해 합니다. 그래서 Swift가 오픈소스 될때 앞으로 다음버전에 반영될 제안(Proposal) 들을 공개했는데요, 커뮤니티안에서 계속 새로운 제안 이 나오고있고, 또 일부가 받아들여저서 채택되고 있습니다. 현재 Swift Evolution Git 저장소 에 있는 제안(Proposal)의 수는 17나 되네요! Swift 가 공개되던 시점에는 4개정도가 있었던 것으로 기억합니다.

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

그중 가장 처음으로 받아들여진 개인이 제출한 제안은 Erica Sadun이 제출한 C-스타일 for 루프를 제거하자는 제안 입니다. Swift 2.2 부터는 C-스타일 for 루프를 사용하면 warning 이 뜨게 된다고합니다

대부분의 다른 제안 들은 리뷰 기다림(Awaiting review) 상태이거나 리뷰중(Under review) 상태 인 것을 보실 수 있습니다. 아, Awaiting review 나 Under review 까지 간 것도 많이 진행된(?) 것이라고 볼 수 있습니다. 아직 Swift Evolution 저장소에서 Pull request 상태로 기다리고 있는 제안들도 많이 있습니다. 그 중에 댓글이 많은 것들 중에 하나는, 패키지 매니저에 test 기능을 넣자 라고 하는 제안 이네요.

Pull Request

오픈소스에 기여하는 가장 쉬운 방법을 아세요? 소스코드 주석에 있는 typo(오타)를 고치는 일입니다. 엄청나게 많은 주석 typo를 수정한 Pull Request 가 있네요.

Swift 에 기여하실 때 주의하실 점은 언제나 하나의 commit으로 합쳐서 Pull Request를 날려야 한다는 점 입니다. 위에 typo 수정을 한 사람도 여러개의 typo 수정 커밋을 날렸다가 Swift 프로젝트의 리드인 Chris Lattner 에게 지적 받고 하나의 Pull Rquest에서 하나의 commit으로 올렸는데요, commit 숫자가 쓸데 없이 늘어나는 것도 방지하고, history 도 깔끔하게 유지하고, 커밋 수를 늘려서 Swift에 기여를 많이 했다고 할 수 있는 부작용을 줄이기 위해서 관리하는 것으로 보입니다.

물론 test case 도 끊임없이 추가 되고 있습니다.

Raspberry Pi 나 BeagleBone등을 지원하기 위한 ARMv7 지원 Pull request 도 눈에 띕니다. 이제 시작이긴 하지만요.

메일링 리스트

메일링 리스트에서는 다양한 논의들이 진행되고 있습니다. Class와 method 들에서 final 이 기본이 되어야 한다고 주장하는 논의 에는 애플 직원이 답변을 달아주기도 했습니다.

C-스타일에서 벗어자는 트렌드를 반영하여 세미콜론을 아예 제거하자는 논의도 있었구요

물론 Chris Lattner 가 직접 답변을 올리기도 하는데요, dynamic과 static dispatch에 관한 이메일에 장문의 답변을 달기도 했습니다.

SwiftAndroid, 그리고 Foundation

Swift 로 안드로이드 개발을 할 수 있도록 하고싶다는 아이디어는 예전부터 있었는데요, 그 아이디어를 실행에 옮기고 있는 분을 소개합니다 SwiftAndroid 라는 GitHub 저장소에 가보시면 힘겨운 노력을 하고 계신 분을 만나실 수 있습니다. 아직은 Hello World 를 찍는 정도라고 하네요.

Swift 언어 자체 저장소가 많은이들의 관심을 끌고 있지만 Swift개발에 필수 유틸리티를 제공하는 swift-corelibs-foundation 저장소에도 많은 개발자들이 기여를 하고 있습니다. 모바일 데이터베이스 Realm의 iOS 개발자인 JP Simard도 NSRangeFromString 구현해서 코드가 merge 되었습니다.


Realm은 모바일 데이터베이스 입니다: SQLite 또는 Core Data를 대체하여 사용하실 수 있습니다.
물론 Swift를 지원합니다 더 알아보기

컨텐츠에 대하여

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


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close