MVC

Çağatay Emekci
Mobile Development
Published in
2 min readDec 12, 2018

Model-View-Controller (MVC), 1979 yılı civarında oluşturuldu ve bilgisayar kullanıcı arayüzleri etrafında belirli problemleri çözmeye çalışıyordu. MVC iOS SDK’nın oluşturulduğu, Cocoa’nun yapı taşlarından biri olan ve şüphesiz en çok kullanılan tasarım desenidir. Apple MVC’yi, mobil uygulamalara daha iyi uyum sağlaması için biraz değiştirmiştir. Model,View ve Controllerin ne olduklarından kısaca bahsedelim ve Apple’ın MVC modelini inceleyelim.

Model: Verilerin bulunduğu yer burasıdır ve bu verilerin parse ve modellemesinden sorumludur.
View:
Kullanıcının etkileşime girdiği her şeyden sorumludur.
Controller:
Model ve View arasında iş akışının olduğu kısımdır.
Controller, View ve Model arasında bir arabulucudur, böylece View ve Model birbirleri hakkında bilgi sahibi olmazlar. View’den alınan bir user events target action, callback veya delegation ile controller’a iletilir. Controller eğer ihtiyac duyarsa model nesnesini güncelleyebilir. Model’dan gelen bir event’de ise notification,callbacks veya observer ile controller’a iletilir. Controllerda bu değişikliği user’a view’i update ederek gösterir. Uygulamada sahip olduğumuz tüm sorumluluklar(Networking, Parsing) artık bu katmanlardan biri olarak ele alınacaktır.

Şimdi bu sorumlulukarı MVC’de katmanlarına ayıralım. Business Logic’i model katmanında geliştireceğiz bunun sebebi hem view’den hem de controller’dan ayrı olsun ki tekrar tekrar farklı ekranlarda da kullanabilelim.
Aynı şekilde Storage ve Parsing işlemlerini de bu katmanda, User event handling ve routing’i controller’da rendering’i de view katmanında geliştirelim. Networking’i işlemlerinide hem model’da hem de controller’da yapabiliriz.

Basit bir projeyle bu anlattığımız kavramları kullandık. Kaynak kodau https://github.com/cagatayemekci/MVCexample indirebilirsiniz.

--

--

Çağatay Emekci
Mobile Development

iOS Application Developer, Opsgenie at Atlassian @CagatayEmekci