10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-04

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をもつアプリを開発したいのに、コレジャナイ...

(続く)

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?