SlideShare a Scribd company logo
1 of 18
1 / 18
Ionic Framework Project Guide
ver 1.0.0
FashionGo Korea
2 / 18
Revision History
Version Description Author Date
1.0.0 초안 작성 이덕우 2016.01.21
3 / 18
Contents
Ionic Framework Project Guide........................................................................................................................................1
Revision History .....................................................................................................................................................................2
Ionic 이란?...............................................................................................................................................................................4
관련 용어 정리.......................................................................................................................................................................4
Ionic 설치.................................................................................................................................................................................5
Ionic 실행.................................................................................................................................................................................7
Sample Project 생성 ...................................................................................................................................................7
브라우저에서 App 실행 ............................................................................................................................................7
Android emulator에서 App 실행 ..........................................................................................................................9
Android Device에서 App 실행 ............................................................................................................................ 10
iOS simulator에서 App 실행 ................................................................................................................................ 11
iOS Device에서 App 실행 ..................................................................................................................................... 12
Ionic Device API 사용....................................................................................................................................................... 13
Ionic Platform 네이티브 개발 ....................................................................................................................................... 16
Android 프로젝트...................................................................................................................................................... 17
iOS 프로젝트............................................................................................................................................................... 18
4 / 18
Ionic 이란?
 정의
Cordova + AngularJS + Mobile UI Component 를 합친 모바일 Web App (Hybrid App)
Framework.
 장점
 쉬운 사용으로 App 개발의 진입 장벽이 낮아지고 빠른 개발 가능.
 plugin을 통해 네이티브 자원을 쉽게 사용할 수 있음.
 크로스 플랫폼을 지원하여 OSMU (One Source Multi Use) 할 수 있음.
 AngularJS 사용.
 다양한 모바일 UI 컴포넌트 제공.
 활발한 커뮤니티와 넓은 사용자층.
 단점
 버그 존재.
 많은 사용자로 인해 버그 해결 방법을 쉽게 찾을 수 있으며 빠른 업데이트로 버
그 수정.
 Transition과 Animation 속도가 상대적으로 느림.
 네이티브보다 빠를 수는 없음.
 Famo.us framework에 비해서 Transition 효과 및 Animation 속도가 상대적으로
느리지만 개발 성격이 다름.
관련 용어 정리
 Cordova
 Javascript를 이용하여 native device 에 접근할 수 있도록 하는 device API set을 제공
하여 HTML, CSS, JavaScript를 이용해 앱(Hybrid App)을 만들 수 있다.
 Adobe가 PhoneGap을 인수한 뒤에 PhoneGap을 Apache재단에 기부하였다. 그래서
Opensource가 되었고, PhoneGap 1.5 부터 Cordova로 이름이 변경되었다.
5 / 18
 지원 platform : amazon-fireos, android, blackberry10, browser, firefoxos, webos,
windows, windows8, wp8, ios, osx
 AngularJS
 SPA(Single Page Application) 형태의 웹 어플리케이션을 빠르게 개발할 수 있도록 도
와주는 MVC 웹 프레임워크.
 특징 : MVC 패턴, 의존성 주입(Dependency Injection), 양뱡향 데이터 바인딩 등.
 하이브리드 앱
 하이브리드 앱은 HTML5, CSS, JavaScript와 같은 웹 기술로 웹 애플리케이션을 만들
고, 이를 WebView라는 내장 브라우저를 통해 네이티브 컨테이너로 감싼 네이티브
애플리케이션을 말한다.
 Javascript에서 카메라, 가속도계, 위치정보, 연락처 같은 네이티브 기능에 접근할 수
있다.
 장점
 Web 개발자가 간단한 학습을 통하여 App 개발자가 될 수 있다.
 크로스 플랫폼을 지원하여 개발에 필요한 비용과 시간을 줄여준다.
 단점
 네이티브 앱과 같은 성능을 발휘하지 못한다. 그렇지만 점점 발전하고 있다.
Ionic 설치
1. Node.js 설치
A. 다운로드
i. https://nodejs.org
ii. 현재 버전 5.4.1이 stable 최신 버전이나 버전 5는 ionic이 동작하지 않는다고 나
와있으나 사용해본 결과 특별한 문제는 없었다.
6 / 18
B. installer 설치
C. 설치 확인
i. 명령 프롬프트(cmd) 실행
ii. node 입력
iii. ‘>’ 프롬프트 출력 확인
iv. ‘console.log(‘hello node.js’);’ 입력
v. ‘hello node.js’ 출력 확인
vi. ‘.exit’ 입력으로 node.js 실행 종료
2. Cordova, Ionic 설치
A. 명령 프롬프트(cmd) 실행
B. ‘npm install -g cordova ionic’ 입력
7 / 18
Ionic 실행
Sample Project 생성
1. 명령 프롬프트(cmd) 실행
2. project를 생성할 경로로 이동
3. ‘ionic start [프로젝트명] [템플릿명]’ 입력
* ‘sidemenu’ 템플릿이 적용된 project가 생성되는 명령으로 ‘blank’, ‘tabs’, ‘sidemenu’ 등의
템플릿을 설정하여 project를 생성할 수 있다.
4. 입력한 프로젝트명(‘myApp’)으로 ionic project가 생성된 것을 확인할 수 있다.
브라우저에서 App 실행
1. 명령 프롬프트(cmd) 실행
2. ionic project 경로로 이동
A. 모든 실행 명령은 프로젝트의 root 경로에서 실행을 해야한다. (예. C:myApp)
3. ‘ionic serve’ 입력
8 / 18
4. 자동으로 웹 서버가 구동되어 설정된 port를 통해 브라우저에서 확인할 수 있다.
5. 이 상태에서 파일 수정 시 자동으로 ionic이 이를 체크하여 update를 해주기 때문에 사
용자가 따로 update 또는 refresh를 해줄 필요가 없다.
6. ‘http://localhost:[port]/ionic-lab’ 에 접속하면 iOS와 Android에서 출력되는 화면을 미리
보기 할 수 있다.
9 / 18
7. ionic serve 상태에서 ‘quit’를 입력하여 종료 시킬 수 있다.
Android emulator에서 App 실행
1. Android sdk 설치 및 emulator 생성
2. 명령 프롬프트(cmd) 실행
3. ionic project 경로로 이동
4. ‘ionic platform add android’ 입력으로 Android platform 추가
5. ‘ionic build android’ 입력으로 Android platform 빌드
10 / 18
6. ‘ionic emulate android’ 입력으로 Android emulator 실행
* 실행 중인 emulator가 있다면 해당 emulator에서 실행이 되고 실행 중인 emulator가
없다면 등록된 android emulator 목록에서 첫번째 emulator를 자동으로 실행 시킨 후
app을 실행시킨다.
* 해당 명령어 실행 시 build 후 emulator에 upload 하므로 매번 실행 전에 build 명령
을 실행할 필요는 없다.
Android Device에서 App 실행
1. PC에 Android Device 연결
A. Android Device 확인
B. 명령 프롬프트(cmd) 실행
11 / 18
C. android sdk의 ‘adb’ 실행 파일이 있는 경로로 이동
(예. C:Users[사용자ID]AppDataLocalAndroidSdkplatform-tools)
D. ‘adb devices’ 를 입력하여 연결된 Android Device 확인
2. 명령 프롬프트(cmd) 실행
3. ionic project 경로로 이동
4. ‘ionic run android’ 입력으로 Android Device에 app deploy 및 실행
* PC에 Android Device가 연결되어 있지 않다면 Android emulator에서 자동 실행된다.
iOS simulator에서 App 실행
* xcode 등 iOS simulator를 구동할 환경이 있어야하므로 OS X 에서만 실행 가능하다.
1. xcode가 설치되어 있지 않다면 xcode 설치
2. 터미널 실행
3. ‘ios-sim‘ 패키지를 설치 하지 않았다면 설치
A. Cordova 프로젝트를 iOS simulator에서 실행하기 위한 패키지
B. ’npm install -g ios-sim’ 입력
4. ionic project 경로로 이동
5. ‘ionic platform add ios’ 입력으로 iOS platform 추가
12 / 18
6. ‘ionic build ios’ 입력으로 iOS platform 빌드
7. ‘ionic emulate ios’ 입력으로 iOS simulator 실행
* 실행 중인 simulator가 있다면 해당 simulator에서 실행이 되고 실행 중인 simulator가
없다면 등록된 ios simulator 목록에서 첫번째 simulator를 자동으로 실행 시킨 후 app을
실행시킨다.
* 해당 명령어 실행 시 build 후 emulator에 upload 하므로 매번 실행 전에 build 명령
을 실행할 필요는 없다.
iOS Device에서 App 실행
1. 터미널 실행
2. ionic project 경로로 이동
13 / 18
3. ‘ionic run ios’ 입력으로 iOS device(iPhone, iPad 등)에 app deploy 및 실행
* Mac PC 및 iOS Device가 없어 실제 테스트는 해보지 못함.
* PC에 iOS Device가 연결되어 있지 않다면 iOS simulator에서 자동 실행된다.
Ionic Device API 사용
기본적으로 Device API를 사용할 수는 없고 필요한 plugin을 추가하여 해당 Device API를 사용
할 수 있다.
geolocation API 사용을 예로 들어 설명을 하도록 한다.
1. 추가하고자 하는 plugin을 검색한다.
A. https://cordova.apache.org/plugins/
B. 공식 Cordova plugin 사이트로 현재 920 개의 plugin을 제공하고 있으며 지원
platform 및 설명이 잘 정리 되어있다.
C. 해당 항목을 click하여 상세 페이지에서 적용 방법 및 사용 예제를 확인한다.
2. 명령 프롬프트(cmd) 실행
3. ionic project 경로로 이동
4. ‘cordova plugin add [plugin 패키지명]’ 를 입력하여 plugin 추가
A. ‘cordova plugin add cordova-plugin-geolocation’ 입력
14 / 18
B. 추가되어있는 platform 에 자동으로 plugin이 설치 되고 필요한 파일 및 권한 설정
등이 모두 적용된다.
5. ‘ionic plugin list’ 입력으로 추가된 plugin 확인
6. Javascript에서 Device API 사용
A. 현재 위치를 가지고 오는 geolocation API를 호출하는 예제
var onSuccess = function(position) {
alert('Latitude: ' + position.coords.latitude + 'n' +
'Longitude: ' + position.coords.longitude + 'n' +
'Altitude: ' + position.coords.altitude + 'n' +
'Accuracy: ' + position.coords.accuracy + 'n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + 'n' +
'Heading: ' + position.coords.heading + 'n' +
'Speed: ' + position.coords.speed + 'n' +
'Timestamp: ' + position.timestamp + 'n');
};
function onError(error) {
alert('code: ' + error.code + 'n' +
'message: ' + error.message + 'n');
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, {enableHighAccuracy:
true});
15 / 18
* 사이트에서의 예제와 달리 ‘{enableHighAccuracy: true}’ option을 추가해주지 않으
면 android emulator, ios simulator에서 geolocation이 실행 되지 않는 오류가 있었다.
이와 같이 예상치않은 오류가 발생하면 device 로그를 확인 하여 해결해야 한다.
7. Emulator 확인
A. Android emulator 확인
* 위와 같이 위치 정보를 확인할 수 없다면 설정화면에서 GPS가 켜져있는지 확인하
고 ddms를 실행하여 좌표를 App에 직접 전송해주어야 한다.
B. iOS simulator 확인
16 / 18
* 위와 같이 위치 정보를 확인할 수 없다면 설정화면에서 GPS가 켜져있는지 확인하
고 ‘Simulator > Debug > Location > ’ 메뉴에서 location 설정을 해주어야 한다.
Ionic Platform 네이티브 개발
Ionic은 간단하게 platform만 추가하면 자동으로 해당 platform에 맞게 build를 해준다. 기본적
인 사용에서는 이것으로도 충분하지만 네이티브 개발을 추가하고자 할 경우 build 된 파일을 따
17 / 18
로 복사하여 IDE에서 로딩하여 개발을 진행하면된다. 그러나 그때부터는 크로스 플랫폼을 지원할
수 없게 되고 해당 platform은 분기되어 개발이 진행되어야 한다.
Android 프로젝트
1. ionic 프로젝트에서 android platform 추가 및 build
2. Android build 프로젝트 복사
 경로 : [Ionic App path]/platforms/android
 ionic에서 build를 하면 자동으로 생성되는 파일이기 때문에 따로 복사를 하지 않고
작업하면 파일이 임의로 수정될 수 있기에 다른 위치에 복사 후 진행해야한다.
3. Android Studio 실행
4. 복사한 Android 프로젝트 import
5. Android 네이티브 개발 진행
18 / 18
iOS 프로젝트
1. ionic 프로젝트에서 ios platform 추가 및 build
2. iOS build 프로젝트 복사
 경로 : [Ionic App path]/platforms/ios
 ionic에서 build를 하면 자동으로 생성되는 파일이기 때문에 따로 복사를 하지 않고
작업하면 파일이 임의로 수정될 수 있기에 다른 위치에 복사 후 진행해야한다.
3. xcode 실행
4. 복사한 iOS 프로젝트 import
5. iOS 네이티브 개발 진행

More Related Content

What's hot

[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민NAVER D2
 
하이브리드앱 성능 극복
하이브리드앱 성능 극복하이브리드앱 성능 극복
하이브리드앱 성능 극복sung hwan Park
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기Q-Young Lee
 
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발JongKwang Kim
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angularredribbon1307
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 
프론트엔드 개발자
프론트엔드 개발자프론트엔드 개발자
프론트엔드 개발자jung kyunghwan
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드NAVER D2
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)JinKwon Lee
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Woojin Joe
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디소라 정
 
워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1성일 한
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Jonathan Jeon
 

What's hot (20)

[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
 
하이브리드앱 성능 극복
하이브리드앱 성능 극복하이브리드앱 성능 극복
하이브리드앱 성능 극복
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기
 
Deview2013 track1 session7
Deview2013 track1 session7Deview2013 track1 session7
Deview2013 track1 session7
 
Jqm+appspresso
Jqm+appspressoJqm+appspresso
Jqm+appspresso
 
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
 
Class overview
Class overviewClass overview
Class overview
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
프론트엔드 개발자
프론트엔드 개발자프론트엔드 개발자
프론트엔드 개발자
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디
 
워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
 

Similar to Ionic project guide

[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기양재동 코드랩
 
App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비YoungHoKwak1
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료JinHyuck Churn
 
Sencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-windowSencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-windowByoung Do Ahn
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)DONGSU KIM
 
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점양재동 코드랩
 
Genymotion 2.0 설치 가이드
Genymotion 2.0 설치 가이드Genymotion 2.0 설치 가이드
Genymotion 2.0 설치 가이드YoungSu Son
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기hajaekwon
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
Modularization with Dynamic Feature Module
Modularization with Dynamic Feature ModuleModularization with Dynamic Feature Module
Modularization with Dynamic Feature ModuleNAVER Engineering
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)Sang Don Kim
 
한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기Yunhwan Na
 
DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개
DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개
DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개dgmit2009
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Dong Chan Shin
 
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)CONNECT FOUNDATION
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteSeok-yong Kim
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for AppspressoKTH, 케이티하이텔
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)
UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)
UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)mosaicnet
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재Hankyo
 

Similar to Ionic project guide (20)

[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
 
App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
 
Sencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-windowSencha touch2-sdk-tools-window
Sencha touch2-sdk-tools-window
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
 
Genymotion 2.0 설치 가이드
Genymotion 2.0 설치 가이드Genymotion 2.0 설치 가이드
Genymotion 2.0 설치 가이드
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
Modularization with Dynamic Feature Module
Modularization with Dynamic Feature ModuleModularization with Dynamic Feature Module
Modularization with Dynamic Feature Module
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
 
한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기
 
DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개
DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개
DGMIT 제3회 R&D 컨퍼런스 2TEAM : Kakao API소개
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
 
React native development
React native developmentReact native development
React native development
 
UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)
UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)
UX 핫 트렌드, 멀티 플랫폼 모바일 개발(2)
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재
 

More from Jong Woo Rhee

More from Jong Woo Rhee (10)

Jpa 필드 와 컬럼 매핑 레퍼런스
Jpa 필드 와 컬럼 매핑 레퍼런스Jpa 필드 와 컬럼 매핑 레퍼런스
Jpa 필드 와 컬럼 매핑 레퍼런스
 
Git hub repository 관리 방안
Git hub repository 관리 방안Git hub repository 관리 방안
Git hub repository 관리 방안
 
Connection pool
Connection poolConnection pool
Connection pool
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
 
Postgresql stored procedure
Postgresql stored procedurePostgresql stored procedure
Postgresql stored procedure
 
Ionics구조
Ionics구조Ionics구조
Ionics구조
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
Hibernate 기초
Hibernate 기초Hibernate 기초
Hibernate 기초
 
Glances
GlancesGlances
Glances
 
Jmeter
JmeterJmeter
Jmeter
 

Ionic project guide

  • 1. 1 / 18 Ionic Framework Project Guide ver 1.0.0 FashionGo Korea
  • 2. 2 / 18 Revision History Version Description Author Date 1.0.0 초안 작성 이덕우 2016.01.21
  • 3. 3 / 18 Contents Ionic Framework Project Guide........................................................................................................................................1 Revision History .....................................................................................................................................................................2 Ionic 이란?...............................................................................................................................................................................4 관련 용어 정리.......................................................................................................................................................................4 Ionic 설치.................................................................................................................................................................................5 Ionic 실행.................................................................................................................................................................................7 Sample Project 생성 ...................................................................................................................................................7 브라우저에서 App 실행 ............................................................................................................................................7 Android emulator에서 App 실행 ..........................................................................................................................9 Android Device에서 App 실행 ............................................................................................................................ 10 iOS simulator에서 App 실행 ................................................................................................................................ 11 iOS Device에서 App 실행 ..................................................................................................................................... 12 Ionic Device API 사용....................................................................................................................................................... 13 Ionic Platform 네이티브 개발 ....................................................................................................................................... 16 Android 프로젝트...................................................................................................................................................... 17 iOS 프로젝트............................................................................................................................................................... 18
  • 4. 4 / 18 Ionic 이란?  정의 Cordova + AngularJS + Mobile UI Component 를 합친 모바일 Web App (Hybrid App) Framework.  장점  쉬운 사용으로 App 개발의 진입 장벽이 낮아지고 빠른 개발 가능.  plugin을 통해 네이티브 자원을 쉽게 사용할 수 있음.  크로스 플랫폼을 지원하여 OSMU (One Source Multi Use) 할 수 있음.  AngularJS 사용.  다양한 모바일 UI 컴포넌트 제공.  활발한 커뮤니티와 넓은 사용자층.  단점  버그 존재.  많은 사용자로 인해 버그 해결 방법을 쉽게 찾을 수 있으며 빠른 업데이트로 버 그 수정.  Transition과 Animation 속도가 상대적으로 느림.  네이티브보다 빠를 수는 없음.  Famo.us framework에 비해서 Transition 효과 및 Animation 속도가 상대적으로 느리지만 개발 성격이 다름. 관련 용어 정리  Cordova  Javascript를 이용하여 native device 에 접근할 수 있도록 하는 device API set을 제공 하여 HTML, CSS, JavaScript를 이용해 앱(Hybrid App)을 만들 수 있다.  Adobe가 PhoneGap을 인수한 뒤에 PhoneGap을 Apache재단에 기부하였다. 그래서 Opensource가 되었고, PhoneGap 1.5 부터 Cordova로 이름이 변경되었다.
  • 5. 5 / 18  지원 platform : amazon-fireos, android, blackberry10, browser, firefoxos, webos, windows, windows8, wp8, ios, osx  AngularJS  SPA(Single Page Application) 형태의 웹 어플리케이션을 빠르게 개발할 수 있도록 도 와주는 MVC 웹 프레임워크.  특징 : MVC 패턴, 의존성 주입(Dependency Injection), 양뱡향 데이터 바인딩 등.  하이브리드 앱  하이브리드 앱은 HTML5, CSS, JavaScript와 같은 웹 기술로 웹 애플리케이션을 만들 고, 이를 WebView라는 내장 브라우저를 통해 네이티브 컨테이너로 감싼 네이티브 애플리케이션을 말한다.  Javascript에서 카메라, 가속도계, 위치정보, 연락처 같은 네이티브 기능에 접근할 수 있다.  장점  Web 개발자가 간단한 학습을 통하여 App 개발자가 될 수 있다.  크로스 플랫폼을 지원하여 개발에 필요한 비용과 시간을 줄여준다.  단점  네이티브 앱과 같은 성능을 발휘하지 못한다. 그렇지만 점점 발전하고 있다. Ionic 설치 1. Node.js 설치 A. 다운로드 i. https://nodejs.org ii. 현재 버전 5.4.1이 stable 최신 버전이나 버전 5는 ionic이 동작하지 않는다고 나 와있으나 사용해본 결과 특별한 문제는 없었다.
  • 6. 6 / 18 B. installer 설치 C. 설치 확인 i. 명령 프롬프트(cmd) 실행 ii. node 입력 iii. ‘>’ 프롬프트 출력 확인 iv. ‘console.log(‘hello node.js’);’ 입력 v. ‘hello node.js’ 출력 확인 vi. ‘.exit’ 입력으로 node.js 실행 종료 2. Cordova, Ionic 설치 A. 명령 프롬프트(cmd) 실행 B. ‘npm install -g cordova ionic’ 입력
  • 7. 7 / 18 Ionic 실행 Sample Project 생성 1. 명령 프롬프트(cmd) 실행 2. project를 생성할 경로로 이동 3. ‘ionic start [프로젝트명] [템플릿명]’ 입력 * ‘sidemenu’ 템플릿이 적용된 project가 생성되는 명령으로 ‘blank’, ‘tabs’, ‘sidemenu’ 등의 템플릿을 설정하여 project를 생성할 수 있다. 4. 입력한 프로젝트명(‘myApp’)으로 ionic project가 생성된 것을 확인할 수 있다. 브라우저에서 App 실행 1. 명령 프롬프트(cmd) 실행 2. ionic project 경로로 이동 A. 모든 실행 명령은 프로젝트의 root 경로에서 실행을 해야한다. (예. C:myApp) 3. ‘ionic serve’ 입력
  • 8. 8 / 18 4. 자동으로 웹 서버가 구동되어 설정된 port를 통해 브라우저에서 확인할 수 있다. 5. 이 상태에서 파일 수정 시 자동으로 ionic이 이를 체크하여 update를 해주기 때문에 사 용자가 따로 update 또는 refresh를 해줄 필요가 없다. 6. ‘http://localhost:[port]/ionic-lab’ 에 접속하면 iOS와 Android에서 출력되는 화면을 미리 보기 할 수 있다.
  • 9. 9 / 18 7. ionic serve 상태에서 ‘quit’를 입력하여 종료 시킬 수 있다. Android emulator에서 App 실행 1. Android sdk 설치 및 emulator 생성 2. 명령 프롬프트(cmd) 실행 3. ionic project 경로로 이동 4. ‘ionic platform add android’ 입력으로 Android platform 추가 5. ‘ionic build android’ 입력으로 Android platform 빌드
  • 10. 10 / 18 6. ‘ionic emulate android’ 입력으로 Android emulator 실행 * 실행 중인 emulator가 있다면 해당 emulator에서 실행이 되고 실행 중인 emulator가 없다면 등록된 android emulator 목록에서 첫번째 emulator를 자동으로 실행 시킨 후 app을 실행시킨다. * 해당 명령어 실행 시 build 후 emulator에 upload 하므로 매번 실행 전에 build 명령 을 실행할 필요는 없다. Android Device에서 App 실행 1. PC에 Android Device 연결 A. Android Device 확인 B. 명령 프롬프트(cmd) 실행
  • 11. 11 / 18 C. android sdk의 ‘adb’ 실행 파일이 있는 경로로 이동 (예. C:Users[사용자ID]AppDataLocalAndroidSdkplatform-tools) D. ‘adb devices’ 를 입력하여 연결된 Android Device 확인 2. 명령 프롬프트(cmd) 실행 3. ionic project 경로로 이동 4. ‘ionic run android’ 입력으로 Android Device에 app deploy 및 실행 * PC에 Android Device가 연결되어 있지 않다면 Android emulator에서 자동 실행된다. iOS simulator에서 App 실행 * xcode 등 iOS simulator를 구동할 환경이 있어야하므로 OS X 에서만 실행 가능하다. 1. xcode가 설치되어 있지 않다면 xcode 설치 2. 터미널 실행 3. ‘ios-sim‘ 패키지를 설치 하지 않았다면 설치 A. Cordova 프로젝트를 iOS simulator에서 실행하기 위한 패키지 B. ’npm install -g ios-sim’ 입력 4. ionic project 경로로 이동 5. ‘ionic platform add ios’ 입력으로 iOS platform 추가
  • 12. 12 / 18 6. ‘ionic build ios’ 입력으로 iOS platform 빌드 7. ‘ionic emulate ios’ 입력으로 iOS simulator 실행 * 실행 중인 simulator가 있다면 해당 simulator에서 실행이 되고 실행 중인 simulator가 없다면 등록된 ios simulator 목록에서 첫번째 simulator를 자동으로 실행 시킨 후 app을 실행시킨다. * 해당 명령어 실행 시 build 후 emulator에 upload 하므로 매번 실행 전에 build 명령 을 실행할 필요는 없다. iOS Device에서 App 실행 1. 터미널 실행 2. ionic project 경로로 이동
  • 13. 13 / 18 3. ‘ionic run ios’ 입력으로 iOS device(iPhone, iPad 등)에 app deploy 및 실행 * Mac PC 및 iOS Device가 없어 실제 테스트는 해보지 못함. * PC에 iOS Device가 연결되어 있지 않다면 iOS simulator에서 자동 실행된다. Ionic Device API 사용 기본적으로 Device API를 사용할 수는 없고 필요한 plugin을 추가하여 해당 Device API를 사용 할 수 있다. geolocation API 사용을 예로 들어 설명을 하도록 한다. 1. 추가하고자 하는 plugin을 검색한다. A. https://cordova.apache.org/plugins/ B. 공식 Cordova plugin 사이트로 현재 920 개의 plugin을 제공하고 있으며 지원 platform 및 설명이 잘 정리 되어있다. C. 해당 항목을 click하여 상세 페이지에서 적용 방법 및 사용 예제를 확인한다. 2. 명령 프롬프트(cmd) 실행 3. ionic project 경로로 이동 4. ‘cordova plugin add [plugin 패키지명]’ 를 입력하여 plugin 추가 A. ‘cordova plugin add cordova-plugin-geolocation’ 입력
  • 14. 14 / 18 B. 추가되어있는 platform 에 자동으로 plugin이 설치 되고 필요한 파일 및 권한 설정 등이 모두 적용된다. 5. ‘ionic plugin list’ 입력으로 추가된 plugin 확인 6. Javascript에서 Device API 사용 A. 현재 위치를 가지고 오는 geolocation API를 호출하는 예제 var onSuccess = function(position) { alert('Latitude: ' + position.coords.latitude + 'n' + 'Longitude: ' + position.coords.longitude + 'n' + 'Altitude: ' + position.coords.altitude + 'n' + 'Accuracy: ' + position.coords.accuracy + 'n' + 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + 'n' + 'Heading: ' + position.coords.heading + 'n' + 'Speed: ' + position.coords.speed + 'n' + 'Timestamp: ' + position.timestamp + 'n'); }; function onError(error) { alert('code: ' + error.code + 'n' + 'message: ' + error.message + 'n'); } navigator.geolocation.getCurrentPosition(onSuccess, onError, {enableHighAccuracy: true});
  • 15. 15 / 18 * 사이트에서의 예제와 달리 ‘{enableHighAccuracy: true}’ option을 추가해주지 않으 면 android emulator, ios simulator에서 geolocation이 실행 되지 않는 오류가 있었다. 이와 같이 예상치않은 오류가 발생하면 device 로그를 확인 하여 해결해야 한다. 7. Emulator 확인 A. Android emulator 확인 * 위와 같이 위치 정보를 확인할 수 없다면 설정화면에서 GPS가 켜져있는지 확인하 고 ddms를 실행하여 좌표를 App에 직접 전송해주어야 한다. B. iOS simulator 확인
  • 16. 16 / 18 * 위와 같이 위치 정보를 확인할 수 없다면 설정화면에서 GPS가 켜져있는지 확인하 고 ‘Simulator > Debug > Location > ’ 메뉴에서 location 설정을 해주어야 한다. Ionic Platform 네이티브 개발 Ionic은 간단하게 platform만 추가하면 자동으로 해당 platform에 맞게 build를 해준다. 기본적 인 사용에서는 이것으로도 충분하지만 네이티브 개발을 추가하고자 할 경우 build 된 파일을 따
  • 17. 17 / 18 로 복사하여 IDE에서 로딩하여 개발을 진행하면된다. 그러나 그때부터는 크로스 플랫폼을 지원할 수 없게 되고 해당 platform은 분기되어 개발이 진행되어야 한다. Android 프로젝트 1. ionic 프로젝트에서 android platform 추가 및 build 2. Android build 프로젝트 복사  경로 : [Ionic App path]/platforms/android  ionic에서 build를 하면 자동으로 생성되는 파일이기 때문에 따로 복사를 하지 않고 작업하면 파일이 임의로 수정될 수 있기에 다른 위치에 복사 후 진행해야한다. 3. Android Studio 실행 4. 복사한 Android 프로젝트 import 5. Android 네이티브 개발 진행
  • 18. 18 / 18 iOS 프로젝트 1. ionic 프로젝트에서 ios platform 추가 및 build 2. iOS build 프로젝트 복사  경로 : [Ionic App path]/platforms/ios  ionic에서 build를 하면 자동으로 생성되는 파일이기 때문에 따로 복사를 하지 않고 작업하면 파일이 임의로 수정될 수 있기에 다른 위치에 복사 후 진행해야한다. 3. xcode 실행 4. 복사한 iOS 프로젝트 import 5. iOS 네이티브 개발 진행