kotlinjs practice : chrome api - twiceround project #002

8
KotlinJS Practice : Chrome API -Twice Round Project #002- GDG Seoul Kotiln Study 모임용

Upload: lee-wonjae

Post on 12-Apr-2017

23 views

Category:

Software


2 download

TRANSCRIPT

Page 1: KotlinJS Practice : Chrome API - TwiceRound Project #002

KotlinJS Practice : Chrome API

-Twice Round Project #002-GDG Seoul Kotiln Study 모임용

Page 2: KotlinJS Practice : Chrome API - TwiceRound Project #002

TwiceRound를 KotlinJS로 전환하면서 넘어야할 산- TwiceRound kotlin branch

- https://github.com/nurinamu/twiceround/tree/kotlin

- Chrome API- jQuery Ajax

- Function Reference 처리- Javascript JSON parameter 처리

Page 3: KotlinJS Practice : Chrome API - TwiceRound Project #002

#001 Chrome API for KotlinJS- jQuery와 마찬가지로 TypeScript 정의된 것을 찾는다.

- 발견!! : https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/chrome - 없었으면 큰일날뻔. 웬만한 거는 여기 레포에 다 있는 듯.

- ts2kt 로 kt 파일 생성!- chrome api용 kt가 너무 많음;- 취사선택

- index.chrome.storage.kt만 사용- chrome ts kt내부에서 compile error나는 부분은 과감하게 삭제

- 확인하고 사용하지 않는 api인 경우 과감하게 삭제.- 여기서 지운다고 문제있는 것이 아님. 지난 발표에서 이야기 했지만 이 kt는 단순 api

wrapper.

Page 4: KotlinJS Practice : Chrome API - TwiceRound Project #002

#002-1 jQuery Ajax- jQuery ts kt를 사용하면 됨.- ajax request를 하려면 JQueryAjaxSettings interface를 객체화해서 처리해야함.

- 알게된 것들- variable getter/setter

- https://kotlinlang.org/docs/reference/properties.html#getters-and-setters - definedExternally keyword(?)

- public external val definedExternally: Nothing

- keyword가 아님 kotlin.js 선언된 변수명이었음 .- Nothing!! : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-nothing.html

- Callback, Lambda, Loop, Stream, Block function들이 꼬인다.- 원하는 곳으로 탈출하고 싶어!: https://kotlinlang.org/docs/reference/returns.html

Page 5: KotlinJS Practice : Chrome API - TwiceRound Project #002

#002-2 jQuery Ajax- 알게된 것들 cont’d

- Function Reference- https://kotlinlang.org/docs/reference/reflection.html#function-references - js에서 function 연결하는 것과 동일.- :: 의 앞이 Class를 명시하면 해당 Class의 member function의 Reflection을 지칭하게되고 instance variable이 되면 해당 instance의 member function을 지칭하게 됨.

Page 6: KotlinJS Practice : Chrome API - TwiceRound Project #002

#002-3 jQuery Ajax- 알게된 것들 cont’d

- JSON Parameter 처리- js() 함수를 사용. js() 는 argument로 받은 문자열을 Javascript 코드에 필터없이 그대로 배출. 단, 해당 문자열은 static 문자열만 가능. 동적 생성 문자열은 안됨.

- 그래서 js(“({})”) 로 json을 javascript로 생성하고 dynamic keyword와 짬뽕으로 javascript json object를 생성할 수 있다.

Page 7: KotlinJS Practice : Chrome API - TwiceRound Project #002

TwiceRound Demo

Page 8: KotlinJS Practice : Chrome API - TwiceRound Project #002

德業一致NEXT - “TwiceRound" Client 소개