PIYO - Tech & Life -

Xcode 6 beta 入れた

Xcode WWDC Swift

公開されたbeta版をインストールして触ってみた。WWDCの基調講演は見ていないし、ちゃんとしたドキュメントも読んでおらず、Swiftってのが使えるようになるんだー程度の認識しかない状態で触ってみて気づいたことを書いていく。

playground

起動するといきなり見慣れないplaygroundというものが目につく。


 起動するといきなりエディタが開く。SwiftのiBookを参考にしながら適当にサンプルコードを打っていくと評価結果がウィンドウ右側のカラムにあらわれるという感じらしい。

ちなみにSwiftのiBookはこちら。

iTunes - Books - The Swift Programming Language by Apple Inc.

Swiftでちょっと試したいコードを動かせる場所という認識でいいのか。iBookを進める環境としては良さそう。

storyboard

なんか雰囲気が違う。

このスクリーンショットはiPhoneアプリケーション用のstoryboardだけど、置いてあるViewControllerの画面がこれまでの長方形じゃない。

そして、画面下にはこんな表示が。

右側にあるのはXcode5までと同様AutoLayoutだけど、真ん中にw Any h Anyとの表示が。どんなレイアウトにも対応できる相対レイアウトで作るのが基本になった、というような感じに見て取れる(予想)。

とりあえずスクリーンショットのような状態でiPhoneシミュレータを起動したらこうなった。多分配置の指定が絶対値になっているからだと思う。

ラベルとボタンとにちゃんとHorizontal Centerの条件をつけたら大丈夫だった。やはりConstraintsをしっかり使っていく必要がありそう。

Swift

新言語Swiftが今回のWWDCの一番の目玉だと思う。Objective-Cより軽量な言語でアプリケーションを書けるようになるというわけ。

プロジェクトを新規作成を選ぶと今まではなかった言語の選択肢があるのがわかる。

ファイル構成はこんな感じ。.h.m.swift1つに置き換わったような感じ。

storyboardとコードの連携はSwiftでも使えるようだ。

例えば、↑のstoryboardのサンプルで「ボタンを押したらUILabelのテキストを変更する」という機能を持つViewControllerのコードは以下のようになる。

import UIKit

class ViewController: UIViewController {
                            
    @IBOutlet var sampleLabel : UILabel
    @IBAction func buttonTapped(sender : AnyObject) {
        sampleLabel.text = "button tapped"
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

(あ、シンタックスハイライトってどうなるんだ。はてなブログさんの対応に期待)

Objective-Cと比べるとシンタックスが違うだけでやっていることは同じように見える。ここだけ見るとSwiftを使うメリットはあまりないような気がする。この点についてはドキュメントを全て読んだわけではないし、もっと複雑なアプリケーションを書くときに違いが出てくるかもしれないからまだ断言はできない。

少なくともObjective-CやC系の言語に馴染めないという人にとっての心理的な抵抗は減るんじゃないかな。

View Debugging

View Debuggingという機能が追加された。実行時の見た目を簡単にデバッグするという話らしい。

サンプルアプリケーション程度のものだと有り難みがわからないが、パッと見ではViewのサイズやConstraints、対応するコードへのジャンプができるようだ。

ChromeのWeb Inspectorあたりに似ている感じがしたが、実際はどうだろうか。

関連リンク

使っていかないと感触がわからないことが多すぎてはっきりとしたことは書けないというオチ。ごめんなさい。

公式のリリースノートはこちら。

What’s New in Xcode: What’s New in Xcode