Submit Search
Upload
Optional型の簡単な説明
•
0 likes
•
759 views
Fumiya Sakai
Follow
1/10 Swiftビギナーズ倶楽部にて発表を行った際のプレゼン資料になります。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 9
Download now
Download to read offline
Recommended
Swift 3.0 の新しい機能(のうちの9つ)
Swift 3.0 の新しい機能(のうちの9つ)
Tomohiro Kumagai
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
Fumiya Sakai
デザイナーだった記憶を忘れないために自分なりに気をつけていること
デザイナーだった記憶を忘れないために自分なりに気をつけていること
Fumiya Sakai
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
Fumiya Sakai
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
Fumiya Sakai
あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)
Fumiya Sakai
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Fumiya Sakai
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
Fumiya Sakai
Recommended
Swift 3.0 の新しい機能(のうちの9つ)
Swift 3.0 の新しい機能(のうちの9つ)
Tomohiro Kumagai
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
Fumiya Sakai
デザイナーだった記憶を忘れないために自分なりに気をつけていること
デザイナーだった記憶を忘れないために自分なりに気をつけていること
Fumiya Sakai
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
Fumiya Sakai
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
ライブラリでよくある動きをUIKitのみでDIYしてみる(Part1)
Fumiya Sakai
あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)
Fumiya Sakai
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Fumiya Sakai
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
UIPageViewControllerとContainerViewでこんな見た目を実現するTips
Fumiya Sakai
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
Fumiya Sakai
LaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtips
Fumiya Sakai
30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡
Fumiya Sakai
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
Fumiya Sakai
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
Fumiya Sakai
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
Fumiya Sakai
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
Fumiya Sakai
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
Fumiya Sakai
Swift Optional without Syntax Sugar
Swift Optional without Syntax Sugar
Hisakuni Fujimoto
デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3
Fumiya Sakai
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
Fumiya Sakai
時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくる
Fumiya Sakai
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
Fumiya Sakai
ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)
Fumiya Sakai
ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
Fumiya Sakai
RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩
Fumiya Sakai
Core dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめ
Fumiya Sakai
デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)
Fumiya Sakai
IoTの原点
IoTの原点
Shinichi Takahashi
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
Fumiya Sakai
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
Fumiya Sakai
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
Fumiya Sakai
More Related Content
Similar to Optional型の簡単な説明
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
Fumiya Sakai
LaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtips
Fumiya Sakai
30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡
Fumiya Sakai
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
Fumiya Sakai
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
Fumiya Sakai
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
Fumiya Sakai
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
Fumiya Sakai
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
Fumiya Sakai
Swift Optional without Syntax Sugar
Swift Optional without Syntax Sugar
Hisakuni Fujimoto
デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3
Fumiya Sakai
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
Fumiya Sakai
時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくる
Fumiya Sakai
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
Fumiya Sakai
ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)
Fumiya Sakai
ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
Fumiya Sakai
RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩
Fumiya Sakai
Core dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめ
Fumiya Sakai
デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)
Fumiya Sakai
IoTの原点
IoTの原点
Shinichi Takahashi
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
Fumiya Sakai
Similar to Optional型の簡単な説明
(20)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
LaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtips
30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
Swift Optional without Syntax Sugar
Swift Optional without Syntax Sugar
デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
時間制限付きクイズアプリをつくる
時間制限付きクイズアプリをつくる
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー(プレゼン用)
ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩
Core dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめ
デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)
IoTの原点
IoTの原点
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
More from Fumiya Sakai
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
Fumiya Sakai
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
Fumiya Sakai
少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために
Fumiya Sakai
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Fumiya Sakai
2022年の抱負とここ数年続けてきたインプット
2022年の抱負とここ数年続けてきたインプット
Fumiya Sakai
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
Fumiya Sakai
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
Fumiya Sakai
最近の業務やAndroid関連のインプットと振り返り
最近の業務やAndroid関連のインプットと振り返り
Fumiya Sakai
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
Fumiya Sakai
少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発
Fumiya Sakai
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
Fumiya Sakai
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
Fumiya Sakai
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
Fumiya Sakai
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
Fumiya Sakai
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
Fumiya Sakai
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
Fumiya Sakai
アプリ開発におけるテキスト装飾のアイデア集
アプリ開発におけるテキスト装飾のアイデア集
Fumiya Sakai
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
Fumiya Sakai
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
Fumiya Sakai
More from Fumiya Sakai
(20)
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
2022年の抱負とここ数年続けてきたインプット
2022年の抱負とここ数年続けてきたインプット
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
最近の業務やAndroid関連のインプットと振り返り
最近の業務やAndroid関連のインプットと振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
アプリ開発におけるテキスト装飾のアイデア集
アプリ開発におけるテキスト装飾のアイデア集
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
Optional型の簡単な説明
1.
Swiftでよくある”!”や”?”について ∼ 意外と詰まってしまった体験談含む ∼
2.
自己紹介 酒井文也(さかい ふみや) 今までの仕事履歴(本業) 石川県金沢市生まれ・東京(大塚)住まいの30歳 本業は某口コミサイトのRails使いです 26歳∼30歳:PHP /
Rubyプログラマ 23歳∼25歳:Webデザイナー兼ディレクター Objective-C歴:3month Swift歴:1month 趣味:シルバーアクセサリー集め・スイーツ作り・開発 女子向けと食べ物系コンテンツのお仕事が多い… → まだまだ初心者っす。。
3.
まずは概要説明 “!”や”?”って一体何者なんだい? 何のために彼らはいるの? 正式名称は以下の通り ・”?” → オプショナル(Optional)型 ・”!”
→ 暗黙的開示オプショナル(Implicitly Unwrapped Optional)型 ・変数にnil(扱うべき値が存在しない)が入っているものは使ってはいけない アプリのクラッシュ防止 ・nilを通常の値と誤って使うことを防ぐためのもの こんな感じの記述を見かけませんか? ・let str : String? → デフォルト値はnil ・let str : String → こっちはただ単に定数の入れ物を作っただけ
4.
”?” オプショナル型 ○○型らしいけど、値がなくって○○型じゃないかも… どんな時に現れる? nilが入っても良い 例)tableViewのセル内のラベル セルの実体 ・Xcode6 beta7以降ではUITableViewCellの ほぼ全てのプロパティが影響箇所 <補足>
5.
”!” 暗黙的開示オプショナル型 nilかもしれないけど、実際にnilだと困る… どんな時に現れる? nilが入らないことが保証されている 例)IBOutletで作成したプロパティ 例)Objective-Cでから渡される値 ※SwiftからObjective-C ← IBOutletで配置したラベルとボタン SwiftとObjective-Cは共存可能 (注意)nil
が入った値に対して ! を適用してしまうとアプリがクラッシュする → 必ずチェックをするようにしなければならない。
6.
実際にありうる場合はいつ? JSONやXML等の外部のAPIとの連携時 ちなみに作ったのは右のやつです ・データによってはそもそもXML要素のタグないしは、 JSONの要素がない場合だってある。 Swiftの変数にnilが入ってしまう可能性がある ・そのときに遭遇したこと Optionalを編集したら、別のところでエラー ・このサンプルはXMLをUITableViewで表示するサンプルです (次回あたり解説します?) 覚えたての時ってやっぱタイミングわからん ・そのときに感じたこと
7.
では実際に遭遇したときは? 慣れないうちは Xcodeのエラーメッセージにあやかる ・XCodeがある程度推測してくれるのであまり怖がらなくって大丈夫 ・自分も今でも結構あやかっております(汗) 一応こんな風にXcodeがヒントをくれる → NSXMLParser(contentsOfURL:
feedUrl)! に修正 ざっくりというと、「“!”か”??”をつけなきゃいかんのでは」と言っている
8.
最初は考えすぎなくてもよい Xcodeにあやかりながら一歩一歩 http://qiita.com/bonegollira/items/d900f580e23233b7b23b http://ja.wikipedia.org/wiki/Swift_(%E3%83%97%E3%83%AD %E3%82%B0%E3%83%A9%E3%83%9F %E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E) 参考にしたURL Playgroundを活用 Qiitaなどを調べて先人の考察を参考に http://qiita.com/tottokotkd/items/931dc4319978731ac128 http://qiita.com/fuhi1983/items/b14ce976cfba486439a9 http://blog.lebe.jp/post/96959669140/swift-beta7 参考にした書籍:詳解Swift
9.
質疑応答 ※なんでもOKです!(参考書籍や勉強方法等も含む) プライベートなことでも可能な限りお答えします。 前回プレゼンからのアップデート情報 ・前回作成しましたカレンダーサンプルにマルチデバイス対応しました 今後のプレゼン予定について ・SwiftでXMLデータをUITableViewに表示してみよう ・SwiftでCoreDataを使ってみよう 概念 /
サンプル / 活用 ・こういう見た目はどうつくるの?よくある美しいUIづくり (Objective-C) ご意見・ご要望もお気軽によろしくお願いします!
Download now