2019년 10월 21일 월요일

GDG Devfest 2019 메모

https://festa.io/events/559

발표자료 공유해주시면 감사할텐데..
이런 행사를 제공하는 것만으로도 감사.
다만 발표자 역량에 따라 발표내용이...






[Google Cloud 키노트]


시대의 흐름?
1. Dev & operation 
2. DevOps
3. Infrastructure as a code
4. SRE - site reliable engineering

Google cloud에서는 대규모의 여러 구글 서비스들을 지원 중 (Analytics, data, application ,infra 등-구글의 9-10억명 기반 서비스의 기반이기도 함.)

구글의 앱,서비스 제공 원칙
1. User를 먼저 생각
2. 기획안의 10배를 고민하고 생각함.
3. 공유할 수 있는 것들을 모두 공유하라


--------------------------------------------------------------------------------


[안드로이드 기반 AR 세계로의 초대]

안드로이드 7.0 이상
지원기기가 특정되어 있음


Android, unity, ios, unreal

Unity - all in one engine
AR core SDK for unitiy를 다운로드 받음.

Case study
- Life style 
 Streem사에 나온 VR 기반 가전 가이드 서비스
- Game
 Tend AR 사용자 얼굴로 가상의 물고기를 조정하는 펫 게임
- real estate
 Curate에서 가구를 배치할 수 있는 서비스
개발 및 학습 팁
- AR core API reference
- community : guthub, stack, AR experiments

--------------------------------------------------------------------------------


[Reactive Native와 Flutter를 고민하는 개발자분들에게]

Native platform, hybrid platform

Flutter skia ui 엔진이 모든 위젯을 그림
디바이스 platform, sdk 종속성 없음

React Native는 Platform 기본 컴포넌트를 활용하여 Platform, sdk 종속성이 있음

React Native는 bridge를 사용하고 플랫폼 종속적은 컴포넌트를 지원하여 이라 플랫폼용 코드 구현이 필요하기도 함.

Flutter도 스타일이 구분되어 있어 각 스타일을 다른 플랫폼에서  유지하기 위해서 분기처리 필요함.

모두 Platform specific code를 위해 platform code를 작성하여 호출함.

App size , 
Android hello world, Flutter 4.5M, Raect Native 7.1M
Flutter은 engine이 4M
React native js engine이 5M

iOS
Flutter 52M, React Native 24M
Flutter 30M, complied dart module 20M
Js core 15M

개발자 측면
.IDE 지원은 충분
.Hit reload 모두 지원

Dart는 인터프리터가 아닌 컴파일 언어, class 기반으로 중첩 코드 형태로 개발 해야함
JS - html을 활용하여 개발 가능

Architecture 
F BLoC 패턴,  페이지당 BLoC를 하나씩 개발 필요
R Flux 패턴, redux 데이터가 한 방향으로 이동, 함수형 프로그래밍에 최적화

3rd party library
F Package manager
R NPM
Reactive native의 라이브러리가 많고 flutter은 많지 않고 퀄리티도 부실함.

예제도 마찬가지
Flutter은 stack overflow보다 github 이슈에 있는 경우 많음

Flutter
- Camera library는 사용 못함
- Google 인증 library는 로그인 수준만 사용 가능
- video player도 성능 문제, frame drop
- web view도 성능 문제

--------------------------------------------------------------------------------



[Toy project가 쏘아올린 작은 공]

Pingcloud-cli
https://github.com/reoim/pingcloud-cli

개인 golang 공부를 사용하기 위해 시작
결국 뱅크샐러드 취업 및 다른 취업 기회 얻음

- 적절한 커뮤니티네 공유
- README.md 정리, 최대한 자세히 정리 아니면 문의 폭탄

실력이 증요(자격증, 공부, 컨퍼런스 발표 등), 실력을 알리는 것도 중요(블로그, 링크드인, 커뮤니티 등)

-----------------------------------------------------------------------------


[Declarative(<->imperative) UI patterns]

Declarative programming
필요한 것을 선언하여 사용 

Declarative UI patterns
화면에 필요한 컴포넌트를 선언하며 UI로 부터 구현을 분리?
사용할 컴포넌트를 선언(css선언하듯이)

왜?
화면 이동 시 개발자 버든을 줄여줌
게발자는 상태를 정의하면 되고 프레임워크에서 알아서 트랜지션을 처리
>앱의 기능 구현에 집중
>적은 코드량
>예측 가능한 코드

Flexibility
Data + UI code + behavior로 분리됨

Flutter에서는
UI = f(state)

Widget 기반으로 개발
- react에서 영향
- 현재 state로 보여줄 UI를 표시
- immutable 선언하여 수정 없이 사용

Flutter render tree
: 기존 뷰 같은 개념
Render Object
: 인스턴스화가 비용이 들어서 render tree가 업데이트 될 경우 재사용함 

React
- declarative, component base
- reconciliation(UI component tree를 저정하기 위해 On 알고리즘 사용) - flutter와 유사

Jetpack Compose
- Event handling을 명확히 > data input으로 event 주입

Swift UI
- view protocol 정의
- inheritance 보다는 compsition
- Modifier로 정의


댓글 없음:

댓글 쓰기