SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
The Art of
Tizen UI Theme
Technology
in Various Profiles
Daniel Juyung Seo
Samsung Electronics
July 23, 2014
Who Am I
 Daniel Juyung Seo
- a.k.a SeoZ
- Senior Engineer at Samsung Electronics
- juyung.seo@samsung.com
- @seojuyung
 Tizen Core UIFW EFL Developer
 Enlightenment/EFL Open Source Committer
What is this talk about?
 Making frameworks and applications scalable in UI perspective.
 Enlightenment Foundation Libraries
 Slide: http://seoz.com/OSCON2014
Audience Introductions
 What is your expertise?
- Application Development
- Platform Development
- Design
- Marketing
Introduction
 Linux-based Open Source Platform
- A standard based open and flexible platform
- Linux Foundation Project
- Built from the ground up to address the needs of all stakeholders
- Developed by a community of developers, under open source governance, and is open to
all members who wish to participate.
- Comes in multiple profiles to serve different industry requirements.
 The OS of Everything
 Mobile, IVI, Wearable, TV, Camera, PC, …
Various Tizen Profiles
 NX300, NX300M, and etc.  Gear 2, Gear 2 Neo
Tizen Based Products – Camera and Smart Watch
 Test Devices
RD-PQ, RD-210
 2.2.1 SDK
 1.0.0 beta2 Wearable SDK
Tizen – Mobile/Wearable/TV
 2.3 Alpha SDK
- Mobile + Wearable Profiles
Scalability is Important
 Supporting different
resolutions, screen sizes, devices, and profiles.
Tizen Core
UI Framework
Applications
Web Framework
Core Framework
Kernel
Native Framework
Linux Kernel & Device Drivers
W3C/HTML5 Device API WRT Social/Content Locations Etc.
Web Applications Native Applications Core Applications
App FW Graphics & UI Multimedia Web Messaging Location
Security System Base Connectivity Telephony PIM
Tizen Architecture
 Native Applications : C++
 Web Applications : HTML5 + CSS + JavaScript + jQuery
 Core Applications : C or C++
Platforms  Areas Mobile Gear 2 NX300
Native O X X
Web O O X
Core O O O
Tizen Application Development Model
 But wait, they have something in common
 The Core Framework!
 Core API + EFL
 Many applications are written in EFL on the NX300 and Gear 2.
The Core Framework
 EFL not ELF
EFL may not be an ELF... but it's as pretty as one. :)
NO! YES!
Does anyone know about EFL?
 Toolkit
A set of libraries that provide a wide range of functionality
http://www.enlightenment.org/
 Enlightenment Foundation Libraries
- Created to support E17 development
- Targeted at embedded since day 1
- Always focused on staying lean while providing fanciness
- The heart of the graphics component of Tizen
What is EFL?
Core Framework and EFL
Applications
Web Framework
Core Framework
Kernel
Native Framework
Linux Kernel & Device Drivers
W3C/HTML5 Device API WRT Social/Content Locations Etc.
Web Applications Native Applications Applications
App FW Graphics & UI Multimedia Web Messaging Location
Security System Base Connectivity Telephony PIM
 Performance
 Small memory footprint
 GUI, Logic separation
 Themeable
 Animations
 H/W acceleration
 Various back-end engine
 Flexible
 Scalable
Why is EFL used on Tizen?
EFL(Edje + Elm)
Bindings
Elementary
EthumbEdbusEezeEioEfreet Emotion
Ecore
Embryo
Eet
Eina
Edje
Evas
EFL Block Diagram
 A complex graphical design and layout library.
 A graphical user interface without writing a line of C code.
 Creates visual layouts from compiled EDC script
- EDC is completely separate from application code
- Can be changed at or during runtime
 Layouts include
- Images, Colors
- Animations, Behaviors
 Supports relative and absolute positioning.
Edje
 Separation of layout and logic
- a graphical part : GUI Layout binary (edj)
- a functionality : Executable logic binary (C)
 Utility
- edje_cc : compile edc to edj
- edje_decc : de-compile edj to edc
.edc
.edj
.c
executable
edje_cc compile
running
runload
Edje
< Compile Time >
< Run Time >
 EDC Script
collections { // list of groups.
group { // the list of parts and programs that compose a given edje object.
images { } // list each image file that will be used in the edc.
parts {
part { // the most basic design elements of the group.
// (ie. RECT, TEXT, IMAGE, SWALLOW, TEXTBLOCK, GROUP, BOX, TABLE, EXTERNAL)
}
}
programs {
program { // manipulates the different interface elements and serve as a bridge between
// the application and interface.
}
}
}
}
Edje
 Widget Set
 75 widgets
- Non-Containers - Bg, Button, Check, Entry, Label, List, Icon, Win, …
- Containers - Box, Conformant, Grid, Layout, Panes, Scroller, Table, …
 Fast, Finger friendly, Scalable, Themeable, …
Elementary
< Bubble >
< Button >
< Calendar >
< Check >
< Toggle >
< Clock >
< Ctxpopup >
< Radio > < Frame >
< DaySelector >
< Slider >
< FlipSelector >
< FileSelector > < Genlist >
< Gengrid >
< Spinner >
< Map >
< Panes >
< Progressbar >
Elementary
 Elementary also uses edje for its layout
group { name: "elm/button/base/default";
images.image: "button_normal.png" COMP;
images.image: "button_clicked.png" COMP;
parts {
part { name: "base"; mouse_events: 0;
type: IMAGE
description { state: "default" 0.0;
image.normal: "button_normal.png";
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
image.border: 4 4 3 5;
image.middle: SOLID;
}
description { state: "clicked" 0.0;
inherit: "default" 0.0;
image.normal: "button_clicked.png";
image.border: 5 5 4 6;
}
...
programs {
program {
signal: "mouse,down,1"; source: "event";
action: STATE_SET "clicked" 0.0;
target: "base";
}
...
Elementary
 Relative Positioning (1)
Part A
rel1
(x=0.0 y=0.0)
rel2
(x=1.0 y=0.3)
Part B
rel1
(x=0.0 y=0.3)
rel2
(x=1.0 y=1.0)
How to achieve Scalability? - Part 1
 Relative Positioning (2)
Bigger
Scree/n
/
Higher
Resolution
(y=0.1)
(y=0.9)
How to achieve Scalability? - Part 1
 Relative Positioning (2)
Bigger
Scree/n
/
Higher
Resolution
(y=0.1)
(y=0.9)
How to achieve Scalability? - Part 1
Fix
Header
 Scale Factor
Higher Resolution
How to achieve Scalability? - Part 2
 Scale Factor
Higher Resolution + Scale Up
Higher Resolution
How to achieve Scalability? - Part 2
 Using container widgets
- Box, Conformant, Grid, Layout, Panes, Scroller, Table, …
 Ex) Conformant → Naviframe → List
How to achieve Scalability? - Part 3
 Border
< Original Background Image >
< Expand With Border >
< Expand Without Border >
How to achieve Scalability? - Part 4
 Finger Size
How to achieve Scalability? - Part 5
 Elementary Configuration
- Configurations
Scale, finger size, engine, scroll, focus, profile, …
- You can change the configuration based on your
own needs.
- Profile: a set of the configurations
default, standard, mobile, tv, wearable, …
There are more!
Demo
 Elementary Test
 Terminology
Demo
 Enventor
 Eflete
 Elm theme viewer
EFL Tools for a better Scalability
 Install Platform SDK  EFL Application Template
EFL Applications on Tizen SDK
 Tizen supports various profiles over a lot of device categories.
 EFL makes you write scalable GUI applications over various profiles with a good
performance and small memory foot prints.
 It's open. You can start it now.
Summary
Questions?
Visit Samsung Booth for Tizen SDK Demo
ONE installer Develop App on IDE Run on Emulators
 Visit Samsung Booth and check Tizen SDK Demo at OSCON 2014!
 Tizen SDK for multiple profiles
More Information
 Daniel Juyung Seo <juyung.seo@samsung.com>
- @seojuyung
- https://www.facebook.com/seojuyung
 https://tizen.org
 http://enlightenment.org
Thank you

Mais conteúdo relacionado

Semelhante a The Art of Tizen UI Theme Technology in Various Profiles (OSCON 2014)

Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - IntroductionEng Teong Cheah
 
Android Technology
Android TechnologyAndroid Technology
Android TechnologyAmar Shah
 
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game  - Build diagram, table and tree editors in 20 minutesSirius Role Playing Game  - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutesCédric Brun
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app developmentAbhishekKumar4779
 
#SiriusCon 2015: Sirius Roadmap
#SiriusCon 2015: Sirius Roadmap#SiriusCon 2015: Sirius Roadmap
#SiriusCon 2015: Sirius RoadmapObeo
 
Sirius : origins, present, future
Sirius : origins, present, futureSirius : origins, present, future
Sirius : origins, present, futureCédric Brun
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorialoscon2007
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Mikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Mikkel Flindt Heisterberg
 
Dot net interview_questions
Dot net interview_questionsDot net interview_questions
Dot net interview_questions9292929292
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & ComponentsAkash Bisariya
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterRobertLe30
 
Android task manager project presentation
Android task manager project presentationAndroid task manager project presentation
Android task manager project presentationAkhilesh Jaiswal
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
Android overview
Android overviewAndroid overview
Android overviewHas Taiar
 
Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?Ryo Jin
 

Semelhante a The Art of Tizen UI Theme Technology in Various Profiles (OSCON 2014) (20)

Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - Introduction
 
Session i
Session iSession i
Session i
 
Android Technology
Android TechnologyAndroid Technology
Android Technology
 
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game  - Build diagram, table and tree editors in 20 minutesSirius Role Playing Game  - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Android
AndroidAndroid
Android
 
#SiriusCon 2015: Sirius Roadmap
#SiriusCon 2015: Sirius Roadmap#SiriusCon 2015: Sirius Roadmap
#SiriusCon 2015: Sirius Roadmap
 
Sirius : origins, present, future
Sirius : origins, present, futureSirius : origins, present, future
Sirius : origins, present, future
 
Game Studio
Game StudioGame Studio
Game Studio
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorial
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)
 
Dot net interview_questions
Dot net interview_questionsDot net interview_questions
Dot net interview_questions
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
Android task manager project presentation
Android task manager project presentationAndroid task manager project presentation
Android task manager project presentation
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Android overview
Android overviewAndroid overview
Android overview
 
Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?
 

Mais de Daniel Juyung Seo

오픈 소스와 코드 리뷰
오픈 소스와 코드 리뷰오픈 소스와 코드 리뷰
오픈 소스와 코드 리뷰Daniel Juyung Seo
 
[위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화
[위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화 [위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화
[위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화 Daniel Juyung Seo
 
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기Daniel Juyung Seo
 
[아주대] 오픈 소스와 글로벌 경쟁력
[아주대] 오픈 소스와 글로벌 경쟁력[아주대] 오픈 소스와 글로벌 경쟁력
[아주대] 오픈 소스와 글로벌 경쟁력Daniel Juyung Seo
 
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발Daniel Juyung Seo
 
[KRnet2016] Contributing to Enlightenment Foundation Libraries
[KRnet2016] Contributing to Enlightenment Foundation Libraries[KRnet2016] Contributing to Enlightenment Foundation Libraries
[KRnet2016] Contributing to Enlightenment Foundation LibrariesDaniel Juyung Seo
 
[2016 아주대강의] 보안과소프트웨어엔지니어
[2016 아주대강의] 보안과소프트웨어엔지니어[2016 아주대강의] 보안과소프트웨어엔지니어
[2016 아주대강의] 보안과소프트웨어엔지니어Daniel Juyung Seo
 
[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기
[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기
[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기Daniel Juyung Seo
 
[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...
[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...
[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...Daniel Juyung Seo
 
[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)
[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)
[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)Daniel Juyung Seo
 
Introduction of EFL Korea Community (at 2014 Developer Day)
Introduction of EFL Korea Community (at 2014 Developer Day)Introduction of EFL Korea Community (at 2014 Developer Day)
Introduction of EFL Korea Community (at 2014 Developer Day)Daniel Juyung Seo
 
EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014
EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014
EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014Daniel Juyung Seo
 
Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)
Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)
Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)Daniel Juyung Seo
 
제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)
제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)
제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)Daniel Juyung Seo
 
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전Daniel Juyung Seo
 
Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스
Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스
Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스Daniel Juyung Seo
 
오픈소스와 영어 (KOR) - OSS 개발자 포럼
오픈소스와 영어 (KOR) - OSS 개발자 포럼오픈소스와 영어 (KOR) - OSS 개발자 포럼
오픈소스와 영어 (KOR) - OSS 개발자 포럼Daniel Juyung Seo
 
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Daniel Juyung Seo
 
EFL 오픈소스 활용 사례 2014
EFL 오픈소스 활용 사례 2014EFL 오픈소스 활용 사례 2014
EFL 오픈소스 활용 사례 2014Daniel Juyung Seo
 
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Daniel Juyung Seo
 

Mais de Daniel Juyung Seo (20)

오픈 소스와 코드 리뷰
오픈 소스와 코드 리뷰오픈 소스와 코드 리뷰
오픈 소스와 코드 리뷰
 
[위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화
[위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화 [위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화
[위드이노베이션 토크콘서트] 위드이노베이션, 삼성과 구글의 개발 문화
 
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
 
[아주대] 오픈 소스와 글로벌 경쟁력
[아주대] 오픈 소스와 글로벌 경쟁력[아주대] 오픈 소스와 글로벌 경쟁력
[아주대] 오픈 소스와 글로벌 경쟁력
 
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
 
[KRnet2016] Contributing to Enlightenment Foundation Libraries
[KRnet2016] Contributing to Enlightenment Foundation Libraries[KRnet2016] Contributing to Enlightenment Foundation Libraries
[KRnet2016] Contributing to Enlightenment Foundation Libraries
 
[2016 아주대강의] 보안과소프트웨어엔지니어
[2016 아주대강의] 보안과소프트웨어엔지니어[2016 아주대강의] 보안과소프트웨어엔지니어
[2016 아주대강의] 보안과소프트웨어엔지니어
 
[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기
[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기
[Ajou Greative 콘서트] 글로벌 sw엔지니어로 성장하기
 
[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...
[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...
[SOSCON 2015] 제 3회 EFL 한국 커뮤니티 세미나 - 16살 된 EFL은 어떻게 관리하고 배포ᄒ...
 
[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)
[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)
[OSS개발자포럼, 국민대 여름캠프] 개발자로 멋지게 살아보자 - 구글 서주영 (주석 포함)
 
Introduction of EFL Korea Community (at 2014 Developer Day)
Introduction of EFL Korea Community (at 2014 Developer Day)Introduction of EFL Korea Community (at 2014 Developer Day)
Introduction of EFL Korea Community (at 2014 Developer Day)
 
EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014
EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014
EFL을 이용한 타이젠 애플리케이션 개발 - Korea Community Day 2014
 
Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)
Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)
Tizen - A Linux Based Open Source Platform (제 17회 한국 LUG 소프트웨어 테크니컬 세미나)
 
제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)
제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)
제 2회 한국 EFL 세미나 - 5. Elm Theme Viewer (서주영)
 
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
 
Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스
Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스
Tizen 핵심 툴킷 EFL로 빠르고 가벼운 앱 개발하기 - SOSCON 2014 삼성오픈소스컨퍼런스
 
오픈소스와 영어 (KOR) - OSS 개발자 포럼
오픈소스와 영어 (KOR) - OSS 개발자 포럼오픈소스와 영어 (KOR) - OSS 개발자 포럼
오픈소스와 영어 (KOR) - OSS 개발자 포럼
 
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
 
EFL 오픈소스 활용 사례 2014
EFL 오픈소스 활용 사례 2014EFL 오픈소스 활용 사례 2014
EFL 오픈소스 활용 사례 2014
 
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
 

Último

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Último (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

The Art of Tizen UI Theme Technology in Various Profiles (OSCON 2014)

  • 1. The Art of Tizen UI Theme Technology in Various Profiles Daniel Juyung Seo Samsung Electronics July 23, 2014
  • 2. Who Am I  Daniel Juyung Seo - a.k.a SeoZ - Senior Engineer at Samsung Electronics - juyung.seo@samsung.com - @seojuyung  Tizen Core UIFW EFL Developer  Enlightenment/EFL Open Source Committer
  • 3. What is this talk about?  Making frameworks and applications scalable in UI perspective.  Enlightenment Foundation Libraries  Slide: http://seoz.com/OSCON2014
  • 4. Audience Introductions  What is your expertise? - Application Development - Platform Development - Design - Marketing
  • 6.  Linux-based Open Source Platform - A standard based open and flexible platform - Linux Foundation Project - Built from the ground up to address the needs of all stakeholders - Developed by a community of developers, under open source governance, and is open to all members who wish to participate. - Comes in multiple profiles to serve different industry requirements.
  • 7.  The OS of Everything  Mobile, IVI, Wearable, TV, Camera, PC, … Various Tizen Profiles
  • 8.  NX300, NX300M, and etc.  Gear 2, Gear 2 Neo Tizen Based Products – Camera and Smart Watch
  • 9.  Test Devices RD-PQ, RD-210  2.2.1 SDK  1.0.0 beta2 Wearable SDK Tizen – Mobile/Wearable/TV  2.3 Alpha SDK - Mobile + Wearable Profiles
  • 10. Scalability is Important  Supporting different resolutions, screen sizes, devices, and profiles.
  • 12. Applications Web Framework Core Framework Kernel Native Framework Linux Kernel & Device Drivers W3C/HTML5 Device API WRT Social/Content Locations Etc. Web Applications Native Applications Core Applications App FW Graphics & UI Multimedia Web Messaging Location Security System Base Connectivity Telephony PIM Tizen Architecture
  • 13.  Native Applications : C++  Web Applications : HTML5 + CSS + JavaScript + jQuery  Core Applications : C or C++ Platforms Areas Mobile Gear 2 NX300 Native O X X Web O O X Core O O O Tizen Application Development Model
  • 14.  But wait, they have something in common  The Core Framework!  Core API + EFL  Many applications are written in EFL on the NX300 and Gear 2. The Core Framework
  • 15.  EFL not ELF EFL may not be an ELF... but it's as pretty as one. :) NO! YES! Does anyone know about EFL?
  • 16.  Toolkit A set of libraries that provide a wide range of functionality http://www.enlightenment.org/  Enlightenment Foundation Libraries - Created to support E17 development - Targeted at embedded since day 1 - Always focused on staying lean while providing fanciness - The heart of the graphics component of Tizen What is EFL?
  • 17. Core Framework and EFL Applications Web Framework Core Framework Kernel Native Framework Linux Kernel & Device Drivers W3C/HTML5 Device API WRT Social/Content Locations Etc. Web Applications Native Applications Applications App FW Graphics & UI Multimedia Web Messaging Location Security System Base Connectivity Telephony PIM
  • 18.  Performance  Small memory footprint  GUI, Logic separation  Themeable  Animations  H/W acceleration  Various back-end engine  Flexible  Scalable Why is EFL used on Tizen?
  • 21.  A complex graphical design and layout library.  A graphical user interface without writing a line of C code.  Creates visual layouts from compiled EDC script - EDC is completely separate from application code - Can be changed at or during runtime  Layouts include - Images, Colors - Animations, Behaviors  Supports relative and absolute positioning. Edje
  • 22.  Separation of layout and logic - a graphical part : GUI Layout binary (edj) - a functionality : Executable logic binary (C)  Utility - edje_cc : compile edc to edj - edje_decc : de-compile edj to edc .edc .edj .c executable edje_cc compile running runload Edje < Compile Time > < Run Time >
  • 23.  EDC Script collections { // list of groups. group { // the list of parts and programs that compose a given edje object. images { } // list each image file that will be used in the edc. parts { part { // the most basic design elements of the group. // (ie. RECT, TEXT, IMAGE, SWALLOW, TEXTBLOCK, GROUP, BOX, TABLE, EXTERNAL) } } programs { program { // manipulates the different interface elements and serve as a bridge between // the application and interface. } } } } Edje
  • 24.  Widget Set  75 widgets - Non-Containers - Bg, Button, Check, Entry, Label, List, Icon, Win, … - Containers - Box, Conformant, Grid, Layout, Panes, Scroller, Table, …  Fast, Finger friendly, Scalable, Themeable, … Elementary
  • 25. < Bubble > < Button > < Calendar > < Check > < Toggle > < Clock > < Ctxpopup > < Radio > < Frame > < DaySelector > < Slider > < FlipSelector > < FileSelector > < Genlist > < Gengrid > < Spinner > < Map > < Panes > < Progressbar > Elementary
  • 26.  Elementary also uses edje for its layout group { name: "elm/button/base/default"; images.image: "button_normal.png" COMP; images.image: "button_clicked.png" COMP; parts { part { name: "base"; mouse_events: 0; type: IMAGE description { state: "default" 0.0; image.normal: "button_normal.png"; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; image.border: 4 4 3 5; image.middle: SOLID; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "button_clicked.png"; image.border: 5 5 4 6; } ... programs { program { signal: "mouse,down,1"; source: "event"; action: STATE_SET "clicked" 0.0; target: "base"; } ... Elementary
  • 27.  Relative Positioning (1) Part A rel1 (x=0.0 y=0.0) rel2 (x=1.0 y=0.3) Part B rel1 (x=0.0 y=0.3) rel2 (x=1.0 y=1.0) How to achieve Scalability? - Part 1
  • 28.  Relative Positioning (2) Bigger Scree/n / Higher Resolution (y=0.1) (y=0.9) How to achieve Scalability? - Part 1
  • 29.  Relative Positioning (2) Bigger Scree/n / Higher Resolution (y=0.1) (y=0.9) How to achieve Scalability? - Part 1 Fix Header
  • 30.  Scale Factor Higher Resolution How to achieve Scalability? - Part 2
  • 31.  Scale Factor Higher Resolution + Scale Up Higher Resolution How to achieve Scalability? - Part 2
  • 32.  Using container widgets - Box, Conformant, Grid, Layout, Panes, Scroller, Table, …  Ex) Conformant → Naviframe → List How to achieve Scalability? - Part 3
  • 33.  Border < Original Background Image > < Expand With Border > < Expand Without Border > How to achieve Scalability? - Part 4
  • 34.  Finger Size How to achieve Scalability? - Part 5
  • 35.  Elementary Configuration - Configurations Scale, finger size, engine, scroll, focus, profile, … - You can change the configuration based on your own needs. - Profile: a set of the configurations default, standard, mobile, tv, wearable, … There are more!
  • 36. Demo
  • 37.  Elementary Test  Terminology Demo
  • 38.  Enventor  Eflete  Elm theme viewer EFL Tools for a better Scalability
  • 39.  Install Platform SDK  EFL Application Template EFL Applications on Tizen SDK
  • 40.  Tizen supports various profiles over a lot of device categories.  EFL makes you write scalable GUI applications over various profiles with a good performance and small memory foot prints.  It's open. You can start it now. Summary
  • 42. Visit Samsung Booth for Tizen SDK Demo ONE installer Develop App on IDE Run on Emulators  Visit Samsung Booth and check Tizen SDK Demo at OSCON 2014!  Tizen SDK for multiple profiles
  • 43. More Information  Daniel Juyung Seo <juyung.seo@samsung.com> - @seojuyung - https://www.facebook.com/seojuyung  https://tizen.org  http://enlightenment.org