SlideShare a Scribd company logo
1 of 33
Ionic Framework을 이
용한 하이브리드 앱
개발하기
김응주
(zard21@gmail.com)
진행 순
서
• Ionic Framework 이해하기
• Ionic Framework 개발환경 구성
• To-Do List 앱 만들기
• 앱 배포하기
• Ionic 하이브리드 앱 개발 시 참고
사항
모바일 앱 종
류
10001001001001010100
1000100000000101101
00010011100101101011
1
01001101010101010101
0
10101010101010101010
0
100101010010101010010
10101010101010101010
1
0101001000
Native Application
Device APIs
Mobile Browser
HTML/Script
<html>
<head>
…
<script>
…
</script
</head>
<body>
…
</body>
</html>
Native Container
Device APIs
HTML/Script
<html>
<head>
…
<script>
…
</script
</head>
Native
App
Web
App
Hybrid
App
모바일 앱 종류 별
비교
Nativ
e
App
We
b
App
Hybri
d
App
디바이스 접근 가능 부분적 가능 가능
앱 속도 (성능) 매우 빠름 보통
빠름
(Native에 근
접)
개발비용 높음 낮음 보통
앱 스토어 이용 가능 불가능 가능
Ionic
Framework
• Drifty에서 개발한 HTML5 기반 하이브리드 앱 개발 프레임워크
• http://ionicframework.com
• 무료 & 오픈소스 (MIT License)
• 크로스 플랫폼 지원 (Android, iOS, Windows 등)
• 다양한 네이티브 플러그인(Cordova/PhoneGap)과 클라우드 개발환경,
UI도구 지원
Angula
r
JavaScript
TypeScript
HTML
5 +
Apache
Cordova
• 크로스 플랫폼 개발을 위한 오픈소스 모바일 프레임
워크
• JavaScript를 이용하여 Native 코드와 통신할 수 있도
록 기능 제공
• Android, iOS, Windows, Blackberry 등 다양한 플랫폼
지원
Cordova
Plugins
., Battery Status ., Media
., Camera ., Media
Capture
., Console ., Network
., Contacts ., Splashscreen
., Device ., Vibration
., Device Motion ., Statusbar
.,
.,
Device Orientation
Dialogs
., Whitelist
., File
., File Transfer
., Geolocation
., Globalization
., Inappbrowser
Ionic
Framework
• 어떤 경우에 유용할까?
., iOS와 안드로이드 앱을 동시에 개
발
., 네이티브 앱 개발보다 Web 개발에
익숙
., 단순하고 표준적인 UI
., 플랫폼 간 모듈의 공유
Ionic
History
• 2013년 11월 알파버전 발표
• 2014년 3월 1.0 베타버전 발표
• 2015년 5월 1.0 정식버전 발표
• 2016년 11월 2.0 정식버전 발표
• 2017년 5월 3.0 정식버전 발표
• 3백만 개 이상의 앱이 Ionic으
로 개발
• 5백만명 이상의 Ionic 개발자
활동
Ionic Framework 개발환경
설치
• Node.js 설치 (v6 이상)
., http://nodejs.org
., 플랫폼 별 LTS 다운로드
., 설치 후 버전 확인 (node -v, npm
-v)
Ionic Framework 개발환경
설치
• Ionic 설치
$ (sudo) npm install -g cordova ionic C:> npm
install -g cordova ionic
• 설치 확인
$ cordova -v
$ ionic -v
$ ionic info
Ionic 프로젝트 생
성
• Ionic App 생성 (from template)
$ cd {PROJECT_PATH}
$ ionic start myApp [template option]
blan
k
tab
s
sidemen
u
Ionic App 실
행
• Web Browser에서 실
행
$ cd myApp
$ ionic serve
Ionic App 실
행
• 플랫폼 별Look and feel 확인
$ ionic serve --lab (ionic serve -l)
To-Do List
앱
• 데이터의 입력, 수정, 삭제
구현
• 라우팅을 이용한 페이지 전
환
프로젝트 생
성
• To-Do List App 생성
$ cd {PROJECT_PATH}
$ ionic start todoApp blank
To-Do List 페이지 추
가
$ ionic generate page todo
Ionic의 내비게이션
구현
• Angular 2의 라우터를 사용하지
않음
• 스택 구조의 내비게이션
Push
Po
p
To-Do List 페이지 추
가
$ ionic generate page new-todo
앱 배포하
기
• config.xml 변경하기
., {PROJECT_PATH}/config.xml
., 앱 명칭: <name>[APP NAME]</name>
., 앱 ID: <widget id=“[APP ID]” …
., 앱 버전: <widget … version=“[APP VERSION]”…
• 프로젝트 생성 시 설정하기
$ ionic start -a “[APP_NAME]” -i [APP_ID] …
• http://cordova.apache.org/docs/
앱 배포하
기
• iOS
$ xcode-select —install
$ (sudo) npm install -g ios-deploy
—unsafe-perm=true
$ ionic cordova platform add ios
$ ionic cordova build ios
—> Xcode로 import
$ ionic cordova emulate ios
[--target="iPhone-6"]
앱 배포하
기
• Android
., Android SDK 설치 (API Level 24)
., http://developer.android.com/sdk/
$ ionic cordova platform add android
$ ionic cordova build android
$ ionic emulate android
앱 배포하
기
• Android (Fixed)
$ ionic cordova platform add https://
github.com/infil00p/cordova-
android.git#StudioThreeFix
$ chmod -R 777 platforms/android
앱 배포하
기
• Android (Fixed)
Error: spawn EACCES
$ sudo chmod 755 "/Applications/Android
Studio.app/Contents/gradle/gradle-4.1/bin/ gradle”
앱 배포하
기
• 아이콘, 스플래시 이미지 변경하기
$ cp [아이콘 이미지] resources/icon.png
$ ionic cordova resources --icon
$ cp [스플래시 이미지] resources/splash.png
$ ionic cordova resources --splash
앱 배포하
기
• 앱 최종 배포하기
., Ionic Framework 홈페이지에서 Deploying 섹션
참조
Ionic
3
• Angular 5 지원 (ionic-angular
3.9.0)
• Lazy Loading
• Deep Linking
Ionic
Market
• Ionic market (http://market.ionic.io)
• starter app, plugin, theme를 구입하여 사용
가능
Ionic
Native
• Cordova/PhoneGap 플러그인을 쉽게 추가하여 사
용할 수 있 도록 하는 ES5/ES6/TypeScript Wrapper
• 필요한 추가 Cordova/PhoneGap 플러그인 설치
• ngCordova를 대체
Ionic
Creator
•
•
•
프로토타이핑, UI 개발, 커스텀 코드
추가 Project 다운로드
Ionic Creator App 공유
Ionic
View
•
•
Ionic App 프로젝트를 ionic.io(Ionic 클라우드 서비스)에
업로드
$ ionic upload
Ionic View 앱을 통하여 공유
참고 사
항
• App Layout
., 다양한 기기에서 테스트 필요
., 안드로이의 버전 별 webview에 따른 차이
• App Performance
., VirtualScroll
., Android 구형 기기(4.0-4.3)에서 성능 이슈
존재
., 애니메이션 효과 제거
Q & A
slack.codelabs.
kr
e-mail:
zard21@gmail.com

More Related Content

Similar to [Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기

[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
Sang Don Kim
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱
knight1128
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
Changhwan Yi
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나
NAVER D2
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
정민 안
 
[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료
[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료
[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료
Hannah Kim
 

Similar to [Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기 (20)

CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
React native development
React native developmentReact native development
React native development
 
Ionic project guide
Ionic project guideIonic project guide
Ionic project guide
 
Mobile security & security testing - Speaker at CSS Serminar
Mobile security & security testing - Speaker at CSS SerminarMobile security & security testing - Speaker at CSS Serminar
Mobile security & security testing - Speaker at CSS Serminar
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
 
[Seoultech] Mobile Security &amp; Security Testing(Eng)
[Seoultech] Mobile Security &amp; Security Testing(Eng)[Seoultech] Mobile Security &amp; Security Testing(Eng)
[Seoultech] Mobile Security &amp; Security Testing(Eng)
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
 
LetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxLetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptx
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
 
swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기
 
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기
 
[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료
[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료
[uengine.org-uEngine Day] 스마트폰과BPM의만남:프로세스터치프로젝트발표자료
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론
 

More from 양재동 코드랩

More from 양재동 코드랩 (14)

T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React NativeT12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
 
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
 
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
 
T13_1_김건_오픈소스 컨트리뷰션 101
T13_1_김건_오픈소스 컨트리뷰션 101T13_1_김건_오픈소스 컨트리뷰션 101
T13_1_김건_오픈소스 컨트리뷰션 101
 
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
 
[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6
 
[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Univeral Rendering[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Univeral Rendering
 
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
 
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
 

[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기