22/11/2021 9:46
Caner Onat, Mobilist
Bu blog yazımızda, basit düzeyde bir to-do list uygulamasının nasıl yapılabileceğine değineceğiz.
Uygulamayı VIPER mimarisiyle RxSwift, RxCocoa ve Realm kütüphanelerini kullanarak yapacağız. İlk olarak, projemizin temelini oluşturalım. Bu noktada hatırlatmakta fayda var: Bir versiyon kontrol sistemi kullanmıyorsanız hemen kullanmaya başlamak iyi bir fikir.
Projede örnek oluşması adına iki tane bağlılık yönetisi kullanıyoruz. Bunlardan biri COCOAPODS bir diğeri ise SPM’dir. Buradan da anlaşılabildiği gibi, birden fazla bağımlılık yönetisi kullanmakta bir sakınca bulunmuyor.
Bağımlılık yöneticileri ile ilgili ayrıntılı bilgiye ulaşın: https://github.com/caneronat/todolistapp/commits/feature/basic-files
İlgili podları kurduktan sonra, VIPER mimarsına uygun olarak her sayfa için ViewController, Presenter, Interactor, Entities ve Router sayfalarını oluşturmaya başlıyoruz.
Uygulamada, temel olarak Splash, Home, Detail, AddTask ve UpdateTask sayfaları mevcuttur. Bu sayfalarla ilgili işlem yaparken oluşturmuş olduğumuz commitleri inceleyin:
Splash Sayfası:
https://github.com/caneronat/todolistapp/tree/feature/splash-screen
Home Sayfası:
https://github.com/caneronat/todolistapp/tree/feature/home-screen
Detail Sayfası:
https://github.com/caneronat/todolistapp/tree/feature/detail-screen
AddTask Sayfası:
https://github.com/caneronat/todolistapp/tree/feature/add-task-screen
UpdateTask Sayfası:
https://github.com/caneronat/todolistapp/tree/feature/update-task-screen
Bu blog yazımızda, konunun temelini anlatabilmek için yalnızca Home Page kısmına odaklanacağız. Diğer sayfalar da, benzer bir şekilde tasarlanmaktadır.
https://medium.com/media/03fee4211210fe10b5e4e3b590adff52/href
Öncelikli olarak ViewController kısmına bakalım: Bu sayfada tableview ve view mevcuttur. Tableview girilen to-do listesini göstermek için oluşturmuştur. View ise tableview yokken emptyview görevi görmektedir. Burada sadece presenterden gelecek verileri kullanıyor ve farklı bir işlem yapmıyoruz.
https://medium.com/media/7de770bf0a88500b1e0603e7bfb53b54/href
Presenter kısmında ise view controller ve interactor arasındaki bağlantıyı gerçekleştirmektedir. Interactordan aldığı verileri, view controller ile paylaşarak ve view controllerın kullanmasını sağlıyoruz.
https://medium.com/media/253dc698f2b15b6a650b8e620c50a56d/href
Interactor sayfasında ise fetch, update gibi işlemler yapılmaktadır.
https://medium.com/media/7efa95b9ee0486ae304fea71bf504f9e/href
Router ise uygulamanın sayfalarının ne zaman gösterileceğine karar verdiğimiz kısımdır. Buna göre sayfalar gösterilmektedir.
https://medium.com/media/9f2b16034ca7b51ade5da6cbd38163ef/href
Kısaca verdiğimiz bu bilgiler ile projenin sonuna geliyoruz. Son haline aşağıdan ulaşın: