[e-dev-day 2014][8/16] the way how efl is used in the tizen, previous, current and future status
TRANSCRIPT
The Way How EFL is used in the Tizen
(previous, current and future)
Tae-Hwan KimSamsung Electronics S/W Center
What is Tizen?
● http://tizen.org/● First release (1.0.0) in Jan. 2012● Recent version: 2.2.1● Mixed of Many Open Sources
– EFL, Linux, Gstreamer, WebKit, etc.
● Mobile / Wearable / TV / IVI
– Samsung Gear 2, S
What is Tizen?
● Originated from Samsung Linux Platform
– From 2007 or 2008– Gtk was used
● Vodafone 360 (Sept. 2009)– Qt was tested
● EFL started to be used by 2010
Why EFL in the Tizen?
● Better Performance– Faster than other UIFW (e.g. Qt, Gtk)
– Low memory foot print● https://phab.enlightenment.org/phame/live/1/post/simpl
e_efl_vs_qml_comparison_again/● https://phab.enlightenment.org/phame/live/1/post/efl_
memory_consumption_moo/● Authority
– Not much used yet– Company love control
How EFL in the Tizen?
● Usage– Elementary >>>>>>>>>>>>>>>>>>>>>>>>>>>
Ecore >= Evas >= Edje >= Eina
– Company love widget● It's easy!
– Inhouse application is based on EFL.● e.g. Phone, Contact, Setting, etc.
– Genist is god widget
How EFL in the Tizen?
How EFL in the Tizen?
How EFL in the Tizen?
● Genlist is God!– Company (application developer?) love genlist
– Genlist can be used every where
– Genlist can contain every other things (Gengrid, entry, etc.)
– Over 1000 genlist styles are there● Over 60000 lines of edc code for Tizen Z● Over 10000 lines of edc code for both Gear 2 and Gear S● Previously, I made & maintain those all things alone
How EFL in the Tizen?
● How maintain alone?– MACRO!
● Double edged sword
– 24 patterns for scalable edc● Almost all things can be covered
– Dependency chain for Left, Right, Top, Bottom● https://git.tizen.org/cgit/framework/uifw/efl-theme-tizen.g
it/tree/themes/widgets/genlist/genlist_macro.edc
How EFL in the Tizen?
● By using this pattern, – 60000 lines are reduced into 5000
– All widget styles (not only genlist) are made alone● Gear 2 (2 weeks), Gear S (1 week)● Genlist, gengrid, entry, button, naviframe, etc.
● Genlist redesign– It's only 6000 lines but it's Spagetti
– Totally rewritten for Tizen commercialization● Also I should see all application codes and change them● Increase performance 20 times better (3~4 fps –> 55 fps) for worst case
– Anyway, need patch for upstream● Sorry, I don't have much time for upstream● Plz, review my patches! :p
How EFL in the Tizen?
● Tizen 1.0– Public Web APIs
● Tizen 2.2.1– Public OSP APIs
● Open Service Platform– Originated from Bada platform
● Parasitic on Tizen to survive– For UI, Parasitic on EFL :(– Backward compatibility for old Bada Applications
● It will be dead soon
● EFL is not public yet
Future of EFL in the Tizen
● Tizen 2.3 (mid-October)– EFL will be public open
– Only well used modules and functions are public● Eina, Evas, Ecore, Edje, Elementary
– 2400 APIs opened (out of 6700 APIs)● Over 1200 APIs are from elementary module
● Tizen 2.4 or 3.0(?)– All EFL functions will be public
– Recent EFL will be migrated
– Make plan to be synchronize with upstream
Future of EFL in the Tizen
● What to do?– Synchronize with upsream!
– Migration● Tizen is based on EFL 1.7.99 yet● Synchronize with Recent upstream
– One source branch● Different branch for different profile and different version
– Mobile/wearable/TV/IVI– 1.0/2.1/2.2/2.3
● Tizen Upstream branch– platform/uptream/efl– platform/upstream/elementary
Future of EFL in the Tizen
● Documentation– Many functions & enums & structures are not
documented yet
– We are improving it● Plz, review my patches
– Synchronize with upstream!
● Test Case– Abandon TETWare
– Synchronize with upstream!
Future of EFL in the Tizen
● APIs– Consistency/Simple
● Especially because of elementary failure
– But we should wait EFL 2.0
● Object system– Thanks to Eo/Eolian
● Theme Script– Edje is entry barrier for newcomer
– Thanks to BÖB!
Future of EFL in the Tizen
● Vector rendering– Thanks to Cedric!
● Wayland?● Evas 3D?● Ephysics?● ...
Thank you
EFL Test case in the Tizen
● Test Case for Public APIs– Approximately 2400 APIs (out of roughly 6700 APIs)
– TETware is used● It was used from Tizen 2.0● Only very very simple Unit Test● Only test function input parameter
– It can check only user mis-usage, that's all
● Next– Synchronize with upstream
– Check tool will be used
– Scenarios test will be added