3/2 Swift on Android #tryswiftconf
try!Swiftのセッションまとめシリーズです。Eric Wingさんの「Swift on Android」についての記事になります。
資料
スライド共有サービスには上がっていないようです。try!Swift2017のslackの#slideには上がっているので、そちらをご参照ください。
内容
- 皆クロスプラットフォームの有用性をわかっているはず
- 背景
- これからの話は比喩を考えることによって理解が深まると思う
- Cによって全ては可能になる
- 特殊なプロパティがいっぱいある
- あらゆる全ての言語がCとのやりとりができる
言語とライブラリの間を区別することが重要
- UIKitはライブラリであり、androidに移植されることはない
- swiftのコアのみが重要
AndroidApp
Android NDK(Native Development Kit)
-
- 組み込み可能な言語
- Androidはダイナミックライブラリの挙動で不安定なところがある
- ライブラリデベロッパーは減っている
- NDKの問題
- 様々なNDK versionが混在している
- Androidはネームバーションを指定していないため、衝突してしまう
- Android NDKはほとんど提供していないのでノウハウを必要とする
- libICU
- 自分のライブラリと一緒にロードしようとすると、何事もなかったかのように動かない
- すでにロードされているとみなされる
- ラッキーでもクラッシュが起こる
- どうやってAndroid上でSwiftを使うか
- JavaからスタートしてCを渡ってSwiftを動かす
- 作り方
- 注意点
- グローバル変数が初期化されなかったりする
- ビルドシステムの違いにびっくりする
- Swift Package Managerは使えなさそう
- →CMake
- クロスプラットフォームではよく使われている
- AndroidStudioで採用されると表明された
- SwiftでのAndroidアプリの書き方
- できるが大変
- JNIを通らなければならない
- 結局Javaを書かなければならない
- クロスプラットフォームのライブラリ(OpenGL、cURLなど)を使えば作れる
- GUI
- ダイアログ
- Blurrr SDKを使った
- ビルドのシステムチャレンジを解決してくれる
- プリビルドのライブラリができる
- まだ作り途中でみなさんの支援が必要
- 友人について
- Coding in Swiftの中の人
- 亡くなってしまったのでtwitterが反応しなくなっている
- Swiftクロスプラットフォームは彼の功績が大きい
Q&A
その他このトークに関する情報源
- Swift on Android | try! Swift Tokyo 2017 #tryswiftconf Day1-2 - niwatakoのはてなブログ
- [速報レポート] try! Swift TOKYO 2017 1日目 午前I #tryswiftconf | Developers.IO
- try! Swift 2017 Tokyo に参加してきた - 2. 1日目 - My Favorite Things - Coding or die.