안드로이드 공부 다시해야겠네요. @_@);;

처음 시작했을 때 접지말고 계속 할 것을...

안드로이드 스튜디오부터 어떻게 쓸지를 모르겠다능...


http://www.yes24.com/24/goods/18455808?scode=032&OzSrank=2

전에 받은 책을 열어볼 때가 되었습니다.

0. ADT bundle 개발환경 설정 전 확인사항

    * Java SDK 1.6 이상이 설치되어 환경변수로 등록되어 실행할 수 있어야 한다.
    * 32bit 운영체제여야 한다. ADK 관련한 것들이 32bit여서 64bit에서 정상적으로 동작하지 않을 가능성이 크다. 리눅스면 32비트 관련 드라이버를 설치하면 되는데, 윈도우는 그게 여의치가 않다.

1. ADT 다운로드
    * 안드로이드 개발페이지 : [다운로드](http://developer.android.com/sdk/index.html)


    * ADT bundle 다운로드 : ADT bundle 압축파일의 크기는 대략 400 MB 이다.
        * Windows 32-bit : [adt-bundle-windows-x86.zip](http://dl.google.com/android/adt/adt-bundle-windows-x86.zip)
        * Windows 64-bit : [adt-bundle-windows-x86_64.zip](http://dl.google.com/android/adt/adt-bundle-windows-x86_64.zip)
        * Mac OS X 64-bit : [adt-bundle-mac-x86_64.zip](http://dl.google.com/android/adt/adt-bundle-mac-x86_64.zip)
        * Linux 32-bit : [adt-bundle-linux-x86.zip](http://dl.google.com/android/adt/adt-bundle-linux-x86.zip)
        * Linux 64-bit : [adt-bundle-linux-x86_64.zip](http://dl.google.com/android/adt/adt-bundle-linux-x86_64.zip)

언제부터였는지는 기억이 나지 않는데, ADT(안드로이드 개발툴)로 묶음으로 제공하기 시작한다. Eclipse for Mobile Developers와 Android SDK 를 묶고, 이클립스 기본설정을 안드로이드에 맞춰서 제공한다.


약관에 동의하고 다운로드 시작



2. ADT 설치
    * adt-bundle-xxx.zip 압축을 해제할 위치를 지정한다.
       ex) windows : c:\development\adt-bundle<br/>
       ex) Linux : /development/adt-bundle-linux     
    * ADT 설치할 위치는 각자가 고민하길 바란다. 귀차니즘은 꼼수의 어머니라고 생각한다. 귀찮은 반복작업(다운로드 하고 설치하고 설정하는 개발환경 설정)을 하다보면 각자가 최적의 방법들을 기록하고 가지고 있을 것이다.
    * 개인적인 설정


        - eclipse 등의 개발툴 설치위치 /development
        - workspace 위치 : /workspace

User Home 위치는 운영체제마다 다르다. 이건 각자 알아서 하자. 워낙에 내가 생각하지 못한 상황들이 자주 생기기 때문에 그걸 일일이 챙겨줄 여력은 없다. 보통 윈도우를 C:\Users\administrator 를 하게 되는데, 이게 보안정책상 관리자 권한을 가진 계정을 사용하기 보다는, 별도의 계정을 만들어서 거기에 필요에 따라 실행권한을 부여하는 정책을 추천한다. 이와 관련해서 이런저런 문제가 발생하는데, 나는 윈도우에서 개발하지 않으므로 고민하지 않는다. 이런 점에서는 리눅스나 유닉스 환경이 개발에 조금 더 용이하다.



3. ADT bundle eclipse 실행 및 Android SDK Manager 실행
    * adt-bundle 설치위치로 이동한다(여기서는 편의상 ADT_HOME으로 정의한다).
       ex) ADT_HOME/eclipse : /development/adt-bundle-linux/eclipse
    * ADT_HOME/eclipse/eclipse 실행



    * workspace 선택
       ex) /workspace/android
    * 메뉴 이동 : Windows -> Android SDK Manager 실행


        * 자동으로 ADT_HOME/sdk 를 탐색하여 [SDK Path] 에 등록된다.
        * 개발할 안드로이드 버전에 맞춰서 SDK Platform과 API를 선택하고 [Install Packages...]를 선택한다.
        * 기본 설치 버전 : 4.2(API v17), 4.1.2(API v16)




이렇게 해서 기본적인 안드로이드 개발환경 설정을 완료했다.

Android Developer 사이트에는 안드로이드 개발 업무흐름(workflow : http://developer.android.com/tools/workflow/index.html)도 설명을 하고 있다(물론 영어다!).

Android App Workflow :

* Setup : 환경 설정, 에뮬레이터 및 개발기기 설정

* Development : 개발(애플리케이션 개발)

* Debugging and Testring : 디버깅 및 테스트

* Publishing : 앱 배포

의 순서로 안드로이드앱이 개발되고 플레이 스토어에 등록되어 사용자들에게 전달된다.

GDG Android Korea 세미나 참가 이후(2013/01/20 - [Android] - 20130119 GDG Android Korea 세미나) 안드로이드 개발세계에 발을 본격적으로 들이는 해가 될듯 하다.

안드로이드 개발을 하려고 하면 알아야 하는 게 참 많다. 그래서 그것들을 정리하자니 어렵다.

쉽지 않은 일이라는 사실을 이해해줬으면 한다.

이렇게 정리한 내용을 조금 살을 덕지덕지 발라가면서 글을 늘려가볼까 한다. 오늘 대충 생각한 것이라 구조가 딱히 마음에 드는 것은 아니다. 안쓰던 글을 쓰려니 머리가 복잡하다. 하아.


1. 자바


  1. 참고사이트
    • 자바의 정석 (http://cafe.naver.com/javachobostudy)[http://cafe.naver.com/javachobostudy]
  2. 자바를 배워야 하는 이유 : 자바는 생각보다 배우기 어렵다. 객체지향에 대한 이해…는 나중에 천천히 익혀도 되고(중요한 부분이다), 객체가 가지는 데이터와 기능(Function, method라고 불림)에 대한 이해가 선행되지 않으면 이게 어느나라 소리인가 하게 되는 그런 이야기를 하게 된다. 강력한 타입체크(기본형, 참조형)형 언어이고 어떻게 개발하느냐에 따라 성능차이도 상당히 많이 난다. 기본적으로 진행되어야 할 것은 인터페이스와 클래스의 구분, 상속을 통한 확장(extends)와 구현(implements) 에 대한 이해를 해야한다. 
  3. 자바 설치 및 경로설정

3. IDE 및 ADT


  1. 참고사이트
  2. 이클립스 사용법을 배워야 하는 이유 :
    • 노트패드로 개발할는 있다. 그러나 참조하는 소스를 전체적으로 변경하는 작업을 하기는 너무 어렵다.
    • 도구를 잘 사용하면 편하다.
    • 이클립스와 ADT 조합이 안드로이드 개발에는 최적이다.
    • 무료(공짜)다.

3. 안드로이드


  1. 참고사이트나 서적
    • 안드로이드 사이트 (http://developer.android.com/index.html)[http://developer.android.com/index.html]
      • 제일 많이 찾아오게될 사이트, 영어로 되어 있지만, 여기만한 곳이 없다는 생각이 든다.
    • 커니의 안드로이드 (http://androidhuman.tistory.com/)[http://androidhuman.tistory.com/]
    • 안드로이드펍 (http://www.androidpub.com/)[http://www.androidpub.com/]
  2. 안드로이드를 배워야 하는 이유 : 안드로이드에서는 왜 static class를 만들어 진행해야 하는지에 대해서도 이해해야하고… 안드로이드에서는 화면(Activity)와 화면설계서(layout.xml)을 왜 분리해서 사용하는지에 대한 이해도 해야하고, 이렇게 분리된 자원(리소스)에 대해서 어떻게 접근하고 화면에서 조작하는 것에 따라 변경시킬지에 대한 이해도 필요하다. 모르는 것을 하나하나 배워가면서 시행착오를 겪게된다는 것을 받아들이지 않는다면 배움은 더디기만 할 것이다. 


아래는 나중에 자바와 개발에 대한 경험이 쌓이고 난 다음에 시작해도 늦지 않을 것임 



4. 서버사이드 개발 : 안드로이드에서 통신으로 접근하여 동작하는 API / 데이터 처리


  1. 참고사이트나 서적 :
    • 굉장히 많아서 ’딱! 이거다!’라고 설명하기 어렵다. 그때그때 필요나 문제에 따라서 찾아봐야한다.
    • 서버사이드는 자바로 개발할 수도 있고 다른 언어로 개발된 환경을 사용할 수도 있을 것이다.

5. 통신(HttpClient, API call)

6. 텍스트 데이터 파싱(마샬링Mashaling/언마샬링Unmashaling)

기본 입문서들은 있지만, 거기서 한단계 나아간 초중급 유저를 위한 서적은 없다는 생각을 한다.

지금껏 입문서를 읽었지만, 현업과는 조금 다른 이야기들이 많다. 안드로이드가 어떻게 동작하고 이렇게 저렇게 조작하기 위해서 요렇게 그렇게 하면 된다고 설명하는 책은 많이 봐왔다. 그런데 실제로 앱개발에 닥쳤을 때 활용할 만한 것들이 그리 많지가 않다.

안드로이드 개발을 본격적으로 시작한 개발자에게 필요한 안내가 적다. 보통 앱개발을 할 때는 서버쪽 API 개발이 병행되어 진행해야 한다. 조금 조직이 크고 업무분담이 잘 되어 있다면, 앱개발자는 서버 개발자에게 필요한 API에 대한 개발을 요청하고, 그것에 대한 처리만 앱에 구현하면 되겠지만 대부분 그렇게할 수 없는 회사에 다니는 이들이 대부분일 것이다. 그런 사람들은 서버와 앱개발 양쪽을 자신의 힘으로 처리해야하는 문제에 놓이게 된다. 양쪽을 설명하는 글은 찾아보기 힘들다. 인터넷 등으로 검색할 수 없는 숨은 고수들이 수면 밑에서 자신들의 기량을 갈고 닦고 있을지도 모르지만 대부분의 개발자들은 서버와 앱개발의 막막함 속에서 넋을 놓고 넉다운 되어 있을 가능성이 높다.

  그런 사람들에게 조금이라도 도움이 되는 글을 써볼 수 있을까?

  글이 담으려고 하는 주제는 '앱을 개발하면서 필요한 서버 API 들을 추가하면서 배워가는 안드로이드 개발'이라고 할까?

  참 거창하고 그럴싸한 주제인데... 쓰기는 참 거시기한 주제이기도 하다.

  톰캣, 스프링, 웹애플리케이션, xml, json, 안드로이드, 웹뷰, httpclient 등이 뒤섞인 내용이 될 것이라... 이것들을 충분히 이해하고 내것으로 만들어 낼 수 있을까라는 걱정도 든다. 되든안되든 시도를 해보는 것은 나쁘지 않겠다는 생각이 든다. ^^;


  우선은 내가 올해 하기로 했던, '자바 개발자를 위한 우분투 개발환경 구축 및 CI 구축 활용'에 대한 글부터 써내려가야 겠지만...

  욕심만 있지 실천을 제대로 안하고 있는 게으른 30대를 보내고 있구나. 하아.    


  인증되지 않은 애플리케이션을 실행해서 '안드로이드 마켓(최근 'play store'로 명칭 변경)'으로 이동하여 동일한 애플리케이션을 업데이트하려고 하면 위와 같은 팝업이 뜬다. 제거를 눌러서 폰에 설치되어 있는 애플리케이션을 제거하고, 설치하면 간단하게 처리가 된다.


위와 같은 상황이 뜬 것은, 안드로이드앱 업데이트 확인절차(안드로이드 마켓 말고 서비스를 제공하는 운영서버에 등록된 앱버전을 확인)를 걸쳐서 마켓으로 이동을 했을 때 나타나는 현상이다.

현재 구글마켓에서 등록된 앱버전을 확인할 수 있는 방법은 없어보인다.

+ Recent posts