현재 모바일 플랫폼은 안드로이드와 IOS로 양분되어 있다. 전세계 모바일 플랫폼에서  대략 70%의 점유율을 차지하고 있는 안드로이드. (글로벌 70%, 우리나라: 74%, 미국 40%, 일본 34%, 유럽 68%, 2021년 3월 기준)

 안드로이드용 프로그램을 작성하는 방법은 크게 네이티브와 웹/웹앱으로 구분된다. 네이티브는 다시 자바 또는 코틀린으로 개발하는 방법과 Dart를 이용한 플러터(하이브리드)로 나눌 수 있다. 예전 안드로이드 출시 초기에 자바로 개발했었는데, 요즘 대세는 젯브레인이 개발한 코틀린인 것 같아서 기존 지식 리마인드 차원에서 '이것이 안드로이드다 with Kotlin'책을 골랐다.

3판까지 나온다는 것은....!

이것이...다 시리즈

한빛미디어에서 출간하고 있는 초보자 입문서 시리즈인 '이것이...다' 중 안드로이드 개발에 관련된 유일한 책이다. '이것이 안드로이드다'는 정말 초보자를 위한 책이다. 실제 모바일 앱, 특히 안드로이드 개발을 처음 시작하는 사람들에게는 큰 도움이 될 수 있다. 다만, 기존 개발 경험이 있는 사람들은 조금 지루할 수 있다. 

크게 3개 부분으로 나뉘는데, 코틀린을 이해하고, 안드로이드를 이해한 다음, 이를 기반으로 실제 시나리오대로 앱을 만들어보는 과정으로 구성되어 있다.

1~3장까지는 안드로이드/코틀린 개발 환경을 구축하고, 코틀린 문법에  대해 간략히 소개한다. 기존 개발 경험이 있으면 상당히 지루할 수도 있지만, 이 책의 주 대상층인 입문자들에게는 쉽게 설명하려고 노력한 것 같다. 다만 3장에서 코틀린 문법을 설명하는데, 기존 안드로이드 개발 경험이 있거나 다른 언어로 무언가를 개발해본 경험이 있는 개발자라면 코틀린이라는 언어 자체에 대한 설명이 부족하다는 느낌을 받을 수 있다. 입문서이다 보니 깊이면에서는 조금 양보한 느낌이다. 개략적인 설명과 약간의 코드에서 그친 느낌이었다.

4장과 5장은 안드로이드 앱의 일반적인 구조를 설명한다. 기존 안드로이드 앱 개발자라면 쉽게 읽으면서 넘길 수 있는 부분이다.

6장부터 13장까지는 파일을 읽고 쓰고, sqlite 데이터베이스를 다루고, 카메라로 사진을 찍어 갤러리에 이미지 파일을 저장하고, 구글 지도와 HTTP API를 호출하는 방법을 통해 서울 공공 도서관 앱을 만들어 보고, 구글 파이어베이스 서비스와 연동하는 방법으로 이루어진다. 

 

이 책의 장점과 나의 공부법

무엇보다 초보자를 대상으로 한 입문서이다. IDE 설치부터 실제적인 기능을 이용한 앱 개발까지 차근차근 매우 자세히 설명하고 있다. 따라서 책 뒷표지에서 이야기하는 것처럼 만들고 싶은 앱이 있다거나, 앱 개발자다 되고 싶다라고 하면 기본 지식과 전체적인 관점을 얻는데는 유익한 책이다.

이 책은 가급적 처음부터 차례대로 읽는 것이 좋을 것 같은데, 6장부터는 관심있는 기능만 골라 읽어가는 것도 좋아 보인다. 기존 개발자는 1장과 2장은 가볍게 읽어볼 수 있는 수준이다. 3장은 Kotlin에 대한 깊이 있는 설명은 조금 부족했는데, 그 부분에서는 안드로이드 개발자 문서를 검색해 가면서 보완했다. 

내 경우에는 1,2장을 읽고, 3장 코틀린에 대한 문법적 이해를 갖춘 다음, 4장~5장, 6장~13장을 두 부분을 병행해서 읽었다.

3판이 나올 정도로 정돈된 책 구성이 가장 큰 장점이다. 특히 서울 공공 도서관 앱은 국내 저자가 적은 책의 장점이다. 번역서의 경우 우리가 바로 활용할 수 있는 API나 앱 방식인가에 대해 회의적일 수 있는데, 저자가 우리나라분이다 보니 우리 현실로 예제를 만들어 준 부분이 좋았다.

 

 

이 책의 단점

3판이긴 한데, 내용 업데이트가 부족하였다. 표지에서는 최신 버전 완벽 대응이라고 했는데, 과거 이벤트가 마치 미래처럼 적힌 부분이 있었다. 예를 들자면 42쪽 밑에서 두번째 문단에서 "2021년 9월 기준으로 코틀린 릴리즈에서 완전히 제거될 예정입니다."라고 적혀있는데,  3판은 22년 1월에 출간되었다. 따라서 "제거될 예정"이 아니라 '제거되었다'로 변경되었어야 한다. 책 첫 부분에서 이런 부분들이 눈에 들어오다 보니 책의 이전판이 인기가 좋아서 3판까지 나온 것인지, 아니면 기술의 업데이트를 반영한 것인가? 하는 의문이 들었다.

또 책 설명이 애매한 부분이 있어서 git 리포지토리를 찾아본 적이 있는데 책에 소개된 소스코드와 조금 다른 부분도 있었다.경험이 있는 개발자 독자라면 대충 맥락을 이해하고 저자의 의도와 설명을 이해할 수 있을텐데, 초보자들은 하나하나씩 비교하면서 읽다보니 혼동할 수 있겠다라는 생각도 들었다. 예를 들어 2장 소스코드에서 88쪽 코드와  https://github.com/javafa/thisiskotlin/blob/master/SayHello/app/src/main/java/com/example/sayhello/MainActivity.kt 의 코드에서 var binding 선언 부분이 살짝 다르다.

 

 

이 책.. 코틀린으로 안드로이드 앱을 개발하고싶다는 초보 개발자 내지 학생들에게 권한다. 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형

 꼭 그런 친구 한명씩은 있을 것이다. 무언가를 좋아하고, 그것에 대해 끊임없이 이야기거리를 제공하는 친구. 이 책은 자동차에 미쳐있는, 특히 그 안의 사람과 교감을 나누는 장치들의 역사와 의미, 그걸 만든 사람들의 고민까지 알고 있는 덕후 친구가 술한잔 사이에 두고 끊임없이 이야기 보따리를 글로 펼쳐놓은 책이다. 우리나라 저자가 적은 책이다 보니 자동차 인터페이스에 관한 다양한 토픽을 매끄럽게 설명한다. 순식간에 재미있게 읽을 수 있다.

 

우리가 지금은 당연히 여기며 사용하고 있는 자동차의 인터페이스는 사실 투쟁의 역사다. 많은 디자이너들이 심리적, 기능적, 제도적 제약사항 속에서도 자동차와 편하게 교감할 수 있는 인터페이스를 고민하며 개선해서 만들어 왔고, 그렇게 만들어진 도구를 통해 인류는 조금씩 또 스스로를 발전시켜왔다.

 

이 책을 읽으면서 우리가 만들어가는 도구의 모습에 대해 여러 생각을 해보았다. 특히 미래형 인터페이스라고 했을 때 신기술을 사용한다고 해서 미래적인 인터페이스가 되는 것이 아니고 누가 말해주지 않아도 자연스럽게 알아낼 수 있는 인터페이스를 더 높게 평가한 것에 전적으로 동의하는 바이다.

 

p.152
손으로 만지고 눈으로 보면 누가 말해주지 않아도 자연스럽게 알아낼 수 있는 것을, 굳이 터치 스크린으로 바군다고 미래적인 인터페이스가 되는게 아니다.

 

이 책의 장점은 당연함 속에 잘 전달되지 않았던 기능들도 알 수 있다는 점이다. 예컨데 차량 방향지시등(깜빡이)을 조작하는 레버에서 단계가 있다는 사실을 이 책을 통해 처음 알게되었다. 깜빡이를 켤때 왜 어떤 경우에는 3번 깜빡이다 켜지고, 어떤 경우에는 핸들을 돌리거나 수동으로 꺼주는 작업이 있는지, 왜 일관성이 없지 하고 의문을 품었던 적이 있었는데, 이제는 그 기능 자체를 왜, 어떻게 풀어냈는지 이해하게 된 것이다.사용자가 원하는 편의성과 기계장치의 발전... 그것을 조화롭게 아울러 사용할 수 있게 하는 인터페이스는 정말 그 시대상을 반영하고 있고, 인터페이스를 통해 사람들의 생활을 다시 돌이켜 보게 되었다.

 

이 책은 인터페이스를 설명하다 보니 그림/사진이 많이 있는데, 흔히 보이는 그림 번호가 빠져 있고, 화살표로 그림을 가리키는 재미있는 인터페이스를 가지고 있다. :)

 

이 책을 읽고난 뒤 얼마 지나지 않아 애플사의 개발자 컨퍼런스인 WWDC에서 CarPlay 인터페이스가 공개되었다. 지도와 속도계, 기어 등등이 다양한 형태로 통합된 것을 보면서 이 책의 저자분은 아래 인터페이스를 보고 어떤 생각을 할지 궁금해 졌다. 2편을 기다려 본다.

내년에 현실화될 애플 CarPlay 인터페이스 화면

 

가슴에 와닿은 문구 몇개를 추려 소개해 본다.

 

심미적(외관, 인테리어, 조명 등), 기능적(자동차 본연의 기능인 이동부터 온열시트까지), 상징적(내 차는 스포츠카이므로 나는 스포츠 정신을 높이 사는 사람) 가치를 디자인하는 것이 모두 자동차 회사 디자이너들의 몫이다.

사용자(운전자가 될 수도 있고, 승객이 될 수도 있고), 보고 만지고 조작하는 거의 모든 영역에서 이 세가지 관점의 가치를 높이기 위해 땀 흘리는 사람

 

UX디자인 부서에서는 사용성 뿐만 아니라 사용자의 감성과 브랜드 이미지도 고려한 의견을 제시하고, 이를 타 부서와 조율해 가면서 최종적인 디자인을 다져 나간다.

 

 

p169

자동차는 사람이 쓰는 물건이자 일종의 공간이라, 사람들의 행동 양식이 반영될 수 밖에 없다. 그러니 시대가 변하면 사람들의 행동도 변하고 거기에 발 맞추어 자동차도 조금씩 변해간다.

 

p200

기술이 발전하면서 어쩔수 없이 하나둘 사라지는 것들도 있지만, 또 반대로 그걸 그리워하며 거기서만 얻을 수 있었던 감성을 애타게 찾는 사람들도 있다. 그걸 시대에 적응 못하는 사람들이라고 단순히 무시하고 넘어갈 수는 없다.

 

p./283

시스템이 사용자의 신뢰를 얻기위해 적극적으로 커뮤니케이션 하는 사례

 

p.300 

앞으로의 십년은 사람들에게 전통적인 자동차의 개념을 달리 생각하게 할 많은 변화가 펼쳐질 것이다.

 

p.308

운전자를 안심시켜주는 것이 바로 시각적, 청각적 피드백이다.

 

p/326

어줍잖게 스크린을 확대하면 멀미를 심화시키지만, VR처럼 작정하고 뒤집어 씌우면 도리에 해결책이 된다.

 

p.334 자동차에 번역이라는 개념이 들어온 것은 아주 최근의 일이다.

디지털 스크린이 각종 버튼을 대신하기 시작하면서 픽토그램만 아니라 글로 쓰는 것들이 점점 더 많아진다.

 

p.359

젊은 운전자들 중 약 절반정도만 경고등 픽토그램을 제대로 이해하고 있다.

자동차가 전기차로 바뀌면 고장도 잘 나지 않고, 그렇다고 그걸 자기가 직접 해집어 보는 인구도 별로 많지 않으니 젊은 세대로 갈수록 경고등을 만나면 당황스러울 수 밖에 없다.

 

p.343

오류메시지 작성지침에 따르면 이러한 모호한 코드나 사람이 읽기 어려운 형태의 메시지는 가급적 지양. 오류 메시지는 가급적 사용자가 취해야 할 행동까지도 안내해 주는 것이 좋다.

 

 

 

YES24 리뷰어클럽 서평단 자격으로 작성한 리뷰입니다.

반응형

+ Recent posts