株式会社LIGさんの いいオフィス で行われた
「超・超・超初心者向けSwiftを始めてみよう勉強会 Vol3」
に参加してきました。

http://swiftstarter.connpass.com/event/11105/

形式は説明を受ける→ハンズオンでコード書くという勉強会でした。

全くSwiftに触ったことのない自分でも非常にわかりやすかったです。

内容まとめ

第一回のおさらい

第一回は出席してなかったので、おさらいがあって助かりました。

Variable Type

以下のように変数、定数は宣言する。Swiftは型推論できるので型名は省略可。

// 変数宣言
var foo: Int = 100
var bar = 100
foo = foo + 20 // => 120

// 定数宣言
let num = 100
// num = num + 20 => Error!

View

UIKit.frameworkのViewオブジェクト。これらのViewを組み合わせてアプリを組み上げていく。

UIView, UIImageView, UITextView, UITextField, UILabel, UIButton ...

Function

以下の用に定義する。戻り値の型を->の後に記述するのは新鮮。

func sum(var a: Int, var b: Int) -> Int {
  // 処理
  return a + b
}

ViewControllerについて

ViewControllerとはその名の通りViewを管理するもので、
受け取ったデータをもとに、図形や文字などの操作を行う。

基本的な使い方は以下のような感じ。

import UIKit

class ViewControlle: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    // 背景色指定
    self.view.backgroundColor = .whiteColor()

    // ビューの生成(青色の正方形つくって表示)
    view1 = UIView(frame: CGRectMake(100, 100, 100, 100))
    view1.backgroundColor = .blueColor()
    self.view.addSubview(view1)
  }

  // メモリが危なくなったときに呼ばれる
  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }

UIViewControllerのviewに対して、viewを追加していき描画するイメージ。
1つのViewControllerで1つの画面を構成していく。

Gesture Eventについて

ユーザの操作(指の動き)に対応する操作を実装するためのもの。
以下のような種類がある

Tap, Pan, Pinch, Rotate, Swipe, LogPress

以下のようにジェスチャーをViewに追加して実装する

class ViewControlle: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    var selector = Selector("tapGesture:")
    var tapRecognizer = UITapGestureRecognizer(target: self, action: elector)

    // ビューの生成(青い正方形にタップイベント追加)
    view1 = UIView(frame: CGRectMake(100, 100, 100, 100))
    view1.backgroundColor = .blueColor()
    view1.addGestureRecognizer(tapRecognizer)
    self.view.addSubview(view1)
  }

  func tapGesture(gesture: UITapGestureRecognizer){
    // タップされた刻の処理
  }

Closureについて

以下のように宣言する。
括弧の後のinが忘れそうなので注意

  var closure = (a: Int, b: Int) -> Int { in
    return a + b
  }

  closure(1, 10) // => 11

感想

初めての言語で戸惑う部分も多かったですが、課題の難易度もちょうど良い感じでスムーズにSwiftを学び始めることができたかなと思います。
色々勉強してiOSアプリつくってみようと思いました。

そして懇親会いきたかった……。

あと、どうでもいいですがreveal.jsをつかったスライドがかっこよかったですw