19 ポイント 投稿者 GN⁺ 2024-08-30 | 3件のコメント | WhatsAppで共有
  • Skipは、Swiftアプリ開発をAndroidへ拡張できるようにするツール
  • SwiftとXcodeを使用して、iOSとAndroidの両方でネイティブアプリを開発可能
  • Skipの動作方式
    • XcodeでSwiftおよびSwiftUIアプリを開発すると、Skip XcodeプラグインがそれをKotlinおよびJetpack Composeへ変換
    • ネイティブ性能とユーザーインターフェースを維持しながら、両プラットフォームでライブラリやアプリ全体を開発可能

Skipアプリの利点

真のネイティブ

  • Skipアプリは単に「ネイティブのように見える」だけではなく、実際にネイティブ
  • iOSではSwiftとSwiftUI、AndroidではKotlinとComposeを使用

完全な透明性

  • Skipを使うと、アプリのあらゆる部分が開発者に公開される
  • Swiftコードを直接Kotlinソースコードへ変換し、確認やカスタマイズが可能
広告

軽量性

  • SkipZeroを使用すると、iOSアプリはSkipフレームワークに依存しない
  • Androidアプリに必要なのは、いくつかのSkipオープンソースライブラリのみ

メモリ効率

  • 追加の管理ランタイムがないため、Skipアプリは両プラットフォームで可能な限り効率的
  • iOSではベアメタル、AndroidではARTバイトコードを使用

理想的なIDE

  • SkipのIDEは、iOS開発における最高の環境であるXcode
  • Android向けのカスタマイズのために、生成されたコードをAndroid Studioで直接開ける

完全な統合

  • Skipは標準のKotlinとComposeを生成するため、Androidライブラリとの統合が容易
  • 他のKotlinおよびJavaコードを直接呼び出すことが可能
広告

オープンソース基盤

  • Skipのトランスパイラは、この仕組みの半分にすぎない
  • iOSアプリ開発を支えるFoundationやSwiftUIのようなフレームワークは、Skipの無料オープンソース実装を通じてAndroidでも利用可能

CIフレンドリー

  • Skipは単体テストも変換する
  • ローカルまたはリモートでテストを実行し、プラットフォーム間で同一のロジック性能を保証できる

脱出可能性

  • Swift入力とKotlin出力の両方が開発者の所有物
  • Skipトランスパイラに継続的に依存する必要はない

GN⁺のまとめ

  • Skipは、SwiftアプリをAndroidへ拡張できるようにするツールで、両プラットフォームでネイティブ性能とユーザーインターフェースを維持できる
  • XcodeとAndroid Studioの両方を活用して、開発者がより効率的に作業できるようにする
  • オープンソース基盤により、透明性とカスタマイズの可能性を提供する
  • CIフレンドリーであり、テストを通じてプラットフォーム間で同一の性能を保証できる
  • 類似の機能を提供するプロジェクトとしてはKotlin Multiplatformがある

3件のコメント

 
ing03201 2024-08-30

コード難読化にも対応してくれるようになれば、かなり良さそうですね

 
godrm 2024-08-30

おお、興味深いですね。どの程度どのように処理されるのかはまだまったく分かりませんが、無謀でありながら面白い試みのように思えます

 
GN⁺ 2024-08-30
Hacker Newsの意見
  • 個人アプリをAndroidへ移植しようとした体験の共有

    • SwiftUIでiOSアプリを開発中で、Android版へ移植しようとしてReact Native、Ionic、Igniteなどを試したが難しさがあった
    • Skipを使ってみると、Swiftの文脈を保ったまま1つの言語でアプリを書けるため非常に満足している
    • プラットフォームごとのコードを書くのが容易で、Androidを学ばなくても素早くアプリを動かせる
    • アプリ全体をSkipで開発し、両方のアプリストアに配布する計画である
  • Skipに対する懸念点

    • オープンソースライセンスへの疑問(GPL vs MIT)
    • パッケージ管理とiOS/Androidの分岐処理方法への関心
    • AppleのサービスAPIがAndroidでどのように処理されるのかという疑問
    • 広告とアプリ内課金のサンプルの必要性
  • Skipの依存関係管理に関する質問

    • Swift PMパッケージをAndroidプロジェクトで透過的に使えるのかという疑問
    • KotlinがSwiftライブラリを透過的に呼び出せるのか気になっている
  • Skipのターゲット市場に関する意見

    • 主にiOSアプリをAndroidへ変換しようとする米国・欧州企業を対象にした製品に見える
    • Androidが主流のほかの地域では、Flutter、React Native、Kotlin MPのようなより良いフレームワークが存在する
    • Skipのトランスパイルの問題と保守の難しさを指摘
  • ChatGPTとClaudeを使ったコード変換の経験

    • SwiftUIコードをKotlin、Jetpack Compose、Material3へ変換するのに成功した
    • 生成されたコードはほぼ即座に動作し、スタイリング/テーマ修正だけが必要だった
  • Skipの使用経験の共有

    • 数か月使ってみた結果、学習曲線はあるがクロスプラットフォームの問題を完全に解決した
  • Skipのドキュメントとトランスパイルの限界

    • SwiftUIやほかの中核ライブラリ使用時にトランスパイルの限界があるのか気になっている
    • Xamarin開発の難しさに似た問題が発生する可能性
  • Skipのフレームワーク制限

    • ほとんどのiOSアプリはAppleプラットフォームのフレームワークを使うため、Skipの最小実装は制限される可能性がある
    • StoreKit、WebKit、SafariServices、UserNotifications、CryptoKitなどは現時点で未実装
  • 既存アプリとSkip統合の難しさ

    • 既存のSwiftUI + UIKitアプリとSkipの統合が難しいのかという質問
    • 小規模または中規模のアプリがSkipへ移行した事例の必要性
  • Skipの性能問題の解決

    • クロスプラットフォームフレームワークの性能問題を解決するうえで大いに役立つ