Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NGK2023S - OCaml最高! スマホ開発にも使えちゃう?!

NGK2023S - OCaml最高! スマホ開発にも使えちゃう?!

Haochen Kotoi-Xie

January 21, 2023
Tweet

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. • js_of_ocaml : OCaml όΠτίʔυ → JavaScript

    • ReScript/ReasonML : OCaml ιʔείʔυ → JavaScript

    • React Native : JavaScript/TypeScript ͰΞϓϦ։ൃ
    ==> Ͱ͖ͪΌ͏ͷͰ͸ 🤩
    ͪΐͬͱௐ΂ͯΈΕ͹…

    View Slide

  8. ࣮ࡍ΍ͬͯΈΑ͏

    View Slide

  9. ࣮ࡍ΍ͬͯΈΑ͏

    View Slide

  10. ࣮ࡍ΍ͬͯΈΑ͏

    View Slide

  11. ࣮ࡍ΍ͬͯΈΑ͏

    View Slide

  12. ࣮ࡍ΍ͬͯΈΑ͏

    View Slide

  13. ࣮ࡍ΍ͬͯΈΑ͏
    ×

    View Slide

  14. • js_of_ocaml : OCaml όΠτίʔυ → JavaScript

    • ReScript/ReasonML : OCaml ιʔείʔυ → JavaScript

    • React Native : JavaScript/TypeScript ͰΞϓϦ։ൃ
    ==> Ͱ͖ͪΌ͏ͷͰ͸ 🤩

    ==> Ͱ͖ͯ͠·ͬͨ 😳 🤯 😲 😏 😏 😏

    View Slide

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

    View Slide

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


    🤔

    View Slide

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


    🤔
    ͍΍͍΍


    ۀ຿Ͱ΋࢖͍ͬͯΔΜͩ 😏

    View Slide

  18. ΞʔΩςΫνϟҰྫ
    (੡඼໊ͱ͔͸ग़ͤͳ͍͚Ͳ……)
    • 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

    View Slide

  19. ײ૝
    • ϚϧνϓϥοτϑΥʔϜͰίʔυγΣΞϦϯάͰ͖ͯ޾ͤ

    • Code Change͕ϦΞϧλΠϜͰϓϨϏϡʔͰ͖ΔReact Native͸ਆ!

    • Native Modules ͷ։ൃΊΜͲ͍͘͞..

    • ܕ҆શ͸෱རްੜ!

    • OCaml ͸͍͍ͧ! εϚϗ։ൃʹ΋࢖͑ΔΜͩͧ!
    ݁࿦

    View Slide

  20. ײ૝
    • ϚϧνϓϥοτϑΥʔϜͰίʔυγΣΞϦϯάͰ͖ͯ޾ͤ

    • Code Change͕ϦΞϧλΠϜͰϓϨϏϡʔͰ͖ΔReact Native͸ਆ!

    • Native Modules ͷ։ൃΊΜͲ͍͘͞..

    • ܕ҆શ͸෱རްੜ!

    • OCaml ͸͍͍ͧ! εϚϗ։ൃʹ΋࢖͑ΔΜͩͧ!
    ݁࿦
    FIN.

    View Slide