54
구글 인박스 - 히드라 프로그래밍 박창현

구글 인박스 히드라 프로그래밍

Embed Size (px)

Citation preview

Page 1: 구글 인박스 히드라 프로그래밍

구글 인박스 - 히드라 프로그래밍

박창현

Page 2: 구글 인박스 히드라 프로그래밍
Page 3: 구글 인박스 히드라 프로그래밍

Write Once, Run Anywhere

Page 4: 구글 인박스 히드라 프로그래밍

의 꿈개발자모든

Page 5: 구글 인박스 히드라 프로그래밍

의 꿈모든 관리자

Page 6: 구글 인박스 히드라 프로그래밍

구글님이 해냈다!

Page 7: 구글 인박스 히드라 프로그래밍

Google Inbox

Page 8: 구글 인박스 히드라 프로그래밍

소스 코드 70% 공유!

Page 9: 구글 인박스 히드라 프로그래밍

기본 아이디어

Page 10: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for Android

View

Control

Model

100

40

30

30

Page 11: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

Page 12: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

Page 13: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

100 + 100 + 100 = 300

Page 14: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

J2ObjC

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

View

Control

Model

100

40

30

30

100 + 100 + 100 = 300

Page 15: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

J2ObjC

View

Control

Model

100

40

30

30

View

Control

Model

40

40

View

Control

Model

100

40

30

30

100 + 100 + 100 = 300

Page 16: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

J2ObjC GWT

View

Control

Model

100

40

30

30

View

Control

Model

40

40

View

Control

Model

100

40

30

30

100 + 100 + 100 = 300

Page 17: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

J2ObjC GWT

View

Control

Model

100

40

30

30

View

Control

Model

40

40

View

Control

Model

40

40100 + 100 + 100 = 300

Page 18: 구글 인박스 히드라 프로그래밍

기본 아이디어

Google Inbox for AndroidGoogle Inbox for iOS Google Inbox for Web

J2ObjC GWT

View

Control

Model

100

40

30

30

View

Control

Model

40

40

View

Control

Model

40

4040 + 100 + 40 = 180

Page 19: 구글 인박스 히드라 프로그래밍

J2ObjC

Page 20: 구글 인박스 히드라 프로그래밍

Your Java Sources

*.h *.m

Guava JRE in AOSP

Harmony jUnit …

*.h *.m

*.oj2objc

j2objcc (cc)

Foundation Framework

Page 21: 구글 인박스 히드라 프로그래밍

Your Java Sources

*.h *.m

Guava JRE in AOSP

Harmony jUnit …

*.h *.m

*.oj2objc

j2objcc (cc)

“Transpiler”

Foundation Framework

Page 22: 구글 인박스 히드라 프로그래밍

Eclipse JDT Parser

Your Java Sources

*.h *.m

Guava JRE in AOSP

Harmony jUnit …

*.h *.m

*.oj2objc

j2objcc (cc)

“Transpiler”

Foundation Framework

Page 23: 구글 인박스 히드라 프로그래밍

Eclipse JDT ParserAOSP / Guava / Apache Harmony project

Your Java Sources

*.h *.m

Guava JRE in AOSP

Harmony jUnit …

*.h *.m

*.oj2objc

j2objcc (cc)

“Transpiler”

Foundation Framework

Page 24: 구글 인박스 히드라 프로그래밍

Eclipse JDT ParserAOSP / Guava / Apache Harmony project

iOS Foundation Framework

Your Java Sources

*.h *.m

Guava JRE in AOSP

Harmony jUnit …

*.h *.m

*.oj2objc

j2objcc (cc)

“Transpiler”

Foundation Framework

Page 25: 구글 인박스 히드라 프로그래밍
Page 26: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

Page 27: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

Page 28: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

Page 29: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

네트워크도 지원!

Page 30: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

네트워크도 지원!

데이터베이스 미지원…-_-;;

Page 31: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

네트워크도 지원!

데이터베이스 미지원…-_-;;

ARC 지원

Page 32: 구글 인박스 히드라 프로그래밍

Model/Control 개발에 필요한 대부분의 Java Runtime Library 지원!

네트워크도 지원!

데이터베이스 미지원…-_-;;

ARC 지원

JUnit Test 지원!

Page 33: 구글 인박스 히드라 프로그래밍

정말 되나? 해보자.

Page 34: 구글 인박스 히드라 프로그래밍

Memocontent

date

Memocontent

date

간단한 메모앱

Memocontent

dateMemoModel MemoController

MemoCallBack

MemoDB

Model Control View

Activity/ViewController

Page 35: 구글 인박스 히드라 프로그래밍

소스

Page 36: 구글 인박스 히드라 프로그래밍

제언1

Page 37: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Page 38: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고

Page 39: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

Page 40: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.

Page 41: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.윗사람 관심을 많이 받고, 일정 조정이 어렵더라도,

Page 42: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.윗사람 관심을 많이 받고, 일정 조정이 어렵더라도,

왠만하면 강하게 주장해서 도입하세요.

Page 43: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.

최소 개발 리소스의 40% 절약되고

윗사람 관심을 많이 받고, 일정 조정이 어렵더라도,왠만하면 강하게 주장해서 도입하세요.

Page 44: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.

최소 개발 리소스의 40% 절약되고

윗사람 관심을 많이 받고, 일정 조정이 어렵더라도,왠만하면 강하게 주장해서 도입하세요.

한번 하고 나면 이후 Iteration 중에도 강제로 MVC/Unit Test를 지킬 수 밖에 없어서

Page 45: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.

최소 개발 리소스의 40% 절약되고

윗사람 관심을 많이 받고, 일정 조정이 어렵더라도,왠만하면 강하게 주장해서 도입하세요.

한번 하고 나면 이후 Iteration 중에도 강제로 MVC/Unit Test를 지킬 수 밖에 없어서건강한 소스를 유지할 수 있고

Page 46: 구글 인박스 히드라 프로그래밍

제언1신규로 개발되는데

Android/iOS를 타겟으로 하고 있고윗사람의 관심-_-을 적게 받아 일정 조정이 충분히 가능하다면

도입하세요.

최소 개발 리소스의 40% 절약되고

윗사람 관심을 많이 받고, 일정 조정이 어렵더라도,왠만하면 강하게 주장해서 도입하세요.

한번 하고 나면 이후 Iteration 중에도 강제로 MVC/Unit Test를 지킬 수 밖에 없어서건강한 소스를 유지할 수 있고결국 인생에 도움됩니다

Page 47: 구글 인박스 히드라 프로그래밍

제언2

Page 48: 구글 인박스 히드라 프로그래밍

제언2

지금 기본 JRE만 지원하는데

Page 49: 구글 인박스 히드라 프로그래밍

제언2

지금 기본 JRE만 지원하는데Database나 NFC 같이 Biz Logic 개발에 필수적으로 필요한 것들은

Page 50: 구글 인박스 히드라 프로그래밍

제언2

지금 기본 JRE만 지원하는데Database나 NFC 같이 Biz Logic 개발에 필수적으로 필요한 것들은

내부에서 직접 구현해서 사용도 하고

Page 51: 구글 인박스 히드라 프로그래밍

제언2

지금 기본 JRE만 지원하는데Database나 NFC 같이 Biz Logic 개발에 필수적으로 필요한 것들은

내부에서 직접 구현해서 사용도 하고외부에 Contribution도 하세요.

Page 52: 구글 인박스 히드라 프로그래밍

제언2

지금 기본 JRE만 지원하는데Database나 NFC 같이 Biz Logic 개발에 필수적으로 필요한 것들은

내부에서 직접 구현해서 사용도 하고외부에 Contribution도 하세요.누가 알아요. 구글에 스카웃될지…

Page 53: 구글 인박스 히드라 프로그래밍

제언2

지금 기본 JRE만 지원하는데Database나 NFC 같이 Biz Logic 개발에 필수적으로 필요한 것들은

내부에서 직접 구현해서 사용도 하고외부에 Contribution도 하세요.누가 알아요. 구글에 스카웃될지…스카웃 안되도… 재밌잖아요.

Page 54: 구글 인박스 히드라 프로그래밍

FIN

https://github.com/google/j2objc/wiki https://code.google.com/p/sqlite4java/

http://yobi.skplanet.com:9000/winlight/hydra