기본 콘텐츠로 건너뛰기

2009의 게시물 표시

iPhone vs Android

구글 트랜드에서 iPhone에 대해 검색한 결과이다.
















2007년 이후 꾸준히 증가세를 보이고 있다. 아래는 안드로이드에 대해 검색해본 결과이다.

우와! 2008년 이후 증가세가 iPhone을 앞서는 것 같다. 그러나...

두 키워드를 함께 비교해보면 그 스케일이 엄청 차이가 있다는 사실을 알 수 있다. 단연코 iPhone의 승! 이 결과에서 유추해 볼 수 있는것? 일반 사용자 입장에서는 안드로이드라는 키워드가 iPhone에 비해 별로 알려지지 않았다는 것?

또한, 지역별 키워드 검색 순위를 보면 Android의 경우 주로 대만이나 한국과 같이 디바이스를 직접 개발하는 국가에서 1, 3위를 차지하고 있다는 사실이 흥미롭다. 이에 비해 iPhone은 홍콩, 싱가폴, 스위스 등의 순이다.

마지막으로 한국에서의 iPhone 검색 트랜드는 어떨까?

2009년 말 폭발적 증가! 요즘 주변에 온통 iPhone이다 (물론, 내 직업과 관련이 있겠지만서도...)

Opera Mini 5 beta

J2ME 어플리케이션이 오페라 미니 수준으로만 작성된다면 굳이 안드로이드나 iPhone과 같은 스마트폰 환경이 아니어도 충분히 만족스러운 사용자 경험이 가능할 것으로 보인다. 한국 사용자들은 소니에릭슨의 Xperia 혹은 Nokia 휴대폰에서 설치하여 사용이 가능하겠다. 그나 저나, 삼성이나 LG의 국판 feature phone들은 Java ME도 지원하지 않는 바람에 이런 좋은 프로그램도 사용할 수 없다니. 안타깝다.

http://www.opera.com/mini/next/

위 오페라 브라우저 홈 페이지를 참고하기 바란다.

iPhone의 몇가지 기능들

iPhone 사용과 관련된 몇 가지 tip을 정리해보자.

1. 대문자 입력 caps lock 설정
입력기에서 연속으로 대문자 영어를 입력하기 위해서는 우선 설정을 변경해야 한다.

설정 / 일반 / 키보드 / Caps Lock 활성화 옵션을 on 시킨다.

입력기 화면에서 Shift (위 방향 화살표)를 더블 클릭한다. 그러면 배경 색이 파란색으로 바뀌는데 이 상태에서는 영문 대문자를 연속해서 입력이 가능하다.

2. 숫자나 특수 문자 한번에 입력 하기
영문/한글 입력 중 숫자나 특수 문자를 입력하려고 하면 매번 모드를 변경하고 입력 후 다시 모드를 변경하는 번거로움이 있다. 딱 한개의 숫자만 입력할 때도 이런 식으로 입력을 하려고하면 무려 3번의 키 입력이 필요하여 매우 불편하다.
이런 경우 "123" 키를 누른 상태에서 손을 띄지 않고 끌어서 숫자를 입력한 후 손을 띠면 다시 그전 입력기 상태로 변환되어 불필요한 모드 변경을 피할 수 있다.

3. 입력 undo/redo
입력한 글자가 잘못된 경우 바로 전 입력을 취소하려면 iPhone을 가볍게 흔들어주면 된다. 취소한 입력을 다시 복귀하려면 다시 한번 가볍게 흔들어주면 된다.

4. 음성 인식 전화 걸기
iPhone의 Home 버튼을 3초 정도 누르고 있으면 음성으로 조절하기 화면이 나타난다. (혹은, 이어폰의 클리커를 누르고 있어도 된다.) 전화하려는 상대방의 이름을 다음과 같이 말한다. - 홍길동 휴대폰 통화 - 주소록에서 검색되어 통화를 시도한다. 단, 주변에 소음이 있는 경우는 잘 인식이 안되니 주의

나도 iPhone

나도 iPhone 대열에 합류했다.



내 iPhone으로 찍은 상자 모습 되겠다 ㅋㅋ

기존에 사용하던 iPod의 소프트웨어와 큰 차이가 없어 사용하는데 불편함은 전혀없고 몇 가지 추가적인 소프트웨어 및 기능들에 대해서 정리해봐야겠다.

1. 전화 기능
한국 폰에서 매우 편리하게 사용했던 초성으로 검색해서 전화 걸기 같은 기능은 제공되지 않는다. 연락처에서 full name이나 회사명으로 검색이 가능하다.
연락처에서 개인 별로 벨소리를 지정할 수 있으며 국내 폰의 단축 번호와 같은 기능은 없는 것으로 보인다. 단, 즐겨 찾기에 등록하면 쉽게 전화를 걸 수 있으니 단축 번호 대신 사용하면 될 것 같다.
최근 통화 목록에는 전체 목록과 부재중 목록을 따로 볼 수 있으며 시간 순으로 전화 걸고 받은 정보를 보여준다. 사람 이름 옆에 전체 전화 통화 횟수를 보여주는 기능도 있다.
음성 사서함을 선택하면 자동으로 KT의 음성사서함에 연결된다. 한국 폰에서는 볼 수 없었던 특이한 기능이다. (미국 친구들은 음성사서함을 잘 쓰는 문화라 UI가 이렇지 싶다.)

통화 중에는 스피커 폰 기능과 발신 측의 소리를 끄는 기능을 손쉽게 사용하도록 배치하였으며 통화 대기나 3자 통화 등의 기능도 손쉽게 사용할 수 있어 보인다.

2. 메시지
SMS와 MMS 모두 아주 사용하기 편한 UI를 갖추고 있다. 기존 폰과 달리 각 사용자 별로 SMS 송수신된 내용을 마치 메신저 UI와 유사하게 보여주어 사용하기 편하고 재미있다.
MMS도 바로 사진이나 동영상을 찍어 보내는 기능이 매우 사용하기 편리하다.

기존에 SMS/MMS를 서로 주고 받은 히스토리가 있으면 메신저처럼 바로 바로 전송이 가능하여 암만해도 기존보다 더 SMS/MMS를 사용하게 만들지 싶다.

3. 카메라
카메라 UI는 군더더기 없이 그냥 찍는 기능에 충실하다. 화면에 터치를 하면 focus를 바로 그 쪽으로 이동시킨다. 찍은 사진은 이메일, MMS 등으로 전송이 바로 가능하고 연락처나 배경화면으로 지정할 수 있다.
동영상도 사진과 동일한 기능을 제공하며…

블랙베리의 대약진

블랙베리의 성장세가 대단합니다. 물론, 요즘 뜨거운 열풍을 몰고있는 아이폰이나 안드로이드에 비하면 덜 관심을 받는 것 같지만 미국 시장에서의 성장세는 눈여겨 볼 만한 수치입니다.

http://www.engadget.com/2009/12/18/blackberry-shipments-break-record-in-q3-rim-profits-jump-59-per/

블렉베리는 Java ME 기반의 S/W 개발환경을 제공하고 있고 단일 벤더에 의해 제공되는 환경이라 iPhone이나 Android에 비해 나름의 장점이 있다고 생각되네요.
Objective-C 등의 새로운 언어를 배울 필요 없이 Java로 개발 가능Android와 달리 여러 디바이스 벤더 별 fragmentation 문제가 심각하지 않음
Symbian 기반의 휴대폰에서도 Java ME를 이용한 소프트웨어 개발 및 판매가 가능하므로 모바일 소프트웨어 업체 입장에서는 iPhone, Android 뿐이 아니라 Java ME를 이용하여 수익을 창출할 수 있는 방법에 대해서도 관심 가지고 연구해 볼 가치가 충분합니다.

Java ME 어플을 개발해서 수익을 올릴 수 있는 app store를 나열해 보았습니다. 참고하세요.
Symbian Horizon - http://horizon.symbian.org/BlackBerry App World - http://na.blackberry.com/eng/services/appworld/?GetJar - http://www.getjar.com/Samsung Mobile Innovator - http://innovator.samsungmobile.com/

WebGL demo on Nokia N900

WebGL이라고 들어보적 있으신지 모르겠다. 이름만 봐도 살짝 감이 오는데 바로 Web 브라우저에서 3D 그래픽을 지원하기 위한 스팩이란다. JavaScript를 이용하여 OpenGL ES 2.0 API를 사용할 수 있게 바인딩해준다고 하는데 참, Web 프로그램으로도 별거다할 수 있다.

아직, 상용화 단계는 아니지만 FireFox, WebKit의 Nightly Build 버전에 이미 구현이 되어있다고 한다. 이런 최신 기술을 데스크탑 PC도 아닌 Nokia N900 휴대폰에서 잘 시연이 된단다.

Googling을 해보니 Nokia N900은 Maemo를 탑재한 mobile computer란다. ARM의 Coretex A8 CPU를 장착하고 있는데 자세한 스팩은 웹페이지를 참조하시라.

내친김에 N900에 대한  promo 영상도 감상해보자.

드디어 iPhone

기다리고 기다리던 iPhone이 드디어 국내 출시를 목전에 두고 있다. 그동안 거의 망가진 휴대폰으로 버티다 못해 결국 Windows Mobile 폰을 구매한지 2달여 만에 iPhone이 출시되는 것이다. (억울하다...)

그동안 내 주변에 iPhone을 사리라 이야기하던 그 많은 사람들이 모두 iPhone을 구매할지 궁굼하다. 한국 시장에서 어느 정도의 성공을 거두어 SK가 iPhone을 내친 오만함(?)에 답할 수 있을까?
아니면 국내 제조사와 SK의 협공에 별반 성공을 거두지 못하고 한 때의 소란스러운 해프닝으로 끝날 것인가?

이 궁굼함에 대한 답을 이제 한 2~3달 정도 지켜보면 확인해 볼 수 있을 것이다. 개인적으로는 iPhone이 국내에서도 성공을 거두어 한국의 휴대폰 생태계에 발전적인 충격을 줄 수 있도록 희망하는 바이다.

iPhone 3GS의 광고를 몇 편 감상해보며 나의 아픈 마음을 달래보도록 하자... 휴...











한국 LiMo 진흥협회 발족과 LiMo에 대한 단상

리눅스 기반 개방형 모바일 플랫폼 리모(LiMo) 확산을 위해 국내 주요 제조 업체 및 이동통신 서비스 업체가 참여하는 한국리모진흥협회(가칭) 창립이 추진된다.

KT, SK텔레콤, LG텔레콤, 삼성전자, LG전자, 한국전자통신연구원(ETRI), 지식경제부는 12일 협회 창립을 위해 협력 양해각서(MOU) 조인식을 가졌다.

(이상 ZDNet Korea 기사 중에서 ...)


LiMo (Linux Mobile의 약자) 진흥협회(가칭)가 만들어진다고 한다. 일단, LiMo와 관련된 개발업무를 경험하고 있는 개인으로서 반가운 뉴스임을 밝혀두고 이 글을 시작하려고 한다.

LiMo에 대해 전혀 지식이 없는 분들을 위해 간단히 소개를 하고 넘어가도록 하자. LiMo는 아래 그림에 보이는 바와 같이 여러 유관 회사들이 참여하여 만든 컨소시엄이다. Google의 OHA와 비슷하다고 볼 수 있겠는데 한국의 삼성전자가 founder member로 참여하고 있다는 것이 흥미로운 점이다.



LiMo 컨소시엄은 Linux 운영체제를 기반으로 하는 LiMo Foundation Platform을 제공한다. (아래 그림 참고) 비록 LiMo 홈페이지에서는 이를 Open Source로 정의하고 있으나 OHA가 제공하는 Android 처럼 모든 개발자들이 접근 가능한 것은 아니고 LiMo 협의체에 가입한 회원사만이 소스 코드를 제공받을 수 있는 제한된 형태의 Open Source 모델이다.

         (from www.limofoundation.org)

흥미롭게도 근래 화두가 되고 있는 여러 모바일 운영체제 - iPhone, Android, webOS 등 과는 달리 LiMo platform은 주로 핸드셋 개발 업체가 휴대폰 소프트웨어를 자체 개발하기 위해 사용하는 플랫폼으로서의 효용가치를 더 중시하는 것으로 보인다. 그 이유로는 LiMo Foundation이 2007년에 출범하여 이미 2년이 지난 시점인데도 application 개발을 위한 SDK와 개발 툴, API 문서등이 제대로 제공되지 …

Samsung Bada (바다)

삼성이 바다라는 독자 모바일 소프트웨어 플랫폼을 출시한다고 합니다. 12월이 되면 공개한다고 하니 무척 궁굼합니다. 하드웨어는 훌륭하나 소프트웨어는 한수 접고 들어간다고 생각하던 삼성이 어떤 제품을 보여줄지 기대반 걱정반이네요.

삼성 Bada 사이트에 보면 많은 정보는 제공되고 있지 않지만 일단 다음과 같은 것을 유추해 볼 수 있습니다.
 스마트폰 운영체제는 아니다. 즉, 안드로이드나 심비안 혹은 LiMo와 같은 오픈 운영체제 기반의 솔루션은 아닌 것으로 보입니다.그렇다고 삼성이 자체 개발한 운영체제도 아니다. 홈 페이지에서 제공하는 정보 중 어디에도 운영체제라는 언급은 없습니다. 단지, 플랫폼이란 글귀가 보이네요.Visual Design을 강조한것으로 보아 Web 기반 기술이 사용될 수 있지 않을까 합니다. HTML, CSS를 사용한? 요즘 W3C Widget이라고 많이들 사용하고 있죠개발 언어는? 자바는 분명 아닐 것 같고. C 언어 기반 아니면 Java Script를 사용할 것으로 생각됩니다. IDE는 아마도 Eclipse 기반이겠죠?
C 기반으로 open application platform을 지원하려면 꽤나 많은 문제점이 발생할 수 있으므로 아마도 Java Script 기반의 Widget 개발 환경이 아닐까 상상해봅니다. 요즘, Vodafone, Verizon등 많은 캐리어들이 W3C Widget을 밀고 있는 분위기이죠. 기존 휴대폰에 탑재된 브라우저에서 이미 W3C Widget Runtime을 제공하므로 삼성의 추가적인 API를 좀 더 확장하면 손쉽게 개발 플랫폼으로 포장할 수 있을 것 같습니다.

물론, iPhone과 같이 full native C (Objective C 말입니다) 개발 환경을 제공할 수 있다면 정말 대환영입니다! :)

UPDATE: 댓글에 의해서 알게된 사실입니다만 관련 개발자 분의 말씀으로는 C++ 기반의 개발 환경이라고 합니다. Olleh !

NOTE: 완전 개인적인 상상에 기반한 글입니다. 오해 없으시길.

Sun is hiring now (다시 한번)

한국 Sun에서 아래와 같이 소프트웨어 엔지니어를 채용 중에 있습니다.

http://www.sun.com/corp_emp/search.cgi?loc=KR&req=KR0200638&u=&p=
에서 온라인으로 이력서를 접수 하실 수도 있고 저에게 메일로 연락주셔도 좋습니다.

Charter:
Responsible for providing engineering service for the internal/external projects and participate in projects porting CLDC/CDC to customer devices. Job requires good engineering skills and customer facing skills.

Scope:
Embedded Software Engineer position responsible for development on J2ME and focusing on JVM and optional profiles porting to different mobile platforms such as Windows Mobile, Linux and other platforms. Also, this position is responsible for facing customers, providing on-site supports and good interpersonal cooperation skills in cross cultural groups.

Requirements
-------------------
Experience/Education:
- Typically requires a BS/MS in computer science from University.
- At least 3 years (up to 7 years) as a Software Engineer in embedded area.

Skills & Competencies:
- Has excellent knowledge i…

Java ME SDK on Mac OS X

http://java.sun.com/javame/downloads/sdk30_mac.jsp

너무 이뻐 충동 구매 하게 된 나의 iMac에서 사용할 수 있는 Java ME SDK가 EA 버전이 출시되었다.

phoneME OSS SVN에서 이미 2달전에 Mac Sprint 1으로 tagging이 되어있다. Sprint 1이라고 표현한 것을 보면 phoneME 개발자들이 Scrum을 사용하고 있나보다.

iPhone app store에 이미 10만건의 어플이 등록되었다고 한다. 수많은 개발자들이 이미 Mac을 구입해서 사용하고 있다는 것인데 모바일 어플리케이션 개발에 관심을 가질 이 개발자 그룹을 놓치지 않기 위해서라도 꼭 출시되었어야 할 제품이라고 생각한다.

iPhone SDK의 경우 손담비나 유이 처럼 sexy하기도 하지만 또한, 개발자들에게 용돈을 벌 수 있게 해 주었다는 점 또한 무시할 수 없는 성공 요인이다. 비록, Java ME가 이제는 매력이 떨어져 보일 수도 있으나 이 오래된(?) 개발 환경을 이용하여 돈을 벌어 들일 수 있는 기회가 있다면 Mac을 사용하는 많은 iPhone 어플 개발자들이 Java ME 어플도 취미 삼아 개발해볼까 하는 마음을 가질 수도 있을 것이다.

Java ME SDK를 설치한 후 MMAPI demo를 실행한 화면이다.



보시는 바와 같이 비디오 재생 및 캡쳐가 잘 동작이 되었다. 개발 툴은 Xcode와 비교하면 많이 모자란 감이 있다. 어떻게 break point를 설정하는지도 사실 찾지 못했다. 심지어 에뮬레이터에서 그 흔한 터치도 지원이 안된다니 ㅜㅜ 실망스럽다. 하지만 EA 버전이고 아예 없는 것 보다는 나으니 감지덕지하고 필요할 때 꺼내서 사용해보려고 한다.

어쩌다보니 성토조의 글이 되고 말았지만 앞으로 발전할 것이라 믿어 의심치 않으며 진심으로 Mac OS X용 Java ME SDK 출시를 축하한다.

Symbian의 Horizon

http://horizon.symbian.org/

Symbian의 App Store인 Horizon이 Launch되었다.
어플리케이션 등록 사이트로 들어가보니 아래와 같은 Runtime을 지원한다.

C++
Flash Lite
Java ME
Python
Qt
Ruby
Web Runtime
Other

오호 Java ME도 지원합니다! 즉, Java ME로 심비안용 어플을 개발해서 돈을 벌 수 있다는 것.

http://developer.symbian.org/wiki/index.php/Java_ME_Quick_Start

위 페이지를 보시면 Symbian 지원 디바이스에서 Java ME를 이용하여 개발하는 법에 대해 보여준다.

JIL에 대한 짧은 리뷰

모바일 어플리케이션 개발 플랫폼이 속속 등장하고 있는 가운데 Vodafone, Verizon, China Mobile, SoftBank와 같이 이름만으로도 쟁쟁한 4회사가 모여 밀고 있는 개발 플랫폼이 있으니 바로 JIL이다.



JIL은 W3C widget으로 어플리케이션 개발 시 브라우저 환경이라는 제약 사항 즉, 장치가 제공하는 low level 기능들을 활용할 수 없는 문제점을 해결하기 위한 JavaScript 클래스 라이브러리이다.

예를 들면, 장치에 저장된 주소록 데이터를 조회하거나 추가, 삭제하는 등의 프로그램 작성이 JIL을 이용하면 JavaScript에서 가능하다. Java ME가 제공하는 MSA 스팩에 비하면 아직 제공되는 기능이 극히 부족한 편인데 그룹으로 분류해보면 "위치정보", "주소록", "달력", "전화기능", "메시징", "미디어", "장치정보" 등의 기능들을 제공한다.
미디어나 위치정보와 같은 기능도 Java ME의 JSR-135, JSR-179가 제공하는 기능들과 비교해보면 매우 제한적이다. 물론, Widget과 같은 단일 기능을 제공하는 단순한 어플리케이션을 작성하는 것이 목표라고 한다면 이러한 부족함은 당연하다고도 할 수 있을 것이다.

JIL을 사용하기 위해서는 JavaScript가 실행되는 브라우저가 이를 지원해야 하는데 Opera 브라우저나 국내 업체인 Infraware등 대다수의 모바일 브라우저 업체들이 이를 지원하고 있는 것으로 보인다.

현재 Vodafone에서는 삼성 JET와 같이 JIL을 지원하는 상용 폰이 출시되었으며 Verizon도 곧 JIL 지원 모델을 출시할 것이다.

Eclipse에 기반한 SDK와 문서도 다운로드 받을 수 있으니 관심있는 개발자분들은 여기서 자료를 찾아보기 바란다.

MIDP v3의 새로운 기능들 - Automatic Launch

오늘 부터 조금씩 MIDP v3의새로운 기능들에 대해 살펴보도록 하겠다.

(From green.autoblog.com)

MIDP 3.0은 JAD 속성에 MIDlet-(n)-Type 이라는 항목을 새로이 추가하였다. 이 항목의 값을 autostart로 지정하면 해당 MIDlet이 휴대폰이 켜질 때 자동으로 실행될 수 있도록 한다.


이미 MIDP 2.x 버전에서도 Sprint나 Vodafone과 같은 사업자 요구사항에 포함되어 있었던 내용이라 별반 색다른 기능은 아니다.

어떤 용도로 활용할 수 있을까? 일반 PC의 경우를 보면 Messenger와 같은 어플리케이션을 생각해볼 수 있겠다.

단, 휴대폰 환경인지라 부팅 시 실행되는 MIDlet의 갯수가 너무 많아지면 리소스 낭비 등의 문제가 생길 수 있으므로 이에 대한 주의가 필요할 것으로 보인다.

다른 모바일 개발 환경의 경우...

Android SDK는 BroadcastReceiver에서 ACTION_BOOT_COMPLETED를 이용하여 새로운 Activity를 실행할 수 있는 것으로 보인다.

iPhone의 경우는 아예 auto start를 허용하지 않는 것으로 보인다. (하긴, background 실행도 허용하지 않고 있으니...)

Moblin이 탑재된 Dell Mini 10v 출시

미국에서는 개발자를 위해 Moblin을 탑재한 넷북 Dell Mini 10v가 출시되었다는 소식이다.
가격은 $299로 매우 저렴한 편. 반면 Windows XP를 설치한 국내 버전은 약 50만원 정도의 가격으로 판매되고 있다.

Moblin은 인텔이 리눅스를 이용하여 개발한 넷북용 운영체제로 현재 2.0 버전이 제공되고 있다.

Mobile의 Core로 GNOME Mobile을 사용하고 3D 사용자 인터페이스를 지원하기 위한 Clutter와 UPnP 기능을 위한 GUPnP 라이브러리를 제공한다.


(From moblin.org)

Android나 LiMO와 같은 다른 리눅스 기반 개발플랫폼과는 달리 GNOME 표준 라이브러리외에 특이한 개발 환경을 별도로 제공하지는 않는다.

현재 Moblin의 사용자 UI는 여기서 확인해보도록 하자!

Windows Mobile 추천 - SPB Mobile Shell

소니 Xperia에 기본적으로 탑재되어 있는 Shell로 매우 유명한 application이다.



화려한 UI와 더불어 widget 형태로 application을 등록하는 기능, 편리한 contact 관리, 발전된 calendar 등등 Windows Mobile을 정말 쓸만한 스마트폰으로 만들어주는 강추 어플리케이션이다. shareware로 사용가능하지만 15일이 지나면 돈을 내야 한다.

결국 Windows Mobile 6.1

아이폰을 사기 위해 조루 배터리 및 키입력도 잘 안되는 휴대폰으로 몇 달을 버텨왔으나 결국 휴대폰이 사망에 이르러 LG Incite (Windows Mobile 6.1) 스마트폰으로 교체하였다.

그동안 관심권 밖이었던 Windows Mobile 이었지만 개인 소유의 휴대폰이 되었으므로 어쩔 수 없이 관심을 기울여야 하는 사항이 되었는데...

우선 오늘은 Google 캘린더 및 연락처를 Active Sync를 이용해서 동기화를 하였다. 연락처 및 달력 일정을 그대로 모바일 장치에서 볼 수 있어 매우 편리한데 이런 것이 스마트폰의 묘미라하겠다.

Google 서비스를 Windows Mobile 장치에서 동기화하는 방법은 다음 Google 페이지를 참고하시라.

Verizon Application Store

http://itnews.inews24.com/php/news_view.php?g_serial=432265&g_menu=020600

위 뉴스기사를 참조하시기 바랍니다.
위 기사를 보면 첫번째 App Store 대상 디바이스는 RIM의 BlackBerry라고 합니다.
즉, Java ME application이 대상입니다.

노키아, 구글, Apple, 삼성, SK 텔레콤 등등 전 세계적으로 확장 일로에 있는 모바일 application store를 잘 활용하면 1인, 2인 정도의 소규모 창업이 어렵지많은 않겠다하는 생각이 듭니다.

의사, 변호사라는 직업이 큰 무리없이 창업을 할 수 있는 이유가 일단 사업을 시작하면 어느정도 수준의 수입은 올릴 것이라는 기대치가 있기 때문이라면 IT 업종에서도 안정적인 수입만 올릴 수 있다면 창업을 해보는 것도 좋지 않을까요? App Store가 바로 그런 길을 열어주고 있는 것 같네요.

Xcode에서 phoneME SVN 환경 설정

다운로드 받은 phoneME MR4 버전의 소스 코드를 Xcode 프로젝트로 생성하고 SVN에 연동하였다. 짧게 정리해보면 다음과 같다.

Xcode에서 phoneME 소스 코드에 대한 프로젝트를 생성한 후 phoneME 소스 파일을 추가하고 종료한다. 방금 생성한 Xcode 프로젝트 폴더를 SVN에 import하고 (자세한 내용은 아래 Blog 참조) 다시 원하는 위치에 checkout해서 작업할 workspace를 만든다.

Xcode에서 SVN을 사용하기 위해서는 SCM 메뉴를 선택하여 SVN repository를 설정해야 한다.
앞에서 checkout한 프로젝트를 Xcode로 연 후 Getting Control with Subversion and Xcode 글에서 설명하는 것처럼 따라하면 Xcode에서 SVN을 이용할 준비는 완료이다.

설정에 문제가 없다면 소스를 수정하고 저장한 후 아래 화면과 같이 수정한 파일이 Group&Files 창에 M으로 표시가 되는 것을 볼 수 있다.

phoneME MR4 버전 SVN Setup하기

우선, Mac 환경에 phoneME를 개발할 수 있는 SVN을 setup하기로 했다.
Sun의 open source repository에서 SVN을 이미 사용하고 있으므로 같은 툴을 사용하기로 하였다.

1. 먼저, phoneMR4 소스코드를 여기서 다운로드 받고. (크기가 약 21MB 정도 된다.)

2. Mac에 이 소스를 등록할 SVN repo를 만들도록 한다.
- svnadmin create /Users/wonkim/Code/SVN

3. 다운 받은 소스를 앞에서 생성한 SVN repo에 import하고.
- Create temp folder as like these
cd /tmp
mkdir tmpsvn
mkdir tmpsvn/phoneME
mkdir tmpsvn/phoneME/trunk
mkdir tmpsvn/phoneME/branches
mkdir tmpsvn/phoneME/tags
- 위에 생성한 폴더 중 trunk 폴더에 ZIP 파일의 압축을 풀자
- SVN import를 아래와 같이 실행한다.
svn import /tmp/tmpsvn/phoneME file:///Users/wonkim/Code/SVN --message "phoneME init"

4. 마지막으로 실제 작업할 폴더를 만들고 이곳에 SVN에서 checkout
- cd ~
mkdir Code/Workspace
cd Code/Workspace
svn checkout file:///Users/wonkim/Code/SVN PhoneME

이런 과정을 거치면 로컬에서 버전 관리를 하면서 작업할 수 있는 환경이 setup된다.
Xcode에서 SVN repo를 관리할 수 있도록 연동해서 사용하면 더 편할 것 같다.

참고자료:
http://developer.apple.com/tools/subversionxcode.html

phoneME on Mac OS X

오늘 부터 Open Source Java ME 솔루션인 phoneME를 나의 Mac에서 돌아갈 수 있도록 포팅을 해볼까 한다. 주요 개발 범위는 아래와 같다.
JTWI + JSR-75 수준의 phoneME Mac OS X 포팅 버전 개발UEI를 지원하여 NetBeans에서 Java ME 개발 환경으로 사용 가능하도록Mac OS X의 multimedia 기능을 최대한 활용하여 대부분의 MMAPI control을 지원phoneME의 포팅 관련 부족한 부분을 발전 시킴
이 프로젝트를 진행하면서 개인적으로 얻고자 하는 바는 아래와 같다.
Mac OS X의 개발 환경 습득phoneME에 대한 지식 심화Blog에 지속적으로 개발 관련 글을 올려 phoneME에 대한 지식 공유

Java Documentation을 직접 작성해볼까나?

http://doc.java.sun.com/DocWeb/#top

Sun이 제공하고 있는 위 웹사이트에서 Java Doc 문서 작성에 직접 참여할 수 있다.
한국어로 번역한 내용을 제공하거나 혹은 샘플 코드, 노트 등을 직접 작성하여 참여할 수 있다.

현재 한국어 번역율은 중국어 등에 비해 아주 미비한 상태로 많은 한국 자바 개발자들의 참여가 있었으면 한다.

개인적으로도 Java ME 문서 번역을 짬짬이 해볼까 한다.

Mobile Sync 서비스 및 솔루션들

요즘 할일 목록을 관리하기 위해 RTM (Remeber The Milk)라는 웹 기반 어플리케이션을 사용중이다. RTM은 iPhone용 클라이언트를 제공하고 있는데 이 프로그램의 sync 기능이 훌륭해서 mobile sync 기능을 어떻게 구현했는지 찾아보았고 그 내용을 블로그에 공유하고자 한다.

요즘 모바일 디바이스가 최고의 화재거리여서 그런지 한다하는 회사들이 관련 솔루션을 제공하고 있었다.

1. RTM이 사용하고 있는 Funambol PIM sync

2. Google이 제공하는 Google Sync

3. Apple이 제공하는 MobileMe

4. MS가 제공하는 My Phone

5. SyncML ?

TBD ...

Test Driven Development 모바일 어플리케이션

TDD (test driven development)로 모바일 어플리케이션을 개발하기 위해서는 어떤 도구들을 사용할 수 있을까?

우선 Java ME의 경우 개인적으로 사용하고 있는 Sony Ericsson의Mobile JUnit을 추천하고 싶다. Java ME의 CLDC-HI가 Reflection을 지원하지 않기 때문에 JUnit을 바로 사용할 수 없는 단점을 극복하기 위해 별도의 개발 툴을 제공하고 있고 JUnit과 동일한 framework을 사용할 수 있어 매우 편리하다.

iPhone의 경우는 아직 unit test framework을 본격적으로 사용해본 적은 없지만 자료를 뒤져보니 Apple이 제공하는 OCUnit 이라는 Framework을 사용할 수 있을 것으로 보인다.
또한, 구글에서도 iPhone을 위한 unit test 도구를 제공하고 있는데 살펴볼 가치가 있을 것 같다.

Android의 경우에는 SDK내에 junit.framework 패키지가 포함되어 있으며 기능을 확장한 android.test.AndroidTestCase와 같은 클래스도 제공된다. 이에 대해서는 좀 더 학습을 해보고 별도의 블로그로 정리해볼까 한다.

Sun Korea is Hiring Now !!! - 한국 썬에서 당신의 열정을!

한국 썬에서 Java ME 소프트웨어 개발자를 채용하고 있습니다.
Java ME CLDC / CDC 기술을 휴대폰이나 TV와 같은 전자제품에 상용화하는 업무이며 C 언어를 이용하여 임베디드 소프트웨어 개발 경험이 있으신 분들을 찾고 있습니다.

좀 더 자세한 내용은 아래 퍼온 글을 참고하시고 관심 있으신 분들은 저한테 이메일로 wonil.kim@gmail.com 연락주세요. 물론 Web Site에서 직접 이력서 지원도 가능합니다.

Sun Korea의 분위기도 좀 느껴보시지요.

Charter:
Responsible for providing engineering service for the internal/external projects and participate
in projects porting CLDC/CDC to customer devices. Job requires good engineering skills and
customer facing skills.

Scope:
Embedded Software Engineer position responsible for development on J2ME and focusing on
JVM and optional profiles porting to different mobile platforms such as Windows Mobile, Linux
and other platforms. Also, this position is responsible for facing customers, providing on-site supports and good interpersonal cooperation skills in cross cultural groups.


Requirements
-------------------
Experience/Education:

- Typically requires a BS/MS in computer science from University.
- At least three years (up to six years) a…

SK Telecom의 한국형 App Store

...

이 앱스토어는 SK텔레콤이 자체 개발한 ‘SK표준플랫폼’을 적용, 모바일 운영체제(OS) 등의 제약이 없는 게 가장 큰 특징이다. 이에 따라 SK텔레콤의 앱스토어는 윈도모바일ㆍ리눅스ㆍ심비안 등 다양한 모바일 운영체제에서 사용할 수 있어 개발자들은 콘텐츠를 손쉽게 제작할 수 있다.

from:
http://economy.hankooki.com/lpage/industry/200903/e2009031016493670260.htm

한국형 App Store라! 자체 개발한 SK표준플랫폼이라고 하는데 모든 운영체제에서 제약이 없다는 것은 Java나 .NET과 같이 Virtual Machine을 사용하거나 혹은, 브라우저에서 동작하는 웹 기반 어플리케이션일 가능성이 크다. (Palm이 선보인 webOS 처럼)

이미 한국에 출시되었거나 출시 될 스마트폰 (BlackBerry, Sony Erricson, Nokia ...)들은 이미 해외 시장에 출시 될 때 Java ME를 탑재하고 있으므로 이를 재 활용할 수 있을 것으로 보인다.

WIPI의 Cross Platform 기능은 WIPI의 태생이 Java ME를 기반으로 개발된 환경이므로 WIPI에 추가적으로 제공되었던 라이브러리 등을 Java ME에서 확장 기능으로 추가하거나 혹은, CP 업체들이 Java ME 표준에 맞추어 재 개발을 하는 방법등이 가능하겠다.

WIPI 강제 조항 폐지와 iPhone의 모델의 성공으로 한국에도 모바일 소프트웨어 개발 붐이 일 수 있는 환경이 조성되는 것으로 보여 대 환영이다!

Android의 Activity와 Task에 대한 이해

Android 응용프로그램을 실행할 수 있는 단위인 Activity와 복수 개의 Activity가 모여 구성되는 Task에 대해 이해한 내용을 공유하고자 한다.

- 그림. Android Activity와 Task의 관계 -

Android 응용프로그램은 위 그림에서와 같이 Activity라고 하는 단위로 실행이 가능하다. 한 Activity는 화면 UI와 특정 기능을 수행하는데 예를 들면, 전화를 걸기 위한 Dialer도 하나의 Activity로 작성할 수 있겠다.

Android에서는 자신이 작성한 Activity 혹은, 다른 개발자에 의해 이미 작성되어 있는 Activity를 필요 시 실행하여 이용할 수 있다. (예, Dialer Activity에서 주소록을 검색하기 위해 Contact Activity를 실행). 한 Activity에서 다른 Activity를 실행하기 위해서는 startActivity method에 Intent 인자를 사용하여 호출한다. (자세한 내용은 Android SDK reference 참조)

Android 응용프로그램은 이처럼 하나 혹은 여러개의 Activity로 이루어져 동작을 하는데 여러 Activity간의 동작을 자연스럽게 처리하기 위해 Task라고 하는 개념을 도입하였다.

Task는 위 그림에서 보이듯이 Root Activity (위의 그림에서는 A)를 시작으로 생성된 모든 Activity를 포함하는 것으로 Task Stack을 이용하여 관리한다.
예를 들면, Activty A가 Activty B를 실행하면 (A, B) 처럼 Task Stack에 관리되며 다시 B에서 C Activity를 실행하면 (A, B, C)의 Task Stack을 가지게 된다. 이 때 Stack의 가장 상위에 위치하는 (위 그림의 경우 C)가 현재 Foreground에 화면이 보이는 Activity가 되며 사용자가 BACK키를 선택하면 C가 Stack에서 Pop되고 그 다음 Activity인 B가 Foreground를 차지하게 된다.

위와 같은 동작은 Activi…

Java ME MIDP의 Trusted MIDlet 인증 과정에 대한 설명

Java ME MIDP 개발과 관련하여 가장 이해하기 난해한 부분인 Trusted MIDlet을 인증하는 과정에 대해 알아보도록 하자. 백문이 불여일견 우선, 필자가 손수 그린 멋진(?) 수작업 이미지를 살펴보도록 하자. (크게 보려면 이미지를 클릭!)

MIDlet을 사용자에게 배포 시 인증된 (trusted) 형태로 제공하여야 Java ME가 제공하는 주요 기능들을 활용할 수 있다. 예를 들어, 네트워크 접속을 하는 경우에 비 인증된 MIDlet의 경우 보안 경고창이 나타나게 되며 사용자의 선택에 따라 네트워크 접속이 허용되지 않을 수도 있다. 이외에도 여러 기능들이 제한되거나 하는 문제점이 있으므로 상용 프로그램의 경우 인증은 필수적이라 할 수 있다.

MIDlet을 인증하는 과정을 이해하기 위해서는 4개의 주요 기술 요소를 이해하여야 한다.
X.509Path ValidationSelf Signed Root CertificationProtection Domain 인증된 MIDlet을 배포하기 위해사용하는 JAD 파일에는 반드시 아래와 같은 2가지 속성 값이 제공되어야 한다.
MIDlet-Certificate-n-mMIDlet-Jar-RSA-SHAMIDlet-Certificate-n-m은 BASE64 형태로 인코딩된 X.509 인증서를 값으로 가지는 속성이다. X.509는 인증서(certificate)의 형식을 정의한 표준으로 위 그림에서 보이는 바와 같이 인증서의 대상이 되는 Subject, 인증서를 발행한 기관을 나타내는 Issuer, Subject를 위한 Public Key 값, 인증서의 진위여부를 확인하기 위한 signature등의 값을 가지고 있다.

위 그림에서 보이듯이 JAD는 복수개의 인증서를 가질 수 있는데 m 값을 순차적으로 증가하여 지정할 수 있다.
MIDlet-Certificate-1-1: ....MIDlet-Certificate-1-2: ...MIDlet-Certificate-1-3: ...위와 같은 경우 3개의 인증서를 JAD에 포함하고 있으며…

소니에릭슨의 선택 - JavaFX Mobile

23일 소니에릭슨이 Java FX Mobile을 자사의 휴대폰에서 지원할 것임을 공식적으로 발표했다. Java FX Mobile은 소니에릭슨 휴대폰에 이미 탑재되어 있는 Java ME 플랫폼의 모든 기능을 활용하며 또한, Adobe Flash와 같은 화려한 사용자 인터페이스 프로그래밍을 가능하게 하여 소니에릭슨의 자체 휴대폰 소프트웨어 및 외부 개발자의 소프트웨어 개발을 한층 더 높은 수준의 quality를 가능하게 할 것으로 보인다. 또한, 이번 MWC에서 LG전자도 Java FX Mobile을 지원할 것임을 발표하였다.

안드로이드나 다른 스마트폰 플랫폼과 달리 Java FX Mobile은 기존 Java ME 기술 위에서 구현이 가능하므로 일반 휴대폰에서부터 스마트폰에 이르기까지 모두 지원이 가능하다는 이점이 있다. 또한, Java FX 스크립트에서 Java ME가 제공하는 모든 패키지를 사용할 수 있으므로 화려한 UI에 더불어 Java ME가 제공하는 각종 JSR들 - MMAPI, PIM, Location, Bluetooth, SIP, MMS ... 등등을 활용할 수 있으므로 수준 높은 모바일 어플리케이션 개발이 가능하다.

Sun은 올해 JavaOne에서 Java FX TV를 발표하여 Java FX가 컴퓨터, 휴대폰, TV와 같은 주요 사용자 환경에서 모두 동작 가능한 비전을 실현하려고 하고 있다.

Java FX Mobile을 PC에서 실험해보기 위해서는 Java FX 1.1 SDK를 설치해야 한다. http://javafx.com/downloads 페이지에서 NetBeans 6.5와 함께 다운로드하여 사용해보시길.

Android SDK v1.1로 업그레이드

새로 출시된 Android SDK v1.1 release 1 버전으로 업그레이를 하였다. 기존 버전의 업그레이드와 달리 emulator -wipe-data를 수행하는 과정이 추가되었는데 자세한 내용은 새로 만들어진 Android Developer Web을 참고하기 바란다.

http://developer.android.com/sdk/1.1_r1/upgrading.html

SDK 1.1의 변경된 내용에 대해서는 http://developer.android.com/sdk/android-1.1.html 페이지의 내용을 참고하시길.

삼성 어플리케이션 스토어

삼성전자가 휴대폰 사용자들을 위한 온라인 콘텐츠 마켓을 연다. 세계적인 흥행몰이를 하고 있는 애플 아이폰의 `앱스토어'와 유사한 개념의 온라인 시장이다.

삼성전자는 4일 삼성 휴대폰용 소프트웨어를 만든 개발자와 삼성 휴대폰 사용자들이 온라인에서 애플리케이션을 사고 팔 수 있는 `삼성 애플리케이션즈 스토어(Samsung Applications Store)'를 개설했다고 밝혔다.

(이상 디지털타임스 기사에서...)

Objective C 2.0에 대한 새로운 책

Programming in Objective-C 2.0이 새로 출판되었다. Objective-C 2.0을 처음 접하는 개발자에게 적합한 책이라고 하며 책 말미에 간단하게 iPhone 소프트웨어 개발에 대한 내용도 잠깐 다루고 있다.

- Amazon 사이트에서 복사한 TOC -
1. Introduction
2. Programming in Objective-C
3. Classes, Objects, and methods
4. Data Types and Expressions
5. Program Looping
6. Making Decisions
7. More on Classes
8. Inheritance
9. Polymorphism, Dynamic Typing, and Dynamic Binding
10. More on variables and Data Types
11. Categories and Protocols
12. The Preprocessor
13. Underlying C Language Features
14. Introduction to the Foundation Framework Foundation Documentation
15. Numbers, Strings, and Collections
16. Working with Files
17. Memory Management
18. Copying Objects
19. Archiving
20. Introduction to Cocoa Framework Layers
21. Writing iPhone Applications

Sun의 Java On Device Portal에 대하여

Sun이 Java ME 솔루션을 강화하기 위해 내놓은 LWUIT에 더해 ODP SDK를 선보인다. ODP란 On Device Portal의 약자로 Java Widget이라고 불리는 프로그램을 배포, 실행을 관리하는 iPhone으로 보자면 AppStore 프로그램의 역할과 유사한 기능을 제공한다.

개발자 입장에서는 기존의 Java ME 스킬을 그대로 활용가능하므로 좋고 이통사 입장에서는 활발한 프로그램 다운로드로 인한 수익 증대 효과를 노릴 수 있다. 사용자는 자신이 원하는 컨텐츠를 쉽게 설치하여 사용할 수 있는 장점이 생긴다.

ODP SDK는 Sun 웹사이트에서 등록한 사용자에게 제공되며 NetBeans를 이용한 개발환경을 제공한다. http://java.sun.com/products/java-odp/ 페이지를 참고하기 바란다.

JavaFX를 배우는 방법

Sun Microsystems가 야심차게 발표한 JavaFX. 앞으로 Mobile이나 TV에서도 JavaFX를 활용할 수 있게 된다고 하는데. 어떤 자료들을 이용해서 학습해 볼 수 있을까?

우선 www.javafx.com 사이트에 접속하여 무료로 제공되는 JavaFX 개발 환경을 다운로드 받도록 하자. NetBeans와 JavaFX 1.0을 다운받을 수 있는데 Windows 혹은 MacOS에서 사용할 수 있다.

JavaFX 스크립트 언어에 대해 공부하기 위해서 Sun이 제공하는 Tutorial 문서를 추천한다. 개인적으로 이 Tutorial 문서를 간략히 축약해본 Knol 문서도 작성해 보았으니 참고하시길.
JavaFX를 이용하여 GUI 어플을 개발하기 위한 Tutorial도 제공되고 있으니 2번째 단계로 이 자료를 공부해보는 것이 좋겠다.
NetBeans IDE를 이용하여 JavaFX 프로그램을 개발하는 방법에 대해 설명한 문서도 참고하길 바란다.

마지막으로, 신상철님이 2009년 1월 30일 부터 온라인으로 진행하는 JavaFX Programming with Passion 강좌에 참여하는 것도 매우 좋은 학습 방법이라 생각된다.

여러분의 JavaFX 학습에 축복이 있기를... :)

== English Version ==

How to learn JavaFX?

JavaFX is falgship software of Sun Microsystems. It will be used on desktop, mobile phone and TV as rich user interface application framework. So, how we can learn this great products.

First, you need to download and install JavaFX development environment. You can get it from www.javafx.com site with free. It includes NetBeans IDE and JavaFX 1.0 a…

Palm의 webOS 그리고 Mojo SDK

- From www.palm.com -

화려했던 과거를 되찾기 위해 Palm이 새로이 발표한 Palm pre. 스프린트 사업자를 통해 출시 될 이 디바이스에는 Palm의 새로운 운영체제인 webOS를 기반으로 Mojo SDK라는 새로운 모바일 어플리케이션 개발 플랫폼이 제공된다.

Palm 웹사이트에서 제공하는 내용으로는 HTML, CSS 그리고 JavaScript를 기반으로 하는 프레임워크라고 하는데 아마도 웹 어플리케이션을 개발하는 것과 유사한 방법으로 휴대폰 응용프로그램을 개발할 수 있도록 하는 것으로 보인다.

아직 그 실체를 밝히지는 않고 있어 좀 더 기다려보아야 하겠지만 전통의 강호였던 Palm이 새로운 플랫폼을 발표함으로서 모바일 플랫폼 환경에 하나 더 흥미로운 경쟁자가 나타날지도 모르겠다.