Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Swift勉強会

24,089 views

Published on

Appleが開発したSwift言語の勉強会資料

Published in: Engineering
  • Be the first to comment

Swift勉強会

  1. 1. 超・超・超初心者向け Swift 勉強会Hiromasa Nagamine 1
  2. 2. About Hiromasa Nagamine Works! • iOS Engineer! SNS! • Twitter: @web_chiro! • Facebook! History! • University of Aizu! • Adways Studio! • LINE Corporation
  3. 3. Swiftって?
  4. 4. 新しいプログラミング言語 Swift
  5. 5. Swift ❖ AppleによってCocoa/Cocoa Touch開発向けに作られた新プ ログラミング言語。2014年6月 のWWDCで公開! ! ❖ 今までiOS/OS Xアプリ開発に 使用されたObjective-Cに変わ る新しい言語 5
  6. 6. Swiftで出来ること
  7. 7. できること ❖ iOS/OS Xアプリの開発! ❖ iPhone Extensionの開発! ❖ プッシュ通知のコントロール! ! ❖ Objective-Cのコードを利用できる! ❖ より高品質なアプリを作る
  8. 8. Objective-Cでいいじゃない
  9. 9. なぜSwiftなのか
  10. 10. 特徴 ❖ Appleは特徴として以下の4つを挙げている! 1. Designed Safety! 2. Modern! 3. Fast & Powerful! 4. Interactive 10
  11. 11. 1. Designed Safety ❖ メモリ自動管理! ❖ ARC(Automatic Reference Counting) - Objective-C! ❖ 参照の状態に合わせてメモリの確保、解放を自動管理! ❖ 変数の初期化! ❖ 変数に何も値が入っていない状態だと、その変数を利用できないに設計さ れている! ❖ nilといった様な値が無い状態を示す値を代入できない(!/? optionの利用)! ❖ 変数名などの簡略化! ❖ var, letの様に定義を簡略化することで人為的ミス/負担を削減
  12. 12. 2. Modern ❖ Objective-Cには無かった現代的な機能の追加! ❖ 名前空間 (namespace)! ❖ ジェネリックス (generics)! ❖ クロージャ (closure)! ❖ 複数戻り値! ! ❖ これらによって、プログラムが持つ幾つかの複雑性を解消できる
  13. 13. 3. Fast & Powerful ❖ 複雑なソートや暗号化タス クによる処理の高速化! ❖ Python, Objective-Cより も高速化されていること をAppleが数値で公開
  14. 14. 3. Fast & Powerful ❖ 高速化によって、アプリの最適化の作業を軽減できる! ! ❖ 処理を高速化する事で、よりパワフルなアプリ開発が可 能に
  15. 15. 4. Interactive ❖ Playgroundモードの追加! ❖ このモードで実装することで、コーディングしながら処理の結果を確認するこ とができる! ❖ REPL (Read-eval-print Loop)! ❖ コンソールに直接Swift言語を入力する事で、処理中の値を確認することが出 来る! ❖ Ruby, Pythonなどのいくつかのスクリプト言語、関数型言語に導入されている! ! ❖ これらを利用する事で、デバッグなどの作業を容易にすることができる
  16. 16. Playground
  17. 17. 簡単にまとめ
  18. 18. 簡単にまとめ ❖ Swiftでできること! ❖ iOS/OS Xのアプリ開発が可能! ❖ Objective-Cとの共存が可能! ❖ Modern! ❖ ジェネリクス、クロージャといった現代的な概念を追加! ❖ Designed Safety! ❖ メモリ不足や人為的ミスを減らすセーフティな設計! ❖ Fast & Powerful! ❖ 複雑な処理やタスクの暗号化による処理の高速化! ❖ Interactive! ❖ PlaygroundやREPLによる対話的な作業が可能になり、デバッグ等が容易に
  19. 19. Swiftで必要なもの
  20. 20. Swiftで必要なもの ❖ Mac PC! ❖ Xcode 6以上 これだけです。
  21. 21. Xcode
  22. 22. Xcode ❖ Swift! ❖ Swift対応はXcode 6 (最新バージョン) から対応! ❖ プロジェクトの作成! ❖ Playgroundモード、通常モード! ❖ アプリのビルドとシミュレーターの起動! ❖ シミュレータと実機
  23. 23. Xcode - プロジェクトの作成 ❖ Xcode を開くと以下のプロジェクト作成画面がでてきます。! ❖ 今回はPlaygroundモードを作ります
  24. 24. Xcode - プロジェクトの作成 ❖ プロジェクト名を入力して、次へ => 作成
  25. 25. Xcode - プロジェクトの作成 ❖ プロジェクトの完成です! ここにプログラムを書いて行きます。
  26. 26. 実装
  27. 27. 早速、今作ったプロジェクトに 実装をしていきましょう
  28. 28. まずは、誰もが通る道 “Hello, World.”
  29. 29. 値の出力 ❖ println() 文 - コンソール出力! • 例 -> println(“Hello, World.”) データが見れる
  30. 30. 出力された値を確認 println()はコンソール出力なので、コンソールから確認す る必要がある! ❖ コンソールの出力の確認方法 コンソール出力結果として、出力される
  31. 31. 変数型の種類と扱い 基礎的な変数! ❖ ver 型 (変数型)! ❖ 中の値を変化させる事がある場合に利用! ❖ let 型 (定数型)! ❖ 固定値型として利用
  32. 32. 変数型の種類と扱い ❖ Int : 整数値、 Float/Double:小数値! • 数値を扱う型! • var number: Int = 1 / var nubmer: Double = 10.5! ! ❖ String:テキスト! • 文字列を扱う型! • var text: String = “Hello, World.”! ! ❖ Array, Dictionary:配列、ハッシュ! • 配列を扱う型! • var array: Array = Array(1, 2, 3)! • println(array[0]) // Output: => 1
  33. 33. 利用例:変数 ❖ Int型 ❖ String型
  34. 34. 関数 funcを使って! ❖ 戻り値なし関数! • func aMethod(){ …. }! ! ❖ 戻り値あり関数! • func aMethod() -> 戻り型{ …. return 戻り値 }! ! ❖ 引数あり関数! • func aMethod(var a:Int, var b:Int){ …. }
  35. 35. 利用例:関数 ❖ “Hello, World”を出力する関数 ❖ 足し算結果を返す関数
  36. 36. 目標1 1. println()とString型変数を使って”Hello, World”を出力してみ ましょう。! 2. println()とInt型変数 a = 1, b = 3を使って合計値を出力してみ ましょう。! 3. 関数printHelloWorld()定義して、”Hello, World”を出力してみ ましょう。
  37. 37. UIKit ❖ User Interface - UIKit Framework! ❖ Cocoa/Cocoa TouchのUIを利用するために必要なFramework! • UIViewController! • UIView! • UIButton! • UILabel! • UITextField! • etc…
  38. 38. Action ❖ addTarget() - UIButton! ❖ ボタンを押したときのアクションを指定できる! ❖ UIControlEvent - ! ❖ TouchUpInside! ❖ TouchDragOutside! ❖ EditingDidEnd! ❖ etc…
  39. 39. ビューの色、配置/サイズの指定 ❖ UIColor - 色を指定する! ❖ view.backgroundColor = UIColor.blueColor()! ❖ blue, red, yellow, green, gray, white, black! ❖ CGRect - 配置・サイズを指定する! ❖ view.frame = CGRectMake(x, y, width, height)
  40. 40. 目標2 ❖ 幅400、高さ400のUIViewの上に赤、青、黄色のUIView を配置してみましょう。幅・高さはともに60です。! • redColor : x=30, y=30, witdh=60, height=60! • blueColor : x=120, y=30, witdh=60, height=60! • yellowColor : x=210, y=30, witdh=60, height=60
  41. 41. 目標2:答え ❖ このようになるのが正解です。ベースのビューの背景の色はグレーで なくても大丈夫です。
  42. 42. 目標3 1. UITextField, UIButton, UILabelを使ってUITextFieldに 入力した値を、送信ボタンを押してUILabelに出力する 処理を書いてみましょう。 2. Redボタン、Blueボタン、Yellowボタンを設置して UIViewのバックグラウンドの色を切り替える処理を書 いてみましょう。
  43. 43. Cocoa touch Framework ❖ Framework! ❖ UIKit - UIを利用する! ❖ Foundation - NSデータ構造を利用する! ❖ CoreData - コアデータを利用する! ❖ MapKit - Map APIを利用する! ❖ etc…
  44. 44. ざっと実装の話をしました
  45. 45. まとめ ❖ Swiftとは! • 4つの特徴:Designed safety, Modern, Fast, Interactを備えている! • より高品質なアプリ開発がしやすくなっている! ! ❖ 開発について! ❖ iOS/OS Xの機能を使うためにFrameworkをインポートして使う! ❖ UIは基本的にViewの上に様々なパーツを乗せて実装していく
  46. 46. 今回やったことが 基本的な考え方になっていきます。

×