SlideShare una empresa de Scribd logo
1 de 88
Descargar para leer sin conexión
iOSアプリを作ってみたい人のための
Swift入門
nakasen_20th
目指すところ
• Swift言語の特徴を知る
• Swift言語でiOSアプリを作る
前提
• 他言語でのプログラミング経験がある
• Xcode 6.3以降がインストールされた

Macintoshを持っている
• メモリ4GB以上
学習項目
1. Swift言語概要
2. Xcode基礎
3. Swift基礎
4. UIKit基礎
5. サンプルアプリ作成
1. Swift言語概要
• Apple社が開発、2014年6月発表
• OS X、iOSアプリ開発用言語
• Objective-C言語からの移行に配慮
• 他言語の長所を吸収、基本的に関数型
• 言語仕様がまだ流動的
(なぜSwift言語が誕生したのか?)
iOSのバージョン
• Swift言語はiOS7(& OS X 10.9)以降に対応
• 今回はiOS8以降のみを対象
‣ iOS8動作機種
• iPhone4S以降
• iPad 2以降、iPad mini全て
• iPod Touch 第5世代以降
フレームワーク
• https://developer.apple.com/legacy/library/
documentation/Cocoa/Conceptual/
CocoaFundamentals/CocoaFundamentals.pdf







• 各フレームワークの機能を利用して一番上層の

アプリケーション部を作成する。
2. Xcode基礎
• Apple社純正統合開発環境
• バージョンは最新(6.4)にしておく

(20150711現在)
• Swift言語の基礎を学ぶ時は「Playground」で
• iOSアプリ構築時は「Project」で
• 画面構成を覚える
Playground画面
• 「File」→「New」→「Playground」
• エディタエリア(初期画面)
• Assistant Editor画面を表示

「View」→「Assistant Editor」→

「Show Assistant Editor」
• ソースコード入力で自動実行
Playground画面
Project画面
• 「File」→「New」→「Project」
• 通常のiOSアプリは

「Single View Application」で
• 大きく分けて3つのエリア
✦ Navigators Area
✦ Debug Area
✦ Utilities Area
Project画面
• 主に左右に3分割で把握













Storyboard
• エディタエリアの初期状態を確認
• Document Outlineを表示
View Controllerがひとつ
その上にViewがひとつ
Object library
• UIパーツを確認
• ドラッグでView上に配置
Label
Button
View Controller
セグエで連結
• Buttonから次のView Controllerへ

Control + ドラッグ
• セグエの種類は「Show」
• 最初のView ControllerにNavigation
ControllerをEmbed In
• もう一度Document Outlineを確認
Navigation Controller
• View Controllerの遷移を記録して管理
• 画面上部のNavigation Barに戻るボタンを

自動生成
• Embed InしたView Controllerから記録開始
Attributes inspector
• Viewの属性を変えてみる
• Labelのテキストを変えてみる
• Buttonの種類を変えてみる
• Segueの種類を変えてみる
ビルド、実行
• ここで実行してみる(iOSシミュレータの起動)
• ハードウェアを選択
• 画面の向きを変えてみる
3. Swift基礎
a. 変数と定数、型
b. 式、演算
c. 構文
d. 関数
e. クラス
f. オプショナル型
g. その他の型
a. 変数と定数、型
• 変数と定数は値の入れもの
• 変数は値の変更あり、定数は値固定
• 可能であればなるべく定数で宣言
• 宣言時、型は省略可能(型推論が可能な場合)
a. 変数と定数、型
• 代表的な型
✦ Int(整数)
✦ Double、Float(実数)
✦ Bool(真偽)
✦ String(文字列)
変数、定数の宣言
b. 式、演算
• 式と演算は他の言語とほぼ同じ
✦ 各種演算子(代入、算術、比較、論理…)
✦ 演算順序
✦ 実例で習得
c. 構文
• if文
✦ 条件式の書き方に注意
• for文
• while文
• Switch文
if文、for文
switch文
列挙型とswitch文
d. 関数
• 数学の関数との違い
• 引数と戻り値
• 引数がない場合、1つある場合、

2つ以上ある場合
• 戻り値がない場合、ある場合
• 関数の型
関数の書き方
(1) func 関数名{}
(2) func 関数名(引数リスト){}
(3) func 関数名(引数リスト) -> 戻り値の型 {}
(4) func 関数名(引数リスト) -> 戻り値の型 {

処理(戻り値を求めるなど)

}
関数の書き方
• 引数リストの指定
✦ 引数がない場合

()
✦ 引数が1個の場合

(引数名: 型名)
✦ 引数が2個以上の場合

(引数名1: 型名, 引数名2: 型名・・・)
関数の書き方
関数の書き方
• 関数の実行(呼び出し)
✦ 関数名(引数名: 値・・・)











e. クラス
• クラスは変数と関数からなる設計図
• クラスでの変数はプロパティ、関数はメソッド
• 設計図をもとに作られた実体がインスタンス
• Swiftではクラス(とクロージャ)のみ参照型
• 継承とイニシャライザ
クラスの書き方
(1) class クラス名{}
(2) class クラス名: スーパークラス名{}
(3) class クラス名: スーパークラス名{

プロパティ宣言

メソッド宣言

}
クラスの書き方
クラスの書き方
• クラスの利用(インスタンス作成、実行)













イニシャライザ
• initという特別な名前を持つメソッド
• クラス(や構造体)の初期化のために用いる











イニシャライザ
• イニシャライザの呼び出し













e .      構造体
• 構造体はクラスとほぼ同じ方法で定義
• クラスとの違いは「値型」であること

(クラスは「参照型」)
• メソッドの引数の指定方法に一部違いあり
• クラスメソッド→タイプメソッド
• クラスプロパティ→タイププロパティ
f. オプショナル型
• nilの存在(値が何も入っていない状態)

(空白、""、0はnilではない)
• nilにアクセスすると実行時エラー
• nilをうまく使うプログラミングも可能

nilは必要
オプショナル型
• 変数宣言時に「?」をつけるとオプショナル型

(変数をラップ)
• オプショナル型から変数の中身を取り出すとき
は「!」(アンラップ)
• nilの存在を気づかせてくれるのがオプショナル型
オプショナル型
オプショナル型の書き方
• オプショナル型を「!」で宣言すると

アンラップ時「!」が不要(暗黙的アンラップ)



• オプショナル型変数のプロパティに

アクセスする時に「?」を付加

(オプショナルチェーン)
g. その他の型
• Array(配列)
• Dictionary(辞書、連想配列、ハッシュ)
• Any、AnyObject(様々な型を含められる)
• さまざまな数値型
• その他新たな型をどんどん作れる仕組みあり

(クラス、構造体、列挙型、プトロコル・・・)
Array
Dictionary
型の変換
• 数値計算での型合わせ(型変換)













型の変換
• スーパークラス、サブクラス間の型合わせ

(アップキャスト、ダウンキャスト)











4. UIKit基礎
• UI(ユーザインターフェース)の役割
情報の伝達
ユーザの誘導
総合的なユーザ体験
• UIで迷ったらAppleのドキュメントに立ち返る

「iOSヒューマンインターフェースガイドライン」

https://developer.apple.com/jp/devcenter/ios/library/
documentation/userexperience/conceptual/mobilehig/
BasicsPart/BasicsPart.html#//apple_ref/doc/uid/
TP40006556-CH2-SW1
StoryboardでUI構築
• UI構築作業をStoryboardに任せる
• もう一度Object libraryでUIパーツを確認
• もう一度Attributes inspectorの項目を確認
ViewControllerグループ
• UIViewControllerクラス
• UINavigationControllerクラス
• UITableViewControllerクラス
• その他
Viewグループ
• UILabelクラス
• UIViewクラス
• UIImageViewクラス
• UITextViewクラス
• その他
Controlグループ
• UIButtonクラス
• UISegmentedControlクラス
• UITextFieldクラス
• その他
その他グループ
• UITableViewCellクラス
• UIGestureRecognizerクラス
• その他
UIKit重点項目
• UIViewControllerクラス
ライフサイクル
Navigation Controllerによる管理

遷移してきた画面(ViewController)を配列で記憶

pushで追加、popで取り出し(戻る)
• UITableViewControllerクラス
構成要素
代表的なメソッド
セルの生成方法
UIViewController
• 各メソッドの呼び出されるタイミング

http://d.hatena.ne.jp/glass-_-onion/20120405/
1333611664

など、良記事がたくさん
viewDidLoad
viewWillAppear:
viewWillDisappear:
prepareForSegue::
didReceiveMemoryWarning
UITableViewController
• 各メソッドの機能

http://blogios.stack3.net/archives/604

(UITableViewの解説)など、良記事あり
セクション数を返すメソッド
各セクションのセル数を返すメソッド
各セル表示の際に呼び出されるメソッド
各セルの高さを決定するメソッド
各セルのクリック時に呼び出されるメソッド

など
UIKitをSwiftで利用
• フレームワークのインポート
• クラスメソッドの利用
• クロージャの利用
フレームワークのインポート
• Single View ApplicationではUIKitをインポート







• さまざまなフレームワーク(Apple)

https://developer.apple.com/jp/
documentation/iOSTechOverview.pdf
クラスメソッド
• クラスメソッド・・・各インスタンスに共通の

クラスそのものの性質に関する処理
• class func メソッド名 ・・・
• フレームワーク利用の際に呼び出すことが多い
クラスメソッドの呼び出し
• インスタンスを生成せずに呼び出せる

(クラス名.メソッド名)











クロージャの利用
• クロージャ・・・関数を変数として扱う時の

関数定義部分
• Appleのクロージャ定義







Apple Inc. The Swift Programming
Language より抜粋
クロージャの利用
クロージャの利用
• フレームワーク使用の際のクロージャ利用では

簡単に考える



「メソッドの引数に直接処理を書く」

 { 引数名 in 処理 }
5. アプリ作成
• 簡単なシューティングゲームアプリを作成

https://github.com/nakasen/Codeal-Seminar-Swift
• 画面上をランダムに動くUFOをタッチする
• 1秒ごとにUFOが画面内を移動
• UFOをタッチするとUFOが爆発
• 宇宙空間、UFO、UFO爆発の画像は用意済み
• 爆発音も用意済み
アプリ作成手順1
• Single View Applicationで新規作成
• プロジェクトに画像とサウンドのファイルを追加
✦ Project Navigatorでフォルダを右クリック
✦ Add Files to ∼ で画像フォルダ、サウンド
フォルダを追加
アプリ作成手順2
• Storyboardで画面作成
✦ ViewControllerのFile inspectorで

Auto Layoutのチェックをはずし、iPhoneを選択する
✦ ViewControllerのAttributes inspectorで

Simulated MetricsのSizeを

iPhone 4.7-inchにする(iPhone6の画面サイズ)
✦ 画面全体にImageViewを配置
✦ ImageViewのAttributes inspectorで

imageを背景用宇宙空間画像に
アプリ作成手順2の図説
アプリ作成手順2の図説
アプリ作成手順3
✦ 画面上部にButtonを配置
✦ ButtonのAttributes inspector画面で

TypeをCustomに
✦ 同じくTitleの文字列「Button」を消去 
✦ State Config「Default」時のImageを

通常時のUFO画像、「Highlighted」時の
Imageをタッチした時のUFO爆発画像に
アプリ作成手順4
• Storyboardでソースコードとのひも付け
✦ Assistant EditorでButton画像に名前を設定

(UFOのIBOutlet名「target」)
✦ Assistant EditorでButtonにActionを設定

(UFOタッチ時のIBAction名「smash」)
アプリ作成手順4の図説
アプリ作成手順5
• ViewControllerクラスのプロパティを設定

(class ViewController行の直後に)





• UFOを画面内で動かすために画面サイズを取得

(viewDidLoad()メソッドの中で)



アプリ作成手順6
• タイマーから呼び出される空のメソッドを定義



• タイマー処理を設定

(viewDidLoad()メソッドの中で)









アプリ作成手順7
• タイマーから呼び出されるmove()メソッドで、

UFOをランダムに動かす処理を定義



• 移動を滑らかにするために、上記3行目を

UIViewクラスのクラスメソッドの第2引数の

クロージャに入れる





アプリ作成手順8
• 爆発音のサウンドファイル名をプロパティ名と

ひも付けする(viewDidLoad()メソッドの中で)



• UFOをタッチした時に呼び出されるIBActionで

爆発音を再生する



アプリのカスタマイズ
• 難易度を調整する
✦ 動きのスピード(タイマー呼び出しの調整)
✦ 動きの範囲(乱数発生の引数の調整)
• スコアを表示(Labelを用いて)
• ミスショットで減点(画面全体の透明ボタン)
付録:GitHub
• バージョン管理
• Gitコマンド基礎
• GitHubにアカウント作成
• GitHubでのバージョン管理
• GitHubでの分散バージョン管理
バージョン管理
• ソースプログラムのライフサイクル
• 終わりなき更新
• 過去に戻れるか
• 本体 + 差分 + 管理情報
Gitコマンド基礎
• まずはローカルから
じっくり取り組むならここ(宣伝)

http://engineer-intern.jp/archives/11957
• 3つの段階を理解
ワーキングツリー
インデックス
リポジトリ
ローカルでGitコマンド
• git config で初期設定
• git init でリポジトリ作成
取り消しは rm -r .git
• git status で状態確認
• ファイル作成(修正)でワーキングツリーへ(赤文字)
取り消しは

rm ファイル名(作成時)または

git chekout --ファイル名(修正時)
ローカルでGitコマンド
• git add でワーキングツリーからインデックスへ

(緑文字)
取り消しは

git rm -- cached ファイル名(作成時)または

git reset HEAD ファイル名(修正時)
• git commit でインデックスからリポジトリへ
取り消しは

git reset -- soft HEAD^(修正時のみ)
状態を見るGitコマンド
• git log でオブジェクトIDと日付を確認
• git diff で差分を確認
• gitk で経過を確認
GitHubにアカウント作成
• ソーシャルコーディング
• 無料のアカウントはソースが常にさらされる

(かえって勉強になる)
• 他の人のソースもじっくり見る
• git clone でリポジトリごとコピー
GitHubでのバージョン管理
• リモートリポジトリ作成(New repositoryボタン)
じっくり取り組むならここ(宣伝)

http://engineer-intern.jp/archives/12305
• 公開されることを覚悟して名前をつける
• 後々のことも考えて設定する
• git remote でリモートリポジトリの設定
• git push でリモートリポジトリにプッシュ
GitHubで分散バージョン管理
• もう一人になり切って分散開発の疑似体験
• 2人目が git clone でリポジトリコピー
• git add、git commit 後 git push
• 1人目が git pull で2人目の修正取り込み
• わざとコンフリクト発生
• git pull、修正、git push でコンフリクト解消
手っ取り早くGitHubにアップ(1)
• フォルダを作成し、そこでgit init
• プロジェクトごとそのフォルダにコピー
• git add .
• git commit -m First commit
• GitHubにアカウント作成
• git config --global user.name "あなたのユーザ名"
• git config --global user.email あなたのメールアドレス"
手っ取り早くGitHubにアップ(2)
• GitHubにログイン後、緑の「+ New repository」

ボタンを押す
• Repository name(リポジトリ名)をつけて緑の

「Create Repository」ボタンを押す

(Initialize this repository with a READMEの

 チェックは外すこと!)

(リポジトリ名はソースの中身をきちんと表すこと)
• git remote add origin https://github.com/あなたのID/あな
たのリポジトリ名.git(ここからは画面の指示に従えば良い)
• git push -u origin master

Más contenido relacionado

La actualidad más candente

Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API PlatformJohannes Ridderstedt
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaKasun Indrasiri
 
Getting sh*t done with Azure Functions (on AKS!)
Getting sh*t done with Azure Functions (on AKS!)Getting sh*t done with Azure Functions (on AKS!)
Getting sh*t done with Azure Functions (on AKS!)Rick van den Bosch
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 jbugkorea
 
Test Automation using UiPath Test Suite - Developer Circle Part-1.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-1.pdfTest Automation using UiPath Test Suite - Developer Circle Part-1.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-1.pdfDiana Gray, MBA
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hostingiFunFactory Inc.
 
Getting started with Appium 2.0
Getting started with Appium 2.0Getting started with Appium 2.0
Getting started with Appium 2.0Anand Bagmar
 
Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 2Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 2Chris Ohk
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Load Testing in Python with Locust from Zero
Load Testing in Python with Locust from ZeroLoad Testing in Python with Locust from Zero
Load Testing in Python with Locust from ZeroPrashanth Sams
 
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015DevOpsDays Tel Aviv
 
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...Redis Labs
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-AssuredMichel Schudel
 
UiPath Test Suite Overview
UiPath Test Suite OverviewUiPath Test Suite Overview
UiPath Test Suite OverviewErik Leaseburg
 
Applitools Visual AI Overview.pdf
Applitools Visual AI Overview.pdfApplitools Visual AI Overview.pdf
Applitools Visual AI Overview.pdfApplitools
 

La actualidad más candente (20)

Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
 
Getting sh*t done with Azure Functions (on AKS!)
Getting sh*t done with Azure Functions (on AKS!)Getting sh*t done with Azure Functions (on AKS!)
Getting sh*t done with Azure Functions (on AKS!)
 
UiPath Test Suite
UiPath Test Suite UiPath Test Suite
UiPath Test Suite
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란
 
Test Automation using UiPath Test Suite - Developer Circle Part-1.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-1.pdfTest Automation using UiPath Test Suite - Developer Circle Part-1.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-1.pdf
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
 
Getting started with Appium 2.0
Getting started with Appium 2.0Getting started with Appium 2.0
Getting started with Appium 2.0
 
Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 2Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 2
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Load Testing in Python with Locust from Zero
Load Testing in Python with Locust from ZeroLoad Testing in Python with Locust from Zero
Load Testing in Python with Locust from Zero
 
Detox Mobile Automation
Detox Mobile AutomationDetox Mobile Automation
Detox Mobile Automation
 
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015
 
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-Assured
 
UiPath Test Suite Overview
UiPath Test Suite OverviewUiPath Test Suite Overview
UiPath Test Suite Overview
 
E2 e test with testcafe
E2 e test with testcafeE2 e test with testcafe
E2 e test with testcafe
 
Applitools Visual AI Overview.pdf
Applitools Visual AI Overview.pdfApplitools Visual AI Overview.pdf
Applitools Visual AI Overview.pdf
 

Destacado

OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門irix_jp
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1聡 中川
 
Briancheong resume
Briancheong resumeBriancheong resume
Briancheong resumeshakeela1992
 
AW 学び続ける力 スライド
AW 学び続ける力 スライドAW 学び続ける力 スライド
AW 学び続ける力 スライド聡 中川
 
Recruitment slides
Recruitment slidesRecruitment slides
Recruitment slidesshakeela1992
 
Desfile enscoop 2011
Desfile enscoop 2011Desfile enscoop 2011
Desfile enscoop 2011AgostinaBerni
 
Logik 1
Logik 1Logik 1
Logik 1bsnnsb
 
Women Smokers is More Risk from Colon Cancer - Springhill Medical
Women Smokers is More Risk from Colon Cancer - Springhill MedicalWomen Smokers is More Risk from Colon Cancer - Springhill Medical
Women Smokers is More Risk from Colon Cancer - Springhill Medicalaleidadominik
 
งานคู่ 9 16
งานคู่ 9 16งานคู่ 9 16
งานคู่ 9 16'Fixation Tar
 

Destacado (20)

Study Swift
Study Swift Study Swift
Study Swift
 
Swift入門おさらい
Swift入門おさらいSwift入門おさらい
Swift入門おさらい
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
 
Briancheong resume
Briancheong resumeBriancheong resume
Briancheong resume
 
AW 学び続ける力 スライド
AW 学び続ける力 スライドAW 学び続ける力 スライド
AW 学び続ける力 スライド
 
Recruitment slides
Recruitment slidesRecruitment slides
Recruitment slides
 
Math54 o n
Math54 o nMath54 o n
Math54 o n
 
ปี2553
ปี2553ปี2553
ปี2553
 
Engels cricket
Engels cricketEngels cricket
Engels cricket
 
Gat2
Gat2Gat2
Gat2
 
ปี2554
ปี2554ปี2554
ปี2554
 
0 kscl de_chung
0 kscl de_chung0 kscl de_chung
0 kscl de_chung
 
Desfile enscoop 2011
Desfile enscoop 2011Desfile enscoop 2011
Desfile enscoop 2011
 
เฉลย2554
เฉลย2554เฉลย2554
เฉลย2554
 
Logik 1
Logik 1Logik 1
Logik 1
 
Women Smokers is More Risk from Colon Cancer - Springhill Medical
Women Smokers is More Risk from Colon Cancer - Springhill MedicalWomen Smokers is More Risk from Colon Cancer - Springhill Medical
Women Smokers is More Risk from Colon Cancer - Springhill Medical
 
Brillen en lenzen
Brillen en lenzenBrillen en lenzen
Brillen en lenzen
 
งานคู่ 9 16
งานคู่ 9 16งานคู่ 9 16
งานคู่ 9 16
 
Android part1
Android part1Android part1
Android part1
 

Similar a Swift入門

Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲームSwiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム聡 中川
 
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1Kaname Noto
 
フロントエンド開発環境
フロントエンド開発環境フロントエンド開発環境
フロントエンド開発環境Masaki Kawaguchi
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するtoyship
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない今城 善矩
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーImamura Masayuki
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会codeal
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能Shingo Sato
 
iOSハンズオントレーニング Uikit編
iOSハンズオントレーニング Uikit編iOSハンズオントレーニング Uikit編
iOSハンズオントレーニング Uikit編聡 大久保
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Tomohiro Kumagai
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて佐藤 俊太郎
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①Nagamine Hiromasa
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介Fumiya Sakai
 
WKWebViewとUIWebView
WKWebViewとUIWebViewWKWebViewとUIWebView
WKWebViewとUIWebViewYuki Hirai
 
iOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckiniOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckinKosuke Ogawa
 

Similar a Swift入門 (20)

Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲームSwiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
 
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
フロントエンド開発環境
フロントエンド開発環境フロントエンド開発環境
フロントエンド開発環境
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない
 
iOSでMVVM入門
iOSでMVVM入門iOSでMVVM入門
iOSでMVVM入門
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能
 
iOSハンズオントレーニング Uikit編
iOSハンズオントレーニング Uikit編iOSハンズオントレーニング Uikit編
iOSハンズオントレーニング Uikit編
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 
MVCもやもや話
MVCもやもや話MVCもやもや話
MVCもやもや話
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて
 
Keep a diary
Keep a diaryKeep a diary
Keep a diary
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
 
WKWebViewとUIWebView
WKWebViewとUIWebViewWKWebViewとUIWebView
WKWebViewとUIWebView
 
iOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckiniOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckin
 

Más de 聡 中川

先端技術 プレテスト
先端技術 プレテスト先端技術 プレテスト
先端技術 プレテスト聡 中川
 
先端技術 No sql
先端技術 No sql先端技術 No sql
先端技術 No sql聡 中川
 
先端技術 Hft
先端技術 Hft先端技術 Hft
先端技術 Hft聡 中川
 
先端技術 データサイエンティスト
先端技術 データサイエンティスト先端技術 データサイエンティスト
先端技術 データサイエンティスト聡 中川
 
先端技術トピックス 言語ランキング
先端技術トピックス 言語ランキング先端技術トピックス 言語ランキング
先端技術トピックス 言語ランキング聡 中川
 
先端技術 競技プログラミング
先端技術 競技プログラミング先端技術 競技プログラミング
先端技術 競技プログラミング聡 中川
 
先端技術 スーパーコンピュータ
先端技術 スーパーコンピュータ先端技術 スーパーコンピュータ
先端技術 スーパーコンピュータ聡 中川
 
先端技術 セキュリティ最前線
先端技術 セキュリティ最前線先端技術 セキュリティ最前線
先端技術 セキュリティ最前線聡 中川
 
先端技術 関数型プログラミング
先端技術 関数型プログラミング先端技術 関数型プログラミング
先端技術 関数型プログラミング聡 中川
 
先端技術 気象とコンピュータ
先端技術 気象とコンピュータ先端技術 気象とコンピュータ
先端技術 気象とコンピュータ聡 中川
 
先端技術 量子コンピュータ
先端技術 量子コンピュータ先端技術 量子コンピュータ
先端技術 量子コンピュータ聡 中川
 
先端技術ガイダンス
先端技術ガイダンス先端技術ガイダンス
先端技術ガイダンス聡 中川
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ聡 中川
 
iOSアプリ制作のためのObjective-C入門
iOSアプリ制作のためのObjective-C入門iOSアプリ制作のためのObjective-C入門
iOSアプリ制作のためのObjective-C入門聡 中川
 

Más de 聡 中川 (14)

先端技術 プレテスト
先端技術 プレテスト先端技術 プレテスト
先端技術 プレテスト
 
先端技術 No sql
先端技術 No sql先端技術 No sql
先端技術 No sql
 
先端技術 Hft
先端技術 Hft先端技術 Hft
先端技術 Hft
 
先端技術 データサイエンティスト
先端技術 データサイエンティスト先端技術 データサイエンティスト
先端技術 データサイエンティスト
 
先端技術トピックス 言語ランキング
先端技術トピックス 言語ランキング先端技術トピックス 言語ランキング
先端技術トピックス 言語ランキング
 
先端技術 競技プログラミング
先端技術 競技プログラミング先端技術 競技プログラミング
先端技術 競技プログラミング
 
先端技術 スーパーコンピュータ
先端技術 スーパーコンピュータ先端技術 スーパーコンピュータ
先端技術 スーパーコンピュータ
 
先端技術 セキュリティ最前線
先端技術 セキュリティ最前線先端技術 セキュリティ最前線
先端技術 セキュリティ最前線
 
先端技術 関数型プログラミング
先端技術 関数型プログラミング先端技術 関数型プログラミング
先端技術 関数型プログラミング
 
先端技術 気象とコンピュータ
先端技術 気象とコンピュータ先端技術 気象とコンピュータ
先端技術 気象とコンピュータ
 
先端技術 量子コンピュータ
先端技術 量子コンピュータ先端技術 量子コンピュータ
先端技術 量子コンピュータ
 
先端技術ガイダンス
先端技術ガイダンス先端技術ガイダンス
先端技術ガイダンス
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
 
iOSアプリ制作のためのObjective-C入門
iOSアプリ制作のためのObjective-C入門iOSアプリ制作のためのObjective-C入門
iOSアプリ制作のためのObjective-C入門
 

Swift入門