Skip to main content

[Android] Think about Android

개인적인 생각으로 Google 은 Android 는 Java 개발자들에게, Programming 을 시작하는 사람들에게 큰 영향을 주고 있다고 생각 한다.

최근에 Java 를 공부한 사람들이라면 아마 대부분 Android 개발을 위해, 또는 Java  를 이용한 Program 개발능력을 향상시키기 위해서라도 Android 에 관심을 갖고 있을 것이다.

나 역시, Java 를 공부하면서 어떻게 하면 좀 더 실질적으로 Java 를 사용해 볼 수 있을까? 라는 생각으로 고민하던 중, Android 를 접하고 공부하게 되었고, 지금은 Android Application 개발을 주로 하게 되었다. (물론 아직 갈길이 멀다.)

Android 를 처음 공부했던 때가 2010년. 그후로 Android 는 정말 눈부신 발전을 해 왔고, 현재도 계속 발전하고 있다. 정말 잠시라도 한눈팔면 발전속도를 따라잡기 힘들 정도다.

처음 Application 을 만들때는 정말 수십개의 Activity 를 만들면서 말되 안되는 코드로  난장판을 친 기억이 난다. (최근에는 Fragment 로 똑같은 짓을 하고 있다고 생각하지만..)
코드 재활용이라고는 정말 생각조차 안했고, 어떻게든 동작하는데만 중점을 두고 만들기만 했었다.

그러면서 조금씩 개발에 여유가 생길때쯤, 어떻게 하면 좀더 편하게 개발 할 수 있을까? 하는 잡생각이 생기기 시작했다.

그러면서 Maven, Ant, Jenkins 등 Build Tool 과 CI 에 관심을 갖기 시작했다.
하지만 현실적으로 회사 프로젝트에 적용하기는 쉽지 않았다. 회사에서 이런 Build Tool 을 사용하지 않을 뿐만 아니라, 나 자신도 잘 모르는데 팀 프로젝트에 적용할 수 없었기 때문이다.
그리곤 점차 기억속에서 멀어지게 되었고, 공부한것도 완전 Reboot 되 버렸다.

최근 Google I/O 13 에서 Android Studio 가 공개되면서 다시한번 Build Tool 에 관심을 갖게 되었다.

그런데 이게 왠일.. Maven 이 아니네.. Gradle 이라니... 어디서 듣도보도 못한.. 이라고 생각했는데.. 검색해 보니 이건 또 신세계 인가 싶다. 특히 우리나라에서는 아직 유명한것 같지도 않고, Gradle 을 사용하기 위해서는 Groovy 가 선행 되어야 한다는 이야기를 보게 되니 선뜻 손 대기가 쉽지 않아 보인다.

그렇지만, 이렇게 계속 뒤쳐질 수는 없으니.. 이제부터 한번 시작 해 보려고 한다.

그동안 Android 를 하면서 겪은 삽질, Gradle ,Groovy 그리고 Android Studio 를 경험한 점을 블로깅 해 볼 생각이다.

사실 이런 블로깅을 해 본 경험이 없기 때문에 어떻게 잘 될지 모르겠다.
하지만 그동안 내가 짧게나마 겪었던 내용들을 정리함으로써 그동안 내가 해 왔던 일을 정리하는 시간을 갖을 수 있을 것 같고, 새로운 기술에 적응하면서 한층 더 발전 할 수 있으며, 나 같이 초보 개발자 분들에게 조금이나마 도움이 될 수 있었으면 좋겠다.

부디.. 끝까지 잘 해 낼 수 있기를 ㅎ 

Comments

Popular posts from this blog

[Tip] Android Studio, Intellij 에서 Source Code Pro font 적용

예전에 코딩할 때 좋은 폰트 에 Source Code Pro 가 1등으로 선정된 것을 본 적이 있다. 그전까진 나눔고딕코딩 을 자주 썼는데, Source Code Pro 를 쓰면서 가독성이 좀더 향상된 것을 느낄 수 있어 요즘 주력 폰트로 사용 하고 있다. 그런데 Mac에서는(윈도우는 어떨지 모르겠지만...) Eclipse 나 Xcode 에서는  문제없는 이 폰트가 유독 Intellij 혹은 Android Studio 에서는 폰트 설정 시, 이탤릭체가 깨지는 문제가 발생하고 있다. 폰트 설치 후, Intellij 에 적용하면 아래와 같이 이텔릭 채 부분에서 깨지기 시작한다. 이같은 문제는 이미 Source Code Pro Github issue 에 등록되어 있는데, issue 에서 가이드 하는 수정방법은 다음과 같다. 먼저 Source Code Pro Font 를 다운받고, 설치하자. Source Code Pro Font 다운로드   그 후 아래 폴더로 이동하자. /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/fonts 위 경로에 Source Code Pro 의 TTF 에 포함되어 있던 폰트들을 모두 복사하여 붙여넣는다. 그리고 Intellij (혹은 Android Studio) 를 재부팅 후, 다시한번 폰트를 설정하러 들어가면 아래와같이 폰트들이 나타나는것을 확인 할 수 있다. 개인적으로 Medium 을 선호하기 때문에 Medium 을 선택. 그러면 아래처럼 정상적으로 출력됨을 확인할 수 있다.

[Android] Butter Knife Library(1)

Android UI 개발 시, 반드시 선언해 주어야 하는 구문 중 하나가 바로 findViewById 이다. 이는 View 를 선언할 때 반드시 필요한 구문이지만, 반복적으로 사용해야 하고, 메소드가 길어지는점, 특히, Adapter 에서 Holder pattern 과 같이 사용하게 되면 같은말을 두번해야 하는 번거로움 마저 느껴진다. 최근에는 이같은 반복적인 작업과 UI 선언 부의 노력을 줄이고, 코드에 좀 더 집중하기 편한 Library 들이 선보이고 있다. 그중에서도 눈의 띄는 Library 는 단연 AndroidAnnotations 과 지금부터 이야기 할 Butter Knife 이다. AndroidAnnotations logo AndroidAnnotations 은 지난 GDG mini conference 에서도 소개된 적이 있다. (사실 그때 처음 일았지만..) 당시에 Clean Code 라는 주제로 코드 분량을 줄이고, 실제 동작하는 로직에 좀 더 집중할 수 있도록 도와 주었다. 사실 , AndroidAnnotations 이 더 많은 기능을 제공하고 있지만, EActivity 사용시 _ 를 추가해야 한다는 점, 과거 intellij 에 적용시 몇몇 버그들이 발생 으로 인해 (현재는 해결됬을지도.) 프로젝트에 적용하기 쉽지 않았다. 그러던 중, 최근 가장 hot 한 Opensource 를 제공하고 있는 Square 팀의 JakeWharton 이 Butter Knife 를 Release 하였다. Butter Knife logo 현재 가장 최신 버전은 2.0.1 이고 계속해서 기능개선이 이루어 지고 있다. Butter Knife 는 아래와 같은 장점을 지니고 있다. 1. LightWeight Size 모바일 device 에서는 jar 하나 추가하는데도 많은 고민을 해야 한다. 안그래도 많은 기능들을 추가해야 되고, library 를 사용해야 하는데 이렇게 코드를 줄이기 위해서 많은 용량을 할애하기도 애매...

Google Press Event 7/24/13

Sundar Pichai 와 함께한 아침. Google 은 3가지 새로운 제품에 대한 발표를 하였습니다. 1. 2nd Nexus7 첫번째는 이미 소문이 무성했던 Nexus7 입니다. 성능이 대폭 향상되었습니다. Nexus 7 발매와 더불어 google app 들이 업데이트 되었고, Google Play Game 과의 연계성도 더욱 향상되었습니다. 4G LTE 는 미국에만 제한적으로 사용될 것으로 보입니다. 가격은 다음과 같습니다. - 16GB WIFI : $229 - 32GB WIFI : $269 - 32GB LTE : $349 조만간 발매될 국가에 한국도 포함되어 있습니다. (만세!) Google Play 에서 판매 예정이라고 합니다. 개인적으로 고화질 디스플레이 와 OpenGL|ES 3.0 이 지원되면서 게이밍 기능이 향상된 점을 강조하는 것이 눈에 띄였습니다. 아마도 멀티미디어 적인 기능향상으로 인한 자신감이 아닐까요. 2. Android 4.3 두번째로 Android 4.3 에 대한 소식입니다. 새로운 기능들이 많이 추가되었습니다. 4.3 APIs  는 바로 다운 받을 수 있습니다. http://developer.android.com/about/versions/jelly-bean.html 개인적으로 눈에 띄는 APIs 는 ActionBar 가 드디어 하위버전을 지원하기 시작했다는 것 입니다. new v7 appcompat library 에 추가 된 사항으로 Android 2.1(API level 7) 까지 지원합니다. 이를 지원하기위해  ActionBarActivity class 가 새로이 추가 되었습니다. 3. Chromecast 위 두 소식은 이미 들은 이야기가 많았지만 chromecast  는 좀 생소했습니다. 쉽게 생각해서 Apple 의 AirPlay 와 흡사하다고 보시면 될 것 같습니다. ...