50
EFL 살살살살 (Enlightenment Foundation Libraries) 박박박 ([email protected]) 2014 EFL 살살 살살살살 살살살

EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 ([email protected]) 2014 EFL 한국 커뮤니티 세미나

Embed Size (px)

Citation preview

Page 1: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL 살펴보기(Enlightenment Foundation Libraries)

박춘언 ([email protected])

2014 EFL 한국 커뮤니티 세미나

Page 2: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

22

삼성전자 소프트웨어 센터 차세대 컴퓨팅 랩 근무타이젠 UIFW 개발 (2009 ~ )

EFL 오픈 소스 커미터 활동 (2011 ~ )

타이젠 , EFL 국내 활성화를 위한 EFL Korea Community 운영 중Blog. www.hermet.pe.kr

Email. [email protected]

박 춘 언

Page 3: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

기타 활동 - 서적

Page 4: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

44

EFL 이란 ?

• GUI 애플리케이션 개발 툴킷

• 유용한 기능을 제공하기 위한 라이브러리 모음

• 애플리케이션 작성 시 어렵고 복잡한 GUI 편의 기능 요소들을 제공

EFL Building Blocks

Page 5: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

55

EFL 이란 ?• 애플리케이션에서 EFL 로 할 수 있는 것들

• 적은 메모리 사용

• 고성능

• 메인 루프

• 위젯

• 확장성

• 테마

• GUI

Page 6: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

66

EFL 이란 ?• 애플리케이션에서 EFL 로 할 수 있는 것들

• 애니메이션

• 타이머

• File Descriptor

• 사용자 입력 이벤트 ( 키 , 마우스 … )

• IPC 통신

• Socket 통신

•etc.

Page 7: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

77

EFL 이란 ?• 타이젠 앱 개발

Page 9: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

99

EFL 이란 ?• EFL 적용 사례

•Elixir (Freebox)

•French Internet Set-top box

http://www.universfreebox.com/article/10269/Demonstration-d-une-application-meteo-sur-Freebox

Page 10: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1010

EFL 이란 ?• EFL 적용 사례

•NX300M

< (unofficial) EFL Logo>

Page 11: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1111

EFL 이란 ?• EFL 적용 사례

•Samsung Gear 2/ Gear 2 Neo

Page 12: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1212

Enlightenment 란 ?• 원래는 윈도우 관리자 이름

• 처음에는 GNOME 윈도우 관리자로서 제공

• 현재는 프로젝트 이름

• 윈도우 관리자와 라이브러리로 구성

• Enlightenment Desktop/Window Manager

• E16(DR16), E17(DR17), E18(DR18), E19(DR19)

• EFL (Enlightenment Foundation Libraries)

• http://www.enlightenment.org

< Enlightenment Logo >

Page 13: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1313

Enlightenment 란 ?

Enlightenment Window Manager

Page 14: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1414

EFL in Tizen?

Graphics and UI consist of the system graphic and UI stacks, which includes the EFL (En-lightenment Foundation Libraries), an X11-based window management system, input methods, and OpenGL® ES*. The heart of the Graphics component, the EFL, is a suite of libraries. It is for creating rich graphics with ease, for all UI resolutions. The libraries build UIs in layers, al-lowing for 3D transformations and more. The EFL includes the Evas canvas API library and the elementary widget library.

Page 15: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1515

EFL 역사

EFLImlib2Imlib/Fnlib

Enlighten-ment

(0.1 - 0.16.x)

1996 1999 20142001

Enlighten-ment

(0.17 - 0.19)

EFL 1.11

* Current EFL verision is 1.7 in Tizen 2.3 Beta

Page 16: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

1616

EFL 특성 정리• 성능

• 저사용 메모리

• 다양한 백엔드 엔진 지원

• GUI 와 프로그램 로직 분할

• 변경 가능한 테마

• 스크린 크기 호환성

• 애니메이션

• 다국어 지원

• H/W 가속

• 이식성

• 진입 장벽

• 자료 부족

Page 17: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL 특성 - 성능

GTK+, QT 비교 ?

• 과거 타이젠 전신 모델에서는 GTK+, X11, DirectFB 를 혼합하여 사용했었음

• EFL 을 도입 후 큰 성능 개선 이룸• 다양한 시나리오에서 소프트웨어 렌더링이 매우 빠름• 다년간 OpenGL & OpenGL ES 지원• 일반 스마트폰 기기에서 60fps 성능 출력

Page 18: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL 특성 - 성능

GTK+, QT 비교 ?

• Unity 대비 Enlightenment 의 메모리 사용량

• EFL 을 도입 후 큰 성능 개선 이룸• 다양한 시나리오에서 소프트웨어 렌더링이 매우 빠름• 다년간 OpenGL & OpenGL ES 지원• 일반 스마트폰 기기에서 60fps 성능 출력

Page 19: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics - Memory• Why is EFL being used as opposed to GTK+

or Qt or something else?• Memory (Ubuntu 11.04) beyond base X11 “fail-

safe” session• Unity – 168Mb• Enlightenment 0.17 – 65Mb

• Numbers based on “free” minus disk cache and buf-fers – Base 199Mb

• Both Unity and Enlightenment have roughly simi-lar features and setup• Compositor (OpenGL), fullscreen wallpaper, launcher,

icons, filemanager, etc.

Page 20: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics - Memory• Mobile devices ship with limited memory

• 128Mb, 256Mb, maybe 512Mb

• These devices almost never use swap• Flash has limited writes, so swap can hurt device lifespan

• Lower end devices may not have GPU's• Require decent software rendering to make up for it

• OpenGL has overhead that may not be worth it for all situations• Textures keeps speed, but lose memory & more

Page 21: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics - Memory

< QmlMiner (QT) >< elemines (EFL) >

Page 22: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

2222

EFL Characteristic - Memory

< QmlMiner (QT) >< elemines (EFL) >

Page 23: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

2323

EFL Characteristic - Memory

Page 24: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics - Backened• X11 (OpenGL, Xlib & XCB)• Wayland (OpenGL & SHM)• Direct Framebuffer• DRM• Memory buffers• PS3 Native• Windows (GDI & DirectDraw)• ETC

Page 25: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics – Logic/GUI Spearation

Page 26: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics – Themeable다양한 Look & Feel 을 지원하기 위한 테마 변경 가능

Page 27: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics – Scalable UI

Page 28: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

2828

EFL Characteristic – Animation

• Animations supported by various layers

•evas

•edje

•elementary

•efx

Page 29: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Characteristics – Bindings• C++• Lua• Python• Javascript• Ruby• Vala• Perl• …

Page 31: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3131

EFL Characteristic – Not Threadsafe• EFL is not threadsafe

• Use

•ecore_thread

•ecore_pipe

Page 32: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3232

EFL Characteristic – Flexible

• Many libraries

• Many features

• Runs on various environment.

• Modularized

Page 33: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3333

EFL Characteristic – Flexible

• Too many libraries

• Too many features

• Runs on various environment

•Test cost

• Too flexible

Page 34: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3434

EFL Characteristic – Flexible

• Entrance barrier

• Application developers should consider many things.

•Spend much time

•Recommend to be consulted by EFL open source or HQ EFL team.

• NO TUTORIAL, NO BOOK!

Page 35: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Block Diagram

Embryo

Eet

Evas

EcoreEdje

Eina

Efreet EldbusEthumb

Elementary

Applications, Libraries, Services

BASE OPERATIING SYSTEM /DISPLAY ETC.

BINDINGS(Elev8, python, perl, vala …)

Eio Eeze

Elementary

Emotion

Page 36: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3636

EFL Libraries - EINA

Eina

a library for

data types and some useful tools.

Page 37: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3737

EFL Libraries - EVAS

Evas (E + canVAS)

A highly optimized

canvas/rendering library

Page 38: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3838

EFL Libraries - ECORE

Ecore (E + Core)

a clean and tiny event loop library

with many convenience modules.

Page 39: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

3939

EFL Libraries - EDJE

Edje

a complex graphical design &

layout library.

Page 40: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

4040

EFL Libraries - ELEMENTARY

Elementary

a widget set.

Page 41: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

4141

EFL Libraries – ETC.● Data codec and storage (Eet)● Bytecode VM (Embryo)● Freedesktop.org standards support (Efreet)● Dbus integration and wrapping (Edbus)● Video/Audio Playback library (Emotion)

Page 42: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

4242

EFL Libraries – ETC.● Asynchronous I/O (Eio)● Udev hardware detection (Eeze)● Thumbnailer & cacher (Ethumb)● V8 Javascript base runtime (Elev8)● Physics simulation integration and visual effects.

(EPhysics)

Page 43: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL Opensource Community• Official Website

• www.enlightenment.org

• Mailing List• http://lists.sourceforge.net/lists/listinfo/enlightenment-devel • http://lists.sourceforge.net/lists/listinfo/enlightenment-an-

nounce• http://lists.sourceforge.net/lists/listinfo/enlightenment-users

• IRC• irc.freenode.net/6667• #e, #edevelop

• GIT• $ git clone http://git.enlightenment.org/core/efl.git• $ git clone http://git.enlightenment.org/core/elementary.git• $ git clone http://git.enlightenment.org/core/enlightenment.git

Page 44: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL 오픈 소스 커뮤니티World-Wide Developers

• 66 Committers• 21 committers are working for Samsung

Page 45: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL References

http://docs.enlightenment.org

Page 46: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL References

http://git.enlightenment.org/core/efl.git/tree/src/examples

Page 47: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL References

Elementary Test Application (elementary_test)

Source

elementary/src/bin/test*.c

Page 48: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL ReferencesElementary Config Application (elementary_config)

Page 49: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

EFL References

Enventor Application (enventor)

http://download.enlightenment.org/rel/apps/enventor/enventor-0.3.2.tar.gz

Page 50: EFL 살펴보기 (Enlightenment Foundation Libraries) 박춘언 (hermet@hermet.pe.kr) 2014 EFL 한국 커뮤니티 세미나

Thank you