Apple公式Swiftのチュートリアルビデオ
アップルから「Building Your First Swift App Video」という簡単なアプリを作成するチュートリアルビデオが出ました。
わずか6分13秒で以下のポイントでアプリケーションを作成します。
- Single View
- ImageView
- Navigation ControllerとToolbar
- 画像フィルタ
動画が再生できない場合は、こちらでご覧下さい。
0:15 プロジェクトの作成
Xcodeを起動して、Create a new Xcode projectをクリックします。
iOS ApplicationのSingle View Applicationを選択します。
プロジェクト名を入力して、言語はSwift、DevicesはUniversalを選択します。
0:41 画像リソースの追加
左サイドにProject Navigatorがあってファイルが確認できます。
デスクトップから画像をドラッグ&ドロップでProject Navigatorに持ってきます。
1:04 Image Viewの追加
右サイド下のObject libraryからimage viewと検索して、見つかったImage ViewをView Controllerまでドラッグすると、ガイドが表示されてぴったりあてはめることができます。
ImageViewを選択して、右サイド上のAttributes Inspectorを表示します。
Imageにプロジェクトに登録した画像を選択して入れます。
表示された画像がゆがんでいるので、ViewのModeをAspect Fillにします。
2:30 タイトルやボタンの追加
StroyBoardのView Controllerのボタンをクリックして、メニューからEditor->Embed In->Navifation Controllerを選ぶとNavigation Controllerが追加されます。
View Controllerのトップでダブルクリックするとタイトルを入力できます。
Navigation Controllerを選択して、Attributes InspectorでShow Toolbarにチェックを入れるとToolbarが追加されます。
Object libraryからBar ButtonをView Controllerに追加して、タイトルをApply Filterとします。
Flexible SpaceをBar Buttonの両サイドに入れるとセンタリングができます。
3:24 他のデバイスでの表示確認
Assistant EditorをクリックしてPreviewに切り替えるとiPhoneでの表示が確認できます。
右のPreview画面左下の+ボタンを押すと、iPad等他のデバイスの表示も追加できます。
4:13 ストリーボードとソースコードの連携
PreviewをAutomaticに戻します。
ストリーボードからImageViewをCtrlを押しながらソースにドラッグし、outletを追加します。
ストリーボードからApply FilterボタンをCtrlを押しながらソースにドラッグし、Actionを追加します。
5:12 処理の実装
追加したActionにボタンを押されたときの処理を実装します。
実装が完了したら左上のBuildボタンを押して、Simulatorで動きを確認します。
import UIKit class ViewController: UIViewController { @IBOutlet weak var photoImageView: UIImageView! // Create a place to render the filtered image let context = CIContext(options: nil) @IBAction func applyFilter(sender: AnyObject) { // Create an image to filter let inputImage = CIImage(image: photoImageView.image) // Create a random color to pass to a filter let randomColor = [kCIInputAngleKey: (Double(arc4random_uniform(314)) / 100)] // Apply a filter to the image let filteredImage = inputImage.imageByApplyingFilter("CIHueAdjust", withInputParameters: randomColor) // Rendered the filtered image let renderedImage = context.createCGImage(filteredImage, fromRect: filteredImage.extent()) // Refletct the change back in the interface photoImageView.image = UIImage(CGImage: renderedImage) } 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. } }