안드로이드로 할 수 있는 것들이 어떤 것들이 있는지 살펴보기에 좋은 책이다.
안드로이드의 설치와 빌드는 모든 책에서 다루지만 이 책에서는 커맨드라인을 통해서 빌드하는 방법부터 이클립스가 아닌 넷빈즈나 인텔리J 와 같은 도구를 이용해서 안드로이드 프로젝트를 개발하는 방법을 다루어주는 점이 약간 특별하다. 이것은 이클립스만을 다루는 다른 책들에서는 쉽게 볼 수 없는 내용들이다.
안드로이드 스크립트 레이어를 통해 파이썬 같은 스크립트 언어를 사용해서 응용 프로그램을 만드는 법과 Rest를 통해 트위터와 페이스북의 Api를 사용하기 위한 기본 적인 코드들, 그리고 구글 앱 엔진과 함께 안드로이드 웹 앱을 만드는 방법과 그래픽을 다루는 예제까지 재밌고 실용적인 기술들을 두루 배울 수 있는 것이 이 책의 가장 큰 장점이다.
하지만 단점도 있는데 너무 많은 주제를 다루기 때문에 각 주제들에 대한 설명이 기초적이라는 것이다. 안드로이드 프로그래밍을 하기 위해서는 액티비티나 인텐트 그리고 레이아웃 같은 기본 개념들을 잘 이해해야 하는데 이 책에서는 그런 부분들을 거의 다루지 않는 다는 것도 미리 알고 있으면 좋다.
자바와 안드로이드에 대한 기본 개념이 잡혀 있는 정도의 사람들이 새로운 것들을 시도해 보기 위해서 보면 좋을 책이다.
2009년 9월경부터 한국에 상륙한 아이폰으로 인해서 한국의 온 국민이 아이폰으로 대변되는 SmartPhone on Life..
스마트폰에선 기존의 휴대기기에서 할 수 없었던 여러가지 다양한 시도를 해볼 수 있게 되었는데 아마 이것이 가능해지게 된 이유 중 하나는 스마트폰이 항상 온라인 상태가 아닐까 싶다.
스마트폰 프로그램(앱으로 표현) 개발 역시 아이폰과 안드로이드가 서로가 상이한 편에 속한다.
아이폰은 Objective-C, 안드로이드는 Java
하지만 사용하는 언어가 그렇다는 것 뿐이지 각각의 언어는 서로 스마트폰에서 구현 가능한 것이 다르다. 더욱이나 안드로이드는 Java언어를 사용한다는 것만이 개발자를 위안 삼게 하겠지만 일반적인 개발자가 알고 있는 VM(J2SE)를 사용하지 않는다.
그럼? 안드로이드는 Dalvik 이라고 하는 가상 VM을 따로 사용하고 있다. 그래서 J2SE에서 제공하는 모든 것을 Dalvik에서 쓸 수는 없다.
VM 언어가 가지는 재미있는 특성은 VM을 기반으로 한 어떤 언어든지 유연하게 시스템에 붙여 넣을 수 있다는 점이다.
본 도서는 Chapter 3 ~ Chapter 6까지 안드로이드 앱을 개발하는 일반적인 방법인 Java언어를 사용하지 않고 안드로이드 앱을 개발하는 부분에 대한 통찰력을 제공한다. 그러나 Cocoa Basic 같은 상용 소스를 교육 목적이라지만 책에 실은게 옳은 선택이었나 하는 생각이 든다.
물론 안드로이드로 새로운 시도를 해보고 싶은 개발자에게 이 책은 시선을 넓히는 단초를 제공해줄지도 모른다. 그러나 초보 안드로이드 개발자나 생산성을 높이고 싶은 개발자에게 추천해주고 싶은 책은 아니다.
Chapter 1과 Chpater 2에서 통합 IDE 없이 안드로이드 애플리케이션을 개발하는 방법에 대해서 설명되어 있는 것은 찾아보기 힘든 자료이나 과거 발표된 다른 서적에서도 안드로이드 내부에 대한 설명이 자세한 자료는 얼마든지 찾아볼 수 있기에 아쉬움이 납는 부분이 아닐 수 없다.
뿐만 아니라 AIR로 GUI 만들기 같은 경우 Adobe사가 이미 모바일 AIR 개발을 중단을 선언한 상태에서 이 같은 내용이 도서에 들어가있을 필요가 있을까 싶은 부분도 있었다.
페이스북/트위터 사용도 안드로이드에서 소셜 네트워크를 어떻게 하면 쉽게 사용할 수 있는지에 대해서 언급하고 언급된 내용만으로도 충분히 유용한 앱을 만들 수 있어 보였다.
그러나 GAE(Google App Engine)을 이용한 부분은 정말 의미없는 부분으로 보였다. 스마트폰 앱에서 온라인 상의 데이터를 이용해 유용한 앱을 만드는 부분을 GAE에서 한정해서 설명한 것은 아닌지 우려되기도 했으며 GAE에 대해서 8.1절 전체를 할당할 정도로 이게 유용한 정보인가 싶기도 했다.
본 도서에서 그래도 상당히 가치있게 보았던 내용 중 하나는 Chapter 9 ~ Chapter 10 이었는데, 이 부분에 대해선 게임 개발에 있어서 작은 기초는 닦을 수 있겠다 싶었다.
그러나 이 부분 역시 최근에 출간된 안드로이드 게임 개발과 관련한 책에서 보다 자세하게 언급되어 있기도 하다.
앱 인벤터를 다룬 부분은 책에 왜 포함되어있는지 이해가 안될 정도로 애매한 부분인데, 구글이 개발을 포기한 상태에다가 제품화된 형태로 오픈된다고 해도 앱 인벤터로 쓸만한 앱을 만들 수 있을까는 다른 고민 사항이었다.(앱 인벤터와 같은 형태의 프로그램 개발 솔루션 중에는 LabView라고 하는 불세출의 솔루션이 있다)
그리고 조금이라도 쓸만한 앱을 만들기 위해선 네이티브 앱을 만들어야 한다는 부분에 대해선 더욱 이 챕터가 나올 필요성이 있을까 싶었다.
본 도서는 가지고 있는 내용과 대비하여 도서가 가지고 있는 제목과 그 내용은 차마 좋은 리뷰를 할 수 없을 정도로 실용적이지 않는 내용을 담고 있지 않다.
본 독자가 안드로이드 앱을 개발하면서 먹고 사는 생계형 개발자는 아니지만 개발을 해본 개발자 입장에선 어디선가 짜집기 한번 잘했다 싶은 정도로 보여지고 무엇보다 담고 있는 내용의 가치 대비 책 값이 비싸다
책 중간중간 발견되는 오타야 귀엽게 봐주더라도 이해하기 힘들 정도의 설명도 있는 부분은 번역서로서 질을 떨어뜨리는 부분도 있었다. 어떤 본문에선 설명되어 있지 않는데 자세하게 설명했다고 하는 부분도 있으니 말이다.
2주 남짓한 시간 내에서 책을 리뷰한 본 독자 입장에선 돈주고 사서 읽는 것을 권장하지 않는다고 말해주고 싶다.
그나마 본 도서에 별 2개를 주는 이윤 Chapter1과 Chapter 9 ~ 10 덕분이니 말이다. 다른도서에선 쉽게 포함되어 있는 부분이 아니니 말이다.
리뷰 제목에서도 언급했지만 안드로이드 기반으로 색다른 앱 구현을 생각하고 있다면 방향성 정도만 제시해주는 책이니 (그것도 방향성을 알기 위해서 30,000 이란 비용 지출을 통해서) 도서를 구입하고자 하는 독자가 있다면 본인이 찾고 있는 책인지 꼭 확인해 보길 바란다.
스마트폰의 보급화와 함께 오픈소스인 안드로이드가 급격한 인기를 얻은지 벌서 몇년의 시간이 흘렀습니다. 그로 인해 이미 상당한 양의 안드로이드 관련 서적들이 시중에 나와있습니다. 이번에 한빛미디어에서 나온 Practical Android Projects는 "안드로이드 개발자를 위한 실전 프로젝트 개발서"라는 부제를 가지고 출간 되었습니다.
책은 전체 1장 안드로이드 기초에서 11장 앱 인벤터까지 전체 11개의 챕터로 이루어져 있지만 개념적인 부분으로 다시 정리해보면
1~2장 - 개발환경 설정
3~5장 - 안드로이드에서 스크립트 엔진 사용
6~7장 - 안드로이드에서 웹 어플리케이션 사용
8장 - 안드로이드에서 구글 앱 엔진 사용
9~10장 - 뷰와 에니메이션 사용
11장 - 앱인벤터
로 다시 6개의 챕터로 나눌 수 있을 것 같습니다.
4장 루아를 내장한 앱 만들기가 개인적으로 가장 흥미로웠습니다. 앱 내부에 인터프리터 엔진을 장착하고 장착된 엔진을 이용해 수시로 동작이나 외형이 변경될 수 있는 앱을 구현할 수 있다는 것이 신기했습니다.
아쉬운 점은 책의 시작과 함께 지은이의 말에 보면 여러분이 알아야 할 것들이라고 해서 책을 보는데 있어 선수해야 할 것들이 설명되어 있는데 그 속에 안드로이드에 대한 기본지식도 포함이 되어 있어야 할 것 같습니다.
이 책에서는 안드로이드의 기본 구조 및 개념 안드로이드 어플리케이션 개발시 알아야 할 것들에 대해 대부분 웹 문서를 참조하시오 혹은 아주 간단히 설명되어 있기 때문에 안드로이드 입문자가 책을 보고 따라하기엔 무리가 있을것으로 생각됩니다.
마지막 챕터인 앱 인벤터는 굳이 이 부분이 책에 있을 필요가 있나 싶은 생각이 들었습니다. 오픈소스로 공개가 되었고 MIT에서 베타를 내놓는다고 하더라도 이미 구글에서 서비스를 중단 하였고 482page 마지막 라인에서 저자가 설명하듯 "현재 시점에서 앱 인벤터를 현업에 사용하는 것은 권하지 않는다..." 처럼 실제 개발자가 사용할지 의문이 듭니다.
이 책은 입문자가 보기에는 쉽지 않을 뿐더러 안드로이드에 대한 기본적인 것들이 자세히 ( 개인적으로는 전혀 ) 설명되어 있지 않습니다.
직접 모바일관련된 업무도 하지 않으며 특히 안드로이드는 전혀 사용도하지 않는 저로서도 "안드로이드 개발을 이렇게들 하고 있구나!"라고 느끼게 해준 도서입니다.
표지에서부터 이책은 개발자를 위한 프로젝트 개발서라고 명시하고 있습니다. 그래서 기획자, 개발자, 입문자 등등 바라보는 관점에서 책의 평이 다양합니다. 지인들도 책의 흐름은 좋다.. 어렵다.! 일반적이다.! 등등로 평가합니다.
책은 도입부에 안드로이드와 다양한 플랫폼과 툴 환경설정에 대한 설명이 있으며, 후반부로 갈수록 세부적 설명이 더해지고 있다.
각 목차내에서도 처음엔 목차 내용이 언급되어 주제를 알려주고, 참고자료 관련 url과 캡쳐 사진들도 매뉴얼을 읽는듯하게 구성되며, 마지막엔 간략히 정리되며, 연결될 다음목차도 언급하고 있다. 읽는 독자로 하여금 비쥬얼한 구성과 깔끔한 흐름이 책의 전체적인 흐름이 머리속에 남아 있습니다.
안드로이드에 대한 지식의 전달도 다양한 플랫폼과 개발툴에 대하여 장단점, 선호도, os 및 언어별 지원/활용법과 주요 특징들에 대하여 다각도로 설명되어 있어, 개발환경/방법에 대하여 많은것을 알려주고 있습니다. 안드로이드는 자바언어를 사용하고, 이클립스를 사용해서 개발한다는것에서 벗어나, 다양하게 개발되어 앱에 적용할 수 있구나를 알 수 있습니다. 목차만 보고도 다루어질 내용과 이야기의 흐름을 알 수 있습니다.
책의 프로젝트 예제 평가는 독자마다 다를 수 있겠지만, 소스 설명이나, 중요부분의 표시등도 잘되있던 도서입니다.
분명 개발자를 대상으로 한 책이였지만, 개인적으로도 평소 원하고 좋아하는 구성과 흐름으로 책이 구성되어 있어 안드로이드 개발환경과 참고할 수 있는 지식을 많은 준 도서입니다.
Practical Android Projects(한빛미디어)
보편적인 이클립스를 이용한 안드로이드 앱 개발 방법에서 벗어나 안드로이드와 다양한 플랫폼들과의 연동 방법과 앱 구현 및 관리 등의 전반적인 내용들을 실무형태의 예제들을 통해 충분히 익힐 수 있도록 해주는 책이다.
책을 읽으면서 가장 인상적이었던 부분들은 이제까지 무심코 지나갈 수 있는 안드로이드의 내부 구조와 아키텍처뿐만 아니라 이클립스를 사용하지 않고 안드로이드 SDK만을 활용하여 앱을 개발할 수 있도록 가이드 해준다는 것이다. 또한 다양한 웹 기술들을 안드로이드 앱에 적용할 수 있게 개념적인 충분한 설명 및 실무와 흡사한 예제들을 제공해 준다는 것이 가장 매력적이다. 실제 예제 코드들 중에서 중요한 부분들을 따로 표시하여, 핵심이 무엇인지를 보다 쉽게 기억할 수 있도록 해준 점들이 마음에 들었다. 책의 내용들을 어느 정도 이해하기 위해서는 일반 초보자가 아닌 자바 언어와 자바스크립트, 펄이나 파이썬과 같은 스크립트 언어에 익숙한 개발자들에게 보다 유익한 내용인 것 같다.
책의 전반적인 번역 형태는 책을 읽는 동안 아무런 거부감 없이 읽어 내려갈 수 있도록 잘되어 있지만, 원문에 대한 표기법이 일률적이지 않은 점들이 다소 아쉽게 느껴졌다.