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

Skip Skip Run Run Run ♫

Skip Skip Run Run Run ♫

SwiftUI で iOS/Android アプリを作れる Dual Platform ツール、SKIP.tools の紹介スライドです。

Minokamo.swift #1 で発表しましました。
https://minokamo-swift.connpass.com/event/336644/

Tomoki Kobayashi

January 25, 2025
Tweet

More Decks by Tomoki Kobayashi

Other Decks in Technology

Transcript

  1. 2 0 2 5 / 1 / 2 5 Minokamo.swift

    # 1 Skip Skip Run Run Run ♫
  2. Tomoki Kobayashi @temoki iPhone 3 G 日 本上陸(2008年)とほぼ同時に iPhone アプリ開発を始めた

    Apple 信者 https://bento.me/temoki 両OSつくるの しんどいー 😢 業務ならFlutter サイコー 😆 • モバイルアプリ受託(iOS / Android) • HR系スタートアップ(iOS / Android) • 電 力 系スタートアップ(Flutter) • 自 動 車 メーカー(Flutter / iOS) 経歴
  3. ちょっと宣伝 いいね 👍 ください! • Swift ではなく恐縮ですが… • 年末に Flutter

    の DevTools Extension を pub.dev でリリースしました! • アプリでもっている GraphQL の Cache の 状態を確認できる Extension です • https://pub.dev/packages/gql_cache_lens
  4. Skip とは? Build native apps for iPhone and Android with

    Skip 出典: https://skip.tools/ Android アプリの 実装をスキップ? 2024年8 月 に ver. 1 . 0 リリース
  5. Skip のしくみ At Skip’s heart is its intelligent Swift to

    Kotlin language transpiler 出典: https://skip.tools/docs/ Build (Xcode / SwiftPM) Skip Transpiler Plugin Swift Source Code Package .ipa Compiled Native Code Package .apk Compiled Bytecode Build (Android Studio / Gradle) Kotlin Source Code App Development Android App iOS App Dual-platform App • SkipStone : Swift/SwiftUIのコードをKotlin/Jetpack Composeにトランスパイルする • SkipStack : Kotlin ・ Android へのブリッジ(Swift ・ Foundation ・ SwiftUI など)
  6. Skip で良いと思ったところ Totally Transparent, Genuinely Native, Ejectable, … • 普通に

    Xcode + SwiftUI で iOS アプリを作るだけで Android アプリもできる • Android も純ネイティブで動く(Jetpack Composeにトランスパイル) • Swift コード上で Kotlin / Java API を直接使うこともできる • SQLite, Firebase などの個 人 開発で役 立 つ機能のサポート • 限界がきたときに剥がしやすい • 開発環境やドキュメントが充実している Composeだと こうなるのか〜🤔
  7. Skip のデモ Skip Skip Run Run Run ♫ • Showcase

    アプリを眺めてみる • https://github.com/skiptools/skipapp-showcase • Swift to Kotlin Transpiler の実 力 を Playground を試してみる • https://skip.tools/playground • https://skip.tools/docs/swiftsupport • Xcode で SwiftUI の簡単なコードをビルド&ランしてみる • Swift Package 中 心 のプロジェクト構成 • Androidアプリも同時にビルドして 自 動的にエミュレータ等で実 行 • Transpile された Kotlin のコード
  8. 個 人 開発のアプリを Skip してみる try! Skip() • 付近の 高

    速道路上EV充電スポットを表 示 するアプリ • SwiftUI, MapKit, CoreLocation, WebKit, … • Skip プロジェクトに組み込んでみた結果… • トランスパイルできない Swift 言 語機能の ❌ エラーと ⚠ 警告 • 未対応の iOS API は ⚠ 警告となりトランスパイルされない • 未対応の iOS Framework は ❌ エラー 👉 Android コードを書く必要あり
  9. その他のトピックス • SkipZero • SkipStack のモジュールへの依存のみなら アプリからそれらを完全に取り除ける • Native Swift

    Tech Preview 👉 • Model コードをネイティブコンパイル する • Pricing • 個 人 開発レベルなら無料で利 用 可能 • https://skip.tools/pricing 出典: https://skip.tools/docs/native Xcode Swift Compiler SwiftPM Dependency SwiftUI Source Code ContentView.swift Compiled SwiftUI ContentView.o Packaged APK Compiled Kotlin ContentView.class Swift Model Code @Observable ViewModel.swift Xcode Swift Compiler SkipFuse Bridge Compiled Model libModel.so Skip Transpiler Xcode Plugin Skip Android Toolchain Compiled Model libModel.dylib iOS App Android App Packaged IPA Link Gradle Transpiled Kotlin Code Jetpack Compose: ContentView.kt Swift/C/C++ SwiftPM Dependencies Swift Android Libraries libSwift.so, libFoundation.so, …
  10. まとめ 現時点では簡単な個 人 開発なら試してみたいなぁという感想 • SwiftUIで開発したiOSアプリが、Androidアプリとして動くのは魅 力 的 • 未対応の

    Swift 言 語機能はビルド時エラーで気づいて修正してこう • 未対応の iOS 機能については Android 機能のコードを書く必要あり