2013년 9월 11일 수요일

아이폰 5S-iOS7 개발관련




애플이 iOS7을 탑재한 아이폰5S와 아이폰5C를 공개했다. 애플이 아이폰과 iOS 모두에 많은 변화를 가하면서, 소프트웨어 개발자도 대응에 고심해야 하는 상황이다. 

애플은 10일(현지시간) 미국 쿠퍼티노 본사에서 비공개행사를 열고 아이폰5S와 아이폰5C를 발표했다. 지난 6월 세계개발자대회(WWDC)에서 공개됐던 iOS7도 최종버전의 배포일이 18일로 결정됐음을 알렸다. 

새 아이폰의 출시일은 이달 20일, iOS7 최종버전의 사용자 배포는 18일이다. 새로운 기기의 등장은 개발자에게 여러 수고를 안겨주는 계기로 작용한다. 그러나 이번엔 전보다 더 고생스러울 것으로 보인다. 

아이폰5S의 가장 큰 변화는 A7 프로세서를 탑재하면서, 64비트를 지원하게 됐다는 점이다. iOS7 역시 종전 iOS 대비 외관과 UI가 플랫디자인으로 대폭 수정됐다. 이같은 상황은 ‘기획-개발-테스트’에 이르는 iOS 개발 사이클 전반에 영향을 미친다. 


■디자인 변화가 기획에 미치는 영향 

1차적으로 iOS 앱 개발자들은 기획단계에서 새로운 디자인에 적응해야 한다. 우선 앱 아이콘을 114×114 픽셀에서 120×120 픽셀로 수정해야 아이폰에 제대로 된 형태로 노출된다. 

또한 앱 아이콘의 이미지 방식을 비트맵에서 벡터로 변경할 필요가 있다. 전반적인 아이콘의 화소가 늘어난 상황에서 앱의 용량증가 없이 대응하는 손쉬운 방법이기 때문이다. 함수 좌표로 색상과 형태를 표시하는 벡터 방식은 기존 비트맵 방식보다 화소를 키워도 용량이 증가하지 않는다. 

UI 측면의 변화에도 대응해야 한다. UI 패턴의 변경, 전체 화면 보기 등에 따라 앱도 변화해야 하는 것이다.

에어드롭, 개선된 멀티태스킹 기능 등에 대한 대응도 고민해야 할 부분이다. 

■64비트가 개발에 미치는 영향 

아이폰5S의 가장 큰 변화는 A7 프로세서다. 애플은 A7 프로세서가 이전 모델인 아이폰5보다 5배 빨라졌다고 주장했다. 그 이유로 64비트 기반 아키텍처가 지목됐다. 

애플은 A7 프로세서가 64비트를 지원함에 따라 더 고성능의 앱을 더 빠르게 구동할 수 있다고 강조했다. 그러나 개발자에겐 이 변화가 도전과 응전의 계기다. 

일단 새로운 앱을 개발할 때 아이폰5S에만 초점을 맞추면 크게 문제될 건 없다. 애초에 64비트 기반으로 앱을 설계하면 되기 때문이다. 문제는 하위 호환성이다. 앱을 아이폰5S 외에 다양한 아이폰에서 원활히 작동되게 하려면 기존 32비트 아키텍처도 동시에 지원해야 하는 것이다. 

또한, 애플은 아이폰5S만 내놓지 않았다. 아이폰5C도 같이 내놨다. 아이폰5C는 32비트 기반이다. 사실상 앱 개발 시 32비트와 64비트 모두 지원하는 방향으로 가야한다. 

애플은 개발도구인 X코드를 통해 32비트 앱을 64비트 앱으로 쉽게 전환할 수 있다고 주장했다. 과거처럼 유니버셜 바이너리를 지원한다고 한 것이다. 인피니티블레이드3 개발자가 2시간 만에 64비트 앱을 만들었다며 무대에 몸소 올라 설파하면서 애플의 주장에 힘을 실어줬다. 

하지만, 앱을 아이폰5와 아이폰5S 모두에서 구동하게 하려면, 동일한 앱이 두 개의 코드를 갖는 걸 감수해야 한다. 하드웨어야 OS 차원에서 알아서 판단해 32비트냐 64비트냐를 결정해 주겠지만, 기본적으로 앱의 전반적인 용량은 커지게 되는 것이다. 

문제는 여기서 그치지 않는다. 그동안 애플의 가이드라인에서 벗어나 개발해왔던 앱 개발자라면, 기존 앱을 64비트로 변환하는데 상당한 모험심을 다져야 할 것으로 보인다. 64비트 앱을 원활히 개발하려면, 애플에서 제시한 가이드라인을 엄격히 지켜야 하기 때문이다. 

가이드라인을 제대로 준수하지 않을 경우 사용자가 아이폰5S에 앱을 설치했을 때 원활히 작동하지 않는 현상이 벌어질 수 있다. 

그러나 A7 프로세서의 64비트 지원이 어떤 방식으로 이뤄지는지 확실치 않다. 일단 A7 설계의 기반이 되는 ARM 아키텍처의 경우 아직 64비트 지원 모델이 상용화되지 않았다. ARM홀딩스 측이 ARMv8 디자인을 공개했을 뿐 실물로 나오는 건 내년이기 때문이다. 애플이 기존 ARM 아키텍처에서 64비트를 구현했는지, ARMv8을 사용하는 지 명확해져야 하는 상황이다. 

오픈GL/EL 3.0 지원여부는 개발자의 실력 신장을 부추기는 요소다. 앱을 더 화려하고, 고성능으로 구현하고 싶다면 오픈GL 3.0에 대한 설계를 할 수 있어야 한다. 초심자와 숙련자의 개발성과가 명확해질 수 있다. 

■하나 더, 디자인 변화가 개발에 미치는 영향 

iOS7의 새로운 디자인은 앱 개발에도 영향을 미친다. 앱 내 표시물의 위치를 설정할 때 개발자가 원하는대로 표출될지 확실치 않다는 지적이 나오고 있다. 좌표의 변경을 자동으로 변환해주는 조치가 이뤄지지 않았다면, 개발자가 직접 수정해가며 확인해야 한다.

맥 및 iOS 앱 개발업체 오로라플래닛의 김정 대표는 "과거 앱이 스테이터스바(아이폰 화면 위쪽 시간이 표시되는 영역)와 내비게이션바(화면 아래쪽 앞으로, 뒤로, 보내기 등 단추가 나오는 영역)를 제외한 영역을 기준으로 만들어졌는데 전체 화면을 쓰게 바뀌면서 표시할 물체의 위치가 개발자 의도와 어긋날 수 있을 것 같다"고 말했다. 

UI 측면에서도 애플의 가이드라인 준수 문제가 나온다. 이른바 ‘날코딩’, 혹은 자유분방한 방식으로 iOS 앱을 개발해왔다면, 엄청난 고생을 감수해야 한다. 어찌됐든 애플의 지시에 복종하지 않았던 개발자들은 앱을 처음 설계하던 시점으로 되돌아가 코드를 일일이 들여다 봐야할 상황이다. 

■64비트가 테스트에 미치는 영향 

앱을 64비트와 32비트 모두 지원하게 하려면, 테스트를 위해 iOS 개발자가 아이폰5S와 이전 아이폰 모델 두 종류에 다 테스트해야 한다. 

대형 개발회사 입장에서 이는 큰 문제가 되지 않는다. 이미 아이폰5를 테스트용 기기로 사용해온 개발자라면, 아이폰5S만 있으면 실제 구동 테스트를 할 수도 있을 것이다. 

그러나 군소개발업체에게 이는 상당한 부담으로 작용한다. 새 앱 개발을 위해 새로운 아이폰을 구매해야 하는 상황이다.

출처 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=20130911142803

-----------------------------------------------------------------------------------------------------------------------
Pearl Fisher

전혀 낚시같지 않은 신개념 낚시게임이에요~


진주캐기 보러가기 클릭!