SwiftでAndroidアプリ開発
SCADEでのアプリ開発
まず、swiftでandroidアプリ開発できるのか?といった話ですが結論できるんです!!
flutterとかKMMとかはなんとなくわかるけど、どうコードが生成されてどうパッケージ化されて動くのか?まったく調べてみました!!
日本語でわかりやすそうなのは以下の記事の31~52ページ目です。
よし!なんとなくわかった、、、と言うわけで開発してみた🔥
プロジェクトの作成
File -> New -> New Project を選択
Scade Projectを選択(ここでSwift Package選ばないとAndroid App作れないのでご注意を)
そこからNextでプロジェクト名決定してProject作成
プロジェクトのファイル構成
プロジェクト作成が終わったら次に生成されているファイル構成を見てみよう
Sources/
├─ Project名/
│ ├─ Extensions/
│ │ ├─ Pages/
│ │ │ ├─ main.page.ext.swift
│ │ ├─ main.page
│ │ ├─ main.page.svg
│ │ ├─ main.page.swift
│ │ ├─ start.swift
├─ build.yaml
├─ Package.swift
どこのファイルが何やってん???
わからん
初期生成されているファイルそれぞれの役割
start.swift
scadeでプロジェクトをcreateした時点で自動生成されるファイルの一つであり、アプリ全体のライフタイムイベントを管理するためにSCDApplicationを継承したプロジェクト名のクラスが記述されている。
Xcodeでの開発で言うとAppDelegateクラスですね~
main.page.swift
SCDLatticePageAdapterクラスを継承したMainPageAdapter
クラスが記述されており、画面のライフサイクルを管理しているクラスです。初めはload関数
が書いてありますがこちらはXcodeで言うloadView/viewDidLoad関数
とほぼ同じと考えていいと思います。
main.page.ext.swift
こちらはこちらは上記のmain.page.swift
内のMainPageAdapter
クラスの拡張でmain.page
に置かれたScadeKitを変数としてコードで使えるようにしているファイルそうです。ここで今までSwiftをやって来た人は驚きの保持型変数をextention内で書くことができそうです!Xcodeだとメソッドや計算型変数などは定義で来ていたが保持型変数は書くことができなかったのでここは注意しておくといいかもしれないです。
main.page
もうこれは完全にXcodeで言うStoryBordの何者でもなさそうです!!
ただオートレイアウトが見ずらいこと制約がつけずらい、ScrollView
がないなどちょくちょく足りないものがありそうでした。
main.page.svg
こちらはmain.page
をsvg拡張子で画像にしてくれてそうですね
多分ですがUIの確認などしやすくなるため??ですかね
基本的にあまりいじらなくて良さそうです。
UIどう言うふうに作るねん?~モバイルのビルドまで
Xcode/SwiftではUIkitかSwiftUIで作られてるけどScadeはScadeKitというもので作られてそうです。
まぁ概要はUIKitと全く変わりませんので説明を省きます。。。
ビルドの準備
上記画像のようにしてScadeのsettings.yml
ファイルを開きます。
そこで自らのPCにinstallされているndk,sdk,Xcodeのパスを記入します。
ここのパスが違う、パスが記入されていないと両方ともビルドできないので注意です。
アイフォンでのビルド
上記画像のようにエミュレータを選択しBuildするのみです!!
アンドロイドでのビルド
こっちも同じく自らのエミュレータの選択Buildで試すことができます
最後に
実際にScadeというものに触れたのが初めてでSwiftでのクロスプラットフォームに胸馳せながら楽しみました。
ぜひみなさんも使ってみてはいかがでしょうか?
実際に企業などでScadeが採用されているのを聞いたことがないのが悲しいことですが、、、、
参考文献
Scadeでのアプリ開発の日本語での参考書もあったので参考までに!!!
Discussion