SlideShare una empresa de Scribd logo
1 de 54
MVCもやもや話




かねうちてつや @kaniza
2012.05.19
Cocoa勉強会関西
自己紹介
•かねうちてつや (@kaniza, id:kaniza)
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
 •KOF2012 11/9-10 で開催予定
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
 •KOF2012 11/9-10 で開催予定
•最近わりと開発モード
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
 •KOF2012 11/9-10 で開催予定
•最近わりと開発モード
 •ARCとかStoryboardとかPush Notificationとか
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
 •KOF2012 11/9-10 で開催予定
•最近わりと開発モード
 •ARCとかStoryboardとかPush Notificationとか
 •相変わらずEmacsでObjective-C
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
 •KOF2012 11/9-10 で開催予定
•最近わりと開発モード
 •ARCとかStoryboardとかPush Notificationとか
 •相変わらずEmacsでObjective-C
•自炊モード
•かねうちてつや (@kaniza, id:kaniza)
•Cocoa勉強会関西代表(2代目)
 •KOF2012 11/9-10 で開催予定
•最近わりと開発モード
 •ARCとかStoryboardとかPush Notificationとか
 •相変わらずEmacsでObjective-C
•自炊モード
 •大型断裁機をレンタルして本バラしまくり
自炊
(雑談です)
これまでのカッター
レンタルした断裁機:20kg
レンタルした断裁機:20kg
O社の分厚い本も一撃!
本題の前置き
よい設計とは: 疎結合・高凝集
•疎結合
•構成する部分どうしの関連性が最小限
•具体的結合よりは抽象的結合
•相互依存は悪
•高凝集
•関連性の高いものが一カ所にまとまっている
•変更する時はそこだけいじればいい
本題
Model-View-Controller
Model




      View           Controller




ソフトウェアのデザイン(設計)パターンの1つ
Model-View-Controller
Model-View-Controller
• オブジェクト指向のGUIアプリ向け
Model-View-Controller
• オブジェクト指向のGUIアプリ向け
• Appleが基本パターンとして採用
Model-View-Controller
• オブジェクト指向のGUIアプリ向け
• Appleが基本パターンとして採用
• Smalltalk由来の歴史ある考え方
Model-View-Controller
• オブジェクト指向のGUIアプリ向け
• Appleが基本パターンとして採用
• Smalltalk由来の歴史ある考え方
• (オブジェクト指向と同じく)人に
  よって言うことが違う
意義
•役割分担させることで構造がわかりやすくなる
•分離したM-V-Cを(理想的には)それぞれ取り
替えて再利用できる

•ひとつのMで複数のVを持つなどの設計が容易
になる

•ModelロジックとViewロジックが分類できる
•Modelのテストを自動化しやすい
Model
• そのアプリ、画面の存在意義の部分
• データ保持、特殊な処理
  • ビジネスロジック
• GUIとは分離している
 • ViewやControllerのことは知らない
View
• ソフトウェアを人間に知覚させ、操作
  させる

• データの表示
• コマンドの入力
• Modelのことを知っているが、Controller
  のことは知らない
Controller
• ModelとViewをつなぐ
• Viewからの入力をModelに反映
• Modelの変化をViewに反映
• ModelのこともViewのことも知っている
• なくても済めば要らない部分(だけど
  ないと動かない)
Model




View           Controller
イメージ
•Model: ないと意味がない
•View: ないと使えない
•Controller: ないと動かない
iOS開発ありがちパターン
•とりあえずnibで画面を作る
•動きをView Controllerに実装
•さらにView Controllerに実装
•View Controllerバンザイ!!
•MVCなにそれ?
ViewControllerばっかり



  ABCViewController             XYZViewController




                      Other Classes
View Controllerとは
•Viewではない
•MVCではControllerに属する
•ViewのController
•ModelのControllerがあってもいい
 •NSDocumentとか
考える順番をかえてみる
•画面をまず考えるのはOK
•その画面のModelは何か?
 •どんな情報があるか?
 •どんな機能、ロジックがあるか?
•Modelを作る
 •データ取得やキモとなるロジック
•View ControllerにはModelとViewを仲介する
 部分を実装
実際やってみようとすると
Modelが勝手に変わったのを
Viewはどうやって知るの?

                  Model




      View                Controller




               Viewが受けとった入力を
             Controllerはどうやって知るの?
通知

Model              View


          監視




        相互依存は悪!!
必要なもの
ModelがViewを知らなくても
変更が通知できるようにする
Observerパターン
(GoFのデザインパターン参照)
通知

  Model        Observer



                    実現
          監視
                 View




Modelは抽象的・間接的にViewを参照
CocoaでのObserverパターン
Key-Value Observing
NSKeyValueObserving

// 監視する
- (void)addObserver:(NSObject *)anObserver
forKeyPath:(NSString *)keyPath options:
(NSKeyValueObservingOptions)options context:(void
*)context;

// 通知する
- (void)willChangeValueForKey:(NSString *)key;
- (void)didChangeValueForKey:(NSString *)key;

// 通知を受けとる
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object change:(NSDictionary *)change
context:(void *)context
NSKeyValueObserving
•NSObjectで対応
•通知は @synthesize したプロパティを変更し
 たら自動で発動

 •self.foo = @”newVal”;
•とーっても簡単!!
このパターンは他にも使える


   Model   Observer



                実現

             View
たとえばDelegateの場合


    Model   ModelDelegate



                    実現

            ViewController
こういうアプリよりも



 ABCViewController             XYZViewController




                     Other Classes
こういうアプリを目指したい

 ABCViewController              XYZViewController




    ABCModel                         XYZModel




                     Other Classes
Appleのドキュメント

Your Second iOS App: Storyboards
https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/
SecondiOSAppTutorial/Introduction/Introduction.html




単純だけどあえてModelレイヤを分離した設計を採用
まとめ
•View Controllerにすべてを書くのはやめよう
•Modelが何なのかを考えて作ってみよう
•オブジェクト間の連携にはObserverや
Delegateを使って疎結合を保とう

•Singletonは避けよう!(これはまたいつか)
Q&A

Más contenido relacionado

La actualidad más candente

さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計Taketo Sano
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計Yuichi Adachi
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」U-dai Yokoyama
 
Visual studio 2013 Overview
Visual studio 2013 OverviewVisual studio 2013 Overview
Visual studio 2013 Overview一希 大田
 
Model View Presenter for Android
Model View Presenter for AndroidModel View Presenter for Android
Model View Presenter for Androidshinnosuke kugimiya
 
serviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうserviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうよしだ あつし
 
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門normalian
 
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門一希 大田
 
Xamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツXamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツMasuda Tomoaki
 
AngularJSを浅めに紹介します
AngularJSを浅めに紹介しますAngularJSを浅めに紹介します
AngularJSを浅めに紹介しますnkazuki
 
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM塹壕よりLivetとMVVM
塹壕よりLivetとMVVMHiroshi Maekawa
 
受託開発での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について昌生 高橋
 
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方一希 大田
 
iOS アプリのメンテナンス性を高めるための基本的な考え方
iOS アプリのメンテナンス性を高めるための基本的な考え方iOS アプリのメンテナンス性を高めるための基本的な考え方
iOS アプリのメンテナンス性を高めるための基本的な考え方kakegawa-atsushi
 
Spring mvc
Spring mvcSpring mvc
Spring mvcRyo Asai
 
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1clubangular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1clubsilvers ofsilvers
 
マジックビーンズ
マジックビーンズマジックビーンズ
マジックビーンズAkira Suenami
 

La actualidad más candente (20)

さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
 
Visual studio 2013 Overview
Visual studio 2013 OverviewVisual studio 2013 Overview
Visual studio 2013 Overview
 
Model View Presenter for Android
Model View Presenter for AndroidModel View Presenter for Android
Model View Presenter for Android
 
serviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうserviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おう
 
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
 
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
 
Xamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツXamarin.formsでのmvvm利用のコツ
Xamarin.formsでのmvvm利用のコツ
 
AngularJSを浅めに紹介します
AngularJSを浅めに紹介しますAngularJSを浅めに紹介します
AngularJSを浅めに紹介します
 
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
 
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
 
AngularJSについて
AngularJSについてAngularJSについて
AngularJSについて
 
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
 
iOS アプリのメンテナンス性を高めるための基本的な考え方
iOS アプリのメンテナンス性を高めるための基本的な考え方iOS アプリのメンテナンス性を高めるための基本的な考え方
iOS アプリのメンテナンス性を高めるための基本的な考え方
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
MVVM入門
MVVM入門MVVM入門
MVVM入門
 
React.js + Flux
React.js + FluxReact.js + Flux
React.js + Flux
 
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1clubangular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
 
マジックビーンズ
マジックビーンズマジックビーンズ
マジックビーンズ
 

Destacado

Container view活用術とポイントになる部分
Container view活用術とポイントになる部分Container view活用術とポイントになる部分
Container view活用術とポイントになる部分Fumiya Sakai
 
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...Al Baha University
 
شرح رساله افسس القس ابراهيم سعيد
شرح رساله افسس   القس ابراهيم سعيدشرح رساله افسس   القس ابراهيم سعيد
شرح رساله افسس القس ابراهيم سعيدIbrahimia Church Ftriends
 
Inteligo valuation report bvn
Inteligo valuation report bvnInteligo valuation report bvn
Inteligo valuation report bvngro77
 
فن الحياة الناجحة أبونا متى المسكين
فن الحياة الناجحة   أبونا متى المسكينفن الحياة الناجحة   أبونا متى المسكين
فن الحياة الناجحة أبونا متى المسكينIbrahimia Church Ftriends
 
Mobile Computing IEEE 2014 Projects
Mobile Computing IEEE 2014 ProjectsMobile Computing IEEE 2014 Projects
Mobile Computing IEEE 2014 ProjectsVijay Karan
 
數位時代的直接民主可能
數位時代的直接民主可能數位時代的直接民主可能
數位時代的直接民主可能Louk Chi
 
INTERNET I EINES 2.0 PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2
INTERNET I EINES 2.0  PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2INTERNET I EINES 2.0  PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2
INTERNET I EINES 2.0 PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2Neus Burch Suñer
 
Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...
Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...
Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...Suely Maia
 
Michel Foucault - Discipline and Punish
Michel Foucault - Discipline and PunishMichel Foucault - Discipline and Punish
Michel Foucault - Discipline and PunishTales Américo
 
IoMT - Technological Environment of Personalized Medicine and New Era of Heal...
IoMT - Technological Environment of Personalized Medicine and New Era of Heal...IoMT - Technological Environment of Personalized Medicine and New Era of Heal...
IoMT - Technological Environment of Personalized Medicine and New Era of Heal...Alexandre Prozoroff
 

Destacado (20)

MVC 03
MVC 03MVC 03
MVC 03
 
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
 
MVC 01
MVC 01MVC 01
MVC 01
 
MVC 02
MVC 02MVC 02
MVC 02
 
1 2 neo revolution
1 2 neo revolution1 2 neo revolution
1 2 neo revolution
 
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
Spectroscopy Letters Volume 26 issue 3 1993 [doi 10.1080_00387019308011552] S...
 
شرح رساله افسس القس ابراهيم سعيد
شرح رساله افسس   القس ابراهيم سعيدشرح رساله افسس   القس ابراهيم سعيد
شرح رساله افسس القس ابراهيم سعيد
 
Inteligo valuation report bvn
Inteligo valuation report bvnInteligo valuation report bvn
Inteligo valuation report bvn
 
Athens
AthensAthens
Athens
 
France
FranceFrance
France
 
No hiv aids no hcv
No hiv aids no hcvNo hiv aids no hcv
No hiv aids no hcv
 
Forum
ForumForum
Forum
 
فن الحياة الناجحة أبونا متى المسكين
فن الحياة الناجحة   أبونا متى المسكينفن الحياة الناجحة   أبونا متى المسكين
فن الحياة الناجحة أبونا متى المسكين
 
Mobile Computing IEEE 2014 Projects
Mobile Computing IEEE 2014 ProjectsMobile Computing IEEE 2014 Projects
Mobile Computing IEEE 2014 Projects
 
Byzantium
ByzantiumByzantium
Byzantium
 
數位時代的直接民主可能
數位時代的直接民主可能數位時代的直接民主可能
數位時代的直接民主可能
 
INTERNET I EINES 2.0 PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2
INTERNET I EINES 2.0  PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2INTERNET I EINES 2.0  PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2
INTERNET I EINES 2.0 PER FACILITAR LA TASCA DE COMANDAMENT Sessió 2
 
Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...
Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...
Cenário Botafogo, Lançamento Mozak, Apartamentos no Rio, 2 quartos em Botafog...
 
Michel Foucault - Discipline and Punish
Michel Foucault - Discipline and PunishMichel Foucault - Discipline and Punish
Michel Foucault - Discipline and Punish
 
IoMT - Technological Environment of Personalized Medicine and New Era of Heal...
IoMT - Technological Environment of Personalized Medicine and New Era of Heal...IoMT - Technological Environment of Personalized Medicine and New Era of Heal...
IoMT - Technological Environment of Personalized Medicine and New Era of Heal...
 

Similar a MVCもやもや話

はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.jsHiroki Toyokawa
 
AngularJSの高速化
AngularJSの高速化AngularJSの高速化
AngularJSの高速化Kon Yuichi
 
[公開用]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
 
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby CocoaTomoki Maeda
 
WKWebViewとUIWebView
WKWebViewとUIWebViewWKWebViewとUIWebView
WKWebViewとUIWebViewYuki Hirai
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発tomotoshi
 
try!swift必見5選
try!swift必見5選try!swift必見5選
try!swift必見5選Kenta Kudo
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験miso- soup3
 
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発! SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発! Koji Shiraishi
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング幸雄 村上
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜niwatako
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成Tomoki Oyamatsu
 
MvvmCross 入門
MvvmCross 入門MvvmCross 入門
MvvmCross 入門jz5 MATSUE
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソYoshitaka Seo
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVCjz5 MATSUE
 

Similar a MVCもやもや話 (20)

iOSでMVVM入門
iOSでMVVM入門iOSでMVVM入門
iOSでMVVM入門
 
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.js
 
AngularJSの高速化
AngularJSの高速化AngularJSの高速化
AngularJSの高速化
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
 
WKWebViewとUIWebView
WKWebViewとUIWebViewWKWebViewとUIWebView
WKWebViewとUIWebView
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
 
20120616
2012061620120616
20120616
 
try!swift必見5選
try!swift必見5選try!swift必見5選
try!swift必見5選
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
Swift入門
Swift入門Swift入門
Swift入門
 
Slide
SlideSlide
Slide
 
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発! SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
 
MvvmCross 入門
MvvmCross 入門MvvmCross 入門
MvvmCross 入門
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
 

Más de Tetsuya Kaneuchi

いま OS X アプリがアツい
いま OS X アプリがアツいいま OS X アプリがアツい
いま OS X アプリがアツいTetsuya Kaneuchi
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだTetsuya Kaneuchi
 
Core Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStoreCore Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStoreTetsuya Kaneuchi
 
WebViewでエラーページを表示する話
WebViewでエラーページを表示する話WebViewでエラーページを表示する話
WebViewでエラーページを表示する話Tetsuya Kaneuchi
 

Más de Tetsuya Kaneuchi (7)

いま OS X アプリがアツい
いま OS X アプリがアツいいま OS X アプリがアツい
いま OS X アプリがアツい
 
いまさら NSArray
いまさら NSArrayいまさら NSArray
いまさら NSArray
 
Dependency Injection FAQ
Dependency Injection FAQDependency Injection FAQ
Dependency Injection FAQ
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだ
 
Core Animation と View
Core Animation と ViewCore Animation と View
Core Animation と View
 
Core Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStoreCore Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStore
 
WebViewでエラーページを表示する話
WebViewでエラーページを表示する話WebViewでエラーページを表示する話
WebViewでエラーページを表示する話
 

Último

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
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
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Último (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
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
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

MVCもやもや話

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n