tizen 핵심 툴킷 efl로 빠르고 가벼운 앱 개발하기 - soscon 2014...

58
Tizen 핵심 툴킷 EFL빠르고 가벼운 앱 개발하기 서주영 (삼성전자)

Upload: daniel-juyung-seo

Post on 23-Jun-2015

2.052 views

Category:

Technology


1 download

DESCRIPTION

EFL(Enlightenment Foundation Libraries)은 모바일, TV, 웨어러블, 카메라, 자동차 등 다양한 프로파일을 지원하는 타이젠 플랫폼의 핵심 툴킷이다. 이미 타이젠을 기반으로 하는 카메라, 웨어러블 등의 상용 제품에 EFL 기술이 적용되어 있다. 기존의 잘 알려진 유명한 툴킷이 아닌 생소한 EFL 툴킷을 선택하게 된 배경을 소개하고, EFL을 이용하여 모바일용 타이젠 애플리케이션을 제작해본다.

TRANSCRIPT

Page 1: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen핵심툴킷 EFL로빠르고가벼운앱개발하기

서주영 (삼성전자)

Page 2: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

발표자소개

• 서주영

• 삼성전자 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회)

Page 3: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

발표내용

• 오픈소스플랫폼 Tizen• 오픈소스툴킷 EFL• Tizen에서 EFL로앱개발하는방법소개

Page 4: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

청중소개

• 오픈소스에대한관심• Tizen및 EFL에대한관심• 현재하는일

Page 5: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

청중소개

• 오픈소스에대한관심• Tizen및 EFL에대한관심• 현재하는일

Page 6: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen

Page 7: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen

• 리눅스기반오픈소스플랫폼• 리눅스재단(Linux Foundation) 주관• 삼성과인텔등다양한회사및개인개발자개발참여• 크로스카테고리플랫폼

– 스마트폰, 넷북, 태블릿, 자동차인포테인먼트, TV, 카메라등

• W3C/HTML5와같은다양한표준준수• 웹앱, C++ 기반의네이티브(native) 앱개발지원

Page 8: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

다양한프로파일지원

• The OS of Everything

Page 9: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen기반제품

• NX300, NX300M 등• Gear 2, Gear 2 Neo, Gear S

Page 10: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen기반테스트폰

• RD-210, RD-PQ

Page 11: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen기반 SDK

• 모바일– 2.2.1 SDK

• 웨어러블– 1.0.0 베타3 SDK

• 2.3 알파 SDK – 모바일과웨어러블통합

Page 12: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Frameworks in Tizen

Page 13: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

아키텍처

Page 14: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

앱개발모델

• 네이티브앱: C++• 웹앱: HTML5, CSS, JavaScript, jQuery• 코어앱: C, C++

모바일 기어 카메라

네이티브 O X X

웹 O O X

코어 O O O

Page 15: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

코어프레임워크

• 웹및네이티브프레임워크의기반• 빠르고가벼운라이브러리• Core API 및 EFL API로구성• NX300 및기어2의많은앱이 EFL로개발됨

Page 16: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL

Page 17: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL 이란? (1/3)

• ELF가아님 EFL임• ELF는아니지만 ELF 만큼아름다울수있음

Page 18: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL 이란? (2/3)

• 툴킷• 다양한기능을제공하는라이브러리모음• http://www.enlightenment.org/

• Enlightenment Foundation Libraries• E17 윈도매니저개발을위해탄생• 처음부터임베디드기기고려• 화려함과가벼움을동시에가짐

Page 19: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL 이란? (3/3)

• 블록다이어그램

Page 20: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

왜 EFL인가? (1/2)

• 성능• 적은메모리사용량• GUI와앱로직분리• 테마기능

Page 22: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL with Tizen IDE

Page 23: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

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

Page 24: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tizen SDK (2/2)

• 구성요소– IDE– Emulator– Web Simulator– Dynamic Analyzer– Native UI Builder– Native Effect Builder– Tools

Page 25: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

SDK 설치

• SDK 설치시, “Platform Development” 선택

Page 26: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL 앱템플릿 (1/2)

• IDE에서– File -> New -> Project -> Tizen -> Tizen Platform Project– Template -> EFL Application

Page 27: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL 앱템플릿 (2/2)

• C 언어기반 Tizen EFL프로젝트

Page 28: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

컴파일

• 프로젝트의 Build Project 실행

Page 29: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

실행 (1/3)

• 에뮬레이터실행• 커맨드라인에서 sdb root on명령실행

Page 30: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

실행 (2/3)

• 프로젝트의 Run As실행

Page 31: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

실행 (3/3)

• 에뮬레이터에프로그램이자동으로설치되고실행됨

Page 32: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

실행 (3/3)

Page 33: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

실행 (3/3)

Page 34: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

EFL 앱개발

Page 35: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

템플릿코드분석 (1/5)

• 프로젝트디렉터리/파일구조

Page 36: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

템플릿코드분석 (2/5)

• 메인함수

Page 37: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

템플릿코드분석 (3/5)

• 라이프사이클

Page 38: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

템플릿코드분석 (4/5)

• app create 함수

Page 39: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

템플릿코드분석 (5/5)

• Window, Label 생성

Page 40: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

실행

Page 41: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

앱레이아웃

• 수동으로오브젝트이동– evas_object_move(), evas_object_resize()– 테스트목적. 추천하지않음

• 컨테이너위젯사용– 가장추천하는방법

• EDC 스크립트사용– 고급사용자를위한방법– Edje 라이브러리에서제공하는 EDC 스크립트활용

Page 42: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

위젯 (1/2)

< Bubble >

< Button >

< Calendar >

< Check >

< Toggle >

< Clock >

< Ctxpopup >

< Radio > < Frame >

< DaySelector >

< Slider >

< FlipSelector >< FileSelector > < Genlist >

< Gengrid >

< Spinner >

< Map > < Panes >

< Progressbar >

Page 43: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

위젯 (2/2)

• Elementary• 약 75개위젯제공. 이중 Tizen에서는약 30여개위젯지원.• 종류

– 일반: Bg, Button, Check, Entry, Label, List, Icon, Win, …– 컨테이너: Box, Conformant, Grid, Layout, Panes, Scroller, Table, …

• 특징– 터치스크린, 마우스모두동작– 스케일러블(Scalable)– 테마지원– 다양한옵션설정가능

Page 44: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

앱레이아웃

• 설정앱의경우

Page 45: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

앱레이아웃

• 앱스토어앱의경우

Page 46: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

앱레이아웃

• 복잡한앱의경우

Page 47: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Tools

Page 48: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Enventor

• A Dynamic EDC Editor• v0.3.2• https://phab.enlightenment.org/w/projects/enventor/

Page 49: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Eflete

• EFL Edje Theme Editor• https://phab.enlightenment.org/w/projects/eflete/

Page 50: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

GUI Builder

• EFL GUI Builder• https://phab.enlightenment.org/w/projects/gui_builder/

Page 51: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

Elm Theme Viewer

• elementary widget preview program• https://phab.enlightenment.org/w/projects/elm_theme_viewer/

Page 52: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

마무으리

Page 53: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

오픈소스 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/

Page 54: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

오픈소스 Tizen과 EFL

• EFL 한국사용자모임– http://www.efl.or.kr

• 블로그– http://seoz.egloos.com– http://hermet.pe.kr

Page 55: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

요약

• 오픈소스플랫폼인 Tizen은다양한카테고리의기기를지원• EFL은다양한기기를지원하는가볍고빠른앱을만드는데좋은툴킷• Tizen도 EFL도모두오픈소스

Page 56: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

요약

Page 57: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스

감사합니다

-끝 -

Page 58: Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스