SlideShare a Scribd company logo
1 of 18
Download to read offline
Swiftビギナーズ倶楽部 第2回 
はじめてのIOSアプリ開発
Self-Intoroduction 
• スマホアプリ開発初心者(Objective-C、Swift全く未経験) 
• アプリケーションエンジニア(LAMP / Java / Oracle) 
• WordPressコミュニティへの参加するのが好き 
• JavaScriptが好き / Railsも触り始めた^^v
Today's Agenda 
• 初めてアプリ作ったよ♪ 
• Interface Builderでオブジェクト作成 
• 新規作成時に生成されるイベント 
• Optional value(オプショナル値) 
• override(オーバーライド)
初めてのiOSアプリ 
5秒でヒット! 
ドットインストール 
「iOSでストップウォッチを作ろう (全9回)」 
を参考に機能拡張してみました。 
Let's Demo! 
PREMIUM
ビギナーの歩み方 
サンプルコードを少しずつ変更して、 
機能を追加していく。
疑問を解明しよう! 
動いたは動いたが・・・ 
不思議がいっぱい!!
オブジェクトの作り方 
Interface Builderで作ると 
@IBOutlet weak var timerLabel: UILabel! 
・「IB」は、Interface Builderのこと。 
 オブジェクトと、プログラムの変数をつなぎ合わせる。 
・「weak」は、弱い参照の意味で、所有権がない??? 
 とりあえず、IBOutlet な項目は、基本weak がよいみたい。
オブジェクトの作り方 
Interface Builderで作ると 
@IBAction func startTimer(sender: AnyObject) { 
// ユーザーの操作による、処理を実装する 
} 
・ユーザーが行う操作に、メソッドをつなぎ合わせる。 
・ユーザーの操作によって、実行される。
まだまだ、疑問がいっぱい 
気になってしょうがないの、、、これ! 
@IBOutlet weak var timerLabel: UILabel! 
var startTime: NSTimeInterval? = nil 
これも!!
なんてググれば 
いいんだー???
Optional value(オプショナル値) 
・Swfitでは、通常の変数に「nil」は代入できない。 
・「nil」は、有効なデータが格納されていない、 
 値が代入されていない状態。 
・Swiftで実行時に「nil」が代入可能なのは、   
Optional Value を使っている場合のみ。 
補足 
空文字(ブランク)と、「nil」は違う状態。
Optional value(オプショナル値) 
@IBOutlet weak var timerLabel: UILabel! 
var startTime: NSTimeInterval? = nil 
・「!」を付けた場合:変数の中身が「nil」の場合に、 
           実行時にエラーになる。 
・「?」を付けた場合:変数の中身が「nil」の場合でも、 
エラーにはならない。
なぜ、こんな機能が? 
・開発時のバグは、「nil」の扱いを明確せず、適切な 
 実装をしないことによってバグが発生することがある。 
Swiftでは 
・「optional value」の機能によって、開発者がコードを 
実行する前に、「nil」の扱いを意識することによって、 
 安全性の高いプログラムが実装できる。
まだ、疑問あるよ! 
・アプリ起動後に、1度だけ実行される。 
override func viewDidLoad() { 
super.viewDidLoad() 
} 
・メモリが不足な状態に実行される。 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
} 
プログラム実行時に、自動的に起こるイベントは、 
この他にも、たくさんあります。 
補足
もう、一個疑問!! 
override func viewDidLoad() { 
super.viewDidLoad() 
} 
override(オーバーライド) 
って何? 
・親クラスのメソッドの替わり(上書きして)に、 
自分のメソッドを実行できる。
親クラスって何??? 
class ViewController: UIViewController { 
@IBOutlet weak var timerLabel: UILabel! 
override func viewDidLoad() { 
super.viewDidLoad() 
} 
} 
このクラスのこと 
「super」は、親メソッドを指す。 
親のviewDidLoadメソッドを実行。 
・「viewDidLoad」メソッドは、新規作成後に最初から書かれている。 
・この処理がないと、初期設定が行えなくなってしまうので特別。
Swiftビギナーズ倶楽部は 
わからないー! 
だれか教えてー♪ 
わからないことは周りの人に聞いて、気軽に教え合って、 
皆の疑問を1つでも解決して、楽しんで開発していきましょう。
Let's study together! 
Thank you :)

More Related Content

What's hot

【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
leverages_event
 

What's hot (20)

Swift afterbeginner
Swift afterbeginnerSwift afterbeginner
Swift afterbeginner
 
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
 
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布Xcode7時代のアプリ配布
Xcode7時代のアプリ配布
 
自分用プラグインのススメ
自分用プラグインのススメ自分用プラグインのススメ
自分用プラグインのススメ
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
ギルドワークスの現場コーチ
ギルドワークスの現場コーチギルドワークスの現場コーチ
ギルドワークスの現場コーチ
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
 
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
2015 12-19-ruby rails
2015 12-19-ruby rails2015 12-19-ruby rails
2015 12-19-ruby rails
 
2015 07-04-ruby rails
2015 07-04-ruby rails2015 07-04-ruby rails
2015 07-04-ruby rails
 
AngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSとAngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSと
 
2016 02-25-crawler-study-01
2016 02-25-crawler-study-012016 02-25-crawler-study-01
2016 02-25-crawler-study-01
 
2016 02-09-co-edo lt
2016 02-09-co-edo lt2016 02-09-co-edo lt
2016 02-09-co-edo lt
 
5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)
 
React native vol3
React native vol3React native vol3
React native vol3
 

Viewers also liked

iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
Yoshinori Kobayashi
 

Viewers also liked (16)

Swiftビギナーズ勉強会 第一回@Co-Edo
Swiftビギナーズ勉強会 第一回@Co-EdoSwiftビギナーズ勉強会 第一回@Co-Edo
Swiftビギナーズ勉強会 第一回@Co-Edo
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
 
Swiftオープンソース化ってなんですか?
Swiftオープンソース化ってなんですか?Swiftオープンソース化ってなんですか?
Swiftオープンソース化ってなんですか?
 
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)
 
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみよう
 
Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!
 
iphoneアプリ開発 その1:導入〜初アプリ
iphoneアプリ開発 その1:導入〜初アプリiphoneアプリ開発 その1:導入〜初アプリ
iphoneアプリ開発 その1:導入〜初アプリ
 
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
Swift知識ゼロから3週間ですこし凝った地図アプリを作った話
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
 
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidevSwift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
 
めざせ!書籍出版! 「これからはじめるiPhoneアプリ開発入門」 執筆陣に聞いてみよう! at 貸会議室6F
めざせ!書籍出版! 「これからはじめるiPhoneアプリ開発入門」 執筆陣に聞いてみよう! at 貸会議室6Fめざせ!書籍出版! 「これからはじめるiPhoneアプリ開発入門」 執筆陣に聞いてみよう! at 貸会議室6F
めざせ!書籍出版! 「これからはじめるiPhoneアプリ開発入門」 執筆陣に聞いてみよう! at 貸会議室6F
 
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
iPhoneアプリ開発講座:Swiftビギナーズハンズオンセミナー|iOSアプリを作ってみたい、すべての初心者が、体験しながら学べるハンズオンセミナーです!
 
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidevSwift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
 

Similar to Swiftビギナーズ倶楽部 vol.2

第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
codeal
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
 

Similar to Swiftビギナーズ倶楽部 vol.2 (20)

20141220_iOS8マルチデバイス対応(Size Classes編)
20141220_iOS8マルチデバイス対応(Size Classes編)20141220_iOS8マルチデバイス対応(Size Classes編)
20141220_iOS8マルチデバイス対応(Size Classes編)
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
シェイクを検知して学ぼう、モーションイベント!
シェイクを検知して学ぼう、モーションイベント!シェイクを検知して学ぼう、モーションイベント!
シェイクを検知して学ぼう、モーションイベント!
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
アウトプットのすすめ
アウトプットのすすめアウトプットのすすめ
アウトプットのすすめ
 
iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話
 
Swiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-EdoSwiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-Edo
 
Tmcn Leap Motion
Tmcn Leap MotionTmcn Leap Motion
Tmcn Leap Motion
 
Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207
 
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
 
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
 

More from Kanako Kobayashi

Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Kanako Kobayashi
 
Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!
Kanako Kobayashi
 
WordPressの構造を理解しよう
WordPressの構造を理解しようWordPressの構造を理解しよう
WordPressの構造を理解しよう
Kanako Kobayashi
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
 
oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!
Kanako Kobayashi
 

More from Kanako Kobayashi (11)

React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
 
Xcodeのデバッグを極めよう!
Xcodeのデバッグを極めよう!Xcodeのデバッグを極めよう!
Xcodeのデバッグを極めよう!
 
Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!
 
WordPressの構造を理解しよう
WordPressの構造を理解しようWordPressの構造を理解しよう
WordPressの構造を理解しよう
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
 
oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!
 
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
 
Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計
 
railsはじめの一歩
railsはじめの一歩railsはじめの一歩
railsはじめの一歩
 
Gulp De wordpress in WordBench
Gulp De wordpress in WordBenchGulp De wordpress in WordBench
Gulp De wordpress in WordBench
 

Swiftビギナーズ倶楽部 vol.2