PhoneGap(Cordova) 외부 링크(a link) 새창으로 열기
서론
PhoneGap을 사용하여 크로스플랫폼 하이브리드 앱을 개발할 때, PhoneGap은 SDK의 WebView 기반으로 동작하는 어플리케이션으로 WebView 에 링크가 있을 경우 PhoneGap 내부의 URL은 해당 페이지를 이동하지만, 만약 외부 URL이 포함된 경우 링크를 터치하면 PhoneGap 하이브리드 앱에서 외부링크로 location이 변경되어 버린다. 이 문제를 해결하기 위해 PhoneGap 내부에서 외부 링크가 포함되었을 때 처리하는 방법에 대해서 소개한다.
Continue ReadingDropbox를 이용하여 서버없이 iOS 테스트용 앱 배포하기(Ad-Hoc distribution)
서론
iOS 개발을 하게 되면 개발자들은 보통 자신의 맥에 아이폰을 USB로 연결해서 디바이스 디버깅을 한다. 하지만 개발이 완료후 베타 테스트를 진행할 때는 사내 사원들이나 가까운 지인에서 설치하여 테스트를 진행하는 경우가 많다.
Apple에서는 임의의 테스트 사용자가 앱을 테스트를 진행할 수 있게 provisioning file에 디바이스를 등록하여 등록된 기계에는 앱 스토어에 앱을 설치하지 않고도 테스트할 수 있게 허용하고 있다. 좀 더 편리하게 각각 디바이스를 USB로 연결해서 설치하는 것이 아니라 웹을 통해서 간단하게 다운로드 할 수 있는 테스트용 앱 배포 기능을 제공하고 있는데 이것이 바로 Ad-Hoc distribution 이다. Ad-Hoc에 관한 자세한 설명은 Apple의 공식 문서를 참조하길 바란다.
이 포스팅에서는 iOS 앱을 개발 후 Ad-Hoc으로 앱을 배포하는 방법을 설명한다.
Continue Readingtumblr.js를 이용하여 소셜 블로그 텀블러(tumblr) API 사용하기
서론
소셜블로그의 대명사 Tumblr는 미려한 디자인과 막강한 블로깅 기능 뿐만 아니라 reblog, sharing 기능이 매우 강력해서 국외 개발자나 미디어 생산자 또는 일반 사용자들이 즐겨 사용하는 블로그이다. 현재 Tistory 기반으로 블로깅을 하고 있는데 이것을 Tumblr로 이전할까 생각을 여러번 한다. 수 많은 블로그 서비스가 현재 존재하지만 티스토리 블로그를 선택한 이유는 다음과 같다.
- 안정성 : 개인 서버를 사용해서 블로깅을 하면 여러가지 이유로 다운타임이 잦아지기 때문에 다운 타임 없이 운용되는 블로그 호스팅 서비스를 찾았다
- 스킨의 자유성 : 정해전 템플릿만 사용하는 블로그는 사용에 제한이 많다. 실제 네이버와 다음과 같은 포털 블로그는 스킨을 자유롭게 편집할 수 없기 때문에 제한된 컨텐츠 생산만 할 수 있다. 예를 들어, 외부 JavaScript나 CSS를 사용할 수 없기 때문에 정적인 블로깅만 생산해 낼 수 있다. 외부 JavaScript나 CSS를 사용할 수 있는 강점을 티스토리와 텀블러는 가지고 있다.
- API 지원 : 티스토리는 meta blog와 API를 지원하고 있다.
- 용량제한 : 블로그 호스팅 서비스들은 대부분 파일 용량을 제한하고 있었다. 블로그에 이미지 업로드를 많이 하는 편인데 제한된 용량을 가지고 지속적인 블로깅을 하기는 쉽지 않다고 생각해서 티스토리를 선택했다
티스토리를 선택한 이유는 위와 같은데 대부분을 tumblr가 만족시켜주고 있고 티스토리에서는 없는 reblog 기능 있고 텀블러는 멀티블로그 기능이 tumblr가 더 강력하다. 또한 소셜 플러그인들이 내장되어 있고 API 지원이 강력해서 써드파티 서비스를 만들어낼 수 있기 때문에 현재 tumblr로 블로그를 이전할까 여러차례 고민하고 있다. 그럼 어떻게 Tistory의 글을 Tumblr로 이전할 수 있을까 고민하게 되었는데 방법은 tumblr API를 사용해서 bulk import를 하기로 결정했다. 그래서 tumblr API를 사용하는 방법을 테스트해보기로 했다.
현재 우리 연구소에서 메인 언어는 Java 이지만 모바일 서비스를 연구하고 개발하는데는 Node.js를 사용하고 있기 때문에 JavaScript 기반으로 만들고 싶어서 Tumblr가 공식적으로 지원하는 tumblr.js 라이브러리를 사용해서 tumblr API를 사용하는 방법을 소개하려고 한다.
Continue ReadingIonic framework를 이용하여 하이브리드 앱 개발하기 - 2. 탭메뉴, 슬라이드메뉴
서론
모바일 앱에서 가장 많이 사용하는 UI는 탭 메뉴와 슬라이드 메뉴이다. 만약 네이티브앱으로 Objective-C나 Java로 이런 UI를 만든다는 것은 꽤 복잡하고 어려운 일이 될 것이다. 하이브리드 앱은 HTML,CSS,JavaScript를 사용하여 웹 개발 기술로 UI를 만들 수 있다. 더구나 Ionic과 같은 프레임워크를 사용하면 built-in 되어 있는 템플릿을 사용하여 아주 간단하게 탭 메뉴와 슬라이드 메뉴를 제작할 수 있다. 이 포스트에서는 Ionic를 사용하여 이것을 개발하는 방법을 소개한다.
Continue ReadingIonic Framework를 이용하여 하이브리드앱 개발하기
서론
하이브리 앱은 이상적인 이론이다. 혼자서 iOS와 Android 앱을 동시에 개발하면서 개발하는 앱이 많아지면 많아질수록 유지 보수 부담은 점점 더 증가하게 되고 두가지 플랫폼을 고려해서 개발해야하기 때문에 새로운 프로젝트를 맡게 될 때마다 개발 기간에 대한 스트레스는 계속 쌓이게 되는것 같다. 성능과 개발비용, 유지보수에 대한 비용을 고려해볼때 개인 개발자가 한명에 두가지 플랫폼 (하지만 안드로이드에 들어가게 되면 결코 두자기 플랫폼이라고 말하기 힘들다. 이젠 곧 iOS 디바이스도 마찬가지겠지만..)을 완벽하게 커버하기는 비용은 만만치 않다. Appspresso를 연구하면서 하이브리드 연구를 계속 해왔지만 이젠 더이상 업데이트를 지원하지 않는 하이브리드 환경을 가지고 개발할 수 없게 되었다. 차선책으로 PhoneGap(Cordova)를 이용해서 Sencha Touch를 이용해서 개발하려고 해봤지만 Sencha Touch의 광범위한 파일과 풀 JS 스택으로 개발해서 UI를 만들어내기란 또한 쉬운 것이 아니였다. 이렇게 하이브리드 앱에 대한 연구를 계속 진행하는 동안 AngularJS라는 새로운 Web Application 라이브러리가 등장했다. 이것은 Sencha 의 복잡한 JS 풀 스택을 Two way Binding을 이용해서 HTML과 JavaScript의 개발을 매우 편리하게 해주어 Sencha Touch의 Store라는 복잡한 개념을 해소해 주었다. 다시 말해서 UI를 익숙한 HTML로 구현하고 MVC(또는 MVVM)로 분리해서 개발 할 수 있는 환경을 만들어 낼 수 있었다. 하지만 이것을 모바일에 하이브리드하게 개발하기 위해서는 크로스 플랫폼으로 빌드하기 위해서 여전히 PhoneGap(Cordova)를 이용해서 개발해야했다. 우리는 HTML을 개발하기에는 익숙했지만 스마트폰에 최적화 된 UI를 디자인하거나 HTML, CSS를 개발하는 전문 인력이 없었다. 그래서 우리는 스마트폰에 최적화된 UI를 제공해주는 UI 프레임워크가 필요하다고 생각했다. 그러면서도 크로스 플랫폼 개발을 할 수 있고, HTML5의 부족한 API를 네이트브 API로 보완할 수 있는 프레임워크를 찾고 있었다. 그렇게 AngularJS와 PhoneGap에 대한 연구를 진행하고 있을 때 ionic framework를 간단하게 소개하는 twitter의 글들을 보면서 ionic에 관련된 연구를 진행하게 되었다.
Continue Reading