안녕하세요, 윤진입니다.


EFL 포럼이 지난 10월 28일(수)에 SOSCON과 함께 열렸습니다.

오전 10시부터 오후 6시까지 총 10개의 세션이 빽빽하게 준비되어있었는데요,

10개 세션 모두 EFL 종사자들에게는 피가 되고 살이 될만한 내용이었습니다.

사실, 타이젠 네이티브앱 개발자들의 참여를 열심히 독려했습니다만,

격변하는 현실 속에 업무의 파도에 휩쓸려 대부분 참가하지 못해 개인적으로는 아쉽더군요. :)


EFL Agenda


10:00 ~ 10:30 "Tizen 2.4 EFL 소개", 박춘언

10:30 ~ 11:10 "EFL을 이용한 타이젠 게임 개발", 박진솔

11:10 ~ 11:40 "Tizen UI Builder", 서현수

11:50 ~ 12:20 "EFL circular UI-components in GearS2", 이우찬

12:20 ~ 14:00 점심식사

14:00 ~ 14:30 "EFL 앱 개발을 위한 팁 소개", 윤진

14:40 ~ 15:10 "이미지 마스킹 & 필터", Jean-Philippe ANDRE

15:20 ~ 15:50 "EFL 오브젝트 모델", 엄지용

16:00 ~ 16:30 "EFL 벡터 그래픽", Subhransu Sekhar Mohanty

16:40 ~ 17:10 "16살 된 EFL은 어떻게 관리하고 배포할까?", 서주영

17:20 ~ 17:50 "EFL 신규 디버깅 프로파일러", Carstein Heitzler


작년에는 EFL의 기본적인 기능에 대한 안내가 포럼의 큰 틀이었는데요,

올해는 EFL에 새로 탑재된 기능들 위주로 주제를 잡았습니다.

점심시간 전에 이뤄진 4개 세션은 타이젠 플랫폼과 연계하여 세션주제를 잡았네요.

제가 맡은 5번째 세션도 타이젠 앱개발을 통해 얻은 삽질의 결과물이니,

처음 5개 세션 모두가 타이젠 플랫폼과 긴밀한 관계가 있다고 볼 수 있습니다.


첫번째 세션 "Tizen 2.4 EFL 소개", 박춘언님


"EFL, 삼성이 주도하는 오픈소스 프로젝트"

"Tizen UIFW은 EFL입니다."


"Enlightenment 철학"

"저성능 디바이스를 위한 최적화"


"EFL 관련 정보"


최신 타이젠 2.4에 탑재된 EFL를 전체적으로 훑어보는 시간이었습니다.

Eo/Eolian
Evas Async Rendering
Vsync/Animator forced render slots
Evas Masking
Elm ATK Accessibility Support
Eldbus
Wayland
LazyEDC
SystemD Support
Eina Thread Queue
Elocation API

타이젠 2.3 이후 무려 2년간의 업데이트 항목이 타이젠 2.4에 올라갔습니다.

2.3에 비해 여러가지 면에서 진보했습니다.



두번째 세션 "EFL을 이용한 타이젠 게임 개발", 박진솔


박진솔님은 edc와 c로 만든 간단한 게임을 시연해주었습니다.

슈퍼마리오 캐릭터가 등장하는 캐쥬얼 게임이었는데요,

- between 기능을 사용하여 캐릭터의 움직임을 표현하였고,

- 키핸들링으로 캐릭터 오브젝트의 위치를 통제하였습니다.

- 애니메이터로 매프레임마다 적/보너스의 위치를 감지했네요.

최신의 enventor를 사용하여 어렵지 않게 구현할 수 있는 노하우를 공유해주었습니다.


세번째 세션은 사정상 듣지를 못했습니다.

다섯번째 발표준비를 위해 남들보다 한템포 먼저 점심식사를 먹으러 가서요.

서현수님이 Tizen 2.4 SDK UI Builder를 소개해주신 모양입니다.

UI Builder는 타이젠에서 뷰를 구성할때 사용하는 툴인데요,

상당히 공을 들여서 발표자료를 준비해주신 것으로 기억합니다.

발표자료는 다음 주에 소스콘 사이트를 통해 공유가 될 예정입니다.

네이티브 앱 뷰 구성에 어려움을 느끼는 분들께서 참고하시면 좋겠네요.


왼편부터 이우찬님, 박진솔님, 박춘언님


네번째 세션은 이우찬님의 "EFL circular UI-components in GearS2"였습니다.

이른 점심을 먹고 와서 이우찬 님의 발표 중간부분부터 들었습니다.

- 기어S2에 추가된 rotary 관련 API가 소개되었고,

- Circle Surface를 이용하여 다수의 오브젝트를 관리하는 기법이 언급되었으며,

- progressbar, slider, spinner, datetime, scroller 등의 예시를 보여주었습니다.

기어S2에서는 윈셋만 사용해도 흥미로운 User interaction 구성이 가능하겠네요.


 다섯번째 세션 "EFL 앱 개발을 위한 팁 소개", 윤진


EFL 앱을 짜며 재미난 팁들을 60~70개 정도 모아두었는데요,

그 중에서 10개를 추려서 발표준비를 했습니다.

준비를 하고 보니 60분 정도 분량이더군요.

하지만, 주어진 시간은 30분!

그래서 전반부 5개만 발표하겠다고 말씀드리고 딱 5개만 발표했습니다.

뒤의 5개는 내년 포럼에서 그대로 다시 써먹겠습니다...는 아니고,

조만간 블로그에서 다뤄볼 생각입니다.


이번에 다룬 내용은 아래와 같습니다.

- Manage Data with evas_object_data_set()

- Manage Memory with elm_object_content_set()

- Manage Performance with mainloop

- Manage Object Size with min & relative

- Manage Events between C & EDC


여섯번째 세션 "이미지 마스킹 & 필터", Jean-Philippe ANDRE


"GL Engine, Simple image object, Image size, No border, Only one mask"


Text Effects


"Text Effects"


"Grow > Blur > Blur > Blend"


"Blend, Blur, Color curves, Grow, Mask, Bump map, Displacement"


"Only Text & Image"


Sources


https://www.enlightenment.org/docs/efl/advanced/eflgfxfilters


장필립님이 발표하신 마스킹과 필터링은 앱단에서도 굉장히 유용하게 사용되겠네요.

안정화된 버전이 나오려면 내년까지 기다려야할지도 모르겠지만,

EFL만으로 포토샵에서나 사용하던 효과를 쓴다는 것이 흥미롭습니다.

점차적으로 재미난 필터들이 추가되리라 기대해봅니다.


일곱번째 세션 "EFL 오브젝트 모델", 엄지용님


"How to use Eo"


"To create Eo class manually, too Hard! Use Eolian!"


class sample


모든 EFL 라이브러리(Eina 제외)의 조상으로 Eo가 등장하였습니다.

C++에서 상속과 같이 필수적인 기능만을 추려서 별도의 syntax를 Eo로 만들었습니다.

EFL의 컴포넌트들은 Eo를 상속하여 기능을 정의하도록 변경되었습니다.

Eolian을 통해서 나오는 구현부를 C 외의 언어로도 짤 수 있습니다.

차후 다른 언어로 EFL을 확장하기 용이하게 기반을 닦아놓은 셈입니다.

다만, Eo로 한꺼풀 감싸므로 성능이 7% 정도 떨어진다고 합니다.

하지만, 최적화가 진행 중에 있으니 점차 나아지겠지요.


여덟번째 세션 "EFL 벡터 그래픽", Subhransu Sekhar Mohanty


Evas 블록 하단에 자리한 Ector


Vector 그래픽을 위한 캔버스와 Evas_Object_VG


Evas_VG 관련 함수


벡터그래픽은 그 동안 줄기차게 요구했던 기능이기도 한데요,

이번에 탑재가 되었으니 여러가지 실험을 해보고 싶단 생각이 듭니다.

evas_object_vg_add()로 객체를 하나 생성한 후,

Efl_VG를 사용하여 shape, fill, stroke, transformantion을 지정하면 됩니다.

API set만 봐서는 간단하게 사용할 수 있어보입니다.


아홉번째 세션 "16살 된 EFL은 어떻게 관리하고 배포할까?", 서주영


역시 발표의 달인, 천재태지 서주영님.

발표하는 내내 재미난 퀴즈도 내주시고 여러차례 빅재미를 안겨주었습니다.

릴리즈를 하며 겪은 살아있는 체험담을 들려주었는데요,

오픈소스 릴리즈에 대해 살짝이나마 엿볼 수 있는 시간이었습니다.


마지막 세션 "EFL 신규 디버깅 프로파일러", Carstein Heitzler


짜잔, Eina DebugD가 나왔어요~


그 동안 제대로된 EFL 프로파일링 툴이 없었는데요,

드디어 쓸만한 프로파일링 툴이 나왔습니다.

아직은 초기 버전이라 실제 개발단에서 유용하게 쓰려면 좀 더 시간이 걸릴테지만,

하이츨러 마스터의 원대한 계획이 모두 달성되면,

gdb나 여타의 프로파일링 툴을 사용하지 않고도 대부분의 상황에서 유용하게 사용될 겁니다.


이번 EFL 포럼에서는 참가자들의 날카로운 질문도 많이 있었습니다.

날선 비판이나 애정어린 조언도 있었는데요,

모두 EFL이 무럭무럭 자라는데 도움이 될 거라 확신합니다.


오전에 커스터마이징된 edc를 사고 팔 수 있는 장터가 필요하단 참가자분의 아이디어에,

하이츨러가 바로 장터를 만들어 보여주기도 하였습니다.

EFL은 매일매일 발전하며 부족한 부분을 메꾸고 있습니다.

많은 질책과 격려 부탁드립니다.


끝_

웨어러블 디바이스가 하나둘씩 출시되고 있습니다.

삼성전자가 출시한 시계만 해도,

기어 1, 기어 Fit, 기어 2, 기어 S가 있습니다.

거기에 원형 디스플레이의 기어가 조만간 출시될 예정이죠.


이 원형 디스플레이를 가진 기어를 위한 SDK가 드디어 배포되었습니다.

Early Access Program으로 사전등록한 개발자에게 SDK를 배포하고 있네요.

사전등록을 위해서 까다로운 절차는 없습니다.

그저 Join만 하면 됩니다. :)



안녕하세요, Tizen 개발자 윤진입니다.


Early Access Program에 참여하라는 메일입니다.

"Get ready for the next gear"

문구 뒤로 보이는 원형 디스플레이가 눈에 띕니다.

원형 디스플레이에는 지역정보와 시간정보 그리고 날씨정보가 노출되어 있습니다.

기어가 보여줄 정보가 되겠군요.


메일의 하단부에 "Join us" 버튼이 있네요.

버튼을 누르니 아래 사이트에 접근하더군요.

http://developer.samsung.com/wearable/sub.html



위의 사이트에는 EAP에 참여하기 위해서는 삼성 개발자 계정이 있어야 한다고 언급되어 있습니다.

삼성계정이 없으면 이 기회에 하나 만들고,

Sign up 버튼을 눌러 SDK 사용자에 대한 간단한 정보를 입력하시죠~


승인메일이 바로 오진 않습니다.

적어도 주말에는 승인메일이 오지 않았습니다.

주말이 지난 월요일 오전 10시경에 승인메일을 받은 기억이 납니다.

시스템이 자동으로 승인을 하진 않을테고,

수동으로 신청자를 가려 승인해주는게 아닌가 합니다.


승인메일은 아래 내용을 담고 전송됩니다.

Gear SDK Early Access Program에 대한 간단한 정보가 있고,

다운로드 페이지로 접근할 수 있는 버튼이 있네요.



권한이 없는 상태에서 다운로드 페이지로는 갈 수 없습니다.

다운로드를 받으시려면 필히 승인까지 받으셔야 합니다.


다운로드 페이지에 접근하면 아래와 같은 화면이 나옵니다.

처음으로 언급된 것이 기어앱의 동작방식이네요.

기어앱은,

- Standalone : 기어만 있어도 앱을 100% 활용할 수 있는 경우

- Companion : 모바일과 기어가 연결되어야 앱을 100% 활용할 수 있는 경우

위의 두 방식 중 하나로 동작하게 됩니다.



설치 전에 설치 방법이 언급된 More Details 버튼을 누릅니다.

위의 버튼을 누르면 아래처럼 자세한 설치방법이 나옵니다.



이 설치방법은 다운로드를 마치고 설치할 때 참고하시면 됩니다.

More Details 아래에는 플랫폼별 인스톨 매니져가 있네요.

자신의 OS에 해당하는 인스톨 매니져를 다운로드 받습니다.

- MacOS 64 bits

- Ubuntu 32 bits

- Ubuntu 64 bits

- Windows 32 bits

- Windows 64 bits


다운로드를 요청하면,

라이센스가 나옵니다.



라이센스에 동의한다는 의미로 두 군데에 모두 체크를 합니다.

두 군데 모두 체크가 되면, Download라는 버튼이 생성됩니다.

Download를 눌러 타이젠 SDK를 다운로드 받습니다.


윈도우 64비트용 인스톨 메니져는 약 810메가 정도의 용량입니다.

전송속도는 시스템마다 차이가 있겠지만,

2분 남짓이면 다운로드받을 수 있습니다.


다운로드 받은 파일은 압축되어 있습니다.

압축을 풀고 실행파일을 실행합니다.

윈도우의 경우에는 "tizen-sdk_2.3.74_windows-64.exe" 실행합니다.



인스톨 매니져가 정상적으로 실행되었다면,

위의 화면을 볼 수 있습니다.


Install 혹은 Update > Advanced

위의 경로에서 Advanced 버튼을 누릅니다.



Advanced Configuration에서,

SDK image를 선택합니다.

그리고 다운로드 받은 파일 중 "tizen-sdk-image-TizenSDK_2.3.1_RC7_EAP-windows-64.zip" 파일을 선택한 후 OK를 누릅니다.


여기까지 진행되었으면 아래와 같은 화면을 보실 수 있습니다.

Profiles에는 Wearable 2.3.1만 설치할 수 있습니다.



Wearable 2.3.1이 선택된 것을 확인하고,

Install 버튼을 누릅니다.



타이젠 SDK에 대한 라이센스가 나옵니다.

I agree 버튼을 눌러주세요.


"Ready to install?"

인스톨 준비가 다 되었는지 묻습니다.



Installation Location과 Data Location의 위치를 변경할 수 있습니다.

다만 여기서는 기존에 설정된 디렉토리를 그대로 사용하도록 하겠습니다.

중간에 있는 Install 버튼을 눌러 인스톨을 시작합니다.



인스톨이 완료되면 위의 화면이 나옵니다.

Close를 누릅니다.


그리고 타이젠 IDE를 실행하여 이클립스를 띄웁니다.

왼편 하단에 Connection Explorer가 있습니다.

가장 왼편에 에뮬레이터를 닮은 버튼을 눌러 Emulator manager를 누릅니다.



아래처럼 에뮬레이터 매니져가 런칭되었습니다.

에뮬레이터 매니져는 다음 세 개의 탭으로 되어 있습니다.

- wearable-2.3.1

- custom

- all



wearable-2.3.1 탭에 진입하여,

Create New VM 아래에 있는 '+' 버튼을 누릅니다.

그러면 그 자리에 폰 모양의 에뮬이 하나 생깁니다.



폰 오른쪽에 Detail을 설정할 수 있는 부분이 있습니다.

거기서 Name 정도를 바꿔줄 수 있습니다.

그리고 아래 Confirm을 누릅니다.



위의 이미지처럼 에뮬레이터가 하나 등록되었습니다.

사이즈는 360x360입니다.

원형 디스플레이가 360x360이겠지요.


에뮬레이터의 재생버튼을 눌러,

에뮬레이터를 런칭합니다.



원형 디스플레이를 가진 wearable 2.3.1 버전을 보실 수 있습니다.

이번에 추가된 장치로 오른 편에 용두가 있습니다.

그리고 원형디스플레이를 감싸고 있는 rotary도 있습니다.

신규 피쳐를 이용하여,

재미난 앱을 짤 수 있겠군요.


끝_




+ Recent posts