SlideShare a Scribd company logo
1 of 60
Download to read offline
Developing Android Apps 
1.Create Project Sunshine 
시온고등학교 안드로이드 스터디
TODOs : 
● 안드로이드 플랫폼 소개 
● 개발 환경 구축하기 
● 프로젝트 생성, 테스트 
● 화면에 목록 띄우는 앱 만들기
Android?
가장 인기 있는 모바일 OS
리눅스 기반의 오픈소스 OS 
아파치 라이선스 2.0 리눅스 커널 기반
AOSP(Android Open Source Project) 기반 커스텀롬 예시 
CyanogenMod MIUI Paranoid Android
다양한 크기의 화면과 다양한 종류의 디바이스 지원
Inside Android... 
Application Layer 
Application Framework 
C/C++ Library Android Runtime(ART or Dalvik) 
Linux Kernel
Android 5.0 Lollipop
Material design
Material design 에 대해 더 알아보기. 
● http://www.youtube.com/watch?v= 
Q8TXgCzxEnw 
● http://www.google.com/design
헤드-업 알림 
잠금 화면 알림
● 새로워진 앱 개요 보기(기존의 최근 
앱 보기) 화면 디자인 
○ 도큐먼트 단위로 앱 개요 관리
그 외 더 많은 변경 사항들... 
● 안드로이드 TV, 안드로이드 오토 지원 추가 
o 안드로이드 웨어(스마트 워치 등 웨어러블)은 4.4 Kitkat 
부터 지원됨 
● 런타임 변경(기존 달빅(Dalvik)에서 ART로 변경) 
● 64bit 지원 
● 더 강력해진 배터리 관리(Project Volta) 
● 관련 영상 
o http://youtu.be/HHXwsgw7M8s
개발환경 구축하기! 
Windows 기준 
JDK, Android Studio 등 설치
http://www.oracle.com/technetwork/java/javase/downloads/index.html 
위 페이지 방문하여, JDK 다운로드 받아서 설치하기
JAVA 환경 변수 설정 
● 제어판 > 시스템 으로 이동 
● 좌측에서 "고급 시스템 설정" 누르기 
● 세로 열리는 "시스템 속성" 창에서 "고급" 탭으로 
이동하기 
● 하단에 위치한 "환경 변수" 눌러서, 환경 변수 설 
정 창 열기
● "새로 만들기" 눌러서 변수 
추가하기. 
● 변수 이름에는 
JAVA_HOME 을, 변수 값 
에는 설치한 JDK 경로 입력 
하기. 
● 입력 후 "확인" 눌러서 
JAVA_HOME 변수 추가 마 
치기. 
이미지 출처 : http://h5bak.tistory.com/91
● Path 변수가 있는 경우는, 
선택 후 "편집"을, 없으면 
"새로 만들기" 눌러서 Path 
변수 만들거나 수정하기 
● 변수 이름에는 Path를, 변 
수 값 에는 입력 칸 가장 뒤 
에 ;%JAVA_HOME%bin; 
추가하기. 
● "확인" 눌러서 Path 변수 추 
가/수정 마치기. 
이미지 출처 : http://h5bak.tistory.com/91
http://developer.android.com/sdk/index.html 
위 페이지 방문하여, Android Studio 다운로드 받아서 설치하기
SDK 패키지 설치하기
설치할 SDK 패키지 
● Tools 항목 
o 최신 버전의 SDK Tools, Platform-tools, Build-tools 
● 최신 버전의 안드로이드의 패키지 
o 예시 : 모든 Android 5.0(API 21) 항목 
● 모든 Extras 항목
새 프로젝트 생성하기 
Package Name 지정 
Minimum SDK, Target SDK 지정
Package Name 정하기 
● 앱 의 고유한 이름으로, 다른 앱 과 구별 하는데 사용됩니다. 
● 보통 회사 도메인을 거꾸로 하여 사용합니다. 
o 예시 - 도메인이 example.com 이면, 
com.example.appname 
● 다른 앱 의 Package Name 과 중복 될 수 없습니다
Minimum SDK & Target SDK 
Minimum SDK 
● 앱 동작에 필요한 최소 버 
전 
Target SDK 
● 앱 동작이 확인 된 버전(보 
통 최신 버전의 안드로이드 
로 설정함)
http://developer.android.com/about/dashboards
앱 테스트 하기 
AVD(Android Virtual Device) 생성하기 
휴대전화 USB 디버깅 켜기 
앱 테스트 하기 
Gradle Build Toolkit 알아보기
AVD
USB 디버깅 켜기
디버그 
(Debug) 
실행(Run)
Gradle 
● 일종의 세련된(?) 빌드 시스템 
● DSL 이라는 선언문 형태의 언어로 빌드 스크립 
트를 작성하여 빌드를 설정함 
● http://gradle.org/
안드로이드 
프로젝트 
Byte Code 
빌드(Build) Resources 
Manifest 
서명(Sign) 디바이스 에 
설치 
Gradle 
Gradle 
Jar Signer 
ADB 
APK
본격적으로 앱 개발하기 
간단히 UI 배치하기 
Layout Managers 
ScrollView V.S ListView 
Adapter 로 ListView 에 항목 넣기
Activity 
Fragment 
Activity 
Fragment Fragment
Activity 
● 안드로이드 에서 기 
본 화면 단위 
Fragment 
● Activity에 표시 될 수 
있는 화면 모듈 
● 하나의 Activity에 여 
러 개의 Fragment를 
넣을 수 있음
View 
ViewGroup Widget 
AdapterView 
Layout 
FrameLayout 
TextView 
ImageView 
Button 
ProgressBar 
Spinner 
... 
LinearLayout 
RelativeLayout 
... 
ScrollView 
... 
ListView 
GridView 
...
View 
● 화면에 표시되는 하나하나의 요소들 
o 예 : TextView, ImageView, Button, Switch, EditText, 
ListView, GridView …
ViewGroup 
● 하나 이상의 View를 내부에 포함할 수 있는 
View. 
● 각종 Layout들이 ViewGroup의 일종임
FrameLayout LinearLayout RelativeLayout
TextView 
TextView 
TextView 
TextView 
ScrollView 
LinearLayout 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView
TextView 
TextView 
TextView 
TextView 
ScrollView 
LinearLayout 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
ListView 
TextView 
TextView 
TextView 
TextView 
TextView 
TextView 
스크롤 방향 
Recycled View
Adapter로 ListView에 데이터 넣기 
● 배열 형태로 데이터 만들기 
● ListView 찿기 
● Adapter 초기화 
● ListView에 위에서 초기화 한 Adapter 설정
배열 형태로 데이터 만들기 
… 
public static class PlaceholderFragment extends 
Fragment { 
… 
@Override 
public View onCreateView(LayoutInflater inflater, 
ViewGroup container,Bundle savedInstanceState) { 
…
배열 형태로 데이터 만들기 
… 
View rootView = 
inflater.inflate(R.layout.fragment_main_activity2, 
container, false); 
… 
String[] myStringArray = {“서울 - 맑음", "부천 - 조금 
흐림", "인천 - 약간의 눈"} 
…
ListView 찿기 
... 
//findViewById 로 View 찿기 
ListView myListView = 
(ListView)rootView.findViewById(R.id.listView); 
...
Adapter 초기화 
… 
ArrayAdapter<String> adapter = new 
ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1, myStringArray); 
…
ListView에 Adapter 설정 
… 
myListView.setAdapter(adapter); 
…
Context? 
● 앱 환경에 대한 정보를 얻기 위해 사용됨 
● 앱 의 리소스와 클래스에 접근 할 수 있도록 해줌 
● 새로운 Activity 열기, Intent 받기 등의 작업을 
실행 하는대 사용됨
Context? 
● http://developer.android.com/reference/an 
droid/content/Context.html 
● http://huewu.blog.me/110085457720
Thank You! 
Lesson 1 끝!

More Related Content

What's hot

Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복Sewon Ann
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기jiseob kim
 
그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법양 한빛
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
무식하게 배우는 gradle
무식하게 배우는 gradle무식하게 배우는 gradle
무식하게 배우는 gradleJi Heon Kim
 
Dagger with multi modules
Dagger with multi modulesDagger with multi modules
Dagger with multi modulesYoung-Hyuk Yoo
 
Android Webkit Browser Plug-in
Android Webkit Browser Plug-inAndroid Webkit Browser Plug-in
Android Webkit Browser Plug-inSeiyon Lee
 
PyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQtPyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQt덕규 임
 
Eclipse basic(조현종)
Eclipse basic(조현종)Eclipse basic(조현종)
Eclipse basic(조현종)cho hyun jong
 
그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수Yeon Soo Kim
 

What's hot (15)

Gradle guide
Gradle guideGradle guide
Gradle guide
 
Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기
 
Gitflow ppt
Gitflow pptGitflow ppt
Gitflow ppt
 
그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법
 
Swt bot
Swt botSwt bot
Swt bot
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
Android QA Process
Android QA ProcessAndroid QA Process
Android QA Process
 
무식하게 배우는 gradle
무식하게 배우는 gradle무식하게 배우는 gradle
무식하게 배우는 gradle
 
Dagger with multi modules
Dagger with multi modulesDagger with multi modules
Dagger with multi modules
 
Android Webkit Browser Plug-in
Android Webkit Browser Plug-inAndroid Webkit Browser Plug-in
Android Webkit Browser Plug-in
 
PyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQtPyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQt
 
Eclipse basic(조현종)
Eclipse basic(조현종)Eclipse basic(조현종)
Eclipse basic(조현종)
 
Git flow
Git flowGit flow
Git flow
 
그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수
 

Viewers also liked

0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디Youngbin Han
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디Youngbin Han
 
자기소개(SSS발표면접)
자기소개(SSS발표면접)자기소개(SSS발표면접)
자기소개(SSS발표면접)Youngbin Han
 
(중국과 세계 발표)황금방패
(중국과 세계 발표)황금방패(중국과 세계 발표)황금방패
(중국과 세계 발표)황금방패Youngbin Han
 
[5차교육] 입체스트링아트
[5차교육] 입체스트링아트[5차교육] 입체스트링아트
[5차교육] 입체스트링아트Taewook Nam
 
[5차교육] 드림캐처 만들기
[5차교육] 드림캐처 만들기[5차교육] 드림캐처 만들기
[5차교육] 드림캐처 만들기Taewook Nam
 
데스크탑 환경 구성요소
데스크탑 환경 구성요소데스크탑 환경 구성요소
데스크탑 환경 구성요소Youngbin Han
 
컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기Youngbin Han
 
Cardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRCardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRYoungbin Han
 
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규ChangKyu Song
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Youngbin Han
 
우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기Youngbin Han
 
제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황Youngbin Han
 
4년치 컨닝페이퍼
4년치 컨닝페이퍼4년치 컨닝페이퍼
4년치 컨닝페이퍼totodeung
 
2016 D.LAB Recruit 160713
2016 D.LAB Recruit 1607132016 D.LAB Recruit 160713
2016 D.LAB Recruit 160713영광 송
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW영광 송
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발ChangKyu Song
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규ChangKyu Song
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 

Viewers also liked (20)

0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
 
자기소개(SSS발표면접)
자기소개(SSS발표면접)자기소개(SSS발표면접)
자기소개(SSS발표면접)
 
(중국과 세계 발표)황금방패
(중국과 세계 발표)황금방패(중국과 세계 발표)황금방패
(중국과 세계 발표)황금방패
 
[5차교육] 입체스트링아트
[5차교육] 입체스트링아트[5차교육] 입체스트링아트
[5차교육] 입체스트링아트
 
[5차교육] 드림캐처 만들기
[5차교육] 드림캐처 만들기[5차교육] 드림캐처 만들기
[5차교육] 드림캐처 만들기
 
데스크탑 환경 구성요소
데스크탑 환경 구성요소데스크탑 환경 구성요소
데스크탑 환경 구성요소
 
컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기
 
Cardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRCardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VR
 
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
 
우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기
 
제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황
 
02.모의해킹전문가되기
02.모의해킹전문가되기02.모의해킹전문가되기
02.모의해킹전문가되기
 
4년치 컨닝페이퍼
4년치 컨닝페이퍼4년치 컨닝페이퍼
4년치 컨닝페이퍼
 
2016 D.LAB Recruit 160713
2016 D.LAB Recruit 1607132016 D.LAB Recruit 160713
2016 D.LAB Recruit 160713
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 

Similar to 1.Create Project Sunshine - 시온고등학교 안드로이드 스터디

[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)CONNECT FOUNDATION
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
Modern Android App Development
Modern Android App DevelopmentModern Android App Development
Modern Android App DevelopmentChi Hwan Choi
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Sourcecho hyun jong
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디소라 정
 
Sencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-windowSencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-windowByoung Do Ahn
 
Agados Function and Feature Overview
Agados Function and Feature OverviewAgados Function and Feature Overview
Agados Function and Feature OverviewYongkyoo Park
 
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오Booseol Shin
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)DONGSU KIM
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for AndroidSangkyoon Nam
 

Similar to 1.Create Project Sunshine - 시온고등학교 안드로이드 스터디 (20)

[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
 
React native development
React native developmentReact native development
React native development
 
Introducing Fragments
Introducing FragmentsIntroducing Fragments
Introducing Fragments
 
Modern Android App Development
Modern Android App DevelopmentModern Android App Development
Modern Android App Development
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Source
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디
 
Sencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-windowSencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-window
 
Agados Function and Feature Overview
Agados Function and Feature OverviewAgados Function and Feature Overview
Agados Function and Feature Overview
 
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android
 
React native study
React native studyReact native study
React native study
 

More from Youngbin Han

Ubucon Europe and Asia
Ubucon Europe and AsiaUbucon Europe and Asia
Ubucon Europe and AsiaYoungbin Han
 
우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기Youngbin Han
 
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsAutomating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsYoungbin Han
 
Engaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source ContributhonEngaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source ContributhonYoungbin Han
 
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)Youngbin Han
 
What's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSWhat's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSYoungbin Han
 
Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기Youngbin Han
 
우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고Youngbin Han
 
FluxSync Team 중간보고
FluxSync Team 중간보고FluxSync Team 중간보고
FluxSync Team 중간보고Youngbin Han
 
openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기Youngbin Han
 
How & Why we have connected Slack & IRC
How & Why we have connected Slack & IRCHow & Why we have connected Slack & IRC
How & Why we have connected Slack & IRCYoungbin Han
 
SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)Youngbin Han
 
SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료Youngbin Han
 
Snaps on Ubuntu Desktop
Snaps on Ubuntu DesktopSnaps on Ubuntu Desktop
Snaps on Ubuntu DesktopYoungbin Han
 
How and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCHow and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCYoungbin Han
 
Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)Youngbin Han
 
Jekyll and GitHub Pages
Jekyll and GitHub PagesJekyll and GitHub Pages
Jekyll and GitHub PagesYoungbin Han
 
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기Youngbin Han
 
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기Youngbin Han
 
Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Youngbin Han
 

More from Youngbin Han (20)

Ubucon Europe and Asia
Ubucon Europe and AsiaUbucon Europe and Asia
Ubucon Europe and Asia
 
우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기
 
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsAutomating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
 
Engaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source ContributhonEngaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source Contributhon
 
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
 
What's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSWhat's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTS
 
Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기
 
우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고
 
FluxSync Team 중간보고
FluxSync Team 중간보고FluxSync Team 중간보고
FluxSync Team 중간보고
 
openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기
 
How & Why we have connected Slack & IRC
How & Why we have connected Slack & IRCHow & Why we have connected Slack & IRC
How & Why we have connected Slack & IRC
 
SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)
 
SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료
 
Snaps on Ubuntu Desktop
Snaps on Ubuntu DesktopSnaps on Ubuntu Desktop
Snaps on Ubuntu Desktop
 
How and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCHow and why we have integrated Slack and IRC
How and why we have integrated Slack and IRC
 
Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)
 
Jekyll and GitHub Pages
Jekyll and GitHub PagesJekyll and GitHub Pages
Jekyll and GitHub Pages
 
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
 
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
 
Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기
 

1.Create Project Sunshine - 시온고등학교 안드로이드 스터디

  • 1. Developing Android Apps 1.Create Project Sunshine 시온고등학교 안드로이드 스터디
  • 2. TODOs : ● 안드로이드 플랫폼 소개 ● 개발 환경 구축하기 ● 프로젝트 생성, 테스트 ● 화면에 목록 띄우는 앱 만들기
  • 4. 가장 인기 있는 모바일 OS
  • 5.
  • 6. 리눅스 기반의 오픈소스 OS 아파치 라이선스 2.0 리눅스 커널 기반
  • 7. AOSP(Android Open Source Project) 기반 커스텀롬 예시 CyanogenMod MIUI Paranoid Android
  • 8. 다양한 크기의 화면과 다양한 종류의 디바이스 지원
  • 9. Inside Android... Application Layer Application Framework C/C++ Library Android Runtime(ART or Dalvik) Linux Kernel
  • 12. Material design 에 대해 더 알아보기. ● http://www.youtube.com/watch?v= Q8TXgCzxEnw ● http://www.google.com/design
  • 13. 헤드-업 알림 잠금 화면 알림
  • 14. ● 새로워진 앱 개요 보기(기존의 최근 앱 보기) 화면 디자인 ○ 도큐먼트 단위로 앱 개요 관리
  • 15. 그 외 더 많은 변경 사항들... ● 안드로이드 TV, 안드로이드 오토 지원 추가 o 안드로이드 웨어(스마트 워치 등 웨어러블)은 4.4 Kitkat 부터 지원됨 ● 런타임 변경(기존 달빅(Dalvik)에서 ART로 변경) ● 64bit 지원 ● 더 강력해진 배터리 관리(Project Volta) ● 관련 영상 o http://youtu.be/HHXwsgw7M8s
  • 16. 개발환경 구축하기! Windows 기준 JDK, Android Studio 등 설치
  • 17. http://www.oracle.com/technetwork/java/javase/downloads/index.html 위 페이지 방문하여, JDK 다운로드 받아서 설치하기
  • 18. JAVA 환경 변수 설정 ● 제어판 > 시스템 으로 이동 ● 좌측에서 "고급 시스템 설정" 누르기 ● 세로 열리는 "시스템 속성" 창에서 "고급" 탭으로 이동하기 ● 하단에 위치한 "환경 변수" 눌러서, 환경 변수 설 정 창 열기
  • 19. ● "새로 만들기" 눌러서 변수 추가하기. ● 변수 이름에는 JAVA_HOME 을, 변수 값 에는 설치한 JDK 경로 입력 하기. ● 입력 후 "확인" 눌러서 JAVA_HOME 변수 추가 마 치기. 이미지 출처 : http://h5bak.tistory.com/91
  • 20. ● Path 변수가 있는 경우는, 선택 후 "편집"을, 없으면 "새로 만들기" 눌러서 Path 변수 만들거나 수정하기 ● 변수 이름에는 Path를, 변 수 값 에는 입력 칸 가장 뒤 에 ;%JAVA_HOME%bin; 추가하기. ● "확인" 눌러서 Path 변수 추 가/수정 마치기. 이미지 출처 : http://h5bak.tistory.com/91
  • 21. http://developer.android.com/sdk/index.html 위 페이지 방문하여, Android Studio 다운로드 받아서 설치하기
  • 23. 설치할 SDK 패키지 ● Tools 항목 o 최신 버전의 SDK Tools, Platform-tools, Build-tools ● 최신 버전의 안드로이드의 패키지 o 예시 : 모든 Android 5.0(API 21) 항목 ● 모든 Extras 항목
  • 24. 새 프로젝트 생성하기 Package Name 지정 Minimum SDK, Target SDK 지정
  • 25. Package Name 정하기 ● 앱 의 고유한 이름으로, 다른 앱 과 구별 하는데 사용됩니다. ● 보통 회사 도메인을 거꾸로 하여 사용합니다. o 예시 - 도메인이 example.com 이면, com.example.appname ● 다른 앱 의 Package Name 과 중복 될 수 없습니다
  • 26. Minimum SDK & Target SDK Minimum SDK ● 앱 동작에 필요한 최소 버 전 Target SDK ● 앱 동작이 확인 된 버전(보 통 최신 버전의 안드로이드 로 설정함)
  • 28. 앱 테스트 하기 AVD(Android Virtual Device) 생성하기 휴대전화 USB 디버깅 켜기 앱 테스트 하기 Gradle Build Toolkit 알아보기
  • 29. AVD
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 37.
  • 38.
  • 39. Gradle ● 일종의 세련된(?) 빌드 시스템 ● DSL 이라는 선언문 형태의 언어로 빌드 스크립 트를 작성하여 빌드를 설정함 ● http://gradle.org/
  • 40. 안드로이드 프로젝트 Byte Code 빌드(Build) Resources Manifest 서명(Sign) 디바이스 에 설치 Gradle Gradle Jar Signer ADB APK
  • 41. 본격적으로 앱 개발하기 간단히 UI 배치하기 Layout Managers ScrollView V.S ListView Adapter 로 ListView 에 항목 넣기
  • 42.
  • 43. Activity Fragment Activity Fragment Fragment
  • 44. Activity ● 안드로이드 에서 기 본 화면 단위 Fragment ● Activity에 표시 될 수 있는 화면 모듈 ● 하나의 Activity에 여 러 개의 Fragment를 넣을 수 있음
  • 45. View ViewGroup Widget AdapterView Layout FrameLayout TextView ImageView Button ProgressBar Spinner ... LinearLayout RelativeLayout ... ScrollView ... ListView GridView ...
  • 46. View ● 화면에 표시되는 하나하나의 요소들 o 예 : TextView, ImageView, Button, Switch, EditText, ListView, GridView …
  • 47. ViewGroup ● 하나 이상의 View를 내부에 포함할 수 있는 View. ● 각종 Layout들이 ViewGroup의 일종임
  • 49. TextView TextView TextView TextView ScrollView LinearLayout TextView TextView TextView TextView TextView TextView TextView
  • 50. TextView TextView TextView TextView ScrollView LinearLayout TextView TextView TextView TextView TextView TextView TextView TextView TextView ListView TextView TextView TextView TextView TextView TextView 스크롤 방향 Recycled View
  • 51.
  • 52. Adapter로 ListView에 데이터 넣기 ● 배열 형태로 데이터 만들기 ● ListView 찿기 ● Adapter 초기화 ● ListView에 위에서 초기화 한 Adapter 설정
  • 53. 배열 형태로 데이터 만들기 … public static class PlaceholderFragment extends Fragment { … @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { …
  • 54. 배열 형태로 데이터 만들기 … View rootView = inflater.inflate(R.layout.fragment_main_activity2, container, false); … String[] myStringArray = {“서울 - 맑음", "부천 - 조금 흐림", "인천 - 약간의 눈"} …
  • 55. ListView 찿기 ... //findViewById 로 View 찿기 ListView myListView = (ListView)rootView.findViewById(R.id.listView); ...
  • 56. Adapter 초기화 … ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myStringArray); …
  • 57. ListView에 Adapter 설정 … myListView.setAdapter(adapter); …
  • 58. Context? ● 앱 환경에 대한 정보를 얻기 위해 사용됨 ● 앱 의 리소스와 클래스에 접근 할 수 있도록 해줌 ● 새로운 Activity 열기, Intent 받기 등의 작업을 실행 하는대 사용됨
  • 59. Context? ● http://developer.android.com/reference/an droid/content/Context.html ● http://huewu.blog.me/110085457720