프로그래밍/안드로이드

안드로이드 프로그래밍 시작하기

Terry Cho 2015. 6. 14. 23:50

안드로이드 프로그래밍 시작하기 (둘러보기)


조대협 (http://bcho.tistory.com)


요즘 서버쪽 기술은 다소 시들해진것도 같고, 하는 일이 모바일 서비스인지라 (얼마전에도 그랬지만..) 알아야할것 같아서, 안드로이드 프로그래밍을 보기 시작했다. 
아무래도 서버 개발자 출신이다 보니 안드로이드 개발이라는 생소한 분야를 이 나이에 공부하면서 정리하는 내용이니 혹여나 내용이 허접하더라도.. 이해해주시기를.. (초보자 시각에서 정리한 내용입니다. )

구글에서 안드로이드 IDE인 안드로이드 스튜디오를 다운받아서 설치하면, 통합 개발 환경을 사용할 수 있다. 이 IDE는 보니, JetBrain의 IntelliJ를 기반으로 만들어진 환경이다. (구글이 이런 투자는 잘한듯..)
그러다 보니 이클립스를 쓰면서 불편했던 문제는 없이 제법 꽤 완성도가 높은 개발도구로 개발이 가능할 듯 하다.

스튜디오를 다운받아서 실행을 하고, 새로운 프로젝트를 만들면, 특이 한것이 다음과 같이, “Minimum SDK” 버전이라는 것을 고르는게 나온다. 즉, 어느 SDK버전으로 개발을 할것인지를 선택하는 것인데, 




이는 앱의 호환성과 기능 문제와 결부 된다. 너무 낮은 SDK버전으로 개발을 하게 되면 여러 앱을 커버할 수 있는 호환성은 높겠으나, 고급 기능을 사용할 수 없고, 높은 SDK 버전을 사용하게 되면 낮은 단말을 지원할 수 없어서 많은 사용자를 놓칠 수 있다.

위자드 상에서 가이드를 보면, 안드로이드 4.0.3 아이스크림 샌드위치 버전을 권장하는데, 이 버전을 사용하면 현존 단말이 90.4% 가 커버가 가능하다고 나온다.




약 10%가 커버가 안된다는 것인데, 말이 10%이지 100만 배포의 경우에는 10만대, 1000만 배포의 경우에는 100만대의 시장을 잃어버린다는 것이지 어마어마한 규모이다. (근대 2.X 대에서 요즘 앱이 잘돌아가나? 가벼운 앱이면 몰라도, 어느정도 기능이 있으면 어렵지 않을까??)

안드로이드 스튜디오에서 프로젝트를 생성하면 다음과 같은 파일 구조가 나온다. 몇몇 중요한 점만 짚고 넘어가보자




자바 소스 코드들은 main/java 디렉토리에 들어가 있고,
기타 리소스 파일들은 main/res 디렉토리에 들어가 있다. 일반적인 자바 프로젝트와 크게 다르지 않다
빌드 스크립트가 특이하게 gradle로 생성이된다. 예전에는 무엇으로 생성이 되었는지 모르겠지만, maven에 익숙한 나로써는 다소 챌린지이다.
그리고, proguard 관련 설정 파일이 생성되는 것으로 봐서, 기본으로 사용이 가능한거 같은데, proguard는 난독화 (소스 코드를 읽기 어렵게 만들어서 디컴파일시에 소스코드를 봐도 이해 하기가 어렵게 만드는 도구) 기능이 통합 되어 있는 듯하다.

몇몇 눈에 띄는 중요한 디렉토리와 파일들이 있어서 정리를 해보면 다음과 같다.

layout 파일 
모바일 프로그래밍은 GUI가 있는 만큼 역시나 안드로이드도 레이아웃 시스템을 사용한다. 예전 Java Swing이나, 현대 웹 프로그래밍의 BootStrap UI 프로임웍과 크게 다르지 않다. IDE에서 에디팅을 통해서 작성할 수 있기 때문에, 일반 컴포넌트를 사용하는 GUI 배치 구성은 layout이라는 파일에 작성하여 지정을 한다.

string.xml 파일
라벨등에 사용되는 기타 문자열들을 string.xml이라는 파일에 몰아서 저장해놓고 불러 쓸 수 있는데, 이는 Localization(지역화)를 위해서 디자인 되었다. 하나의 파일에 모든 텍스트를 지정해놓고 사용하고 다른 언어를 바꾸게 되면 이 string.xml 파일만 교체하면 되기 때문에, 지역화에 대응하기 좋은 구조이다.




그런데, 하나의 앱으로 여러 언어를 표현할 수 있는 Globalization(세계화)지원은 어떻게 하지? 



그리드형