SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
iOSアプリの設計で
BaseViewControllerは作りたくない
株式会社キュリオシティソフトウェア
今城善矩(@yimajo)
何の話か
【前提】
iOSアプリ開発では
基本的にUIViewControllerを
各画面用に継承して利用する
UIViewController
ViewController ViewController
その際、アプリ独自の処理を実装するため
にBaseViewControllerを作って各画面用の
ViewControllerが継承して使うことがある
UIViewController
BaseViewController
ViewController ViewController
これはViewControllerのライフサイク
ルに応じて勝手に動作する
親クラス設計している
• 各画面共通の処理をライフサイクルに合
わせてまとめられる
• 各画面ごとの実装に集中できる
このやり方は効率的!
会場の皆さんに質問です
BaseViewController/BaseActivityを
よく作るという方
挙手でお知らせください
(・ω・)ノノノノノシ (´∀`)ノノノノノシ
追記: 会場ではiOS 3人,Android 12人ぐらい居ました
でも
このやり方って自分は経験上良く
ない場面に遭遇することが多く
正解とかベストプラクティス
がどうとかじゃなく
継承という仕組みを
開発効率や問題解決
のために使うと
アプリの仕様変更がある際に
影響範囲を大きくしてしまう
画面数多くなる画面数少ない
BaseViewController
メリット
勝手なイメージ
BaseViewController
デメリット
しかし
ケースバイケースのような気
もするし
好みの問題のような気がしな
くもない
ずっとモヤモヤしてたので
先にQiitaで公開して
整理しフィードバック集めてみた
http://qiita.com/yimajo/items/8ef1850e1362bd3bf3d8
反応(2015.1.14現在)
• 閲覧数4760
• ストック数 98
• はてブ 86
• Tweet 94
• コメント 1
2015年元旦に
おとそ気分でQiitaに投稿してみ
たけど案外反応があったので
正月三が日は
エゴサーチして過ごした
具体的に書かれている意見を
集めた
“わかる。AndroidのBaseActivityも同じ問題起きま
すね”
“ぼくもBVC作るのはあまり好きじゃない。デメ
リットはここにあげたことのほか、そのプロジェ
クトに対する学習コストが増えるってのもある
とおもう”
“私もBaseViewControllerは反対。たいていBaseを
つかわなくてすむ方法はあるし、プロジェクト
規模が大きくなるにつれ、弊害が増える”
“BaseViewControllerのようなものをちゃんと設計
して作るのは難しいので、世の中の
BaseViewControllerはたいていダメな実装になっ
ていて、そしてクラスの性格上プロジェクト全
体でそれが使われるので後から直せない、とい
うのが私の見てきたパターン”
“まぁ改善する用にお願いされるプロジェクトと
いうのはそもそも要件が右行ったり左行ったり
曲がるプロジェクトなので、それと相性が致命
的に悪いだけとも言えます”
“確かにBaseViewControllerとかやると簡単に破綻
していくな。継承すると不都合が出るケースは
あるだろうし、そうして継承しないクラスが出
ると、それはBaseでも何でもなくなる。したら
名付けをBaseじゃなくて、具体的な機能の名前
にした方が良さそうね”
“BaseViewControllerとか
UIViewController+Commonは甘え”
フィードバックありがとう
ございました
フィードバックの内容を読んだ
感じでは…
BaseViewController 使わないで済む
方法について検討し
実行した上の意見じゃないかと思う
ここで
継承を使ったViewController設計が
実装に応じて進化していく例を
お見せしよう
UIViewController
BaseViewController
VC VC VC
「私の戦闘力は53万です…ですが、もちろんフルパワーで
あなたと戦う気はありませんからご心配なく…」
UIViewController
BaseViewController
A
VC
BaseViewController
B
VC VC VC
「何しろ力があり余っているんだ。ちょっとやりすぎてしまうか
もしれん。くっくっく…戦闘力にしたら100万以上は確実か…」
UIViewController
BaseViewController
A
VC
BaseViewController
B
VC VC VC
BaseViewController
C
VC
「このフリーザは継承をするたびにパワーがはるかに増す…
その変身をあと2回もオレは残している…その意味がわかるな?」
UIViewController
BaseViewController
A
VC
BaseViewController
B
VC VC VC
BaseViewController
C
VC
SuperBaseView
Controller
「光栄に思うがいい!この変身まで見せるのは貴様らが初めてだ!」
UIViewController
BVC
A
VC
BCV
CA
SuperBaseTableView
Controller
UITableView
Controller
UICollectionView
Controller
SuperBaseView
Controller
SuperBaseCollection
ViewController
BVC
B
BVC
C
VC VC VC
BTV
CA
BTV
CB
BCV
CB
VC VCVC VC VC VC VC VC VC VC
「大サービスでご覧に入れましょう!
わたくしの最後の変身を…わたくしの真の姿を…」
あなたが例えば
同僚からこういう
コードを引き継いだら大変
画面を増やしたいって時に
ViewControllerの設計を把握し
実装を細かく理解しないと
対称性を崩してしまって良く
ない気分になる
他の画面の実装を細かく理解
すればするほど突っ込みどこ
ろが気になってきたりする
まとめ
• ひとりきりでやりきるときは問題ないけ
ど他人のコードだと涙すら流れる!
• ケースバイケースだからと停止せず、踏み
込んで整理して公開してすっきり

Contenu connexe

Tendances

知らないと損するアプリ開発におけるStateMachineの活用法(15分版)
知らないと損するアプリ開発におけるStateMachineの活用法(15分版)知らないと損するアプリ開発におけるStateMachineの活用法(15分版)
知らないと損するアプリ開発におけるStateMachineの活用法(15分版)Ken Morishita
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門Shumpei Shiraishi
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)Yoshiki Ushida
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuoOKUBO_Yusuke
 
Xamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツXamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツMasuda Tomoaki
 
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったことAndroidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったことShuichi Takaya
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発友太 渡辺
 
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIGHayashi Yuichi
 
AngularJSについて
AngularJSについてAngularJSについて
AngularJSについて昌生 高橋
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメYoshito Tabuchi
 
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 Eastirgaly
 
121117 metro styleapp_templateapp
121117 metro styleapp_templateapp121117 metro styleapp_templateapp
121117 metro styleapp_templateappTakayoshi Tanaka
 
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Masaki Takeda
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 Monaca
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスアシアル株式会社
 
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話Daisuke Tsutsumi
 

Tendances (20)

知らないと損するアプリ開発におけるStateMachineの活用法(15分版)
知らないと損するアプリ開発におけるStateMachineの活用法(15分版)知らないと損するアプリ開発におけるStateMachineの活用法(15分版)
知らないと損するアプリ開発におけるStateMachineの活用法(15分版)
 
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
 
Android Architecture
Android ArchitectureAndroid Architecture
Android Architecture
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuo
 
Xamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツXamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツ
 
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったことAndroidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
 
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
 
AngularJSについて
AngularJSについてAngularJSについて
AngularJSについて
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
 
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
 
121117 metro styleapp_templateapp
121117 metro styleapp_templateapp121117 metro styleapp_templateapp
121117 metro styleapp_templateapp
 
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~
 
iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006
 
Xamarinの概要
Xamarinの概要Xamarinの概要
Xamarinの概要
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティス
 
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
 

En vedette

第49回HTML5勉強会 Google I/O 2014サマリー
第49回HTML5勉強会 Google I/O 2014サマリー第49回HTML5勉強会 Google I/O 2014サマリー
第49回HTML5勉強会 Google I/O 2014サマリーTakuya Oikawa
 
Swift bondでつなげてプログラミング
Swift bondでつなげてプログラミングSwift bondでつなげてプログラミング
Swift bondでつなげてプログラミング貴士 山本
 
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるBrian Gesiak
 
Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)Yohei Yasukawa
 
サイボウズの企業風土
サイボウズの企業風土サイボウズの企業風土
サイボウズの企業風土chika_nakazawa
 
What is reactive programming?
What is reactive programming?What is reactive programming?
What is reactive programming?Kenji Tanaka
 
各アプリケーションの概要(クラウド版)
各アプリケーションの概要(クラウド版)各アプリケーションの概要(クラウド版)
各アプリケーションの概要(クラウド版)Cybozucommunity
 
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針Ken Morishita
 
各アプリケーションの概要(パッケージ版)
各アプリケーションの概要(パッケージ版)各アプリケーションの概要(パッケージ版)
各アプリケーションの概要(パッケージ版)Cybozucommunity
 
小さく始める大規模スクラム
小さく始める大規模スクラム小さく始める大規模スクラム
小さく始める大規模スクラムKeisuke Tsukagoshi
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用Kazuki Fujikawa
 
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法Kenji Tanaka
 
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞いiOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞いKen Morishita
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Yohei Yasukawa
 

En vedette (16)

3 auto layout tips
3 auto layout tips3 auto layout tips
3 auto layout tips
 
第49回HTML5勉強会 Google I/O 2014サマリー
第49回HTML5勉強会 Google I/O 2014サマリー第49回HTML5勉強会 Google I/O 2014サマリー
第49回HTML5勉強会 Google I/O 2014サマリー
 
Swift bondでつなげてプログラミング
Swift bondでつなげてプログラミングSwift bondでつなげてプログラミング
Swift bondでつなげてプログラミング
 
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
 
Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)
 
サイボウズの企業風土
サイボウズの企業風土サイボウズの企業風土
サイボウズの企業風土
 
What is reactive programming?
What is reactive programming?What is reactive programming?
What is reactive programming?
 
各アプリケーションの概要(クラウド版)
各アプリケーションの概要(クラウド版)各アプリケーションの概要(クラウド版)
各アプリケーションの概要(クラウド版)
 
IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針IOS/Androidアプリの3つの大事な設計方針
IOS/Androidアプリの3つの大事な設計方針
 
各アプリケーションの概要(パッケージ版)
各アプリケーションの概要(パッケージ版)各アプリケーションの概要(パッケージ版)
各アプリケーションの概要(パッケージ版)
 
小さく始める大規模スクラム
小さく始める大規模スクラム小さく始める大規模スクラム
小さく始める大規模スクラム
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用
 
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
 
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞いiOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
 

Similaire à BaseViewControllerは作りたくない

サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するtoyship
 
Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Jaeeun Lee
 
iOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckiniOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckinKosuke Ogawa
 
UIViewController のコンテナ機能
UIViewController のコンテナ機能UIViewController のコンテナ機能
UIViewController のコンテナ機能Yuichi Fujishige
 
20121201yidev hirobe iPad miniでRetina
20121201yidev hirobe iPad miniでRetina20121201yidev hirobe iPad miniでRetina
20121201yidev hirobe iPad miniでRetinaKazuya Hirobe
 
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発Kenta Ohsugi
 
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1Kaname Noto
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話Kentaro Matsumae
 
きちんと理解できるiOS開発〜Auto Layout編
きちんと理解できるiOS開発〜Auto Layout編きちんと理解できるiOS開発〜Auto Layout編
きちんと理解できるiOS開発〜Auto Layout編mission:beGeek
 
Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09Yutaka Tajika
 
iOSのUI構築小技集(小さなとこから始められる編)
iOSのUI構築小技集(小さなとこから始められる編)iOSのUI構築小技集(小さなとこから始められる編)
iOSのUI構築小技集(小さなとこから始められる編)Fumiya Sakai
 
Container View Controllerを正しく使おう
Container View Controllerを正しく使おうContainer View Controllerを正しく使おう
Container View Controllerを正しく使おうasakahara
 
Swiftではじめる動画再生
Swiftではじめる動画再生Swiftではじめる動画再生
Swiftではじめる動画再生Yusuke Ariyoshi
 
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーションVisual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーションKaoru NAKAMURA
 
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーションVisual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーションKaoru NAKAMURA
 
iPhoneアプリのUIデザイン - NoteCubeの場合
iPhoneアプリのUIデザイン - NoteCubeの場合iPhoneアプリのUIデザイン - NoteCubeの場合
iPhoneアプリのUIデザイン - NoteCubeの場合Daigo Wakabayashi
 

Similaire à BaseViewControllerは作りたくない (20)

サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
 
Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)
 
iOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckiniOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckin
 
UIViewController のコンテナ機能
UIViewController のコンテナ機能UIViewController のコンテナ機能
UIViewController のコンテナ機能
 
20121201yidev hirobe iPad miniでRetina
20121201yidev hirobe iPad miniでRetina20121201yidev hirobe iPad miniでRetina
20121201yidev hirobe iPad miniでRetina
 
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
 
Indigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプIndigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプ
 
Jenkins導入ライブ
Jenkins導入ライブJenkins導入ライブ
Jenkins導入ライブ
 
Swift入門
Swift入門Swift入門
Swift入門
 
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
 
きちんと理解できるiOS開発〜Auto Layout編
きちんと理解できるiOS開発〜Auto Layout編きちんと理解できるiOS開発〜Auto Layout編
きちんと理解できるiOS開発〜Auto Layout編
 
Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09Swiftビギナーズ 2016/01/09
Swiftビギナーズ 2016/01/09
 
iOSのUI構築小技集(小さなとこから始められる編)
iOSのUI構築小技集(小さなとこから始められる編)iOSのUI構築小技集(小さなとこから始められる編)
iOSのUI構築小技集(小さなとこから始められる編)
 
Container View Controllerを正しく使おう
Container View Controllerを正しく使おうContainer View Controllerを正しく使おう
Container View Controllerを正しく使おう
 
Swiftではじめる動画再生
Swiftではじめる動画再生Swiftではじめる動画再生
Swiftではじめる動画再生
 
Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編
 
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーションVisual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
 
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーションVisual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
 
iPhoneアプリのUIデザイン - NoteCubeの場合
iPhoneアプリのUIデザイン - NoteCubeの場合iPhoneアプリのUIデザイン - NoteCubeの場合
iPhoneアプリのUIデザイン - NoteCubeの場合
 

Plus de 今城 善矩

HealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得するHealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得する今城 善矩
 
とにかく明るいCore Spotlight
とにかく明るいCore Spotlightとにかく明るいCore Spotlight
とにかく明るいCore Spotlight今城 善矩
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件今城 善矩
 
まだSwiftで消耗してるの?
まだSwiftで消耗してるの?まだSwiftで消耗してるの?
まだSwiftで消耗してるの?今城 善矩
 
小学生でも分かった気になるiOS8のSize Class
小学生でも分かった気になるiOS8のSize Class小学生でも分かった気になるiOS8のSize Class
小学生でも分かった気になるiOS8のSize Class今城 善矩
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips今城 善矩
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5今城 善矩
 
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方今城 善矩
 
やはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っているやはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っている今城 善矩
 
OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発今城 善矩
 
ジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwwwジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwww今城 善矩
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている今城 善矩
 

Plus de 今城 善矩 (13)

HealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得するHealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得する
 
Stargazer Meetup1
Stargazer Meetup1Stargazer Meetup1
Stargazer Meetup1
 
とにかく明るいCore Spotlight
とにかく明るいCore Spotlightとにかく明るいCore Spotlight
とにかく明るいCore Spotlight
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
 
まだSwiftで消耗してるの?
まだSwiftで消耗してるの?まだSwiftで消耗してるの?
まだSwiftで消耗してるの?
 
小学生でも分かった気になるiOS8のSize Class
小学生でも分かった気になるiOS8のSize Class小学生でも分かった気になるiOS8のSize Class
小学生でも分かった気になるiOS8のSize Class
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5
 
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
 
やはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っているやはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っている
 
OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発
 
ジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwwwジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwww
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
 

Dernier

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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム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
 
新人研修のまとめ 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
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (9)

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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
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
 
新人研修のまとめ 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
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

BaseViewControllerは作りたくない