- 위치기반 어플리케이션은 Augment Reality과 결합해서 2010년에는 더 많은 어플리케이션이 나올 것으로 보임.
- Mashable의 2010년 LBS 예측을 봐도 느끼지만 모든 회사들이 서로 선점하려고 할 것이고 완전히 모바일 깊숙히 자리잡을 듯 하다.
2.4. Application Cache and DB
- App Cache는 원하는 리소스를 오프라인으로 선언하면 됨.
CACHE MANIFEST로 선언함. cache.manifest 파일에 내용을 적으면 됨.
- Local DB는 Google IO 개념과 거의 동일 (역시 구글!!)
var db = window.openDatabase("NoteTest", "1.0", "Example DB", 200000);
db.transaction(
- 이로 인해 WebApplication의 weak point였던 사용자 데이터 Load/Save가 이제 가능해짐.
2.5. Web workers
- A more powerful web = a more power ful app.
- Javascripts가 백그라운드로 동작한다? -> Web Workers
var worker = new Worker('worker.js');
worker.onmessage = function(event) {
console.log('Results: ' + event.data);
}
// workers.js
function findPrimes() {
// ...
}
아래 HTML5 소개 동영상을 보면 더 자세히 설명하고 있다.
3. HTML5의 지원군들
현재 WebOS+WebApplication은 iPhone, Android의 OS+NativeApps과 비교해서 아래와 같은 단점이 있어 장점이 잘 보이지 않는다.
- 느리고 무겁다
- UI가 플랫폼에 최적화되어 있지 않다
- Interactive하지 않다
- Offline에서 동작하지 않는다.
하지만, HTML5가 대부분의 단점들을 극복하고 있다.
3.1. Web OS
하지만, HTML5+α라면 달라질 수 있다. 그 알파(α)는 바로 WebOS 혹은 WOA(Web Oriented Architecture)가 될 수 있다.
위의 그림은 현재 기존 "HTTP+HTML"이라는 Web의 형태에서 얼마나 많은 기술적, 문화적 발전이 있어왔는지를 잘 보여주고 있다.
이러한 구조는 Google Chrome 이나 Palm WebOS가 하나의 예를 보여주고 있다고 할 수 있다.
그런데 어찌됐든 느린 단점은 극복될 수 있을지 잘 모르겠다. -_-;
3.2. Mobile Web
HTML5는 MobileWeb환경에서 더욱 빛을 발할 것으로 보인다.
이유는,
- Mobile 환경은 플랫폼이 매우 다양하다. 물론, 이 다양성으로 시장이 커지고 있지만 MobileWeb은 어떤 플랫폼이든 관계없이 탑재된 브라우저가 지원된다면 MobileWeb 기반 서비스들을 사용할 수 있다.
- Mobile 환경 디바이스들은 PC 등의 서브로 사용되든지 아니면 동시에 사용되지 완전히 단독으로 사용한다고는 아직까지 볼 수 없다. 따라서, 다양한 환경의 디바이스들을 사용하는 사용자들은 자신의 데이터 동기화나 동일 UI를 선호할 것이다. 즉, MobileWeb은 그런 점에서 Native에 비해 우세하다 (사실, 정말 우세한건지는 잘 모르겠다. 왜냐면 Native도 이미 그런점을 다 극복하고 있기 때문에...)
그 중에서 Fennec (Mobile Firefox)브라우저가 올해 공식 출시될텐데 대략 아래와 같다 (동영상 참고).
- Nokia가 주도하는 Maemo 플랫폼에 탑재되고 N900 출시.
- HTML5의 offline storage 지원
- HTML5의 Javascript, including Javascript access to device capabilities like geolocation, camera, and calling
3.3. Cloud Computing / SaaS (Software as a Service)
클라우드 컴퓨팅하면 구글이다.
Search, Gmail, Docs, Reader, Map, Picasa 등 구글의 GMS(구글 모바일 서비스)들은 모두 구글의 클라우드 서비스 안에 놓여있다. 즉, 온라인 상태에서 동작하는 어플리케이션들이다.
하지만, HTML5의 "Application cache and DB" 기능으로 인해서 오프라인에서도 동작이 가능하게 된다.
UCC (User Created Content) UCA (User Created Application) 예전에 "Web 2.0 and RIA"라는 발표 자료를 만들 때, UCA라는 약어를 만들어 봤었습니다.
UCP는 User Created Phone? 약간 오바스럽긴 하지만, UCP라는 약어도 머지 않아 생길 듯...
예전 부터 Windows나 Symbian 등의 스마트 폰에서는 그것을 사용하는 사용자가 직접 어플리케이션들을 만들어서 사용하고 있습니다.
아래의 2가지 또 다른 예를 보시죠.
1. iPhone Dev Camp
이 모임은 아이폰에서 웹을 좀더 잘 이용하고 경험할 수 있도록 다양한 정보들을 공유합니다. 위의 로고를 클릭해보면 아시겠지만 다양한 사람들이 모두 아이폰을 들고 기념사진을 찍고 있습니다.
여기에 모인 사람들은 완전히 자발적으로 모인 사람들이고 주로 웹 개발자(서버-사이드겠죠?)들이 주최가 되어서 모인 것으로 보이고, 아이폰을 위한 웹 디자인이나 웹 표준에 대해서 활발하게 논의를 하고 있습니다.
즉, 아이폰이 모바일 웹 2.0의 플랫폼이 될 것이기 때문에 아이폰을 기준으로 웹 페이지 혹은 웹 어플리케이션을 만든다는 것입니다.
아시겠지만 아이폰에는 WebKit 기반의 사파리 브라우저가 탑재되어 있습니다. 아이폰을 써보지는 못했지만 웹 표준을 지키고있으며, Ajax와 같은 최신 기술들도 가능합니다. 이러한 웹 표준들을 다른 모바일 브라우저에 탑재되고 있지만 웹 개발자들이해당 모바일 브라우저 혹은 해당 모바일 폰에 맞게 작업하는 일은 거의 드물었습니다 (IE, FF에 맞추기도 버거우니까요).
이 모임에서는 아이폰이 키보드가 없이 터치 UI이기 때문에 페이지 내의 버튼이나 링크를 더 크게 만들어야 된다는 등의 주의 사항까지 논의하고 있으며, 페이지 태그 속성까지도 언급하고 있습니다.
이러한 모임은 아이폰이 출시되는 곳에서는 계속 활성화될 것입니다.
여기에서 우리나라의 모바일 폰 회사와 차이점을 알 수 있습니다. 아이폰은 출시 되자마자 모바일 웹의 표준으로 전세계에 있는 웹 개발자들의 기준이 되고 있습니다. 즉, 모바일 웹 개발자들은 이 아이폰을 플랫폼 삼아서 서비스 개발을 할 것입니다. 결국 또 다른 웹 플랫폼이 되는 것입니다.
2. Open Linux Phone
해당 기사를 읽어보시면 폰자체만 파는 것이아니라 마치 개발자용 시료(?)처럼 개발을 위한 키트도 제공됩니다. 모토로라에서 리눅스 폰이 나왔다고 들었지만 이처럼 완전한 오픈소스로 출시된 것은 아닐 것입니다. PC에서 리눅스 매니아들에게는 이제 모바일 폰의 어플리케이션들을 개발할 때가 온 것 같네요.
저는 위의 2가지 사례를 보고 모바일 폰 제조회사가 나가야할 길은 개방과 표준이라고 생각합니다. 폐쇄적인 모바일 폰 소프트웨어는결국 회사 내의 개발자들만의 것입니다. 개방과 표준의 시대에는 디자인, 코딩, 디버깅 모두 개방해야 합니다.