Appspresso를 사용하여 하이브리드앱 개발하기 - 1.iOS와 Android 앱 빌드
서론
iOS와 Android의 앱을 한 사람이서 개발하려면 Objective-C와 Java 언어를 익혀야한다. 그리고 두가지의 앱을 동시에 똑같은 인터페이스를 만들기 위해서 쉽게 생각해서 iOS는 Inteface Builder를 사용해야하고 Android 는 XML 메타 프로그래밍을 해야한다. (현재는 Android 도 Xcode의 Interface Builder 만큼은 아니지만 Drag 하여서 인터페이스를 설정하는 기능을 제공하고 있는 것으로 안다.)
saltfactory가 연구활동을 하는 곳, 하이브레인넷 부설 연구소는 하이브레인넷( http://www.hibrain.net)의 부설 연구소로 연구원 수가 많지가 않다. 이러한 이유로 두가지 디바이스르 동시에 개발한다는 것을 혼자 처리하기에는 무리가 있다고 판단하여 UI 개발을 최소한으로 줄일 수 있는 방법을 고려하다가 하이브리드 앱(Hybrid app)을 생각하게 되었다. Hybrid 앱은 웹 개발 기술과 네이티브 게발 기술을 동시에 사용하여 개발하는 방법을 말하는데 쉽게 C나 java와 같은 언어와 HTML과 Javascript나 웹 자원과 서로 상호 연결하여 개발하는 것이다. 이전 아티클 iPhone에서 하이브리드 앱 개발을 위해 Javascript와 Objective-C의 상호 호출하는 방법 라는 글에서 Javascript와 Objective-C의 상호 호출하는 방법에 대해서 포스팅되어 진것을 확인할 수 있다. 이렇게 Hybrid한 기법을 좀더 빠르게 개발할 수 있는 프레임워크를 찾게되었는데, KTH에서 지원하는 Appspresso와 Adobe에서 지원하고 있는 Phonegap 도입을 생각하게 되었다.
Continue Reading구형 iPod Shuffle 2nd 맥에 인식시키기
서론
Apple의 인기는 iPod의 인기로 부터 시작되었다고 말해도 과장된 이야기가 아닐 것이다. 아이폰이 출시되기 전에는 iPod을 갖고 싶어서 애플 사이트를 몇번이나 찾아갔는지 모른다. 그 당시 iPod classic은 국내에서 출시되었던 mp3 플레이보다 고가였기 때문에 많이 망설였다. 그러던 중에 생일날 연구실에서 iPod Shuffle (2nd)를 선물 받게 되었다. 이 때만 해도 iPod shuffle 2nd는 초소형 mp3라는 Hot issue로 사람들의 관심을 한몸에 받고 있었다. iPod shuffle 2nd 는 전에 있던 shuffle 보다 크기를 완전히 줄여서 휴대성을 극대화 시켰고 하나의 패션 아이템으로 만들기도 했던 제품이다.
Continue ReadingNSPredicate를 이용하여 배열안의 내용검색하기
서론
데이터베이스를 이용하면 복잡한 데이터를 구조적으로 잘 저장하고 SQL이라는 대화형 언어로 원하는 데이터를 쉽게 가져올 수 가 있다. 상대적으로 파일 시스템에서 원하는 내용을 검색하기란 그렇게 쉬운 작업이 아니다. 그래서 우리는 iPhone에서 SQLite를 이용해서 데이터를 저장하고 검색하는데 사용하고 있다. 이러한 SQLite, XML의 구조적인 형태의 데이터 저장을 iPhone이나 Cocoa 프로그램에 사용할 수 있게 CoreData 라는 프레임워크를 이용해서 접근할 수 있는데, 이때 SQL의 조건절을 사용하듯, NSPredicate를 이용하여 원하는 데이터를 가져올 수 있게 필터링할 수 있다. (이후에 CoreData에 대한 포스팅을 따로 준비할 예정이다.) https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFetching.html 에서 애플 개발자 다큐먼트에 공식적으로 공개한 NSPredicate의 예제를 확인 할 수 있다.
Continue ReadingiOS 개발 할 때 iOS용 framework를 만들어서 배포하기
우리는 이전의 아티클에서 iOS 개발 할 때 정적 라이브러리(static library)를 사용하여 팀 프로젝트 협업하기 라는 제목으로 정적 라이브러리를 사용해서 코드 재사용성을 높이고 팀 프로젝트나 협업을 할 수 있는 방법을 학습했다. 정적 라이브러리 프로젝트를 생성하여 개발하고 그 코드를 재사용하기 위해서 우리는 프로젝트에 정적 라이브러리 프로젝트를 추가하여 build settings에 헤더 파일을 추가했다. 개발자에게 이미 만들어진 라이브러리와 리소스 등을 좀더 근사하게 UIKit.framework나 MKMap.framewrof 와 같이 배포하여 사용되기를 바랄 수 있다. 하지만 Cocoa Touch 프로젝트에서는 framework를 위한 프로젝트를 생성할 수 없다.
Continue ReadingiOS에서 AES256으로 데이터 암호화/복호화하기
서론
iOS는 보안상 자신의 앱에서 접근할 수 있는 Sandbox를 제외하고 접근하면 앱 리뷰에서 reject를 당한다. 보안상 앱이 접근할 수 있는 Diectory는 제한이 되어 있다. 아래 그림은 아이폰 앱에서 접근할 수 있는 Sandbox를 그림으로 표현한 것이다. Documents는 iCloud가 서비스가 오픈되고 나서 부터는 백업이 가능한 디렉토리로 임시 파일을 저장하면 reject의 사유가 된다. Library 안의 Caches 디렉토리에 파일을 저장하면 iCoud 자동 백업 목록에서 제외하여 저장할 수 있도록 되었다.
Continue Reading