Slide 1

Slide 1 text

Haochen Kotoi-Xie (twitter: @haochenxie) on 2023-01-21 OCaml࠷ߴ! εϚϗ։ൃʹ΋࢖͑ͪΌ͏?! Prepared for NGK2023S LT

Slide 2

Slide 2 text

Haochen Kotoi-Xie (twitter: @haochenxie) on 2023-01-21 OCaml࠷ߴ! εϚϗ։ൃʹ΋࢖͑ͪΌ͏?! Prepared for NGK2023S LT

Slide 3

Slide 3 text

OCaml͸ͳʹ? ΈΜͳେ޷͖ ChatGPT ઌੜʹฉ͍ͯΈͨ!

Slide 4

Slide 4 text

OCaml͸ͳʹ? ΈΜͳେ޷͖ ChatGPT ઌੜʹฉ͍ͯΈͨ!

Slide 5

Slide 5 text

ChatGPT ઌੜ͕ڭ͑ͯ΋Βͬͨ.. $SFBUFEXJUI%"--h& BO"*TZTUFNCZ0QFO"* OCaml͸ߴ଎Ͱܕ҆શ!

Slide 6

Slide 6 text

εϚϗΞϓϦ։ൃʹ΋࢖͍͍ͨͶ 🤔

Slide 7

Slide 7 text

• js_of_ocaml : OCaml όΠτίʔυ → JavaScript • ReScript/ReasonML : OCaml ιʔείʔυ → JavaScript • React Native : JavaScript/TypeScript ͰΞϓϦ։ൃ ==> Ͱ͖ͪΌ͏ͷͰ͸ 🤩 ͪΐͬͱௐ΂ͯΈΕ͹…

Slide 8

Slide 8 text

࣮ࡍ΍ͬͯΈΑ͏

Slide 9

Slide 9 text

࣮ࡍ΍ͬͯΈΑ͏

Slide 10

Slide 10 text

࣮ࡍ΍ͬͯΈΑ͏

Slide 11

Slide 11 text

࣮ࡍ΍ͬͯΈΑ͏

Slide 12

Slide 12 text

࣮ࡍ΍ͬͯΈΑ͏

Slide 13

Slide 13 text

࣮ࡍ΍ͬͯΈΑ͏ ×

Slide 14

Slide 14 text

• js_of_ocaml : OCaml όΠτίʔυ → JavaScript • ReScript/ReasonML : OCaml ιʔείʔυ → JavaScript • React Native : JavaScript/TypeScript ͰΞϓϦ։ൃ ==> Ͱ͖ͪΌ͏ͷͰ͸ 🤩 ==> Ͱ͖ͯ͠·ͬͨ 😳 🤯 😲 😏 😏 😏

Slide 15

Slide 15 text

ੈͷதศརͳ΋ͷ͕͍ͬͺ͍🎉 × ɾɾɾ

Slide 16

Slide 16 text

Ͳ͏ͤJoy Project͚ͩ͡Όͳ͍? 🤔

Slide 17

Slide 17 text

Ͳ͏ͤJoy Project͚ͩ͡Όͳ͍? 🤔 ͍΍͍΍ ۀ຿Ͱ΋࢖͍ͬͯΔΜͩ 😏

Slide 18

Slide 18 text

ΞʔΩςΫνϟҰྫ (੡඼໊ͱ͔͸ग़ͤͳ͍͚Ͳ……) • SDKϓϩδΣΫτ (Android/iOS) • ίΞΞϧΰϦζϜ: Proper OCaml (compiled via js_of_ocaml) • εϚϗηϯαʔσʔλऩू෦: React Native Native Modules • GUI࣮૷: TypeScript (React Native) • ࣮ݧతʹ ReScript ಋೖͨ͠ → େਓͷࣄ৘Ͱ TypeScript-only ʹͳͬͨ • Glue Code: TypeScript (React Native) • ΫϥΠΤϯτίʔυ޲͚API: Java / Swift

Slide 19

Slide 19 text

ײ૝ • ϚϧνϓϥοτϑΥʔϜͰίʔυγΣΞϦϯάͰ͖ͯ޾ͤ • Code Change͕ϦΞϧλΠϜͰϓϨϏϡʔͰ͖ΔReact Native͸ਆ! • Native Modules ͷ։ൃΊΜͲ͍͘͞.. • ܕ҆શ͸෱རްੜ! • OCaml ͸͍͍ͧ! εϚϗ։ൃʹ΋࢖͑ΔΜͩͧ! ݁࿦

Slide 20

Slide 20 text

ײ૝ • ϚϧνϓϥοτϑΥʔϜͰίʔυγΣΞϦϯάͰ͖ͯ޾ͤ • Code Change͕ϦΞϧλΠϜͰϓϨϏϡʔͰ͖ΔReact Native͸ਆ! • Native Modules ͷ։ൃΊΜͲ͍͘͞.. • ܕ҆શ͸෱རްੜ! • OCaml ͸͍͍ͧ! εϚϗ։ൃʹ΋࢖͑ΔΜͩͧ! ݁࿦ FIN.