Skip to main content

[Android] Gradle, Groovy Books

최근 AndroidAndroid Studio 라는 통합 개발툴과 함께 새로운 빌드 시스템을 공개 했다.

그동안 Android 의 유명한 Opensource Library 는 대부분 Maven 을 기반으로 배포되고 있었는데 Android 가 채택한 빌드툴은 바로 Gradle 이다.

Gradle Logo
figure 1. Gradle Logo
Gradle 은 Java 진영에서 Maven 이후 주목받고 있는 차세대 빌드툴 이다.
Ant 와 Maven 의 장점과 함께 더 발전된 기능들을 제공하고 있고,  Groovy 라는 언어를 기반으로 동작 한다고 한다.

나 역시 Maven 까지는 어깨너머로 본 기억이 있지만, Gradle 은 정말 처음인지라 Android 를 하는데 이런것 까지 해야되나 라는 생각이 들기도 한다.

하지만, Android 의 성장과정을 생각해 보면 이러한 빌드툴은 반드시 필요하긴 하다.

최근 Android Project 는 단일 Project 로 진행 되는 경우가 거의 없을 정도로 다양한 Opensource 및 Libraries 를 포함하고 있다.

단순히 Eclipse 에서 Compile 로 Device 에 App 을 올리기에는 덩치가 너무 커지고 있고, 기본이 되는 Build Tool 이 없기 때문에 Ant 나 Maven 등 기존 Java 진영에서 많이 사용하고 있는 여러 Builde Tool 들이 사용되다 보니 개발자 입장에서는 여러 Library 를 사용할때 어려운 점에 봉착 하기도 하기 때문이다.

그런데 이 Gradle 를 공부하기 위해서는 Groovy 라는 언어에 대한 이해가 먼저 선행 되어야 한단다.

figure 2. Groovy Logo
Groovy 가 Java 기반의 언어라고는 하지만 Android 하나 하기도 벅찬데 Build 를 위해 새로운 언어를 공부해야 된다는 점은 부담으로 작용된다.

더욱이 우리나라에 Groovy 번역 도서는 달랑 한권. Gradle 관련 도서는 전무한 상태이다.
그마나 Groovy 와 Gradle 를 자세히 정리한 블로그가 있고, Groovy Korea 가 있어 여러 정보를 얻을 수 있을 것 같다.

당연한 이야기지만 위 사이트들은 Android 에 한정된 이야기만을 하는 사이트 들이 아니다.
나처럼 Android 개발을 위해 Groovy 와 Gradle  에 접근한 사람들에게는 그 내용이 방대하고 어디서부터 시작해야 할지 난감할 것이다.

그래서 오늘부터 Android 개발을 위해 Groovy 와 Gradle 를 공부해 볼 생각이다.
일단은 Groovy 기본을 좀 보면서 Gradle 을 사용할 수 있는 기초를 닦은 후, Android Project 에 적용해보도록 해야겠다.

전쟁에 나가기 전에 준비를 철저이 하듯이, 새로운 언어에 적응하기 위해 책을 구입하고 말았다.

바로 Groovy in Action( 한국판: 프로그래밍 그루비) 와 Building and Testing with Gradle  이다.
figure 3. Groovy in Action
2009 년에 나온 번역서라 시대에 좀 뒤쳐지지 않을까 생각이 들기도 하지만, 엄청 유명한 도서 인데다, 그리고.. 번역서라곤 이거 한권 뿐이다.

figure 4. Building and Testing with Gradle
게다가 Gradle 는 번역서도 없다. 때문에 원서 pdf 를 통해 공부해야 할 판이다. 한글로 써 있어도 어려운 판국에.. 원서라니 .. 하지만 별다른 수가 없으니.. 어서빨리 번역서가 나왔으면 좋겠다..ㅠ

앞으로 계획도 좀 잘 세워서 하나하나 차근차근 배워 나가도록 해야겠다.
한편으로는 새로운 빌드툴을 공부한다는 생각에 의욕이 100%!

Comments

Popular posts from this blog

[Android Application Testing Guide] Chapter3 jar file

Android Application Testing Guide(에이콘) 3장 Sample 을 실행시키기 위해서는 libdummy-0.0.1.jar 가 필요한데, sample file 에는 프로젝트만 존재한다. 결국 jar 를 만들어야 되는데.. ant 빌드다. 어허허... jar 파일이 없으면 예제 진행이 어려우므로. ant build 한 jar 를 첨부. libdummy-0.0.1.jar download

[JUnit] JUnit 최신 사용시 주의점(JUnit in Action)

요즘 JUnit in Action 을 통해 JUnit 공부를 해 가고 있다. 책에서 사용하는 버전은 4.6, 현재 JUnit 의 최신 버전은 4.11 이다. 그런데.. 다운받아서 실행해 보면 여러 에러가 발생하게 된다. 특히 chp3 에서는 Hamcrest 를 사용하게 되는데 최신버전(4.11) 에서는 Hamcrest 가 포함되어 있지 않기 때문에 별도로 받아서 같이 실행 해야 한다. 따라서 편하게 책 내용을 진행하기 위해서는 4.6을, 그나마 좀 더 최신 버전을 쓰기 위해서는 4.10 을 (4.10 까지는 Hamcrest 포함). 아니면 아예 이클립스로 작업해서 JUnit 을 설정해 주면, 4.11 버전에 Hamcrest 를 모두 포함해서 실행시켜 준다.

[번역] A journey on the Android Main Thread - Part 1

본 문서는 square engineering blog 에 기재된 A journey on the Android Main Thread - Part 1 기사를 번역한 것 입니다. coding horrer 에 왜 우리는 소스 읽는 법 을 배워야 하는가 에 대한 기사 가 있습니다. 안드로이드의 가장 큰 특징 중 하나는 오픈소스 생태계 라는 점 입니다. PSVM (public static void main) public class BigBang {   public static void main ( String ... args ) {     // The Java universe starts here.   } } 모든 자바 프로그램은 public static void main() 메소드를 호출하면서 시작합니다. 이는 자바 데스크탑 프로그램, JEE 서블릿 컨테이너, 안드로이드 애플리케이션 이 모두 동일 합니다. 안드로이드 시스템은 부팅 단계에서 ZygoyteInit 이라 불리는 리눅스 프로세스를 실행합니다. 이 프로세스는 달빅VM 으로, 쓰레드에 안드로이드 SDK 의 대부분의 클래스 를 로드 하고 대기합니다. 새로운 안드로이드 애플리케이션을 시작할 때, 안드로이드 시스템은 ZygoteInit 프로세스를 포크 하게 됩니다. 포크된 자식 프로세스의 쓰레드는 대기를 해제하고, ActivityThread.main() 메소드를 호출합니다. 위키피디아 에 정의된 zygote 란 수정란을 의미합니다. Loopers 계속 진행하기 앞서, 우리는 Looper (이하 루퍼) 클래스를 살펴 볼 필요가 있습니다. 루퍼를 사용하는 것은 하나의 쓰레드가 메시지들을 연속해서 실행하도록 하는 좋은 방법 입니다. 각각의 루퍼는 메시지 객체의 큐를 지니고 있습니다. (이를 메시지 큐 MessageQueue 라고 합니다.) 루퍼는...