Tag Archives: OS X

Swiftに注目すべきたった一つの理由

0
Filed under iOS SDK, Swift
Tagged as , , , ,

先日のWWDC14のキーノートの最後にSwiftが発表され、iOSアプリ開発のコミュニティは騒然としたまま10日が過ぎました。
Swift
Appleが即日で公式ドキュメントや開発環境(Xcode6beta)を提供したこともあり、ある人は早速勉強会を企画し、ある人はgithubにプロジェクトをアップし、またある人は2048をコピーし、発表されたのが先週頭とは思えないほど、既に世の中にはSwiftの情報があふれています!

飛びつくべき新言語なのか?

さて、そのSwiftですが、オフィシャル情報を見て、文法がモダンで普通に便利そうなのは分かります。
しかし、Objective-Cに置き換わる可能性はあるのか?
置き換わらないとしても、限りある学習コストを使ってまで習得すべき言語なのか?
ある程度経験のあるエンジニアなら強く感じる疑問かもしれません。
私も、基本的にあまり無駄に言語は習得すべきではない(出来ない)と考えているくらいで、Swiftを学習することについてはかなり懐疑的でした。

しかし、ある一つの情報を知り、かなりの確度でSwiftがiOS/Macアプリ開発においては主流になりうると考えるようになりました。

Chris Lattner

その情報とは、Swiftの「制作者」です。
Swiftの制作者 Chris Lattner は、WWDC14のキーノートでSwiftの説明をしたその人なのですが、実は、今ではXcodeの標準コンパイラ基盤となっているLLVMを設計した人なのです!
Chris Lattner
ウェブで公開されている情報によると、イリノイ大学アーバナ・シャンペーン校でComputer ScienceのPh.D取得後、Apple Inc.のXcode/Instrumentsのプロジェクトに入ったのが2005年。
そんなChris Lattnerが、2010年から作り始めた言語がSwiftなのです!
私たちからするとSwiftは「突然出てきた新言語」なのですが、その背景を知ると「満を持して出てきた新言語」なのです。

最強の組み合わせ

LLVMには、様々な言語から一旦中間言語にする過程があリます。
ここをうまく活かして、Rubyを使ったRubyMotion, C#を使ったXamarinなどが出てきています。
もちろん、Swiftもここに乗っかるわけですが、SwiftはCocoa/Cocoa touchに特化して作られてきている言語です。しかもその基盤となるLLVMを誰よりも知っている作者が携わっているのです!
このような理由で、当面無視はできないし、iOS8以降を対応としたアプリならSwiftで書くくらいの興味は持ち続けておきたいと考えています。

情報源/ポッドキャスト

ところで、Swiftの作者であるChris Lattnerについては、Rebuild.fmの第46回「Worldwide Stockholm Syndrome (naan, hak)」で知りました。
Rebuild.fmは、最近聴いているポッドキャストの中でもテック系として、自分より高い視点だったり、サーバサイドの話が聞けるので、気に入っています。
ポッドキャスト繋がりで言うと、backspace.fmの第27回「モダシン総帥が語るWWDC2014の感想とスティーブジョブズについて」もWWDC14で発表された内容について言及されています。ゲストがモダシンさんで、iOS/Mac OS Xの融合が進んだことについてかなり面白い話が聞けます。そうか、そういうことか、と。

実は最近、自分もポッドキャストやりたい、とか考えていて、誰か一緒にやらないかなーー。

Xcode集中連載(5):Xcode 4.3.3 にGCCをインストール

3
Filed under Xcode
Tagged as , , , , ,

Xcodeについての集中連載第5回。
現在最新のXcodeでは二つのコンパイラが指定できます。LLVM GCC 4.2と、LLVM Compilerです。
Xcodeも3.xまではメインのコンパイラはGCC 4.2でしたが、Xcode 4ではデフォルトでは選択できません。
それでも諸事情からGCCを使いたい、という場合がありますので、本エントリではその手順、つまりXcode4でGCCを使えるようにする手順について説明します。

これまでのXcodeについての集中連載

LLVMについてザックリと

最近のXcodeでコンパイラでデフォルトに指定されているLLVM GCCは、これまでのGCCとは違います。

もちろん、LLVM GCCとLLVM Compilerは違います。
この違いは、コンパイル時間から生成バイナリ、実行速度まで変わってきますので、設定手順の前に概要を説明しておきます。違いは分かるという方は次の項目からお読みください。
LLVMとは、Low Level Virtual Machineの略で、LLVM Developer Groupは、GCCとは違う新しいコンパイラ基盤を提供しています。

コンパイラは大きく二つの環境を機能を提供しています。

  • パーサー (Parser)
  • コード生成 (Code Generation)

この組み合わせが幾つかあり、GCCのパーサーと、LLVMのコード生成部分を組み合わせたものが、LLVM GCCとなります。
パーサー部分もLLVM Clangを使ったものが、LLVM Compilerと呼ばれているようです。
下記ページが参考になります。

無印GCCをインストール

さて、LLVMじゃないGCC 4.2.1をインストールする手順を示します。
大きな流れとしては「GCCをインストール」→「GCCを使えるように設定」という2手順となります。
($の行はTerminalに入力する実行コマンド、#の行は次の行で行なっているコマンドの説明です)

# テンポラリディレクトリに移動.
$ cd /private/tmp
 
# tarボールをダウンロード.
$ curl -kLO http://opensource.apple.com/tarballs/gcc/gcc-5666.3.tar.gz
 
# tarボールを展開
$ tar zxvf gcc-5666.3.tar.gz
 
# 展開したディレクトリに移動
$ cd gcc-5666.3
 
# ビルド出力用フォルダを作成
$ mkdir -p build/obj build/dst build/sym
 
# ビルド(かなり時間がかかる)
$ sudo gnumake install RC_OS=macos RC_ARCHS='i386 x86_64' TARGETS='i386 x86_64' SRCROOT=`pwd` OBJROOT=`pwd`/build/obj DSTROOT=`pwd`/build/dst SYMROOT=`pwd`/build/sym
 
# (必要に応じてビルドされたGCCのバージョンを確認してみます)
$ ./build/dst/usr/bin/gcc-4.2 --version
 
# (必要に応じてもともと入っているGCCがあれば、そのバージョンを確認してみます)
$ /usr/bin/gcc --version
 
# コピー(注意!これで上書きしてしまいます!)
$ sudo ditto build/dst /

これでGCCのビルドは完了です。
gccがどのコマンドにシンボリックリンクされているか、次のようにTerminal上で確認し、必要に応じてlnコマンドで設定を切り替えましょう。(後述)

# gccのリンク先を確認
$ ls -al /usr/bin/gcc
lrwxr-xr-x  1 root  wheel  12  6 28 18:11 /usr/bin/gcc -> llvm-gcc-4.2
# ↑のようになっていたらLLVM GCCにシンボリックリンクされています。

Xcodeの設定変更

GCCのインストールが終わったら、Xcode側の設定を書き換えます。
(私はviが苦手なので、下記のようにemacsで編集していますが、お好みのエディタで変更してください)

1
2
# Emacsで設定ファイルを変更します
$ emacs "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin/Contents/Resources/GCC 4.2.xcspec"

もともと次のように設定されている2項目を変更します。

  • ShowInCompilerSelectionPopup = NO;
  • IsNoLongerSupported = YES;

  • ShowInCompilerSelectionPopup = YES;
  • IsNoLongerSupported = NO;

これでXcodeを開き直すと、下図のように設定が追加されているのがわかります。

以上です。
ちなみに、Xcode集中連載はこの5回目で一旦終了で、またネタが溜まる日まで。

おまけ1:Emacsコマンドメモ<忘れがちな自分用のメモ>

emacsでは編集を保存するときには、C-x C-s、emacsを終了するときには、C-x C-cです。

おまけ2:lnコマンドについて

コメントで頂きましたlnコマンドの使い方について説明します。
lnコマンドは次のように、source_file(リンク先とするファイル)target_file(新しい作成するシンボリックリンク名)を引数とするシンボリックリンク作成コマンドです。

ln [-Ffhinsv] source_file [target_file]

/tmp/test1.txt という実際にあるファイルへのシンボリックリンクを /tmp/test.txt として作成する例を示します。

$ ls -alF /tmp/test*
-rw-r--r--@ 1 Hiromichi  wheel  22  5 11 22:55 /tmp/test1.txt
-rw-r--r--@ 1 Hiromichi  wheel  22  5 11 22:55 /tmp/test2.txt
$ tail /tmp/test1.txt 
This is a test 1 text.
$ tail /tmp/test2.txt 
This is a test 2 text.
 
$ ln -s /tmp/test1.txt test.txt
$ ls -alF /tmp/test*
lrwxr-xr-x  1 Hiromichi  wheel  14  5 11 22:56 /tmp/test.txt@ -> /tmp/test1.txt
-rw-r--r--@ 1 Hiromichi  wheel  22  5 11 22:55 /tmp/test1.txt
-rw-r--r--@ 1 Hiromichi  wheel  22  5 11 22:55 /tmp/test2.txt
$ tail /tmp/test.txt
This is a test 1 text.
にほんブログ村 IT技術ブログ iPhoneアプリ開発へ

[AD]

Xcode 4 完全攻略

著者/訳者:STUDIO SHIN

出版社:ソフトバンククリエイティブ( 2012-03-29 )

定価:

Amazon価格:¥ 2,916

大型本 ( 420 ページ )

ISBN-10 : 4797367717

ISBN-13 : 9784797367713


詳解iOS5プログラミング

著者/訳者:沼田 哲史

出版社:秀和システム( 2011-12-22 )

定価:

Amazon価格:¥ 3,024

単行本 ( 357 ページ )

ISBN-10 : 4798032034

ISBN-13 : 9784798032030


Xcode集中連載(4):Xcode 4.3.3 に古いSDKをインストールする

1
Filed under Xcode
Tagged as , , ,

Xcodeについての集中連載第4回。
今回は、新しいXcode(4.3.3)に、古いiOS SDKを追加する手順について、です。
(注:下に示す方法はある程度は試しているのですが、実際にAppStoreに提出するビルドまで行なってはいないので、問題があったらゴメンナサイ)

古いSDKが無くなった!

以前はXcodeをインストールしたらその中には最新から4つくらいのiOS SDKが入っていましたが、現在最新バージョンであるXcoce 4.3.3をインストールすると、中に入っているのはiOS SDK 5.1しかありません。

そのおかげでインストールファイルが軽くなったりしている恩恵はありますし、大抵の場合これで問題ないのですが、稀なケースでは古いiOS SDKが必要になります。
ちょっと調べてみたところ、面倒ではあるもののそう複雑ではない方法で追加することが可能でした。

Xcode 4.3.3に、iOS SDK 4.3を入れる

iOS SDK 4.3を入れる場合の説明です。

古いXcodeからSDKインストーラをコピー

まず、古いXcode3.2.6のインストールディスクイメージをマウントし、その中にあるPackagesを開きます。

その中にある次の二つのファイルを適当な場所にコピーしておきます。

  • iPhoneSDK4_3.pkg
  • iPhoneSimulatorSDK4_3.pkg

SDKをダミーフォルダにインストール

もう一つ、準備作業として、/Developerフォルダを作成します。Xcode 4.3.3の場合、/Developerフォルダはないはずなのですが、もしある場合は、適当な場所に空のフォルダを作って(説明の便宜上Developerと名付けて)ください。
フォルダの準備が出来たら、上記作業でコピーしたインストーラ(.pkg)をダブルクリックして、「インストール先の選択」で「フォルダを選択…」を選び、
先ほど作成した/Developerを指定します。これで/Developer以下にSDK関連のファイルがインストールされるはずです。

Xcode.app内にSDKファイル群をコピー

最後に、下記のようなコマンドで、Xcode.app内に、SDKファイル群をコピーして完了です。

1
2
$ cd <Developerフォルダがある場所>
$ cp -R ./Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

シミュレータ用のライブラリも同様にして追加します。

3
4
$ cd <Developerフォルダがある場所>
$ cp -R ./Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/

Xcodeを再起動したら、下のスクリーンショットのように使えるSDKが増えます!

ちょっと面倒ではありますが、このコピーする.sdkフォルダ自体をバックアップしておけば、次回からは、古いXcodeから抜き出す作業は不要なので、2回目からは楽ですよ!

にほんブログ村 IT技術ブログ iPhoneアプリ開発へ

[AD]

Objective-C超入門――ゼロからしっかり学べるiPhoneプログラミング【Xcode4.2対応】

著者/訳者:大川内隆朗

出版社:ラトルズ( 2012-01-25 )

定価:

Amazon価格:¥ 3,218

単行本(ソフトカバー) ( 520 ページ )

ISBN-10 : 4899772874

ISBN-13 : 9784899772873


Xcode 4ではじめるObjective-Cプログラミング

著者/訳者:大津 真

出版社:ラトルズ( 2012-01-25 )

定価:

単行本(ソフトカバー) ( 344 ページ )

ISBN-10 : 4899772998

ISBN-13 : 9784899772996


Xcode集中連載(3):Xcode 4にコマンドラインツールを追加

1
Filed under Xcode
Tagged as , , ,

Xcodeについての集中連載第3回。
Xcode 4(4.1くらい?)になってから、Xcodeのインストールのみでは、gccやgnumakeなどコマンドライン用のツールがインストールされなくなりました!
バリバリの開発者にとって、これでは結構不便なので、次のようにしてインストールしておきましょう。

ワンボタンでダウンロード!

Xcode→Preferences→Downloads→Componentsを開き、「Command Line Tools」の項目にある『Install』ボタンを押すだけ。

また、AppleのダウンロードサイトからもCommand Line Tools for Xcodeという名前で置いてあり、ここからダウンロード出来ます。


これでTerminalを開いて gcc とか実行することができます!
iOSアプリ開発自体はもちろんXcodeでやるのが楽なのですが、簡単なC言語の動作確認とか、テスト、あと、ライブラリのビルド等にこうしたツール群は必須ですよね。

にほんブログ村 IT技術ブログ iPhoneアプリ開発へ

[AD]

Xcode 4 完全攻略

著者/訳者:STUDIO SHIN

出版社:ソフトバンククリエイティブ( 2012-03-29 )

定価:

Amazon価格:¥ 2,916

大型本 ( 420 ページ )

ISBN-10 : 4797367717

ISBN-13 : 9784797367713


Xcode 4ではじめるObjective-Cプログラミング

著者/訳者:大津 真

出版社:ラトルズ( 2012-01-25 )

定価:

単行本(ソフトカバー) ( 344 ページ )

ISBN-10 : 4899772998

ISBN-13 : 9784899772996