SlideShare a Scribd company logo
1 of 25
Download to read offline
IntelliJ IDEA로
안드로이드 앱을
  만들어보자!
        GDG Android Korea
        제 2회 미니 컨퍼런스
        2013.1
        안세원 ( kingori @ gmail.com)
자기소개
       안세원
    거의 만 2년차
   안드로이드 개발자

      +kingori @ g+
    kingori.egloos.com
   kingori @ gmail.com




                         2
안드로이드 개발 도구론
 무엇이 있을까요?




               3
안드로이드 개발 도구론
  무엇이 있을까요?
  산업 전선 용 선택지는 몇 개 없다.
그냥 둘 중 하나 쓰는 게 정신 건강에 좋다!




                            4
왜 이클립스 잘 쓰던 사람들에게
IntelliJ 얘기를 하려 하는가?!?
   이클립스만이 세상의 전부가 아니다




                http://www.jetbrains.com/idea/   5
!돌발 퀴즈!




          6
!돌발 퀴즈!
인텔리제이 첫 버전 릴리스 년도는 언제?




                    7
!돌발 퀴즈!
인텔리제이 첫 버전 릴리스 년도는 언제?
                                 역사와 전통을 자랑하는 IDE임




  http://borland.public.delphi.non-technical.narkive.com/F6UT1g1l/code-refactoring.2   8
인텔리제이 12의 안드로이드 지원
1. 안드로이드 UI 디자이너    2. 플랫폼 툴 지원




 이클립스와 유사한 수준의     AVD, SDK, Monitor 등의
    디자이너 제공.        도구에 접근할 수 있음.
    커스텀 뷰도          하지만 ADB 관련하여
  어느 정도 잘 보여줌         여러 문제점 있음.
                     logcat은 내장이나,
                   다른 도구는 링크 수준임
                                          9
인텔리제이 12의 안드로이드 지원
 3. 리펙터링 기능            4. Resource 지원




 자바 리펙터링은 물론,        drawable, layout, value 등
    style extract,   다양한 안드로이드 리소스
  resource rename,    생성/수정/편집 기능 지원
      move 등
  안드로이드 고유의
  리펙터링 기능 제공
                                                 10
인텔리제이 12의 안드로이드 지원
  하지만 그 무엇보다 편집기가 막강함!




      뭔가… 스샷은 좀 부적절해 보이지만…
                         11
8개월 정도 써 봤더니…
 •   이클립스 보다 “조금” 가볍고, “많이” 안정적임
 •   매우 강력한 단축키. 하지만 외워야 보배
 •   미리보기 용도로 유용한 레이아웃 디자이너
 •   xml 에서 실수로 run을 눌러도 .xml.out이 안생김!
 •   /libs/ 에서 참조하는 jar의 source, javadoc도 쉽게 볼 수 있음
 •   library project 설정이 까다로움.
     몇 번의 빌드 실패는 각오해야 함
 • 도구 통합은 이클립스에 비해 굉장히 떨어짐
    • Monitor 등의 도구가 별도로 떨어져 나와 굉장히 불편함
    • ADB 세션이 붙었다 떨어졌다 함
    • Monitor 를 실행한 상태에서 디버깅 못함(!!!)
      ex) 디버거 붙인 상태에서 에뮬레이터에 SMS 보낼 방법 없음


 도구 통합이 꽤 아쉬움! 취향따라 선택하세요!
                                                      12
에디션 구분
• Ultimate Edition
   • 기업 $699 (1년 업그레이드 포함) / 개인 $199
   • 서버, UML, 각종 프레임워크(Spring, Play,..) 지원
• Community Edition
   • 무료, 오픈소스
   • 서버 기술 지원은 많이 빠졌지만,
     안드로이드 기능은 모두 제공함
• EAP   (http://confluence.jetbrains.net/display/IDEADEV/EAP)
   • Early Access Preview. 일종의 베타버전
   • Ultimate Edition의 trial도 사용해 볼 수 있음
   • 안드로이드 개발자 입장에선 새 버전을 미리 써 본다는 정도?

    무료 버전인 CE도 안드로이드 개발엔 충분함!

                                                                13
인텔리제이 연착륙을 위한 가이드
  1. 프로젝트 / 모듈 개념을 알자

2.단축키를 외우자!!!!



                        15
인텔리제이의 프로젝트 & 모듈
     Workspace                Global Setting
                           Project 1           Plugin
Project 1                    Project 1           1
             Plugin
                1          Module 1
                                               Plugin
                           Module 2              2
Project 2
                           Module 3
             Plugin
Project 3       2




                      VS                                16
인텔리제이의 프로젝트 & 모듈
   Global Setting                안드로이드로 따지면…
Project 1           Plugin
  Project 1           1      • 안드로이드 플러그인 설치
Module 1                     • 앱 프로젝트 생성
                             • 프로젝트 환경설정
                    Plugin
Module 2                     • 앱 프로젝트를 모듈로 등록
                      2
                             • 라이브러리 프로젝트도
Module 3                       모듈로 등록
                             • 모듈 간 의존관계 정의




                                                17
그리고… 단축키 외우기




               18
주요 단축키 - 편집
                        자동완성 (당연히 매우 중요!)
                        이 단축키 눌러서 안 나오면
                        저 자동완성 시도하면 됨



    오버라이드 / 인터페이스 메서드 구현


                 주석. 다행히 이클립스랑 비슷하다.

                 선택영역 확장/축소.
                 굉장히 편함! (vim 이랑 비슷)

               알아서 해주세요. 이클립스 ctrl + 1

    http://www.jetbrains.com/idea/documentation/index.jsp
                                                       19
주요 단축키 - 편집
    코드 정리




            다중 붙여넣기가 굉장히 편리함!




                           20
주요 단축키 – 찾기/이동
            호출하거나 사용하는 코드 찾기

    클래스/ 파일(layout xml 등)
    / 심벌(메서드, 상수, enum 등) 찾기

    라인 이동

     최근에 연 파일들 팝업. 파일 뿐 아니라
     다른 view로도 이동할 수 있기 때문에 편함!

            이전/다음 에러

            파일 구조

            타입 계층구조

            이전/이후 수정 위치, 마지막 편집 위치.
            마지막 편집 위치 굉장히 편리함!
                                  21
주요 단축키 – 리펙터링

    안드로이드 리소스/액티비티 도 안심하고 rename 가능!




                                22
그리고… 궁극의 단축키




               23
실습을 빙자한 단축키 데모
       ICS 이전 버전에서도 액션바를 제공하는
          프래그먼트 기반의 헬로            월드
             (제목은 거창하게)

1. ActiobarSherlock 연동으로 library project 설정 방법을 익힘
2. support library를 이용. 이로 인해 library project와
   application project의 충돌, 해결방법을 확인함




                                                24
고맙습니다!

More Related Content

What's hot

안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들Sewon Ann
 
오픈소스 그리고 기회
오픈소스 그리고 기회오픈소스 그리고 기회
오픈소스 그리고 기회Sungju Jin
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
유나이트2015서울 - 큰규모의 MMORPG - 주세영
유나이트2015서울 - 큰규모의 MMORPG - 주세영유나이트2015서울 - 큰규모의 MMORPG - 주세영
유나이트2015서울 - 큰규모의 MMORPG - 주세영Jaeyoung Han
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법Young D
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaLazy Ahasil
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기NAVER D2
 
[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery정석 양
 
[2013.07.16] PythonKorea강남스터디 발표 - flask testing
[2013.07.16] PythonKorea강남스터디 발표 - flask testing[2013.07.16] PythonKorea강남스터디 발표 - flask testing
[2013.07.16] PythonKorea강남스터디 발표 - flask testingDaeHyun Sung
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스Dexter Jung
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
BEM을 깨우치다.
BEM을 깨우치다.BEM을 깨우치다.
BEM을 깨우치다.우영 주
 
나의 오픈소스 사용기
나의 오픈소스 사용기나의 오픈소스 사용기
나의 오픈소스 사용기주호 강
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴MinGeun Park
 

What's hot (19)

안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
 
오픈소스 그리고 기회
오픈소스 그리고 기회오픈소스 그리고 기회
오픈소스 그리고 기회
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
유나이트2015서울 - 큰규모의 MMORPG - 주세영
유나이트2015서울 - 큰규모의 MMORPG - 주세영유나이트2015서울 - 큰규모의 MMORPG - 주세영
유나이트2015서울 - 큰규모의 MMORPG - 주세영
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
Vue js
Vue jsVue js
Vue js
 
[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery
 
[2013.07.16] PythonKorea강남스터디 발표 - flask testing
[2013.07.16] PythonKorea강남스터디 발표 - flask testing[2013.07.16] PythonKorea강남스터디 발표 - flask testing
[2013.07.16] PythonKorea강남스터디 발표 - flask testing
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
BEM을 깨우치다.
BEM을 깨우치다.BEM을 깨우치다.
BEM을 깨우치다.
 
나의 오픈소스 사용기
나의 오픈소스 사용기나의 오픈소스 사용기
나의 오픈소스 사용기
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴
 

Similar to develop android app using intellij

개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술중선 곽
 
Welcome to Android Studio
Welcome to Android StudioWelcome to Android Studio
Welcome to Android StudioWonKyun Lim
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반arundine
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014NDOORS
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyunjaeyunjeong1
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정funmeate
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Sa-ryong Kang
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container DayAmazon Web Services Korea
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기Soojin Ro
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드NAVER Engineering
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
델파이 @22
델파이 @22델파이 @22
델파이 @22Devgear
 
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for AndroidSangkyoon Nam
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?John Kim
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기Sunghyouk Bae
 

Similar to develop android app using intellij (20)

개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술
 
Welcome to Android Studio
Welcome to Android StudioWelcome to Android Studio
Welcome to Android Studio
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반
 
조재완
조재완조재완
조재완
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
React native development
React native developmentReact native development
React native development
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
델파이 @22
델파이 @22델파이 @22
델파이 @22
 
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 

More from Sewon Ann

Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복Sewon Ann
 
Android studio 디버거 조금 더 잘 쓰기
Android studio 디버거 조금 더 잘 쓰기Android studio 디버거 조금 더 잘 쓰기
Android studio 디버거 조금 더 잘 쓰기Sewon Ann
 
지금은 Constraint layout 시대
지금은 Constraint layout 시대지금은 Constraint layout 시대
지금은 Constraint layout 시대Sewon Ann
 
백엔드 서버 구축없이 모바일 앱앱 만들어보기
백엔드 서버 구축없이 모바일 앱앱 만들어보기백엔드 서버 구축없이 모바일 앱앱 만들어보기
백엔드 서버 구축없이 모바일 앱앱 만들어보기Sewon Ann
 
Framer js a/s talk
Framer js a/s talkFramer js a/s talk
Framer js a/s talkSewon Ann
 
Google Hackathon Korea - hangout mafia
Google Hackathon Korea - hangout mafiaGoogle Hackathon Korea - hangout mafia
Google Hackathon Korea - hangout mafiaSewon Ann
 
Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원Sewon Ann
 

More from Sewon Ann (7)

Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복
 
Android studio 디버거 조금 더 잘 쓰기
Android studio 디버거 조금 더 잘 쓰기Android studio 디버거 조금 더 잘 쓰기
Android studio 디버거 조금 더 잘 쓰기
 
지금은 Constraint layout 시대
지금은 Constraint layout 시대지금은 Constraint layout 시대
지금은 Constraint layout 시대
 
백엔드 서버 구축없이 모바일 앱앱 만들어보기
백엔드 서버 구축없이 모바일 앱앱 만들어보기백엔드 서버 구축없이 모바일 앱앱 만들어보기
백엔드 서버 구축없이 모바일 앱앱 만들어보기
 
Framer js a/s talk
Framer js a/s talkFramer js a/s talk
Framer js a/s talk
 
Google Hackathon Korea - hangout mafia
Google Hackathon Korea - hangout mafiaGoogle Hackathon Korea - hangout mafia
Google Hackathon Korea - hangout mafia
 
Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원
 

Recently uploaded

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 

Recently uploaded (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

develop android app using intellij

  • 1. IntelliJ IDEA로 안드로이드 앱을 만들어보자! GDG Android Korea 제 2회 미니 컨퍼런스 2013.1 안세원 ( kingori @ gmail.com)
  • 2. 자기소개 안세원 거의 만 2년차 안드로이드 개발자 +kingori @ g+ kingori.egloos.com kingori @ gmail.com 2
  • 3. 안드로이드 개발 도구론 무엇이 있을까요? 3
  • 4. 안드로이드 개발 도구론 무엇이 있을까요? 산업 전선 용 선택지는 몇 개 없다. 그냥 둘 중 하나 쓰는 게 정신 건강에 좋다! 4
  • 5. 왜 이클립스 잘 쓰던 사람들에게 IntelliJ 얘기를 하려 하는가?!? 이클립스만이 세상의 전부가 아니다 http://www.jetbrains.com/idea/ 5
  • 7. !돌발 퀴즈! 인텔리제이 첫 버전 릴리스 년도는 언제? 7
  • 8. !돌발 퀴즈! 인텔리제이 첫 버전 릴리스 년도는 언제? 역사와 전통을 자랑하는 IDE임 http://borland.public.delphi.non-technical.narkive.com/F6UT1g1l/code-refactoring.2 8
  • 9. 인텔리제이 12의 안드로이드 지원 1. 안드로이드 UI 디자이너 2. 플랫폼 툴 지원 이클립스와 유사한 수준의 AVD, SDK, Monitor 등의 디자이너 제공. 도구에 접근할 수 있음. 커스텀 뷰도 하지만 ADB 관련하여 어느 정도 잘 보여줌 여러 문제점 있음. logcat은 내장이나, 다른 도구는 링크 수준임 9
  • 10. 인텔리제이 12의 안드로이드 지원 3. 리펙터링 기능 4. Resource 지원 자바 리펙터링은 물론, drawable, layout, value 등 style extract, 다양한 안드로이드 리소스 resource rename, 생성/수정/편집 기능 지원 move 등 안드로이드 고유의 리펙터링 기능 제공 10
  • 11. 인텔리제이 12의 안드로이드 지원 하지만 그 무엇보다 편집기가 막강함! 뭔가… 스샷은 좀 부적절해 보이지만… 11
  • 12. 8개월 정도 써 봤더니… • 이클립스 보다 “조금” 가볍고, “많이” 안정적임 • 매우 강력한 단축키. 하지만 외워야 보배 • 미리보기 용도로 유용한 레이아웃 디자이너 • xml 에서 실수로 run을 눌러도 .xml.out이 안생김! • /libs/ 에서 참조하는 jar의 source, javadoc도 쉽게 볼 수 있음 • library project 설정이 까다로움. 몇 번의 빌드 실패는 각오해야 함 • 도구 통합은 이클립스에 비해 굉장히 떨어짐 • Monitor 등의 도구가 별도로 떨어져 나와 굉장히 불편함 • ADB 세션이 붙었다 떨어졌다 함 • Monitor 를 실행한 상태에서 디버깅 못함(!!!) ex) 디버거 붙인 상태에서 에뮬레이터에 SMS 보낼 방법 없음  도구 통합이 꽤 아쉬움! 취향따라 선택하세요! 12
  • 13. 에디션 구분 • Ultimate Edition • 기업 $699 (1년 업그레이드 포함) / 개인 $199 • 서버, UML, 각종 프레임워크(Spring, Play,..) 지원 • Community Edition • 무료, 오픈소스 • 서버 기술 지원은 많이 빠졌지만, 안드로이드 기능은 모두 제공함 • EAP (http://confluence.jetbrains.net/display/IDEADEV/EAP) • Early Access Preview. 일종의 베타버전 • Ultimate Edition의 trial도 사용해 볼 수 있음 • 안드로이드 개발자 입장에선 새 버전을 미리 써 본다는 정도?  무료 버전인 CE도 안드로이드 개발엔 충분함! 13
  • 14.
  • 15. 인텔리제이 연착륙을 위한 가이드 1. 프로젝트 / 모듈 개념을 알자 2.단축키를 외우자!!!! 15
  • 16. 인텔리제이의 프로젝트 & 모듈 Workspace Global Setting Project 1 Plugin Project 1 Project 1 1 Plugin 1 Module 1 Plugin Module 2 2 Project 2 Module 3 Plugin Project 3 2 VS 16
  • 17. 인텔리제이의 프로젝트 & 모듈 Global Setting 안드로이드로 따지면… Project 1 Plugin Project 1 1 • 안드로이드 플러그인 설치 Module 1 • 앱 프로젝트 생성 • 프로젝트 환경설정 Plugin Module 2 • 앱 프로젝트를 모듈로 등록 2 • 라이브러리 프로젝트도 Module 3 모듈로 등록 • 모듈 간 의존관계 정의 17
  • 19. 주요 단축키 - 편집 자동완성 (당연히 매우 중요!) 이 단축키 눌러서 안 나오면 저 자동완성 시도하면 됨 오버라이드 / 인터페이스 메서드 구현 주석. 다행히 이클립스랑 비슷하다. 선택영역 확장/축소. 굉장히 편함! (vim 이랑 비슷) 알아서 해주세요. 이클립스 ctrl + 1 http://www.jetbrains.com/idea/documentation/index.jsp 19
  • 20. 주요 단축키 - 편집 코드 정리 다중 붙여넣기가 굉장히 편리함! 20
  • 21. 주요 단축키 – 찾기/이동 호출하거나 사용하는 코드 찾기 클래스/ 파일(layout xml 등) / 심벌(메서드, 상수, enum 등) 찾기 라인 이동 최근에 연 파일들 팝업. 파일 뿐 아니라 다른 view로도 이동할 수 있기 때문에 편함! 이전/다음 에러 파일 구조 타입 계층구조 이전/이후 수정 위치, 마지막 편집 위치. 마지막 편집 위치 굉장히 편리함! 21
  • 22. 주요 단축키 – 리펙터링 안드로이드 리소스/액티비티 도 안심하고 rename 가능! 22
  • 24. 실습을 빙자한 단축키 데모 ICS 이전 버전에서도 액션바를 제공하는 프래그먼트 기반의 헬로 월드 (제목은 거창하게) 1. ActiobarSherlock 연동으로 library project 설정 방법을 익힘 2. support library를 이용. 이로 인해 library project와 application project의 충돌, 해결방법을 확인함 24