SlideShare a Scribd company logo
1 of 9
Popoverを使うとiPhone/iPad
の開発フローを簡単化できる
@hsylife 星野佑太
2016年11月29日 potatotips #35@株式会社トレ
タ
1
自己紹介
星野佑太
メモ電卓(ge-calc) 72万DL
SwiftyPickerPopover
2
デモ
4
Popoverの利点
UX: 指の動きが小さい
開発: デザイン・実装がiPhone/iPadで
共通
5
Popover
もっと使えるのではないか?
SwiftyPickerPopoverを使うと、一行で
ピッカーをポップオーバースタイルで
出せる
6
実装方法の比較
7
古い方法
8
新しい方法
9
より詳しく
実装比較のデモプロジェクト
HowToDisplayPopover
Qiita記事: Popoverの2つの実装方法を比
較する
10

More Related Content

Viewers also liked

Hot startups beer bash tokyo #6 SHARE0 LT
Hot startups beer bash tokyo #6 SHARE0 LTHot startups beer bash tokyo #6 SHARE0 LT
Hot startups beer bash tokyo #6 SHARE0 LTtagurin
 
Mapkitframework io9week
Mapkitframework io9weekMapkitframework io9week
Mapkitframework io9weekYuki Hirai
 
サンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングサンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングYikei Lu
 
Rubyist のフィリピン留学
Rubyist のフィリピン留学Rubyist のフィリピン留学
Rubyist のフィリピン留学Hideki Ohkubo
 
freeeセミナー資料(一部)
freeeセミナー資料(一部)freeeセミナー資料(一部)
freeeセミナー資料(一部)Takeo Hiromasu
 
SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携API Meetup
 
OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発今城 善矩
 
可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswiftTomohiro Kumagai
 
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみたUIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみたKosuke Ogawa
 
Jenkins Wars Episode 2
Jenkins Wars Episode 2Jenkins Wars Episode 2
Jenkins Wars Episode 2sters
 
楽しいエンジニアライフを送るために重要なこと
楽しいエンジニアライフを送るために重要なこと楽しいエンジニアライフを送るために重要なこと
楽しいエンジニアライフを送るために重要なことKoichiro Nishijima
 
NSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansaiNSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansaiTomohiro Kumagai
 
クルマ情報を扱うREST APIの仕様と課題について
クルマ情報を扱うREST APIの仕様と課題についてクルマ情報を扱うREST APIの仕様と課題について
クルマ情報を扱うREST APIの仕様と課題についてAPI Meetup
 
勉強会に行こう
勉強会に行こう勉強会に行こう
勉強会に行こうKosuke Ogawa
 
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うことFumiya Sakai
 
Flow, Mortar and Dagger 2 のTIPS
Flow, Mortar and Dagger 2 のTIPSFlow, Mortar and Dagger 2 のTIPS
Flow, Mortar and Dagger 2 のTIPSTaiju Muto
 
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるBrian Gesiak
 
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Yuuki Takezawa
 
テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用Tetsuya Kouno
 
zend-expressiveを触ってみよう
zend-expressiveを触ってみようzend-expressiveを触ってみよう
zend-expressiveを触ってみようYuuki Takezawa
 

Viewers also liked (20)

Hot startups beer bash tokyo #6 SHARE0 LT
Hot startups beer bash tokyo #6 SHARE0 LTHot startups beer bash tokyo #6 SHARE0 LT
Hot startups beer bash tokyo #6 SHARE0 LT
 
Mapkitframework io9week
Mapkitframework io9weekMapkitframework io9week
Mapkitframework io9week
 
サンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングサンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミング
 
Rubyist のフィリピン留学
Rubyist のフィリピン留学Rubyist のフィリピン留学
Rubyist のフィリピン留学
 
freeeセミナー資料(一部)
freeeセミナー資料(一部)freeeセミナー資料(一部)
freeeセミナー資料(一部)
 
SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携SMBのバックオフィス業務を最適化するAPI連携
SMBのバックオフィス業務を最適化するAPI連携
 
OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発
 
可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift可変値変数 var を極力避けることを模索するための事前知識 #cswift
可変値変数 var を極力避けることを模索するための事前知識 #cswift
 
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみたUIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
 
Jenkins Wars Episode 2
Jenkins Wars Episode 2Jenkins Wars Episode 2
Jenkins Wars Episode 2
 
楽しいエンジニアライフを送るために重要なこと
楽しいエンジニアライフを送るために重要なこと楽しいエンジニアライフを送るために重要なこと
楽しいエンジニアライフを送るために重要なこと
 
NSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansaiNSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansai
 
クルマ情報を扱うREST APIの仕様と課題について
クルマ情報を扱うREST APIの仕様と課題についてクルマ情報を扱うREST APIの仕様と課題について
クルマ情報を扱うREST APIの仕様と課題について
 
勉強会に行こう
勉強会に行こう勉強会に行こう
勉強会に行こう
 
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
実装とアプリ開発と独学でiOSアプリ開発と向き合うこと
 
Flow, Mortar and Dagger 2 のTIPS
Flow, Mortar and Dagger 2 のTIPSFlow, Mortar and Dagger 2 のTIPS
Flow, Mortar and Dagger 2 のTIPS
 
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
 
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
 
テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用
 
zend-expressiveを触ってみよう
zend-expressiveを触ってみようzend-expressiveを触ってみよう
zend-expressiveを触ってみよう
 

Recently uploaded

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (8)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

Editor's Notes

  1. はじめまして。星野佑太です。普段は、7年前に創業したiOSアプリ開発会社で、代表取締役iOSエンジニア。iOS/Watchアプリのクライアント側の開発を自社開発/受託開発。メモ電卓(ge-calc)は72万DL。メーカーの社内業務アプリやIoTスタートアップのwatchアプリのプロトタイピングなどの実績があります。http://appstore.com/genieinc フォームを高速で作るためのOSS・Eurekaのカスタマイズを業務でやりました。ちなみに、画面周りでは最近、こういう本がおすすめです。 個人的に、最近、SwiftyPickerPopoverというPopoverの形でPickerを表示させるライブラリをGitHubで公開しました。まだ180スターですが、プルリクを何度かいただいていて、嬉しかったです。
  2. どういうものか、デモをお見せします。iPadでもiPhoneでもPopoverスタイルでpickerを出せるというUIライブラリです。Swift 2.3/3の両方に対応。pods, カッセージに対応。
  3. このOSSを考えているなかで、改めてPopoverの利点に気づきました。Popoverを使うとiPhone/iPadのワークフローに簡単化できるという話です。 どういうことかというと、iPhoneの場合も同じUIで扱えるのが設計上の大きな違いです。このため、UIデザインや実装を1通りで済ますことができるようになります。
  4. Popoverを積極的に活用しているケースが少ないようですが、ActionSheetと比較して指の動き的に有利である
  5. どう実装が違ったのか? 従来iOS9までは、UIPopoverControllerクラスに依拠して、中身のViewControllerを入れたUIPopoverControllerに表示させるという発想をとっていました。しかし、iOS10でそのクラスが廃止されたので、新しい方法 をとる必要が出てきました。SwiftyPickerPopoverでは、中身のVCのpopoverPresentationControllerに条件をセットして、表示元のVCに表示させる方法をとっています。