2010년 3월 30일 화요일

프로젝트 제안서(아이디어 회의)

Get Lyrics

 

아이디어

안드로이드와 윈도우 모바일 플랫폼(차후 플랫폼 수정가능성도 있음)을 기반으로 현재 듣고 있는 음악의 가사를 볼 수 있는 어플리케이션을 개발할 예정입니다.


 

아이디어의 촛점은 길거리를 걷다가 음악을 들을때 순간적으로 가사를 보고싶다는 마음에서 착안하였습니다.



같은 아이디어의 어플리케이션들


Windows Mobile

티스토어에서의 검색을 통해 현재 Windows Mobile을 기반으로한 가사정보 어플리케이션은 없는 것으로 보입니다.


Symbian OS

역시 아직까지 가사정보 어플리케이션은 없는 것으로 보여지고 있습니다.


IPhone OS

IPhone OS의 경우 현재 POP 위주로 지원을 하는 가사정보 어플리케이션이 존재하고 있습니다. IPhone OS의 특성상 멀티태스킹을 지원하지 않으므로 현재듣고있는 노래의 정보를 가져오는 일은 할 수 없습니다. 아쉬운 관계로 원하는 노래만 검색해서 듣는형식으로 구성되어 있습니다.


Android

 


안드로이드의 경우는 국내에서 유료마켓이 오픈되지 않은상태라서 무료마켓만을 검색하였습니다. 무료마켓에서 가사정보에 대한 어플은 많이 있었습니다. 위의 어플은 Lyric Droid 라는 어플리케이션으로 위의 IPhone과 같이 직접적으로 가사를 검색하는 어플리케이션이었습니다. 음악을 들으면서 가사를 검색하는 어플리케이션도 있었지만 플랫폼의 차이때문인지 오류를 일으키며 강제종료되어 그 성능을 확인 할 수 없었습니다.

기존 어플리케이션 수정방안


1. 현재듣고 있는 음악의 가사정보를 현재창에 보여주도록 할 예정.
2. 다음에는 가사를 온라인 상태에서 다시한번 가져오지 않아도 되도록 mp3파일 자체에 가사를 직접 새겨넣도록 할 예정.

이점

1. 음악을 들으면서 가사를 볼 수 있으므로 좀 더 효율적.

2. 3G만 사용해야할 경우 데이터요금을 걱정해야 하는 수고도 덜 수 있을 것으로 예상됨.


2010년 3월 22일 월요일

안드로이드 설치하기

안드로이드를 공부하리라 결심하면서 가장 먼저 한 일은 역시 정보수집 이었습니다. 멀 알아야지 시작을 할테니까 ㅋㅋ

현재 캐나다이기 때문에 서적은 구입할수 없었고(구할려고 하면 구할 수 있다. 다만 캐나다는 서적이 한국에 비해 비싸다) 도서관 홈페이지를 통해 검색해 보았으나 안드로관련 서적은 없는 상태 ㅠ.ㅠ

여기저기 웹페이지, 블로그, 카페 등을 돌아다니면서 공부를 해야했습니다. ㅠ.ㅠ (여기서, 댓글은 못달았지만 많은 정보 주신 카페분들, 블로거분들에게 감사의 인사를 꾸벅 -_-)

공부를 시작하면 역시 이론공부보다는 실전!! 이라고 생각하는 나이기에 ㅡ,ㅡ;;; 일단 개발환경 설치부터 들어갔습니다.

안드로이드 개발환경을 구축하기 위해선 다음과 같은 과정이 필요!!

  1. 이클립스 설치
  2. JDK 설치
  3. 이클립스 플러그인 설치
  4. 안드로이드 SDK 설치
  5. AVD 생성 (나중을 위해 Virtual SD CARD 도 생성)

먼저 이클립스부터 설치해보도록 하죠.

안드로이드 개발은 자바를 기반으로 합니다. 그렇기에 자바용 개발툴을 그대로 사용할 수 있습니다. 개발시 유용한 기능 제공하는 플러그인을 지원하는 이클립스를 설치!!

이클립스는 이클립스 홈페이지에서 다운가능합니다. 사이트를 들어가면 다운로드 항목에서 Eclipse IDE for Java Developers를 다운받도록 하면 됩니다. 압축을 원하는 폴더에 해제하고 나면 이클립스 설치는 끝이납니다.

개발툴이 있어도 컴파일을 할 수 없으면 말짱 도루묵!! 자바를 컴파일 하기 위해 JDK를 설치해보도록 하죠.

JDK 역시 Sun 홈페이지에서 다운로드 항목에서 Java SE로 들어가신 후 Java SE Development Kit (JDK)를 다운로드 하신 후에 설치를 해주시면 됩니다.





다음으로 이클립스 플러그인인 ADT(Android Development Toolkit)를 설치하도록 합시다.

이클립스 메뉴에서 Help 의 Install New Software를 선택하신 후, Add 를 선택하셔서 Location 에 http://dl-ssl.google.com/android/eclipse 를 Add 합니다.

Developer Tools 를 펼치면 DDMS 와 ADT가 있습니다 체크하신후 Next
이 이후부터는 Next 와 Finish 클릭만으로 설치하시면 됩니다. (뭔가 대충 ㅡ,ㅡ;;;)
설치하신후에 이클립스를 다시 시작한다고 하니 갑자기 꺼진다고 놀라지 마세요.
간혹 영어라서 읽어보지 않고 호들갑 떠시면 곤란합니다 ㅋ

이제는 SDK를 다운받고 그 경로를 지정해주고 업데이트를 해보도록 하죠

Android SDK 다운

다운을 받으신 후에 원하는 곳에 압축을 풀어주시면 됩니다. 저 같은 경우는 C:\Program Files\ 에 설치를 해두었습니다.

SDK 경로 지정은 이클립스 메뉴의 Window의 Preferences로 들어가셔서 보시면 왼쪽 메뉴에 Android를 클릭합니다. SDK 로케이션에 SDK가 설치된 경로를 지정해주시면 됩니다. 아래의 그림을 참고해주세요.


다음으로 SDK 를 업데이트 하기 위해 SDK and AVD Manager를 열어보도록 합시다. 이클립스의 툴바에 보시면 아래그림과 같은 핸드폰모양의 아이콘을 클릭하시면 됩니다.
Manager 의 왼쪽에서 Available Packages를 선택하시면 업데이트 가능한 목록이 나옵니다. 체크를 하신후에 Install Selected를 클릭하셔서 진행하시면 됩니다.
설치하기 까지 다소 시간이 걸릴 수 있으니 느긋하게 기다려주세요 ㅎㅎ

이제 마지막으로 AVD 와 Virtual SD Card 를 생성해보도록 하죠.

다시 한번 SDK and AVD Manager 를 열도록 합니다. 이번에는 Virtual Devices 항목을 선택해서 새롭게 생성하기 위해 New를 클릭!!
Name 에는 AVD의 이름을 Target 에는 사용할 SDK의 버전을 선택하시면 됩니다.
요즘에는 SD Card 생성을 커맨드 명령으로 내렸는데 이제는 이렇게 이클립스에서 바로 생성이 가능합니다. 원하는 사이즈의 용량을 적으시면 됩니다.

Hardware 부분에는 AVD의 특성을 넣어줄 수 있습니다. SD Card 지원여부도 New 를 선택해서 지원해주시면 됩니다.

모든 설정이 끝나면 Create AVD를 클릭하셔서 마무리 하시면 됩니다.

여기까지가 기본적인 안드로이드 개발환경 설정하는 방법입니다.
첫 포스팅이라서 그렇게 좋은 자료가 되지 못 할 수도 있겠지요? ㅎㅎ

그래도 찾아오시는 분들이 이자료를 통해서 쉽게쉽게 배워가셨으면 합니다. 이제 실질적인 코딩에 들어가보아야죠 ㅎㅎㅎ

2010년 3월 18일 목요일

Mobile OS(심비안, 블랙베리, 안드로이드, 윈도우 모바일, 아이폰) 간단요약

심비안OS

2008년에 심비안 Software Ltd 가 노키아 로 합병이 되고 새로운 독립적인 무이익 단체인 심비안 Foundation 이 설립됐다.

2009년 4월 심비안 플랫폼은 심비안OS에 성공자로 지정되었다.

그리고 2010년 2월, 심비안 플랫폼은 공식적으로 오픈소스코드가 가능하게 만들어졌다.

판매된 스마트폰 46.9% 가 심비안OS를 사용하고 있으며 이 기기들은 심비안OS를 세계에서 가장 유명한 모바일OS로 만들어냈다.

심비안은 다음과 같은 3가지의 원칙과 함께 만들어졌다.

  1. 진실성과 사용자 데이터의 보완성은 다른 무엇보다 중요하다.
  2. 사용자의 시간은 낭비되어져서는 안된다.
  3. 모든 자원들은 부족하다.(자원을 아껴 쓴다는 의미)

2010년 2월의 통계에 따르면 2009년 스마트폰 시장에서 47.2%를 차지, RIM 은 20.8%, 애플 15.1%, 마이크로소프트 8.8%, 구글 안드로이드 4.7% 로 선두주자를 달리고 있다.

또한 세계 스마트폰의 주가가 2008년 52.4%에서 2009년 47.2% 로 떨어진 반면 심비안의 기기들은 7천4백9십만대에서 7천8백5십만대의 판매고를 올리며 4.8% 성장하였다.

심비안OS의 구조는 다음과 같은 계층들을 포함하고 있다.

사용자는 Base Services 계층까지만 접근이 가능하다.

블랙베리OS

블랙베리OS는 RIM(Research In Motion)에서 만들어진 휴대용 블랙베리의 소프트웨어 플랫폼이다.

멀티태스킹을 제공하며 트랙볼, 트랙패드, 터치스크린과 같은 특화된 입력장치를 사용할 수 있다.

현재 OS4는 MIDP 2.0의 부분을 제공하고 완벽한 무선활성화와 Microsoft Exchange Server의 이메일, 달력, 작업, 메모 그리고 전화부와의 동기화를 허용한다.

블랙베리OS의 업데이트는 블랙베리 OTASL서비스에 의해 가능하다.

서드파티 개발자들은 블랙베리 API를 사용해서 소프트웨어를 만들 수 있다. 하지만 제한된 기능을 사용하고있는 어플리케이션들은 전자인증을 받아야만 한다. 이러한 인증절차는 어플리케이션의 저작권을 보장하지만 코드의 보안성과 질은 보장하지 않는다.

안드로이드

안드로이드(Android)는 휴대전화기를 비롯, 모바일 디바이스를 위한 운영체제와 미들웨어 그리고 핵심 어플리케이션을 포함하고 있는 소프트웨어 스택이다. 안드로이드는 개발자들이 자바(Java) 언어로 어플리케이션을 작성 할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다.

2005년 안드로이드 사를 구글에서 인수한 후 2007년 11월, 안드로이드 플랫폼을 휴대전화용 OS로서 무료 공개한다고 발표한 후 48개의 하드웨어, 소프트웨어, 통신 회사가 모여 만든 OHA(Open Handset Alliance)에서 공개 표준을 위해 개발하고 있다. 구글은 안드로이드의 모든 소스 코드를 오픈 소스 라이센스인 아파치 라이센스로 배포하고 있다.

Open Handset Alliance

2007년 11월 5일, 텍사스 인스트루먼트, 브로드컴 코퍼레이션, 구글, HTC, 인텔, LG, 마벨 테크놀로지 그룹, 모토로라, 엔비디아, 퀄컴, 삼성전자, 스프린트 넥스텔, T - 모바일 의 몇몇 회사로 구성된 컨소시엄인 오픈 핸드셋 얼라이언스(OHA)가 모바일 기기의 공개 표준을 개발하는 것을 목표로 결성되었다. 또한 OHA는 리눅스 커널 2.6에서 빌드된 그들의 첫번째 모바일 기기 플랫폼 결과물인 안드로이드를 발표하였다.

2008년 12월, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group Plc.을 포함한 14개의 새로운 멤버가 안드로이드 프로젝트에 참여하였음을 발표하였다.

구성 및 특징

핸드셋

레이아웃

플랫폼은 VGA, 2D 그래픽스 라이브러리, OpenGL ES 1.0에 기반을 둔 3D 그래픽스 라이브러리를 확장하기에 적응적이다.

저장소

데이터 저장 목적의 SQLite 데이터베이스 소프트웨어가 사용됨

통신

안드로이드는 GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi를 포함하는 커넥션 기술을 지원한다.

메시징

SMS와 MMS가 가능.

브라우저

오픈 소스인 WebKit application framework 기반의 브라우저 지원.

자바 지원

자바로 작성된 소프트웨어는 달빅 가상 머신에서 실행 가능한 코드로 컴파일 된다. 달빅 가상 머신은 표준 자바 가상 머신은 아니지만 모바일 기기를 위해 설계된 가상 머신이다.

미디어

지원

안드로이드는 다음의 오디오/비디오/이미지 포맷을 지원한다: H.263, H.264 (3GP 또는 MP4 컨테이너), MPEG-4 SP, AMR, AMR-WB (3GP container), AAC, HE-AAC (MP4 또는 3GP container), MP3, MIDI, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP.

추가 하드웨어 지원

안드로이드는 카메라, 터치스크린, GPS, 가속도센서, 나침반센서,트렉볼 2D 그래픽 가속, 3D 그래픽 가속을 활용할 수 있다.

개발 환경

기기 에뮬레이터, 디버깅 도구, 메모리와 성능 프로파일링을 포함하는 Eclipse IDE 플러그인.

마켓

iPhone OS의 App Store와 유사한 안드로이드 마켓은 PC 사용 없이 무선으로 대상 하드웨어로 다운로드 와 설치가 가능한 응용프로그램 목록을 제공. 원래 프리웨어만 지원 되었으나 2009년 2월 19일 부터 유료 애플리케이션도 제공되었다.

멀티

터치 안드로이드는 멀티 터치를 네이티브로 지원하지만 (애플의 터치스크린 기술 특허 침해를 피하기 위해) 커널 수준에서 비활성화 되었다. 멀티 터치를 가능하게 하는 비공식 변형이 개발되었지만 장치에 접근하기 위해 슈퍼유저가 요구된다. 미국 이외의 국가의 안드로이드 기기들은 멀티터치가 가능하다(애플 사의 멀티터치 특허권이 미국에 한정되기 떄문. 대표적인 예로써 Droid의 유렵향 버젼인 Milestone 은 핀치 줌 이 가능함)

윈도우 모바일

윈도우 모바일(Windows Mobile, WM)은 PDA 및 스마트폰에 사용하는 마이크로소프트사에서 개발된 운영 체제이다. 이전에는 포켓 PC라고 불렸다.

최근 버전으로는 'Windows Mobile 6.5' 라고 불리며 이것은 Windows CE 5.2 커널 기반으로 특징으로는 Windows API를 사용하여 개발된 프로그램들의 집합체이다.

제3자가 Windows Mobile을 위한 소프트웨어를 개발할 수 있고 Mobile을 위한 Windows Marketplace에서 구매할 수 있다.

2010년 2월 15일 바르셀로나의 Mobile World 의회에서 Microsoft사는 완전히 새로운 휴대폰 플랫폼인 Windows Phone 7 Series를 발표하였다. 따라서 Windows Mobile 6.x을 사용한 장비를 버전 7로 업그레이드 할 수 없다.

Windows Mobile의 스마트폰 시장의 비중은 매년 하락하는 추세이다. 2009년 3분기에는 20%가 감소하였다. 이것은 세계 스마트폰 시장의 7.9%를 차지하는 4번째로 대중적인 스마트폰 운영체제이다. 미국에서는 Windows Mobile이 3번째로 대중적인 스마트폰의 업무용 운영체제로 이는 enterprise users의 24%를 차지한다.

공통된 특징

Pocket PC를 위한 Windows Mobile의 버전 대부분의 이러한 표준 기능을 수행 :

- Today화면에 현재 날짜, 소유자 정보, 일정, e-mail, 메시지, 작업등을 보여준다.

- 작업 표시줄에 현재 시간과 볼륨을 보여준다.

- 오피스 모바일은 마이크로소프트 오피스 프로그램의 모바일 버전이다.

아웃룩 모바일은 Windows Mobile과 함께 제공된다.

- Internet Explorer Mobile은 마이크로소프트사가 Pocket PC와 Handheld PC를 위해 개발된 인터넷 브라우저로 Windows Mobile과 Windows CE에서 기본적으로 읽어 온다.

- Windows Mobile을 위한 Windows Media player.

- PPTP VPNs를 위한 클라이언트

- Internet Connection Sharing(ICS)는 휴대전화의 USB나 Bluetooth를 통해 컴퓨터의 인터넷 연결을 공유하기 위한 것이다.

- 일관된 파일 시스템은 Windows 9x/Windows NT와 유사하고 많은 같은 파일 형식을 지원합니다.

- 멀티태스킹 능력

아이폰 OS

애플의 스마트폰인 아이폰과 디지털 미디어 재생기기인 아이팟 터치에 내장되어 있는 운영체제이다.

Mac OS X 10.5를 기반으로 만들어져 있다.

아이폰 OS는 네 개의 추상화 계층을 가지고 있다. 코어 OS 계층, 코어 서비스 계층, 미디어 계층, 코코아 터치 계층이라는 네 개의 계층을 가지고 있다. 아이폰 OS는 플래시 메모리에 실릴 수 있으며 대략 반 기가바이트이하의 플래시 메모리 용량을 차지한다.

처음 공개되었을 당시에는 사용자가 개발한 애플리케이션의 추가가 허용되지 않았었으나, 2008년 6월 이래 아이폰 OS 상에서 소프트웨어를 개발할 수 있는 도구인 SDK가 공개되어, 2.0 버전부터는 애플의 App Store를 통해 자유롭게 사용자 애플리케이션을 공개/판매하는 것이 가능해졌다.

유저 인터페이스

아이폰 OS의 사용자 인터페이스는멀티 터치 제스처에 의한 직접 조작 개념에 기반하고 있다. 인터페이스 콘트롤들은 슬라이더, 스위치, 버튼 등의 요소로 구성된다. 사용자 입력에 대한 반응은 멀티 터치 제스처를 응용한 다이렉트 매니퓰레이션 개념에 기반하고 있다.

홈 스크린의 이름은 스프링보드이다. 스프링보드는 응용 소프트웨어 아이콘들을 나열하여 보여주고 있으며, 또한 사용자가 가장 많이 접근하는 응용 소프트웨어 아이콘들을 나열하는 독을 화면 아래쪽에 보여주고 있다. 화면에는 또한 스테이터스 바가 상단에 보여진다. 스테이터스 바는 시간, 배터리 레벨, 신호 세기 등을 디스플레이한다.

아이폰SDK

2007년 10월 17일 마침내 애플은 소프트웨어 개발 키트 발표 계획을 공개했다. 스티브 잡스는 "핫 뉴스" 블로그에서 공개 서한을 통해 2008년 2월SDK를 배포할 것이라고 밝혔다. SDK는 2008년 3월 6일 배포되었다. 개발자들은 이 SDK를 활용해 아이폰이나 아이팟 터치 응용 소프트웨어를 개발할 수 있게 되었다. 개발된 소프트웨어는 "아이폰 시뮬레이터" 내에서 테스트할 수 있게 되었다. 하지만 기기에 실제로 응용 소프트웨어를 올리기 위해서는 아이폰 개발자 프로그램 등록비를 내야 했다.

라이선싱

SDK 자체는 누구나 자유롭게 다운로드 받을 수 있다. 하지만 개발된 응용 소프트웨어를 배포하기 위해서는, 개발자는 아이폰 디벨로퍼 프로그램에 등록하여야만 한다. 개발자는 등록비를 지불해야 하며, 또한 개발자는 애플의 허가를 받아야 한다. 등록비는 99 미국 달러이다. 애플의 앱 스토어에 응용 소프트웨어를 업로드할 때 사용될 서명된 키들이 개발자에게 주어진다. 응용 소프트웨어는 세 가지 방법으로 배포될 수 있는데, 앱 스트어에서 배포되거나, 특정 기업의 직원 전용으로 기업 내에서만 배포되거나, "애드 혹"으로 100 대의 아이폰 한정으로 배포될 수 있다.

코어 로케이션

코어 로케이션은 맥 오에스 텐 내의 소프트웨어 프레임워크이다. 보통 아이폰 OS 2.0 상의 소프트웨어들에 의해 장치의 위치을 알아내기 위해 사용된다.

코어 로케이션은 2008년 3월 6일 아이폰 소프트웨어 로드맵 이벤트 행사 때 발표되었다. 이후 아이폰 SDK에 포함되었다.

자바

애플 측은 자바 (프로그래밍 언어) 기반 응용 소프트웨어를 아이폰 상에서 작동시키는 것에 대해서 발표도 하지 않았고 아무런 계획도 가지고 있지 않다. 썬 마이크로시스템즈은 아이폰 OS용 자바 가상 머신 을 릴리즈할 계획이라고 발표하였다. 이것은 자바의 자바 플랫폼, 마이크로 에디션 버전에 기반한 것이 될 예정이다. 이것이 릴리즈되면 자바 ME 응용 소프트웨어가 아이폰이나 아이팟 터치에서 구동될 것으로 예상되었다.

이 부분은 운영 체제에 관한 토막글입니다. 서로 지식을 모아 알차게 문서를 완성해 갑시다.

플래시

아이폰 OS는 플래시를 지원하지 않는다. 어도비는 어도비 플래시 라이트 소프트웨어를 서드 파티 응용 소프트웨어 형태로 아이폰 OS용으로 만들어 배포할 예정이라고 발표하였다. 한데, 플래시 라이트는 표준 플래시보다는 기능이 떨어진다. 비공식적으로는 제일 브레이킹된 아이폰 OS에서 플래시 비디오가 재생하는 응용 소프트웨어가 개발되기도 하였다.

해킹과 제일 브레이킹

아이폰 OS는 다양한 경로를 통해 여러 가지 핵을 가지고 해킹할 수 있다. 대개 이런 핵들은 애플이 공식적으로 지원하지 않는 기능에 초점을 두고 있다.


출처: 위키피디아

2010년 3월 15일 월요일

잠수를 탔었네요.....

한국으로 오고나서 이것저것 할 일도 있었고 귀차니즘의 압박으로 인해서

잠시 블로그 관리를 뒷전으로 하고 있었네요.

이제 듣고싶었던 수업을 청강하면서 잠수를 풀고 블로깅을 다시 시작하게 되었습니다.

역시나 내용은 안드로이드 위주로 포스팅을 하게 될 것이며 간간히 레포트를 위한

포스팅자료도 있게 되겠네요. ㅎㅎㅎ

조만간에 요번에 개통한 모토로이 개봉기도 포스팅 할까 생각중 입니다. (워낙에 개봉기 자료가 많은지라..... ㅡ,ㅡ;;)

그리고 제 모토로이에 올라가 있는 어플들도 간략히 소개하며 다운로드할 수 있게 올릴까도 계획중입니다.

그 중에는 제가 짠 어플이 있는데 이 어플은 저희 학교 공대생만을 위한 어플이라고도 볼 수 있으니 ㅎㅎㅎ 별로 쓸 모는 없을 것 같네요 쩝 ㅡ,ㅡ;;

아무튼 열 블로깅 ㄱㄱ싱