SlideShare a Scribd company logo
1 of 28
Download to read offline
iOS 

2017/01/28 15 Swift 

(@ktanaka117)
iOS 

2017/01/28 15 Swift 

(@ktanaka117)
•
• 📦
• Twitter, GitHub(@ktanaka117)
• Sketch💎
ScrollingFollowView
•  /💣
•
• 

k
• 📦
🙏
•  /💣
•
• 

k
• 📦
• MVC
• MVP
• MVVM
• VIPER
• Clean Architecture
✋
• MVC
• MVP
• MVVM
• VIPER
• Clean Architecture
• MVC
• MVP
• MVVM
• VIPER
• Clean Architecture
• MVC
• MVP
• MVVM
• VIPER
• Clean Architecture
MV○
• Model 

VIPER
•
•
•
Clean Architecture
•
•
•
•
• VIPER Clean Architecture
• 💡
🤔
• VIPER Clean Architecture
• 💡
•
• MVC
•
•
•
•
•
•
•
•
•
•
•
•
•
iOS
• MassiveViewController / FatViewController

→ Presenter
• UIViewController 

UIKit

→ VIPER CleanArchitecture VC
🤔
• 

Notification
•
•
MVC
•
•




GitHub: ktanaka117
Twitter: @ktanaka117
Developers.IO:

More Related Content

Viewers also liked

あのアニメのOp,edっぽいアニメーションを実装する話
あのアニメのOp,edっぽいアニメーションを実装する話あのアニメのOp,edっぽいアニメーションを実装する話
あのアニメのOp,edっぽいアニメーションを実装する話Kenji Tanaka
 
初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)
初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)
初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)Kenji Tanaka
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計Yuichi Adachi
 
描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)Kenji Tanaka
 
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法Kenji Tanaka
 
東急ハンズを支える技術
東急ハンズを支える技術東急ハンズを支える技術
東急ハンズを支える技術Tomoaki Imai
 
Swift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdotsSwift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdotsTomohiro Kumagai
 
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」Yusuke KUROIWA
 
iOS Viper architecture for CocoaHeadsBY (RU)
iOS Viper architecture for CocoaHeadsBY (RU)iOS Viper architecture for CocoaHeadsBY (RU)
iOS Viper architecture for CocoaHeadsBY (RU)Vladimir Hudnitsky
 
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Infinum iOS Talks #2 - VIPER for everybody by Damjan VujaklijaInfinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Infinum iOS Talks #2 - VIPER for everybody by Damjan VujaklijaInfinum
 
会津Swift開発合宿振り返り
会津Swift開発合宿振り返り会津Swift開発合宿振り返り
会津Swift開発合宿振り返りKenji Tanaka
 
開発技術対決! Dots.カンファレンス エキシビジョン iOS代表
開発技術対決! Dots.カンファレンス エキシビジョン iOS代表開発技術対決! Dots.カンファレンス エキシビジョン iOS代表
開発技術対決! Dots.カンファレンス エキシビジョン iOS代表yohei sugigami
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことyohei sugigami
 
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016将之 小野
 
CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状Yuji Hato
 
BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk
BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning TalkBaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk
BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk崇之 清水
 
AWS Cognitoを実際のアプリで導入してハマったこと
AWS Cognitoを実際のアプリで導入してハマったことAWS Cognitoを実際のアプリで導入してハマったこと
AWS Cognitoを実際のアプリで導入してハマったこと洋一郎 櫻井
 
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) parrotstudio
 

Viewers also liked (20)

あのアニメのOp,edっぽいアニメーションを実装する話
あのアニメのOp,edっぽいアニメーションを実装する話あのアニメのOp,edっぽいアニメーションを実装する話
あのアニメのOp,edっぽいアニメーションを実装する話
 
初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)
初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)
初めての自作ライブラリを案件に導入して脳汁ブシャーした話(拡張版)
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
 
From mvc to viper
From mvc to viperFrom mvc to viper
From mvc to viper
 
描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)描画とビジネスをクリーンに分ける(公開用)
描画とビジネスをクリーンに分ける(公開用)
 
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
 
東急ハンズを支える技術
東急ハンズを支える技術東急ハンズを支える技術
東急ハンズを支える技術
 
Swift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdotsSwift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdots
 
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
 
Viper architecture
Viper architectureViper architecture
Viper architecture
 
iOS Viper architecture for CocoaHeadsBY (RU)
iOS Viper architecture for CocoaHeadsBY (RU)iOS Viper architecture for CocoaHeadsBY (RU)
iOS Viper architecture for CocoaHeadsBY (RU)
 
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Infinum iOS Talks #2 - VIPER for everybody by Damjan VujaklijaInfinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
 
会津Swift開発合宿振り返り
会津Swift開発合宿振り返り会津Swift開発合宿振り返り
会津Swift開発合宿振り返り
 
開発技術対決! Dots.カンファレンス エキシビジョン iOS代表
開発技術対決! Dots.カンファレンス エキシビジョン iOS代表開発技術対決! Dots.カンファレンス エキシビジョン iOS代表
開発技術対決! Dots.カンファレンス エキシビジョン iOS代表
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
 
CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状CarPlayの対応方法と日本での現状
CarPlayの対応方法と日本での現状
 
BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk
BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning TalkBaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk
BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk
 
AWS Cognitoを実際のアプリで導入してハマったこと
AWS Cognitoを実際のアプリで導入してハマったことAWS Cognitoを実際のアプリで導入してハマったこと
AWS Cognitoを実際のアプリで導入してハマったこと
 
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
 

More from Kenji Tanaka

FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdcFatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdcKenji Tanaka
 
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_nightリリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_nightKenji Tanaka
 
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfireポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfireKenji Tanaka
 
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_archKenji Tanaka
 
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mpKenji Tanaka
 
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswiftKenji Tanaka
 
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_nightトークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_nightKenji Tanaka
 
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_nightよく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_nightKenji Tanaka
 
Swiftで聞いておぼえるテスト書き
Swiftで聞いておぼえるテスト書きSwiftで聞いておぼえるテスト書き
Swiftで聞いておぼえるテスト書きKenji Tanaka
 
設計時空のリファクタリング
設計時空のリファクタリング設計時空のリファクタリング
設計時空のリファクタリングKenji Tanaka
 
WACATE 2018 Summer
WACATE 2018 SummerWACATE 2018 Summer
WACATE 2018 SummerKenji Tanaka
 
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swiftテスト駆動開発入門 by Swift
テスト駆動開発入門 by SwiftKenji Tanaka
 
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.An iOS Engineer challenges Web.
An iOS Engineer challenges Web.Kenji Tanaka
 
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4Kenji Tanaka
 
TDDやってみよ
TDDやってみよTDDやってみよ
TDDやってみよKenji Tanaka
 
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品Kenji Tanaka
 
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。Kenji Tanaka
 
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とはiOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とはKenji Tanaka
 
設計に答えはないから探してみよう
設計に答えはないから探してみよう設計に答えはないから探してみよう
設計に答えはないから探してみようKenji Tanaka
 
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有Kenji Tanaka
 

More from Kenji Tanaka (20)

FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdcFatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
 
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_nightリリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
 
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfireポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
 
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
 
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
 
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
 
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_nightトークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
 
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_nightよく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
 
Swiftで聞いておぼえるテスト書き
Swiftで聞いておぼえるテスト書きSwiftで聞いておぼえるテスト書き
Swiftで聞いておぼえるテスト書き
 
設計時空のリファクタリング
設計時空のリファクタリング設計時空のリファクタリング
設計時空のリファクタリング
 
WACATE 2018 Summer
WACATE 2018 SummerWACATE 2018 Summer
WACATE 2018 Summer
 
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swiftテスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
 
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
 
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
 
TDDやってみよ
TDDやってみよTDDやってみよ
TDDやってみよ
 
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
 
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
 
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とはiOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
 
設計に答えはないから探してみよう
設計に答えはないから探してみよう設計に答えはないから探してみよう
設計に答えはないから探してみよう
 
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
 

iOSアプリケーションアーキテクチャ選定の鍵を探す