今話題になっている「Swift」とは?

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ADMAGEユニット2年目のAMです。
今回は米国時間6月2日にWWDCにてAppleが発表した新プログラミング言語「Swift」について書いてみたいと思います。

今話題になっている「Swift」とは?

【Swiftとは?】

OS XやiOSアプリ開発向けの新プログラミング言語であり、開発環境です。
従来使われてきたObjective-Cよりも早く動作し、より簡潔にプログラムを書くことが可能だそうです。
Swift発表時のスライドではこう書かれています。
『Objective-C without the C』

【Swiftの特徴】

Swift発表時にはその特徴を「モダン、安全、高速、インタラクティブ」と挙げられています。
わかりやすい特徴としては、行末にセミコロンを付けなくても良いなどがありますが、ここでは、実際のSwiftのコードをObjective-Cと比較しながらいくつか紹介してみたいと思います。

[型を推論してくれる]

Objective-Cのように、明示的に型を書かなくても、推論してくれます。

Objective-C

int sum = 10; //Integerのみ
int str = 15.8;  //エラー

Swift

var sum = 10 //推論によってIntegerと判断
println(sum) //10
var flo = 15.8 //推論によってFloatと判断
println(flo) //15.8

明示的に型を指定することも、もちろん可能です。

let sum:Float = 10 //Float型 letは定数の宣言
println(sum) //10.0

余談ではありますが、型の名前に絵文字も使えるそうです。

[文字列の操作が簡単]

文字列の結合などを簡単に書くことができます。

Objective-C

NSString *nameA = @”Tanaka”;
NSString *nameB = @”Tarou”;
NSString *nameC = [nameA stringByAppendingString:nameB]; // TanakaTarou

Swift

let nameA = “Tanaka”
let nameB = “Tarou”
let nameC = nameA + nameB //TanakaTarou

Objective-Cと比べると簡潔で見やすいですね。

[nil判定をよりスマートにできる]

プレゼンで記載されていた以下のObjective-Cコード
Objective-C

if (myDelegate != nil) {
 if ([myDelegate respondsToSelector:
 @selector(scrollViewDidScroll:)]) {
  [myDelegate scrollViewDidScroll:myScrollView];
 }
}

myDelegateがnilではなく、scrollViewDidScrollというメソッドを持っていれば、myScrollViewを呼び出すという処理をSwiftで書くと、

Swift

myDelegate?.scrollViewDidScroll?(myScrollView)

こんなにも短いコードになります。

SwiftにはOptional valueという概念が存在し、nilの状態を意識させることができます。
コードに存在する「?」はOptional valueを用いた評価の仕方の一つです。

簡単な例を記載すると、

var nameA:String = “TANAKA”
var nameB:String? = “SUZUKI”
nameA = nil //静的解析でエラーになる
nameB = nil //エラーにならない

また、nilを判定して処理を分ける記述も、if文を使わずに記載することも可能です。

Var strA: String =”aaa”
Var strB: String? = “bbb”
Var strD: String? = ”DDD”
strB = nil

println(strA.uppercaseString)
//strAの値を大文字にする
println(strB?.uppercaseString)
//strBがnilであれば、nilを返す。そうでなければ、strBの値を大文字にする。
println(strD?.lowercaseString)
//strDがnilであれば、nilを返す。そうでなければ、strDの値を小文字にする。

実行結果

AAA
nil
ddd

メリットとしては、値がnilではないことを確認する記述を減らすことができたり、上記の例のような記載をしていても、実行前に気づくことができ、プログラミングがよりスムーズになります。

以上で簡単な紹介は終わりますが、まだまだ気になる方は、Swiftの言語ガイドがiBooks Storeで公開されているので、チェックしてみてください。

【まとめ】

現在Appleの公式サイトでは、XCode 6 betaがダウンロードできます。
XCode 6 betaで、Swiftを使用することが出来るため、興味のある方は是非ダウンロードしてみてください。
ダウンロード(既存のXcode 5への影響はありません。)

「Swift」は今秋に正式リリースされるそうですが、正式リリースを待たず、どんどん新しい情報が出てきています。

たまには、こういった新しい技術について調べてみるのもとても楽しいものですね。
それでは、今回はここまでで。

(参考URL)
Appleの「Swift」で何やら騒がしい開発言語事情をまとめる
[iOS] 新言語SwiftがObjective-Cよりも良いところ
アップルの新言語「Swift」–そのポテンシャルを探る






広告システムについてのお問い合わせやご相談、パッケージ製品の詳細はこちらからどうぞ。
http://admage.jp/
アプリ計測SDK admage for Appのお問い合わせ・詳細はこちら。
http://apptizer.jp/

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメントを残す

*