[Swift] クロスプラットフォーム開発環境「Scade」を使ってみた
同僚「Swiftでクロスプラットフォーム開発ができるぞ!」
同僚「ビルドが通らん!」
と教えてくれたので、導入手順をまとめつつ使ってみました。
Scade?
Scade
iOS、Android、OSX、Android ARMに対応した、クロスプラットフォーム開発環境です。
特徴は「Swiftで書ける」という点に尽きます。
Scadeには有料プランもあります。
Scade – Pricing
今のところ無料プランとの違いはカスタマーサポートの有無くらいです。
インストール
オフィシャルサイトからダウンロードページに移動します。

ダウンロードページは最新版へのリンクだけがあるので、ダウンロードボタンを押します。
記事作成時のバージョンは「Scade1.0_0.9.17」でした。

解凍したらdmgを開いて、appをアプリケーションフォルダへコピーします。

これでインストールは完了。

…したと思ったら起動時にEclipseを開くからJava SEのインストールをしろと言われました。
お前、Eclipseだったのか。
インストールガイドがあったので、これを参照しながら進めていきます。
Scadeに必要なもの
インストールガイドによると、いろいろ必要なものがあるらしい。
- Swift 5.1
- Xcode 11(11A420a)
- Android NDK R11c release 20
- Android SDK 24.4.1 以降
- Java SDK 8
- 空き領域 800 MB
※インストールガイドの表記と記事作成時(2019.12.5)の最新版とで差異がある部分は太字にしてあります。
javaの有無を確認する
ターミナルで以下の2つのコマンドを実行して、javaがインストールされているか確認します。
$ /usr/libexec/java_home -V $ java -version

残念ながらインストールされていないので入れます。
java 8 SDKのインストール
ガイドに従いZuluからインストーラをダウンロードします。

インストーラを実行してSDKをインストールします。

ターミナルで以下のコマンドを実行して、javaがひとつだけ出てくればこれでOK。
複数個出てくる場合は設定ファイルにVMの指定が必要ですが、私の環境では不要だったので割愛します。
$ /usr/libexec/java_home -V
こんな感じにひとつだけだったらVMの指定は不要です。

Xcode11(11A420a)のインストール
Xcodeをインストールしますが、Scade 0.9.17.0の場合にはXcode11(11A420a)を入れないといけません。
ScadeのバイナリはSwift5.1でビルドされているようですね。
これに伴いSwiftのバージョンは5.1でないといけないので、Xcode11(11A420a)を使用することになります。
ターミナルから「swift –version」でバージョンを確認して、以下のようになっていればOKです。

Swift5.1.1以降を入れるとビルドできなくなり、以下のエラーがでます(はまりました)

module compiled with Swift 5.1 cannot be imported by the Swift 5.1.2 compiler
ちなみに、PreferenceからXcodeの指定をXcode11にするだけでは解決しませんでした。
試しに起動してみる
起動すると今度はスプラッシュがちゃんと表示されました。

ワークスペースの設定を要求されるので、任意のフォルダを指定します。

XcodeへのPathを要求されるので、Xcode.appを指定します。
起動するようになりました。

余談
最初インストールガイドを信じていたので「Xcode 10.1(10B61)」を指定しました。

怒られます。
お前、Xcode10って言ってただろ。(2019.12.5 現在のインストールガイド)
Android Studioのインストール
インストールガイドによるとAndroid Studioのインストールが必要とのこと。
このへんを参考にインストールしました。
SDK Managerから以下の項目をインストールする
Android Studioを開いて、SDK Managerを起動します。

Appearance & Bhavior → System Settings → Android SDKを開いて、以下の項目をインストールします。
SDK Platforms
- Android 6.0

SDK Tools
- Android SDK Platform-Tools
- Android SDK Tools
- Google Play Services
- NDK
- Support Repository → Google Repository
→これは一覧になかったので入れなかった

acceptしながらインストールしていきます。

Android NDKの旧バージョンを入れる?
インストールガイドでは「NDK 17までしか対応してない」と書いてありましたが、
Change Log – Version 0.9.17.0 – October 18th 2019をみると記事作成時の最新版ではNDK 20まで対応してるそうです。
なのでNDKに関しては何もせずに先に進めます。
なお、特定のNDKを使用したい場合はNDK アーカイブからダウンロードしてください。
ダウンロードできたら、解凍して任意のディレクトリに置いておきます。
パスはあとでまとめて設定します。
Android SDK/NDKの設定を追加する
Scadeを起動して、メインメニュー → Scade SDK → Preferencesを開きます。

Scadeタブを選択して、Android SDKとAndroid NDKへのパスを設定します。
Dockerはとりあえず放っておきます。

プロジェクトを作ってみる
とりあえずプロジェクトを作ってみます。
「メインメニュー → File → New → Scade Project」を選択します。

ダイアログが表示されるので、プロジェクト名を適当に入れます。

プロジェクトができました。

HelloWolod
このままだと起動しても画面に何もでないので、HelloWorldしておきます。
左上のProject Explorerから「main.page」を開きます。

右下のPaletteから「Label」を選んでmain.pageのDesignにドラッグしてきます。

Labelを選択して、右上のPropertiesにある「Text」の値を「Hello World」に変更します。

Paletteに何も表示されていない場合は
main.pageの下部には、Design / Binding / Source / SVGとタブが並んでいます。
これを適当に切り替えたら出てきました。
(このやり方が正しいかは不明です)
ビルドする
ビルドの前にターゲットプロジェクトを設定します。

今回は「Scade Simulator」を設定します。

設定されるとこのように表示が変わります。

ハンマーのボタンを押すとビルドが実行されます。

Consoleウィンドウに以下のように出力されればビルドは完了です。

Scade Simulatorで起動する
ビルドができたらシミュレータで起動してみます。
再生ボタンを押すと、ターゲットに指定したプロジェクトに合わせてシミュレータが起動します。

こんな感じにiPhoneっぽいものが表示されます。
真ん中に置いてる気がするんだけどずれました。
レイアウトの設定がどこかにあるのでしょう。
おわりに
これで環境構築が完了しました。
引っかかりそうなのはSwiftのバージョンくらいでしょうか。
Scadeのバージョンアップのたびに確認しないといけなそうなのがちょっと気になりますね。
2020.2.8 追記
この手順だけだとiOSとAndoridのシミュレータでのデバッグができないことに気付きました。
試したら追記します。
おしまい。
ディスカッション
コメント一覧
まだ、コメントがありません