tizen 핵심 툴킷 efl로 빠르고 가벼운 앱 개발하기 - soscon 2014...
DESCRIPTION
EFL(Enlightenment Foundation Libraries)은 모바일, TV, 웨어러블, 카메라, 자동차 등 다양한 프로파일을 지원하는 타이젠 플랫폼의 핵심 툴킷이다. 이미 타이젠을 기반으로 하는 카메라, 웨어러블 등의 상용 제품에 EFL 기술이 적용되어 있다. 기존의 잘 알려진 유명한 툴킷이 아닌 생소한 EFL 툴킷을 선택하게 된 배경을 소개하고, EFL을 이용하여 모바일용 타이젠 애플리케이션을 제작해본다.TRANSCRIPT
Tizen핵심툴킷 EFL로빠르고가벼운앱개발하기
서주영 (삼성전자)
발표자소개
• 서주영
• 삼성전자 SW센터소속– 책임연구원– [email protected]
• 닉네임– 천재태지, SeoZ– @seojuyung
• 하는일/한일– Tizen 코어 UIFW EFL 개발자 (2010/01 ~)– Enlightenment/EFL 오픈소스커미터 (2011/02 ~)– TDC 2014, OSCON 2014 EFL의 Scalability 기술발표– 임베디드월드 Tizen 연재 (총 10회중 8회), 마이크로소프트웨어 EFL 연재 (총 5회중 2회)
발표내용
• 오픈소스플랫폼 Tizen• 오픈소스툴킷 EFL• Tizen에서 EFL로앱개발하는방법소개
청중소개
• 오픈소스에대한관심• Tizen및 EFL에대한관심• 현재하는일
청중소개
• 오픈소스에대한관심• Tizen및 EFL에대한관심• 현재하는일
Tizen
Tizen
• 리눅스기반오픈소스플랫폼• 리눅스재단(Linux Foundation) 주관• 삼성과인텔등다양한회사및개인개발자개발참여• 크로스카테고리플랫폼
– 스마트폰, 넷북, 태블릿, 자동차인포테인먼트, TV, 카메라등
• W3C/HTML5와같은다양한표준준수• 웹앱, C++ 기반의네이티브(native) 앱개발지원
다양한프로파일지원
• The OS of Everything
Tizen기반제품
• NX300, NX300M 등• Gear 2, Gear 2 Neo, Gear S
Tizen기반테스트폰
• RD-210, RD-PQ
Tizen기반 SDK
• 모바일– 2.2.1 SDK
• 웨어러블– 1.0.0 베타3 SDK
• 2.3 알파 SDK – 모바일과웨어러블통합
Frameworks in Tizen
아키텍처
앱개발모델
• 네이티브앱: C++• 웹앱: HTML5, CSS, JavaScript, jQuery• 코어앱: C, C++
모바일 기어 카메라
네이티브 O X X
웹 O O X
코어 O O O
코어프레임워크
• 웹및네이티브프레임워크의기반• 빠르고가벼운라이브러리• Core API 및 EFL API로구성• NX300 및기어2의많은앱이 EFL로개발됨
EFL
EFL 이란? (1/3)
• ELF가아님 EFL임• ELF는아니지만 ELF 만큼아름다울수있음
EFL 이란? (2/3)
• 툴킷• 다양한기능을제공하는라이브러리모음• http://www.enlightenment.org/
• Enlightenment Foundation Libraries• E17 윈도매니저개발을위해탄생• 처음부터임베디드기기고려• 화려함과가벼움을동시에가짐
EFL 이란? (3/3)
• 블록다이어그램
왜 EFL인가? (1/2)
• 성능• 적은메모리사용량• GUI와앱로직분리• 테마기능
왜 EFL인가? (2/2)
• 애니메이션• 하드웨어가속• 다양한백엔드지원• 유연함• 스케일러블(Scalable)• 언어바인딩
EFL with Tizen IDE
Tizen SDK (1/2)
• Tizen공식웹사이트에서다운로드– https://developer.tizen.org/downloads/tizen-sdk?#2.2.1
• 지원 OS– Ubuntu 12.04 ~– Windows XP, 7– MacOS 10.7, 10.8
Tizen SDK (2/2)
• 구성요소– IDE– Emulator– Web Simulator– Dynamic Analyzer– Native UI Builder– Native Effect Builder– Tools
SDK 설치
• SDK 설치시, “Platform Development” 선택
EFL 앱템플릿 (1/2)
• IDE에서– File -> New -> Project -> Tizen -> Tizen Platform Project– Template -> EFL Application
EFL 앱템플릿 (2/2)
• C 언어기반 Tizen EFL프로젝트
컴파일
• 프로젝트의 Build Project 실행
실행 (1/3)
• 에뮬레이터실행• 커맨드라인에서 sdb root on명령실행
실행 (2/3)
• 프로젝트의 Run As실행
실행 (3/3)
• 에뮬레이터에프로그램이자동으로설치되고실행됨
실행 (3/3)
실행 (3/3)
EFL 앱개발
템플릿코드분석 (1/5)
• 프로젝트디렉터리/파일구조
템플릿코드분석 (2/5)
• 메인함수
템플릿코드분석 (3/5)
• 라이프사이클
템플릿코드분석 (4/5)
• app create 함수
템플릿코드분석 (5/5)
• Window, Label 생성
실행
앱레이아웃
• 수동으로오브젝트이동– evas_object_move(), evas_object_resize()– 테스트목적. 추천하지않음
• 컨테이너위젯사용– 가장추천하는방법
• EDC 스크립트사용– 고급사용자를위한방법– Edje 라이브러리에서제공하는 EDC 스크립트활용
위젯 (1/2)
< Bubble >
< Button >
< Calendar >
< Check >
< Toggle >
< Clock >
< Ctxpopup >
< Radio > < Frame >
< DaySelector >
< Slider >
< FlipSelector >< FileSelector > < Genlist >
< Gengrid >
< Spinner >
< Map > < Panes >
< Progressbar >
위젯 (2/2)
• Elementary• 약 75개위젯제공. 이중 Tizen에서는약 30여개위젯지원.• 종류
– 일반: Bg, Button, Check, Entry, Label, List, Icon, Win, …– 컨테이너: Box, Conformant, Grid, Layout, Panes, Scroller, Table, …
• 특징– 터치스크린, 마우스모두동작– 스케일러블(Scalable)– 테마지원– 다양한옵션설정가능
앱레이아웃
• 설정앱의경우
앱레이아웃
• 앱스토어앱의경우
앱레이아웃
• 복잡한앱의경우
Tools
Enventor
• A Dynamic EDC Editor• v0.3.2• https://phab.enlightenment.org/w/projects/enventor/
Eflete
• EFL Edje Theme Editor• https://phab.enlightenment.org/w/projects/eflete/
GUI Builder
• EFL GUI Builder• https://phab.enlightenment.org/w/projects/gui_builder/
Elm Theme Viewer
• elementary widget preview program• https://phab.enlightenment.org/w/projects/elm_theme_viewer/
마무으리
오픈소스 Tizen과 EFL
• Tizen공식웹사이트– https://tizen.org– 메일링리스트및 IRC– 소스코드: https://review.tizen.org/git/– 코드리뷰: https://review.tizen.org/gerrit– 위키: https://wiki.tizen.org
• EFL 공식웹사이트– http://www.enlightenment.org– 메일링리스트및 IRC– 소스코드: http://git.enlightenment.org– 코드리뷰, 위키: https://phab.enlightenment.org/
오픈소스 Tizen과 EFL
• EFL 한국사용자모임– http://www.efl.or.kr
• 블로그– http://seoz.egloos.com– http://hermet.pe.kr
요약
• 오픈소스플랫폼인 Tizen은다양한카테고리의기기를지원• EFL은다양한기기를지원하는가볍고빠른앱을만드는데좋은툴킷• Tizen도 EFL도모두오픈소스
요약
감사합니다
-끝 -