얼마전 아이폰 어플의 개발 요구사항중에 아이폰내 AppStore로 이동시키는 기능구현이 있었다. 이 글은 그것을 이해하는데 필요한 전반적인 기본 지식을 간단히 정리했다.

Apple iOS Applications의 URL 스키마
인터넷에서 링크는 URL 스키마(scheme)인 http, mailto, ftp, feed등을 이용해 종류가 구분된다. 이는 범용적인 예이다.  반면  iOS 링크는 이보다 더 특별한 기능을 가진다. 가령 "sms:전화번호"로 하면 문자메시지 보낼 수 있는 링크가 되며 "tel:전화번호"는 자동으로 전화를 걸 수 있다. 이런 특별한 스키마를 사용하지 않더라도 http를 그대로써서 필요하다면 관련 어플로 이동시키는 것도 가능하다. 가령, 구글맵의 경우 "http://maps.google.com/maps?q=검색위치" 형태로 접근하면 구글맵 어플이 열린다. 이이튠즈도 "http://itunes.apple.com"으로 시작하면 아이튠즈 어플이 실행된다. 유투브도 비슷하다. 

활용하는 방법은 어플상에서 iOS SDK에서 제공하는 [[UIApplication sharedApplication] openURL: ]을 이용하거나 사파리 주소창이나 링크에 위 사항을 적용하면 되겠다.

지금까지 설명한 URL 스키마들은 모두 iOS에서 기본으로 제공하는 것이다. 

다음 링크에는 iOS URL 스키마의 종류와 사용예를 잘 정리하고 있다.


Third Party Applications의 커스텀 URL 스키마
개발자는 커스텀 URL스키마를 만들 수 있다. 이는 어플만의 URL 스키마를 사용하면 가능해진다. 즉, URL스키마를 이용하면 자신이 만든 어플도 사파리에서 띄울 수 있게끔 유도할 수 있다는 것을 뜻한다.  

다음 글에는 커스텀 URL 스키마를 어떻게 어플에 적용하는가 보여주고 있다.


다음 소개하는 어플은 [[UIApplication sharedApplication] openURL:]을 활용한 어플로 URL 스키마를 테스트 해볼 수 있는 어플이다. (찾아봤더니 진짜 있네? ^^) 

Open URL : http://goo.gl/8n9mV



아이폰 어플에서 AppStore 검색페이지로 이동하기

이 글의 목적은 바로 아이폰 어플에서 아래 화면처럼 AppStore 어플의 검색페이지 이동하여 특정키워드로 검색하는 방법을 설명하는 것이다.  지금까지 URL 스키마를 설명했으니 이것도 URL을 통해 실행이 가능하다.


iOS 개발자 분들이라면 아래와 같은 URL을 이용하면 AppStore의 해당 어플 페이지로 이동한다는 것은 알고 있을 것이다.

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=406292683
http://itunes.apple.com/kr/app/id406292683

이것은 1개의 어플을 찾을때는 유용하다. 그럼 검색은? 특별히 우리 회사에서 만든 어플을 찾아내야 한다면?

http://itunes.com/회사명
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=회사아이디
http://itunes.apple.com/us/artist/회사명/id회사아이디 
item-apps://itunes.apple.com/us/developer/회사명/id회사아이디

등등..... 검색해서 다 해봤지만 전부 아이튠즈 어플로만 이동한다. 앱스토어에 이동해야하는데 말이다. 물론 맥에서는 잘 찾아간다. 단지 아이폰/아이팟터치에서는 아이튠즈와 앱스토어 어플이 분리되어 있는게 문제인 것이다.

하루 걸러서 검색으로 찾은 결과 방법을 알아냈다.
이것도 결국 URL을 이용하면 된다. (맥 사파리나, 아이폰 사파리, [[UIApplication sharedApplication] openURL: ] 을 이용해 접근하면 확인할 수 있겠다.)


마지막 term 파라미터에 회사명만 적어주면 된다. 

아~ 이것을 알아내느라 몇시간을 소비했다. 
좋은 팁이였길 바란다.

글쓴이 : 지돌스타(http://blog.jidolstar.com/751)








+ Recent posts