LinuxでiOSアプリを開発できないらしい。

スポンサーリンク



LinuxでiOSアプリを開発できるらしい」というのは、間違いでした…。少なくとも現時点では。

とりあえず分かったことは以下の通り。

  • FoundationライブラリがOSS化された
  • その上に乗るCocoaやUIKitはOSS化されていない
  • Objective-C runtimeもOSS化されていない

そして、OSS化されたFoundationがGithubに公開されているんですが、そのREADME.mdにも以下のように書いてあります。

Why not make the existing Objective-C implementation of Foundation open source?
Foundation on Darwin is written primarily in Objective-C, and the Objective-C runtime is not part of the Swift open source project. CoreFoundation, however, is a portable C library and does not require the Objective-C runtime. It contains much of the behavior that is exposed via the Foundation API. Therefore, it is used on all platforms including Linux.

ということで、実際に試してみると、そもそもLinux版SwiftではUIKitやCocoa(お洒落なGUIが作れるライブラリですね)をimportできません。

Linuxでおなじみ、Glibcはimportして使用することができるところをみると、SwiftインタフェースでLinux CUIアプリケーション作れる環境を用意した感じですかね。あくまでSwift言語の学習用ということか…。

Linux版Swiftインストール手順

せっかくなのでまとめておきます。

基本的に、Swift公式ページに書かれている通りです。

~$ wget https://swift.org/builds/swift-3.0-preview-2/ubuntu1404/swift-3.0-PREVIEW-2/swift-3.0-PREVIEW-2-ubuntu14.04.tar.gz
~$ tar xzf swift-3.0-PREVIEW-2-ubuntu14.04.tar.gz
~$ sudo mv sudo mv swift-3.0-PREVIEW-2-ubuntu14.04 /usr/local/
~$ sudo bash -c "echo 'export=\${PATH}:/usr/local/swift-3.0-PREVIEW-2-ubuntu14.04/usr/bin' > /etc/profile.d/swift_toolchain.sh"
~$ exec -l ${SHELL}

簡単にSwiftを触ってみる

Swift言語をちゃんと勉強したわけではないので、本当に基本的なところだけ試してみました。Glibcがimportできるとあって、見慣れた関数が使えます。

  3> import Glibc
  4> print(sin(3.141592))
6.53589793076242e-07  
  5> print(cos(3.141592))
-0.999999999999786
  6>
  7> func test() {
  8.     print(1+2+3)
  9. }
 10>
 11> test()
6  
 12> print(rand())
1804289383  

例えば、randと入力してTabキーを2回押すと、補完候補が出力されます。bashやipythonと同じで、何もしなくても最初からauto completionが効いていて、とても良い。

 15> rand
Available completions:  
        (): Int32
        rand() -> Int32
        rand_r(__seed: UnsafeMutablePointer<UInt32>) -> Int32
        random() -> Int
        random_data
        random_r(__buf: UnsafeMutablePointer<random_data>, __result: UnsafeMutablePointer<Int32>) -> Int32

感想

あくまでSwift言語の勉強用と割り切って、Macを買う前にLinuxで触っておく、くらいですかね。使うメリットを見出すとすれば…。要望をコードでpushしてpull requestできるだけのスキルを持っていれば、また別のメリットもあるんでしょうけど…。

既にMac持ってる人にとっては、XCode入れればもれなくターミナルからSwift使えるので、メリットは特にないのかな…。

comments powered by Disqus