이클립스 vs 안드로이드 스튜디오 : 무엇이 다를까?
##1 안드로이드 스튜디오로 변경하기 전
안드로이드 스튜디오 발표 후 많은 프로젝트들이 안드로이드 스튜디오로 제작되고 있다. 새로운 IDE에 익숙해져보자!
##2 워크스페이스와 서브프로젝트들은 이제 안녕!
이클립스를 사용해 온 당신은 "워크스페이스"라는 컨셉이 친숙할 것이다. 안드로이드 프로젝트에 다양한 라이브러리와 프로젝트들을 워크스페이스에 추가한 후, .jar 파일 등 라이브러리를 포함시켜 어플리케이션을 개발했을 것이다. 안드로이드 스튜디오에서는 프로젝트들은 새로운 컨셉인 "모듈"과 "라이브러리 모듈"로 이를 대체한다.
## 반가워 모듈
모듈은 "기능적으로 빌드와 테스트, 디버깅을 각각 독립적인 유닛으로 분리한다"라는 의미를 가진다. 이클립스와는 유사하지만 분명 다른 포인트이다.
각각의 모듈은 Gradle build file(새로운 프로젝트나 모듈을 추가할 때 자동으로 생기는 - 이클립스에서는 라이브러리를 Export 해서 사용하는)을 가지고 있다. 그래들 파일들은 안드로이드 빌드 버전 같이 중요한 정보를 가지고 있으며 프로젝트의 meta-data에 의존성을 가지게 된다.
"라이브러리 모듈"은 이클립스에서 라이브러리 프로젝트와 같다.
## 진화된 인터페이스 디자인
안드로이드 스튜디오의 새롭고 진화된 특징인 인터페이스 디자인이다. 뷰를 만들고 연관된 컴포넌트들을 배치할 때 사용된다. 이클립스에서는 "perspective"라는 기능을 통해 뷰와 액션들을 보여주지만 굉장히 무겁고 잘되지 않는다는 것을 잘 알고 있을 것이다...:( (코드로 레이아웃 xml을 짜는 것이 이미 익숙해졌다! 하지만 안드로이드 스튜디오에서 좀 더 편리하게 뷰 배치가 가능하다)
## Jar Dependencies
이클립스에서는 라이브러리를 사용하기 위해 Jar 파일을 "libs"폴더에 복사한 후 사용을 해왔을 것이다. 그러나 안드로이드 스튜디오에서는 .Jar dependencies만 그래들 빌드 파일에 추가하면 된다. 안드로이드 스튜디오에서는 "libs"폴더 마우스 오른쪽 클릭 "Add As Library" 메뉴를 눌러 추가가 가능하며 자동으로 그래들에 추가되며 모듈로 사용할 수 있다. 물론 추가 뿐 아니라 "Sync Gradle"을 눌러 Jar 파일을 쉽게 업데이트 할 수 있다.
## Mainfest
안드로이드 스튜디오의 큰 변화 중 하나는 액티비티나 세팅들을 Manifest 파일에 자동으로 기록해준다는 것이다. build.gradle 정보에 있는 버전코드나 지원버전등을 자동으로 기록하게 된다. (Feature나 권한들은 수동으로 추가해야 된다)
## Gradle
그래들을 추가하는 것이 당신이 안드로이드 스튜디오라는 새로운 툴을 사용하는데 허들이 될 수 있다. 아래 안드로이드 스튜디오 공식 설명을 통해 기본적인 점은 인지하고 시작하기 바란다.
- 모든 안드로이드 스튜디오 프로젝트는 setting.gradle 파일을 가진다.
- 이 파일들은 모든 모듈들의 레퍼런스를 가지게 되며 새로운 모듈을 만들거나 사용할 때 자동으로 업데이트 된다.
- 안드로이드 스튜디오 모듈은 각각 build.gradle 파일을 가진다.
- 만약 하나의 모듈이 다른 모듈안에 속하게 된다면, 당신은 build.gradle에 dependency를 파일 내 dependencies 부분에 명시해야 한다.
- 만약 모듈이 jar 파일을 필요로 한 경우, 모듈의 build.gradle file에 꼭 적어야 한다.
- 수동으로 gradle file을 수정하게 된다면 이 문서를 좀 더 읽어 보기 바란다.
## 유닛 테스트
안드로이드 스튜디오는 Junit 과 Android test를 지원한다. (좀 더 자세한 내용은 이 문서를 참조하기 바란다)
## Maven을 통한 depencies import
안드로이드 스튜디오는 Maven Central(http://search.maven.org/)에 있는 라이브러리를 들을 바로 추가 할 수 있다. Maven을 통해 다운로드 및 업데이트를 좀 더 편리하게 할 수 있다.
해당 포스트는 Rex St. John 의 Android Studio vs Eclipse: What you need to know 를 번역한 문서입니다.
- 오역이 있을 경우 알려주세요 :)
- Shakej (http://mnworld.co.kr)
+ 최근 거의 대부분의 프로젝트들을 안드로이드 스튜디오로 변경했습니다 :) 가장 마음에 드는 점은, Auto compelete 기능이 이클립스는 첫글자부터 맞아야 하는 반면, 안드로이드 스튜디오는 글자가 포함된 모든 리소스를 보여주는 부분입니다 :) (이를테면, hidden_container 라는 id값을 찾을 때 이클립스는, hidden 이라고 쳐야 하지만, 안드로이드 스튜디오는 container 를 입력하면 container 가 포함된 모든 ID리스트를 보여줌), Gradle 을 통한 라이브러리 관리도 훨씬 용이합니다 :)