try! Swift Tokyo 2017 - Swift on Android(1)

  • 7
    いいね
  • 0
    コメント

try! Swift Tokyo 2017

3月2日〜3日の二日間、東京で開催された try! Swift というカンファレンスに参加してきました。

try! Swift Tokyo

世界中の Swift エンジニアと交流できる貴重な機会で、できれば二日間がっつりと参加したかったのですが、仕事の都合により両日とも半日ずつの参加となりました。3月4日(土)にはハッカソンやハンズオンも開催されたようですが、こちらもプライベートな事情で参加できず残念でした。

try! Swift の中でも、個人的に興味深かったテーマについて紹介していきたいと思います。

Swift on Android

まず1つ目は SwiftによるAndroidアプリに関するセッションです。

私はこれまで iOSアプリとAndroidアプリの両アプリを開発してきましが、ここ2,3年は Androidアプリ開発をメインで行っており、モダンな言語 Swift を使って、どの程度 Androidアプリが開発できるのか、大変興味深いテーマでした。

Eric Wing さん

発表者の Eric Wing (Twitter) さんは、クロスプラットフォームでのゲーム開発を専門とされる方です。
Beginning iPhone Games Development という書籍も執筆されたり、CMake などいくつかのOpenSourceプロジェクトにも参加されています。
このため、単に Swift で Android アプリを開発する、というテーマではなく、Swift でマルチプラットフォームなアプリ開発を行う、という大きな壮大なテーマの一部として Androidアプリの開発を取り上げた、という感じでした。

Ouroboros

セッション中、Ouroboros と呼ばれる、蛇が自分の尻尾を食べるイラストが何度か出てきました。 What’s old is new again という意味で、このセッションの中に新しいことはなく、古い概念を適用するだけ、ということでした。

  • コンパイラとネイティブコード
  • C言語とアプリケーションバイナリインターフェス(ABI)
  • Unix / Linux / Android

C言語最強

C言語は最強というお話。
- C言語は互換性が高く、全てのプラットフォームでコンパイラが用意されている
- C ABI は安定しており全てがその上に構築されている
- 多くの言語がCとのインターフェースを持っている
- 何十年も昔から存在するソフトウェアで今もなお使われている

言語とライブラリの切り分け

開発言語とライブラリについての切り分けが重要というお話。

Native iOS App の場合

swiftCore

Swift C library , Darwin

libdispatch, Foundation

UIKit, CoreAudio

Native Android App の場合

swiftCore

Swift C library , Bionic

Android SDK, OpenSL ES

ross-platform Game

swiftCore

SDL, Open AL

Getting Started with Swift on Android ?

AppleがGitHubで Getting Started with Swift on Android というドキュメントを公開しており、このタイトルからは 「Swift でAndroid アプリが開発できるんだ!!」 と期待してしまうのですが....

手順1

1. Downloading (or building) the Swift Android stdlib dependencies

Swift stdlib をダウンロードしろ

→ わかる

手順2

2. Building the Swift stdlib for Android

Swift stdlib をビルドしろ

→ わかる

手順3

3.Compiling hello.swift to run on an Android device

hello.swift をコンパイルしてAndroidデバイスで実行しろ

  • hello.swift : print("Hello, Android")
  • 実行 : adb shell ...
  • 出力 : Hello, Android (コンソール上に)

→ Why ?!

UIをもつアプリを開発したいのに、コレジャナイ...

(続く)