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

せめて、ネイティブらしく

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for RyuNen344 RyuNen344
November 01, 2025
1.1k

 せめて、ネイティブらしく

Kotlin Fest 2025

Compose Multiplatform for iOSがStableとなり、iOSアプリをKotlinだけで開発する選択肢が、現実的な視野に入ってきました。

しかし、過去の歴史が示すように、マルチプラットフォーム技術は常に諸刃の剣です。
事業やチームの変化により、いつかその技術から「撤退」する日が来るかもしれません。
本セッションでは、この予期せぬ「撤退戦」までを考慮に入れた技術選定の重要性を提起します。

トーク内容
* マルチプラットフォームにおける「共通化」の功罪
* なぜ技術選定で「撤退戦」を考慮すべきなのか?
* Compose MultiplatformとKotlin Multiplatformの現在地
* 撤退シナリオから見る、Kotlin Nativeの真価 Kotlin+UIKitの組み合わせ
* 変化の時代における、プラットフォーム専門家が活きる技術選択の指針

Avatar for RyuNen344

RyuNen344

November 01, 2025
Tweet

Transcript

  1. About Me • Bunjiro Miyoshi (id: RyuNen344) • Kodee͘Μͷ͵͍͙ΔΈ͸3ͭɺΩʔϗϧμʔ͸4ͭ •

    Kodee͘Μݟ͔͚ͨΒͥͻ #KodeeEverywhere ͷϋογϡλάΛ͚ͭͯᄁ͖Λʂ
  2. ⚠ Caution ⚠ • Kotlin/Native͸ϦεΫϔοδ͕ޮ͘બ୒ࢶͰ͍͍ͧɺͱ͍͏࿩Λ͠·͢ • ٕͨͩ͠ज़બఆʹۜͷ஄ؙ͸ͳ͍ • ࣄۀϑΣʔζɺνʔϜମ੍ɺशख़౓ͳͲ༷ʑͳม਺Λߟྀܾͯ͠ఆ͢΂͖ •

    Kotlin/NativeҎ֎ͷબ୒ࢶΛ൱ఆ͢Δҙਤ͸ͳ͍ • KMP΍CMPΛಋೖݕ౼͢ΔࡍʹɺͲΕ͙Β͍Kotlin/Native͕ϦεΫϔο δʹ໾ཱ͔ͭͱ͍͏؍఺ͰࢀߟʹͳΕ͹ϋοϐʔ
  3. ఫୀઓ͸೉͍͠ • αϯΫίετͷढറ • ࠷దղͷมԽ • ֶशίετɾ։ൃίετͷ৺ཧతϋʔυϧ • ݱঢ়ҡ࣋όΠΞε •

    අ༻ରޮՌͷ൑அ • ݱঢ়೺Ѳͷ࿪Έ ϑϧϦϓϨΠε͸ك ݱ࣮తʹ͸ஈ֊తͳఫୀઓͷ܁Γฦ͠ • ΰʔϧઃఆͷ೉͠͞ • ৽چٕज़ڞଘʹΑΔೝ஌ෛՙ • ϝϯςφϯείετ૿Ճ • Ϧιʔεͷ෼ࢄ
  4. Swift on Android Studio • SwiftपΓͷIDEαϙʔτ ͕ڧԽ • Swift Package

    Manager ͷೝࣝ • ίʔυδϟϯϓ/ิ׬ɺ OKʢ3rd partyෆՄʣ
  5. Case.3 Interop: Alamo fi re • Alamo fi re/Alamo fi

    re • NSURLSessionΛϥοϓ͢ΔSwift ޲͚ͷϥΠϒϥϦ • androidͰ͍͏ͱ͜ΖͷOkHttp
  6. Case.3 Interop: Alamo fi re • >For example, you can

    use CocoaPods integration or set up a cinterops con fi guration. • https://kotlinlang.org/docs/native-c-interop-stability.html#third-party- libraries • CocoaPods͸Read-OnlyʹͳΔ͜ͱ͕Ξφ΢ϯε͞Ε͍ͯΔͨΊSPMΛ࢖༻͢Δ
  7. Case.3 Interop: Alamo fi re • `src/nativeInterop/cinteropʹ<interop-name>.def`Λ഑ஔ͢Δ • https://kotlinlang.org/docs/native-de fi

    nition- fi le.html • build.gradleͰcinteropઃఆΛߦ͍ɺcompiler opt, linker optΛઃఆ͢ Δ
  8. Case.3 Interop: Alamo fi re • Alamo fi reͷAF͕ݟ͔ͭΒͳ͍ •

    Swift޲͚ϥΠϒϥϦͷଟ͘͸Obj-C༻ϔομʔΛఏڙ͍ͯ͠ͳ͍
  9. Kotlin/Native΋ۜͷ஄ؙͰ͸ͳ͍ 1. Swift FrameworkΛݺͼग़ͤͳ͍ • औΓࠐΉʹ͸ϥούʔ࣮૷Λߦ͍, ObjC HeaderΛੜ੒͢Δඞཁ͕͋Δ • ϥούʔ࣮૷ͷ೉౓͸େ෯ʹԼ͕͍ͬͯΔ͕खؒ͸͔͔Δ

    • ௚઀APIΛݺ΂Δͱ͍͏ڧΈ͕ബΕΔ 2. ObjCͷͳ͍/ඇਪ঑ͱ֦ͯ͠ு͞Εͳ͘ͳͬͨPlatform API/Framework͕͋Δ 3. Kotlin/Nativeͷػೳ੍ݶ • Obj-CͷαϒΫϥεΛExportͰ͖ͳ͍ͳͲݴޠػೳతͳ੍໿ • Τϥʔͷ఻೻͕൥ࡶ
  10. EOF