2013 DevFest W Seoul

내 이야기 2013.03.03 17:52 |

2013년 3월 2일. 학여울역 SETEC에서 열린 2013 DevFest W Seoul에 다녀왔습니다.

이번 2013 DevFest W Korea는 1주일 격차를 두고 서울과 부산에서 열립니다.

저는 서울에 참석하게 되었구요.^^



DevFest W Korea는 한국의 구글 기술과 오픈 소스에 관심이 많은 여성, 남성 개발자들이 모여 개발자로써 자신이 겪은 지식과 경험을 다른 개발자들에게 공유하는 "쿨한 개발자들의 컨퍼런스"입니다. 주로 Android, Chrome, Golang, Web(HTML5, JS), 오픈 소스에 대한 주제로 각 트랙마다 세션이 이루어져 있습니다.



먼저 트랙별 세션 소개입니다.


A 트랙

시    간

발표자

소속

발표 주제

10:00~10:50
(50분)

박성재

서울대학교

Let the contribution begin

오픈소스 프로젝트에 참여 시작하기

11:00~11:50
(50분)

허재위

GDG Korea Golang

Go for Java programmers

11:50~12:50
(1시간)

Lunch Time

12:50~13:40
(50분)

임유진(W)

Kakao

Android App을 TDD로 개발하기

13:50~14:40
(50분)

이원제

Veckon

WebRTC

14:40~15:10
(30분)

Big Break

15:10~16:00
(50분)

장현정(w)

오픈스택 커뮤니티

오픈소스로 구축하는 클라우드 이야기

16:10~17:00
(50분)

문현경

GDG Korea Chrome

Yeoman 으로 Chrome Extension 만들기


B 트랙

시    간

발표자

소속

발표 주제

10:00~10:50
(50분)

김경미(w)

Neowiz Internet

구글인앱빌링 사용 모듈 구현사례

11:00~11:50
(50분)

박영훈

Kakao

안드로이드 커스텀 레이아웃 구현하기

11:50~12:50
(1시간)

Lunch Time

12:50~13:40
(50분)

홍영기

LG전자

Views, Aura and Ash: ChromeOS UI Framework

13:50~14:40
(50분)

김태웅

레스코드

How to live like a Goer

14:40~15:10
(30분)

Big Break

15:10~16:00
(50분)

고재도

Korea AngularJS User Group

Google의 JavaScript Framework인 AngularJS 시작하세요!

16:10~17:00
(50분)

김종민

GDG Korea Golang

Concurrency is not Parallelism / Go Concurrency Patterns



저는 위 테이블 중 노란색으로 칠한 세션을 들었습니다.



각 세션의 내용을 정리하기에는 제 지식 수준이 부족한 부분이 있고, 부분 부분 확실하게 공유할 수 있는 부분에 대해서만 정리를 하려고 합니다.


Let the contribution begin

일단 첫번째 세션의 박성재님께서 오픈 소스 프로젝트에 공헌하는 방법을 알려주셨습니다. 과정은 그렇게 복잡해보이지는 않더군요.

박성재님께서 발표하신 일반적인 오픈 소스 프로젝트에 공헌하는 프로세스입니다. 


1. 소스 코드를 다운 받는다.

2. 목표를 정한다.

3. 코드를 수정한다.

4. 패치를 보낸다. 

5. 리뷰를 받는다. 


일단 git이든, svn이든 소스가 올려져 있는 곳에서 코드를 다운받고, 어떤 부분을 수정할 지 목표를 정합니다. 

이 때 초보 공헌자는 처음부터 목표를 너무 크게 잡지 말라고 하시더라구요. 

특정 부분의 설계가 확실히 잘 못되었다 하더라도 처음부터 설계를 수정하려하면 안된다는 것 입니다. 그 이유인 즉, 설계를 수정하려는 contributor가 앞으로 어느정도 공헌을 할지 알지 못하는 상황에서 코드의 많은 부분을 수정하게 허락하기가 힘들다는 것이죠.


그래서 공헌을 시작하려면 프로젝트에서 사용하고 있는 코딩 규칙에 어긋나는 코드를 찾아서 패치하는 등 작은 부분부터 시작하라는 것입니다.


당연한 말이지만 코드를 받아서 브랜치를 만든 후 수정 작업을 진행하게 됩니다. 

수정이 완료되면 이에 대한 패치를 만들어서 메일로 관계자에게 보내면 된다고 합니다.

git에서 패치를 만드는 방법이 있더군요.

명령 프롬프트에서

git format -patch master..HEAD 

명령을 입력하면 마스터 브랜치부터 최근 작업 내역까지를 패치로 만들어준다고 합니다.


메일을 보낼 때에도 누구한테 보낼지 명확하지 않다면 

./scripts/get_maintainer.pl 

명령을 입력하면 유저별 커밋 공헌 비율을 볼 수 있는 것 같았습니다.

이 공헌 정도를 보고 메일을 보낼 사람을 결정할 수 있다고 하더군요.


이렇게 간단한 방법으로 mailing 리스트에 가입되어 있지 않다 하더라도 누구든지 오픈 소스 프로젝트에 참여할 수 있다고 합니다.


How to live like a Goer

저는 Python이라는 언어가 c, c++, 자바 등의 언어에 비해 훨씬 간결한 코드만으로 많은 일을 할 수 있는 언어라고 알고 있었습니다.

그리고 성능도 괜찮다고 알고 있었는데 Go언어에 비하면 많이 약한가 보더군요.

Python은 기본적으로 멀티 코어 프로그래밍에 약한데 비해 Go는 여기에서 굉장히 강점이 있나봅니다. 그래서 같은 기능을 하더라도 코드는 훨씬 짧고, 성능은 100배 이상? 1000배 이상이었나? 그 정도의 차이가 난다고 하더라구요.


Go 언어를 시작해보고 싶으시다면 A Tour of Go에 들어가보시는 것도 괜찮을 것 같습니다. 이 사이트에 들어가시면 차례대로 Go언어에 대해 조금씩 살펴볼 수 있습니다. 

한국어 버전도 있군요! GDG Golang Korea에서 번역했다고 합니다. 

이런 일을 하고 계신 분들이 있다니 존경합니다!


그리고 어쩌다가 책 이야기가 나왔는지는 기억이 나지 않지만 Timothy Ferriss라는 저자의 책들에 대해 이야기를 했습니다.

The 4-Hour Workweek

The 4-Hour Body

The 4-Hour Chef


이 3권의 책인데요, 뭐 자세한 내용은 모르지만 좋은 생활 습관을 만들어서 성공할 수 있게 도와주는 그런 종류의 책인 것 같습니다.

The 4-Hour Chef를 제외하고는 한국어 번역판이 있습니다. 일단 한권이라도 볼 예정입니다. 어떤 책인지 궁금하네요.^^


정리

블로그에 내용 정리는 두개의 세션에 대해서만 했지만, 나머지 세션들도 괜찮았습니다. 

크롬 OS의 대략적인 구성도 알 수 있었고, AngularJS라는 것도 살펴 볼 수 있었고, YEOMAN,, 뭔지 정확힌 모르겠지만 어쨌든 웹앱을 만들 때 필요한 여러가지 작업을 쉽게 해주는 도구인 것 같은데 그런 것도 볼 수 있었습니다.


우리 나라에 생각보다 오픈 소스에 관심있는 사람들이 많이 있고, 생각보다 이미 많은 활동들을 하고 있었습니다. 

저도 하고 싶어하고 있지만 아직은 시작하지 못하는 일을 먼저 하고 계신 분들에 대해 존경심을 감출 수가 없네요. 

그리고 생각보다 여러 그룹이 만들어져 있는 것 같고, 세계적으로 소프트웨어를 발전시키려는 노력 뿐만아니라, 우리나라의 소프트웨어 기술을 발전시킬 수 있는 노력들도 많이 이루지고 있었습니다. 



저도 빨리 실력을 키우고, 소프트웨어의 발전에 공헌해야겠다는 생각을 많이 하고 있었습니다. 

소프트웨어를 통해 수익을 내는 것도 아주 중요하지만, 그 이상의 가치를 만들어 내고 싶다는 생각을 많이 해보고 있었습니다.

지금까지는 그렇게 하고 싶었지만 방법을 몰랐었다면 이번 DevFest를 통해 여러가지 방법들을 보게되었습니다.

  • 기존 오픈 소스 프로젝트에 참여
  • 외국 문서의 번역 작업
  • 새로운 오픈 소스 프로젝트를 생성하고 주도하기

일단은 제가 앞으로 해야할 것들 3가지가 확실히 정해졌네요!

저작자 표시 비영리 변경 금지
신고
Posted by Code-Moon

댓글을 달아 주세요

  1. 2013.03.09 09:49 신고 Address Modify/Delete Reply

    ㅋㅋ 선배 저 해인이에요
    검색하다가 우연히 발견했어요
    역시 다녀오셨군여^*^ 전 오늘 부산지역 참석하러갑니당^^
    못뵌지 엄청 오래됐네요ㅋㅋ 다음에 기회되면 꼭 한번 뵈어요~

    • BlogIcon Code-Moon 2013.03.10 10:55 신고 Address Modify/Delete

      오호~ 검색했는데 아는 사람 블로그 나오면 좋지.ㅎㅎㅎ
      댓글 남겨줘서 고마워,ㅎ
      열심히 하고 있지?ㅎ
      진짜 담에 기회되면 꼭 보자.ㅎㅎ


안드로이드에서 back버튼에 대한 처리를 해줘야하는 경우가 있습니다.
일반적으로는 back버튼을 누르면 그 activity가 종료되게 되죠.

저는 activity에서 onBackPressed()메서드를 오버라이드해서 사용했었는데요, 이게 2.0버전부터 지원되는 메서드더군요-_-;;;
그래서 1.6이하의 버전에서는 에러가 나고 종료되더라구요.

1.6이하의 버전에서도 back버튼에 대한 처리를 원활히 해주기 위해서는 onBackPressed() 메서드를 오버라이드 하기 보다는, onKeyDown() 메서드를 오버라이드해서 쓰는 것이 좋습니다. 


@Override    
public boolean onKeyDown(int keyCode, KeyEvent event) {    
    if(keyCode == KeyEvent.KEYCODE_BACK) {
         thread.interrupt();    	
    }
    return false;    
}

위와 같은 식으로 오버라이드해서 사용하면 됩니다.


return을 true로 하면 activity가 종료되지 않고, 
return을 false로 하면 activity가 종료됩니다. 
저작자 표시
신고
Posted by Code-Moon

댓글을 달아 주세요

안드로이드 버전 2.2 이상부터는 앱을 외부 저장장치에도 저장할 수 있게 됐습니다.




위의 링크를 따라가 보시면, 인스톨 위치를 설정하는 방법에 대한 원문을 보실 수 있습니다.


저는 좀 간단하게 설명을 드리죠.
인스톨 위치를 설정하기 위해서는 manifest 파일을 수정하시면 됩니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
... >

위에서 보면 android:installLocation="preferExternal" 부분이 중요한 부분이죠.


android:installLocation의 값을 무엇으로 주냐에 따라 인스톨 위치가 결정됩니다.
여기 예제에서는 preferExternal 였구요, 이는 외부 저장 장치(SD카드 등)에 기본적으로 저장을 하고, 만약 외부 저장 장치가 꽉 차면 내부에 저장을 하겠다는 뜻입니다.

preferExternal 말고도 autointernalOnly도 값으로 들어갈 수 있습니다.

auto는 기본적으로 내부에 저장을 하고, 내부에 공간이 없으면 외부에 저장을 하겠다는 뜻입니다.
internalOnly는 무조건 내부에만 저장을 하겠다는 뜻이죠.



참고!!! 

현재 개발 중인 안드로이드 라이브러리 버전이 2.2보다 낮다면 android:installLocation을 넣어주면 없는 속성이라고 에러를 발생시킵니다. 
그래서 프로젝트 오른 클릭 - Properties - Android - Project Build Target을 2.2 이상으로 해줘야합니다.
또한 manifest에서 android:minSdkVersion을 4정도로 해주는게 좋습니다. 보통 3이하로 하게 되면 필터링 문제가 생기기 때문에 4이상이 좋은 것 같습니다.


즉, 최종적인 메니페스트는 다음과 같이 구성되겠죠?

<manifest android:installLocation="preferExternal"
.......>
<application .......>
</application>
<user-sdk android:minSdkVersion="4" />
</manifest>
저작자 표시
신고
Posted by Code-Moon

댓글을 달아 주세요



안드로이드 마켓에서는 핸드폰의 특징에 맞게 검색할 때 앱을 필터링해서 보여줍니다.
그래서 분명 안드로이드 마켓에 앱을 올렸는데도,, 어떤 사람은 받을 수 있고, 어떤 사람은 받을 수 없는 거죠.

처음에는 이게 필터링 정책인지 모르고, 안드로이드 마켓의 버그인 줄 알았습니다.^^;;;;
그런데 검색을 해보니 안드로이드 마켓 필터링이란게 있더군요..ㅎ 
그래서 제가 아무것도 모르고 고생했던 과거를 회상하며, 저처럼 고생하실 다른 분들을 위해 이 글을 씁니다.



일단 이 필터링이 힘들었던게,, 앱을 만들 때에는 절대 알 수 없습니다.;; 이 앱이 어떤 디바이스에서 필터링 될지,,;;
에러도 아니고, 워닝(warning)도 안뜨고 그냥 당연한 정책일 뿐이죠..ㅎ 그래서 모르고 넘어가기 쉽습니다.

그런데 이게 apk 파일을 마켓에 올릴 때 뭔가 알려주더군요.. 마켓에서 말이죠.ㅎ
저는 별말 아닌줄 알고 그냥 넘겼었습니다...

참고 문서 : http://developer.android.com/guide/appendix/market-filters.html



마켓은 앱을 검색할 때 해당 핸드폰의 하드웨어와 소프트웨어 특성에 맞는 앱만을 보여줍니다. 

예를들어, 내가 가지고 있는 핸드폰이 가속도 센서를 지원하지 않는다고 가정해 보겠습니다.
하루는 친구가 하고 있는 "레이디 버그"라는 게임이 재미있어 보이길래 마켓에서 검색을 합니다. 그런데 한글, 영문을 통틀어 검색을 해도 도저히 해당 앱을 찾을 수가 없습니다. 
이러한 결과가 나오는 이유는 "레이디 버그"라는 게임은 가속도 센서가 지원되는 폰에서만 검색이 되도록 설정이 되어 있기 때문입니다. 

그렇다면 어디에서 어떻게 설정을 해야하는 걸까요? 바로 manifest파일입니다.
안드로이드 앱을 마켓에 올릴 정도까지 개발을 하신 경험이 있다면 manifest에 대해는 모를리 없다고 생각되므로 이 파일에 대한 설명은 제외하겠습니다.



이제 본격적으로 manifest의 어떤 앨리먼트를 신경써야하는지 알아보겠습니다.


1. <supports-screens>
이 엘리먼트는 어떤 스크린 사이즈를 지원하고 또 지원하지 않는지 명시해주는 부분입니다. 
안드로이드에서 스크린 사이즈는 large, normal, small 이렇게 3개로 나뉘고 디바이스마다 이 3개 중 하나의 스크린 사이즈를 가지게 되겠죠?
마켓은 더 큰 스크린 사이즈의 디바이스에서 더 작은 스크린 레이아웃이 잘 보일거라고 가정합니다. 그래서 large 사이즈의 핸드폰에서는 당연히 large 레이아웃을 지원하는 앱이 검색되고, 뿐만아니라 normal이나 small 레이아웃을 지원하는 앱도 검색이 됩니다.

만약 <supports-screens>속성을 manifest에서 사용하지 않는다면 어떻게 될까요? 마켓은 API의 레벨에 따라서 다르게 처리한다고 합니다.(manifest파일에 <uses-sdk android:minSdkVersion = "4"/>와 같이 삽입함으로써 API 레벨을 설정할 수 있습니다.)

  • 먼저, API 레벨 3에서는 <supports-screens>속성 자체가 정의되지 않았습니다. 그래서 마켓은 자동으로 이러한 레벨의 앱을 normal 사이즈 스크린이라고 보고, 검색시에 normal이나 large 스크린 디바이스에만 노출되도록 합니다. 만약 여러분이 manifest 파일에서 android:minSdkVersion을 3 이하로 해두셨다면, 마켓은 기본적으로 해당 앱을 small 스크린 디바이스에서는 검색되지 않도록 하겠죠. 이러한 앱을 small스크린 디바이스에서도 보이게 하고 싶으시다면, manifest파일의 <uses-sdk>android:minSdkVersion을 4 이상으로 설정하셔야 합니다.
  • 다음으로, API 레벨 4에서는 기본적으로 <supports-screens>의 모든 속성이 "true"로 되어 있습니다. 따라서 이러한 레벨의 앱은 마켓에서 기본적으로 모든 디바이스에 노출이 되겠죠. 즉, 하나도 필터링이 되지 않는 것입니다. 

<support-screens>에 대한 안드로이드 문서


2. <uses-configuration>
어떤 앱은 특정 하드웨어 기능을 요구할 수 있습니다. 이럴 경우에 마켓은 해당 기능을 가진 디바이스에서만 보이도록 해줍니다. 

  • 만약 개발자가 <uses-configuration android:reqFiveWayNav="true" /> 를 manifest에 추가한 앱을 마켓에 올렸다면,  five-way navigational control이 없는 디바이스에서 해당 앱을 검색해도 사용자는 그 앱을 찾을 수가 없습니다. 
  • 만약 <uses-configuration>을 사용하지 않는다면 필터링이 일어나지 않게되고, 모든 사용자가 해당 앱을 검색 결과로 볼 수 있습니다.
<uses-configuration>에 대한 안드로이드 문서


3. <uses-feature>
어떤 앱은 센서와 같이 디바이스의 특정 기능을 요구할 수도 있습니다. 이 기능은 Android 2.0(API 레벨 5)부터 적용됐습니다. 

<uses-feature>는 디바이스 특징과 관련된 것과 OpenGL-ES의 버전과 관련된 부분으로 나눌 수 있습니다.
먼저 디바이스의 특징과 관련된 부분을 살펴보겠습니다.
  • 만약 <uses-feature android:name="android.hardware.sensor.light" />를 manifest에 포함시켰다면, 마켓에서 검색할 때 light센서를 가지고 있는 디바이스만 해당 앱을 검색할 수 있을 겁니다.
  • <uses-feature> 를 사용하지 않는다면 모든 디바이스에서 검색에 노출됩니다.
다음으로 OpenGL-ES의 버전과 관련된 부분을 살펴보겠습니다.
  • 만약 여러개의 OpenGL-ES 버전을 지원하고 있어서 openGlEsVersion 속성을 여러번 사용했다면, 마켓에서는 사용한 버전 중 가장 높은 버전에 맞춰 검색 결과를 보여줄 것입니다.
  • 만약 openGlEsVersion 속성을 1.1로 지정한 앱이 있고, 사용자의 디바이스는 OpenGL-ES 2.0을 지원한다고 하겠습니다. 이럴 경우에 사용자가 마켓에서 해당 앱을 검색하면 당연히 필터링되지 않고 볼 수 있습니다.
  • manifest에 openGlEsVersion 속성을 지정하지 않으면, 해당 앱은 모든 유저에게 노출됩니다.
그런데 여기에서는 조금 주의해야할 부분이 있습니다! 
안드로이드의 센서같은 하드웨어적인 특징을 사용하는 앱은 manifest에 명시적으로 <uses-feature>를 적지 않아도 마켓에서 어떤 하드웨어 특징을 사용하는지 안다는 것입니다.
그래서 여러분의 앱이 모든 사용자에게 노출되게 하기 위해서는 이를 manifest에 명시할 필요가 있죠.

예를 들어 보겠습니다.
여러분의 앱이 빛 센서를 사용한다고 가정하겠습니다. 그런데 이 앱은 빛 센서가 없어도 동작하는데 큰 문제는 없습니다. 그래서 빛센서가 없는 디바이스에서도 사용할 수 있고, 그러한 사람들에게도 마켓에서 검색할 수 있도록 하고 싶습니다. 
이때 여러분은 manifest에 <uses-feature android:name="android.hardware.sensor.light" android:required="false"/>를 포함시켜야 합니다. 
만약에 이 부분을 쓰지 않거나 <uses-feature android:name="android.hardware.sensor.light" />라고만 쓴다면 빛 센서가 없는 장치에서는 마켓 검색이 안될 겁니다.

<uses-feature>에 대한 안드로이드 문서



3. <uses-library>
특정 라이브러리를 사용하는 경우에 사용하는 엘리먼트입니다.
  • com.google.android.maps 라이브러리를 사용하는 앱이 있고, 어떤 사용자의 디바이스에는 com.google.android.maps가 없다고 하면, 이 사용자한테는 해당 앱이 마켓에서 검색되지 않을 것 입니다.
  • manifest에 <uses-library>엘리먼트를 포함시키지 않은 경우에는 모든 사용자들에게 해당 앱을 노출시킬 것입니다.
<uses-library>에 대한 안드로이드 문서



4. <uses-permission>
정확히 말하자면 안드로이드 마켓에서 <uses-permission> 엘리먼트에 대한 필터링은 하지 않습니다. 하지만 하드웨어적인 permission을 요구하는 경우에는 <uses-feature>에 명시하지 않은 부분이라 하더라도 필터링을 하게 됩니다.



5. <uses-sdk>
이 엘리먼트는 API 레벨이 얼마인가를 명시하는 부분입니다. 
  • manifest 파일에  <uses-sdk android:minSdkVersion="3">이라고 명시되어 있는 앱이 있고, 사용자의 디바이스는 API 레벨이 2라면 해당 유저는 그 앱을 마켓에서 검색할 수 없습니다.
  • manifest 파일에 minSdkVersion을 명시하지 않았고, 앱에서는 API 레벨 3을 라이브러리로 사용한 앱이 있다고 가정하겠습니다. API 레벨이 2인 사용자가 이 앱을 검색한다면 이 앱을 검색 결과로 볼 수 있습니다. 이렇게 되는 이유는  minSdkVersion을 명시하지 않은 경우에 마켓에서는 기본적으로  minSdkVersion에 1을 대입하게 됩니다. 그리고  minSdkVersion이 이라는 것은 모든 버전에 다 지원이 된다는 말이므로 모든 사용자가 다 볼 수 있는 겁니다. 하지만 이런 경우에는 조심해야겠죠. 사용자의 API 레벨이 앱의 API 레벨보다 낮기때문에 런타임시에 오류가 발생할 가능성이 있습니다.
<uses-sdk>에 대한 안드로이드 문서


이상 안드로이드 개발자 사이트에서 참고한 부분이구요.
저는 실제로 앱을 등록할 때 <uses-sdk>에 minSdkVersion을 명시하지 않으니까 등록이 안됐던 것 같은데,, 이 문서에는 명시하지 않아도 된다고 되어있군요.


어쨌든 이러한 필터링 규칙들을 잘 알고 manifest를 작성하시면 원하시는 사용자 층에게 보이는 앱을 제작하실 수 있을 겁니다.^^
저작자 표시
신고
Posted by Code-Moon

댓글을 달아 주세요



Admob에 의하면 스마트 폰의 세계 트래픽이 1년 전인 2009년 2월에는 35%였는데 비해, 올해(2010년) 2월에는 48%까지 성장했다고 합니다.


스마트 폰 OS 사이에서 비교해 보면, 1위는 여전히 아이폰 OS입니다.

이는 작년 2월에 33%였는데, 올해 2월에는 50%로 올랐습니다.

안드로이드는 현재 2위로 굉장한 증가율을 보이고 있습니다.


심비안이 가장 심한 패배자라고 볼 수 있는데, 작년 2월에 43%의 스마트 폰 OS 점유율을 가지고 있었는데, 올해 2월에는 18%밖에 되지 않습니다.


아이폰 OS와 안드로이드... 대단하네요.

특히, 안드로이드는 앞으로 어떻게 될지 굉장히 기대가 되네요

신고
Posted by Code-Moon

댓글을 달아 주세요


어도비가 써드-파티 개발자에게 photoshop.com mobile for android 1.1을 사용하여 개발자의 애플리케이션에 포토샵 모바일의 기능을 넣을 수 있도록 한다고 밝혔다. photoshop.com mobile을 릴리즈한지 4달만에 나온 뉴스이다 . 물론 예전보다 더 업그레이드 되었다.



어도비의 Digital Imaging Rich Media Solutions의 부사장이자 general manager인 Doug Mack가 다음과 같이 말했다.
아이폰과는 다르게 안드로이드 플랫폼에서는 photoshop.com 에디터를 개발자가 넓게 활용할 수 있도록 해주었다.


photoshop.com mobile for android 1.1의 업데이트 버전에서는 Vibrant(boost photo colors), Pop(팝 아트 스타일) 같은 효과들이 추가된다. Soft Black and White, Warm Vintage 툴은 클래식적이고 고풍의 느낌을 내기 위해 사용될 수 있다. 다른 새로운 효과에는 Vignette Blur, White Glow, Rainbow 등이 포함된다.

photoshop.com mobile for android 1.1은 안드로이드 마켓에서 모든 나라에 무료로 제공된다.(물론 영어버전만 있다)
안드로이드 마켓에서 "photoshop.com"을 검색해보자.



원문 사이트 : http://www.mobilecrunch.com/2010/03/05/photoshop-editor-android/
안드로이드 앱에 포토샵 모바일을 통합하는 방법 : http://mobile.photoshop.com/android/developers.html
신고
Posted by Code-Moon

댓글을 달아 주세요

안드로이드 application을 만들기 위한 개발 환경을 구축해보자.

  1. 먼저 최신 버전의 Eclipse를 다운로드 한다.
    다운로드 링크 : http://www.eclipse.org/downloads/

    Eclipse홈페이지에서 Downloads 페이지를 보면 여러 개의 Eclipse Packages를 볼 수 있다.
    이 중에서 자바 개발자용 통합 팩인 Eclipse IDE for Java Developers를 다운받으면 된다.

    위 그림에서 오른쪽 빨간 사각형 부분을 보면 OS 선택하는 부분이 있는데 만약 자신의 운영체제가 Windows라면 Windows를 클릭하면 된다.

     

  2. 다음으로 할 일은 안드로이드 SDK를 다운받는 것이다.
    다운로드 링크 : http://developer.android.com/sdk/index.html

    여기에서도 마찬가지로 자신의 OS에 맞는 버전을 다운로드하면 된다.

     

  3. SDK의 다운로드가 끝났으면 Eclipse를 적절한 폴더에 압축을 풀고, 마찬가지로 SDK도 적절한 폴더에 압축을 푼다. (왠만하면 Eclipse 폴더 안에 Android SDK를 넣어두자)

     

  4. (내컴퓨터-오른클릭-속성-고급 탭-환경변수-시스템 변수) 에서 Path라는 변수를 찾은 다음에 그 안의 값에 내용을 추가해야 한다.
    이때 Path에는 여러 개의 값들이 존재하는데 이 값들을 구분지어 주는 것이 ;(세미콜론)이다. 따라서 Path 변수 값의 맨 마지막 부분에 ;이 없다면 ;을 적고 나서 아래의 내용을 추가해 주자.
    SDK가 있는 폴더\android-sdk-windows\tools
    (위의 경로는 버전에 따라 약간 다를 수도 있다. 중요한 것은 SDK가 있는 폴더의 tools폴더를 경로로 입력한다는 것이다.)

     

  5. 이클립스를 실행하여 (Help-Install New Software…)에 들어가서 Work With란에 https://dl-ssl.google.com/android/eclipse/ 를 입력한다.(안될 경우에는 https에서 s를 빼고 http://dl-ssl.google.com/android/eclipse/ 를 입력한다.)
    사이트가 추가되면 체크 박스를 체크하고 Next 버튼을 눌려서 install을 진행한다.

     

  6. 업데이트가 끝나면 이클립스를 재시작한다.

     

  7. (Window-Preferences)에 들어가서 왼쪽 패널의 Android를 선택하고 Browse버튼을 눌러서 안드로이드SDK가 설치된 폴더 경로를 입력한다. 제대로 입력되어도 별다른 변화가 없을 것이다.


  8. 위와 같은 화면이 나왔다면 제대로 입력을 한 것이고, 아래와 같은 화면이 나왔다면 경로를 다시 수정해야한다.(위쪽의 빨간 x표시가 안나오도록...)


    그리고 나서 OK를 눌러서 이클립스 메인 화면으로 돌아가면 툴바에 검은색의 핸드폰 모양 버튼이 있다. 그 버튼을 클릭하자.

    그러면 아래와 같은 화면을 볼 수 있다. 여기에서 Available Packages 로 간 다음에 체크 박스에 체크를 하고 Install Selected 버튼을 눌러 설치를 하면된다.




    이렇게 함으로써 안드로이드 개발 환경이 모두 구축된다. 이제 신나게 개발하는 일만 남았다!!!

신고
Posted by Code-Moon

댓글을 달아 주세요

  1. daisy 2010.03.17 15:20 신고 Address Modify/Delete Reply

    안드로이드 개발 공모전도 도전해보세요
    상금도 2천만원이나 된다니깐......참여상도 있구요
    글구 국내 이동통신회사 후원받는걸 보니 아마 나중에 취업할때도 특전이 주어질지도..
    www.twittpop.com에서 접수하면 된다네요...

  2. BlogIcon Code-Moon 2010.03.23 11:10 신고 Address Modify/Delete Reply

    네^^ 정보 감사합니다.
    얼마 전에 들은 정보인데 다른 분들도 보실 수 있게 올려둬야겠네요

안드로이드 역사이다.
한번 둘러보는 것도 괜찮을 듯.

사용자 삽입 이미지
출처 : http://itviewpoint.com/153275
신고
Posted by Code-Moon

댓글을 달아 주세요

  1. BlogIcon repair iphone 2011.06.15 22:11 신고 Address Modify/Delete Reply

    좋은 글 잘 보고 갑니다. 다음에도 또 좋은 글 기대 할께요. 퍼가도 되죠?

진짜 구글폰, NEXUS ONE이 드디어 공식 공개됐다.
안드로이드에 대한 관심이 점점 커져가고 있는 가운데, 이렇게 좋은 성능을 보여주는 폰이 나오니 그 기대감이 더더욱 커지는 것 같다.

아래 그림은 아이폰, 팜프리, 드로이드, 넥서스 원을 비교한 그림이다.

사용자 삽입 이미지



그리고 아래 동영상은 NEXUS ONE 홍보 영상





아래의 동영상은 contact





아래 동영상은 google voice





아래 동영상은 camera and 3d gallery





아래 동영상은 voice input






아래 동영상은 search







아래 동영상은 android market

신고

'새소식' 카테고리의 다른 글

아이폰과 레고의 만남!!  (2) 2010.01.19
이제 하늘을 날 수 있다?  (1) 2010.01.12
아이폰으로 헬리콥터를?  (0) 2010.01.09
아이폰 알몸투시 App.  (3) 2010.01.09
넥서스 원 - NEXUS ONE  (0) 2010.01.07
CJ 헬로비전, UI바꾸니 서비스 인기 상승  (0) 2010.01.07
Posted by Code-Moon

댓글을 달아 주세요

  

윈도우 모바일

(WM)

안드로이드

(Android)

아이폰

(iPhone)

개발 OS

Windows Only

Windows,
MacOSX,
Linux

MacOSX Only (include Hackintosh)

개발툴

Visual Studio 2005, 2008

Eclipse 3.3, 3.4

Xcode 3.1,
Interface Builder

프로그래밍 언어

Visual C++, C#,
VB.NET

Java

Objective-C

프레임워크
 or 런타임

MFC,
.NET Compact Framework

Android Application Framework,

Dalvik

Cocoa Touch

바이너리

.exe
(CLR)

.dex
(Dalvik executable)

.app

패키징

.cab

.apk

.zip

표에서 볼 수 있듯이 윈도우 모바일은 윈도우에서 Visual Studio를 사용해서 개발해야 한다.
즉, 윈도우를 OS로 채택하지 않은 개발자는 개발을 할 수 없고 Visual Studio가 없는 개발자 또한 개발에 참여할 수 없다. 우리나라의 입장에서 본다면 이러한 윈도우 모바일의 개발 환경은 그렇게 다가가기 어려운 개발환경은 아니라고 생각한다.


아이폰은 MacOSX에서 작업을 해야 하는데 윈도우가 판을 치는 우리나라에서는 이런 개발 환경은 정말 접하기 힘든 환경이다.


이에 비해 안드로이드의 경우에는 OS가 윈도우, MacOSX, 리눅스 중 하나라면 일단은 개발할 수 있는 환경이 된다. 그리고 개발 툴 또한 무료로 손쉽게 얻을 수 있는 Eclipse를 사용하기 때문에 개발 환경 구축에 아주 용이한 장점을 가지고 있다.


이렇게 개발 환경 상의 막강한 장점을 가지고 있는 안드로이드,

안드로이드는 open되어 있다. 언제든지 개발하고 싶다면 쉽게 뛰어들 수 있다!!!



당신도 이 대열에 참여해보지 않겠는가?!

신고
Posted by Code-Moon

댓글을 달아 주세요

티스토리 툴바