SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Flu$er &

Beyond Web
조성윤
ParkingBrother CTO

GDG Busan Organizer

@extJo
React Native
Flu$er
Ionic
Why?
Hot Reload 를 통해서 UI 를 작성
하거나, 기능을 추가하거나, 그리고
버그를 수정하는데 빠르고 쉽게 해
줍니다.
Flu$er can…
Flu$er has…
머테리얼 디자인 위젯과 쿠퍼티노 위젯을

내장하고 있으며, 강력한 성능의 Graphic

Engine을 통해서 Native에 가까운 성능을 냅니다.
Flu$er has…
하나의 코드 베이스를 통해서 다양한

플랫폼에 맞는 어플리케이션을

제작 할 수 있습니다.
Flu$er developed on…
가장 빠르게 성장하고있는 언어인

Da@로 개발합니다!

DaB 싫어하지 마세요 ㅠㅠ 

DaB 2.0 좋습니다

소금 조금 친건 비밀
Declarative UI
// Imperative style

b.setColor(red)

b.clearChildren()

ViewC c3 = new ViewC(...)

b.add(c3)
// Declarative style

return ViewB(

color: red,

child: ViewC(...),

)
Everything is Widget
Widget Lifecycle
A single StatelessWidget can build 

in many diVerent BuildContexts
A StatefulWidget creates a new State 

object for each BuildContext
State<T> Lifecycle
Stateful Widget +

State Object
PlaNorm Channel
Native API 또는 3rd PaBy API를

호출하기 위해서 PlaNorm Channel 이용
System Overview - Mobile
Flu$er For Web
System Overview - Web
How to work Hummingbird
• 초기 Hummingbird는 모든 렌더링 대상을 HTML Elements 형태로 변환

• 꽤나 좋았으나, 그러면 기존 Flu_er API와 비교해서 큰 변화가 필요

• 접근방식을 HTML + CSS + Canvas 형태로 바꿈
How to work Hummingbird
• HTML + CSS 표현되는것은 그대로 표현

• pixelation의 염려가 없는 그림들은 DomCanvas로 구현

• pixelation이 일어나는 그림들은 BitmapCanvas로 구현.

• 그림의 크기 조정이 일어나면(pixelation), 그림의 크기에 맞춰서 캔버스의 크기도
변경 해 주어야 했음

• 캔버스 할당 문제와, 캔버스의 크기 조정이 코스트가 큰 작업
Composition Multiple Canvas
Flu$er - Web
Dom, Canvas, CSS의 적절한 조합을 가지고 모던 브라우저에서의 유저 경험 제공
Flu$er - Web
DaB 2 JS Compiler를 통해서 JS로 DaB 코드 변환
Demo
단골 질문 1
꼭 Da@ 해야하나요? 다른언어는 지원안하나요?

오직 DaB만 지원합니다!

다양한 언어를 겪어본 입장에서 좋은 언어임은 맞습니다.
단골 질문 2
Flu$er 좋나요?

네! 모바일 (Android, iOS) 만들기에 정말 좋습니다.

하지만 아직 나머지 플랫폼에서는 정식지원이 아니기 때문에 아쉬운 

부분들이 있습니다.
단골 질문 3
네이티브 기능(BLE, Sensor 등등)을 많이 요구하는 경우

Flu$er 선택도 좋은가요?

원래는 아니요 였지만, 지금은 반반(무 많이…) 인거 같습니다.

Plaborm Channel 성능이 좋으며, 활발한 커뮤니티 덕에 좋은

라이브러리들이 지원되고 있습니다.
참고 자료
• h_ps://cu_er.dev

• h_ps://daB.dev

• h_ps://medium.com/cu_er/hummingbird-building-cu_er-for-the-web-e687c2a023a8

• h_ps://developers-kr.googleblog.com/2019/05/Flu_er-io19.html
Keep Similar,

Same Function
Thank You 😎
조성윤
ParkingBrother CTO

GDG Busan Organizer

@extJo

Más contenido relacionado

Similar a I:o extended'19 incheon flutter&beyond web

[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
 
[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221
[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221
[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221KTH, 케이티하이텔
 
개발자가 본 웹디자인
개발자가 본 웹디자인개발자가 본 웹디자인
개발자가 본 웹디자인Jae Nam Jung
 
반응형 웹 디자인
반응형 웹 디자인반응형 웹 디자인
반응형 웹 디자인준극 김
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기IMQA
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용jinwook shin
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotJavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotCirculus
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer ModelHan Lee
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Gilbok Lee
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Sang Seok Lim
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용jinwook shin
 
투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드병수 김
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 

Similar a I:o extended'19 incheon flutter&beyond web (20)

[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221
[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221
[발표자료]안드로메다에서 온 디자이너이야기 5차 next_web_지훈_20130221
 
CSS Layout
CSS LayoutCSS Layout
CSS Layout
 
개발자가 본 웹디자인
개발자가 본 웹디자인개발자가 본 웹디자인
개발자가 본 웹디자인
 
반응형 웹 디자인
반응형 웹 디자인반응형 웹 디자인
반응형 웹 디자인
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotJavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and Robot
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
 
모바일환경과 개발방향
모바일환경과 개발방향 모바일환경과 개발방향
모바일환경과 개발방향
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용
 
투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 

I:o extended'19 incheon flutter&beyond web

  • 1. Flu$er & Beyond Web 조성윤 ParkingBrother CTO GDG Busan Organizer @extJo
  • 2.
  • 5. Hot Reload 를 통해서 UI 를 작성 하거나, 기능을 추가하거나, 그리고 버그를 수정하는데 빠르고 쉽게 해 줍니다. Flu$er can…
  • 6. Flu$er has… 머테리얼 디자인 위젯과 쿠퍼티노 위젯을 내장하고 있으며, 강력한 성능의 Graphic Engine을 통해서 Native에 가까운 성능을 냅니다.
  • 7. Flu$er has… 하나의 코드 베이스를 통해서 다양한 플랫폼에 맞는 어플리케이션을 제작 할 수 있습니다.
  • 8.
  • 9. Flu$er developed on… 가장 빠르게 성장하고있는 언어인 Da@로 개발합니다! DaB 싫어하지 마세요 ㅠㅠ DaB 2.0 좋습니다 소금 조금 친건 비밀
  • 10. Declarative UI // Imperative style b.setColor(red) b.clearChildren() ViewC c3 = new ViewC(...) b.add(c3) // Declarative style return ViewB( color: red, child: ViewC(...), )
  • 12. Widget Lifecycle A single StatelessWidget can build in many diVerent BuildContexts A StatefulWidget creates a new State object for each BuildContext
  • 15. PlaNorm Channel Native API 또는 3rd PaBy API를 호출하기 위해서 PlaNorm Channel 이용
  • 19. How to work Hummingbird • 초기 Hummingbird는 모든 렌더링 대상을 HTML Elements 형태로 변환 • 꽤나 좋았으나, 그러면 기존 Flu_er API와 비교해서 큰 변화가 필요 • 접근방식을 HTML + CSS + Canvas 형태로 바꿈
  • 20. How to work Hummingbird • HTML + CSS 표현되는것은 그대로 표현 • pixelation의 염려가 없는 그림들은 DomCanvas로 구현 • pixelation이 일어나는 그림들은 BitmapCanvas로 구현. • 그림의 크기 조정이 일어나면(pixelation), 그림의 크기에 맞춰서 캔버스의 크기도 변경 해 주어야 했음 • 캔버스 할당 문제와, 캔버스의 크기 조정이 코스트가 큰 작업
  • 22. Flu$er - Web Dom, Canvas, CSS의 적절한 조합을 가지고 모던 브라우저에서의 유저 경험 제공
  • 23. Flu$er - Web DaB 2 JS Compiler를 통해서 JS로 DaB 코드 변환
  • 24. Demo
  • 25.
  • 26. 단골 질문 1 꼭 Da@ 해야하나요? 다른언어는 지원안하나요? 오직 DaB만 지원합니다! 다양한 언어를 겪어본 입장에서 좋은 언어임은 맞습니다.
  • 27. 단골 질문 2 Flu$er 좋나요? 네! 모바일 (Android, iOS) 만들기에 정말 좋습니다. 하지만 아직 나머지 플랫폼에서는 정식지원이 아니기 때문에 아쉬운 부분들이 있습니다.
  • 28. 단골 질문 3 네이티브 기능(BLE, Sensor 등등)을 많이 요구하는 경우 Flu$er 선택도 좋은가요? 원래는 아니요 였지만, 지금은 반반(무 많이…) 인거 같습니다. Plaborm Channel 성능이 좋으며, 활발한 커뮤니티 덕에 좋은 라이브러리들이 지원되고 있습니다.
  • 29. 참고 자료 • h_ps://cu_er.dev • h_ps://daB.dev • h_ps://medium.com/cu_er/hummingbird-building-cu_er-for-the-web-e687c2a023a8 • h_ps://developers-kr.googleblog.com/2019/05/Flu_er-io19.html
  • 31. Thank You 😎 조성윤 ParkingBrother CTO GDG Busan Organizer @extJo