⚔️

XcodeでAndroid開発ができるSKIP調査してみた

2024/02/28に公開

はじめに

XcodeでAndroid開発もできるSKIPというツールがタイムラインで流れてきたので触ってみました。
公式リンクはこちらです。

必要なもの

  • Xcode15
  • Android Studio 2023
  • HomebrewがインストールされたmacOS 13以上のPC

開発環境

  • XCode15.2
  • Android Studio Hedgehog | 2023.1.1 Patch 2

インストール

Skipのインストール

brew install skiptools/skip/skip

開発環境チェックコマンド(必ずやりましょう)

skip checkup

問題なければ下記のような感じになります。
(私はAndroidStudioのセットアップが終わってなくてエラー出ました。)

プロジェクト作成

任意のディレクトリで下記を実行

skip init --appid=bundle.id project-name AppName

コマンド実行でプロジェクトが作成されます。ディレクトリはこんな感じです。(一部省略してます。)

├── Android
│   ├── app
│   │   ├── build.gradle.kts
│   │   ├── proguard-rules.pro
│   │   └── src
│   ├── gradle
│   ├── gradle.properties
│   └── settings.gradle.kts
├── Darwin
│   ├── AppName.xcconfig
│   ├── AppName.xcodeproj
│   ├── Assets.xcassets
│   └── Sources
├── Package.resolved
├── Package.swift
├── README.md
├── Skip.env
├── Sources
└── Tests

AppName.xcodeprojがいつものプロジェクトファイルなのでXcodeで開いてください。
実行をするには、事前にAndroid端末のエミュレータを開いておく必要があります。
実行後、↓のようにiOSシミュレータ、Androidエミュレータの両方で実行されればOKです。

現状でサポートされてるもの

公式サイトで分かりやすくコンポーネント一覧が紹介されてました。リンクはこちらです。
サポート外のコンポーネントについても、#if_SKIPを使ってネイティブでの実装は可能です。
https://github.com/skiptools/skipapp-showcase/blob/main/Sources/Showcase/ComposePlayground.swift

既存プロジェクトへの導入

公式の見解はこちらです。
技術的には可能だが、とても大変なのでおすすめはしないとのことです。

まとめ

  • 基本的には通常のSwiftの書き方で実装できました。
    • Bool.Toggle()は使えないです。おそらくAndroidで似た関数がないことが原因のようです。他にもSkipでは使えない関数がありそうなので、Skipを使っていく際は慣れが必要ですね。
  • Showcaseが公開されているのですが、両OSで触ってみた感じ問題なく動作していそうです。(少しだけAndroidエミュレータの動作重い気がしました。)
  • 基本的なコンポーネントは揃ってたり、アニメーションやFirebaseにも対応しているので、UI等に強いこだわりが無い個人開発であれば使っていけそうな雰囲気を感じました。
株式会社ガラパゴス(有志)

Discussion