Temel Android Tasarım Modelleri: MVVM, MVP ve Daha Fazlası

Aziz
Huawei Developers - Türkiye
2 min readMay 21, 2024

--

Android

Giriş

Mobil uygulama geliştirme sürecinde yazılım kalitesini artırmak ve projeyi daha yönetilebilir hale getirmek için tasarım kalıpları (design patterns) büyük önem taşır. Android uygulama geliştirmede kullanılan bu kalıplar, kodun sürdürülebilirliğini, esnekliğini ve test edilebilirliğini artırır. Bu makalede, Android geliştirme sürecinde sıkça kullanılan MVVM, MVP, Singleton, Observer, Builder, Factory, Dependency Injection ve Adapter kalıplarını inceleyeceğiz. Her bir kalıbın ne olduğunu, nasıl çalıştığını ve örneklerle nasıl uygulanabileceğini detaylandıracağız.

Android geliştirmeye yeni başlayanlardan deneyimli geliştiricilere kadar herkesin, bu kalıpları öğrenerek ve projelerine entegre ederek daha kaliteli ve bakımı kolay uygulamalar geliştirebileceğine inanıyoruz. Hadi, bu önemli tasarım kalıplarını birlikte keşfedelim.

MVVM (Model-View-ViewModel)

Model-View-ViewModel (MVVM), kullanıcı arayüzünü iş mantığından ayıran bir mimari kalıptır. Model, veri ve iş mantığını; View, kullanıcı arayüzünü; ViewModel ise iş mantığı ile kullanıcı arayüzü arasındaki köprüyü temsil eder.

Örnek

Kotlin ile bir API’den veri çeken bir uygulama örneği:

Model

ViewModel

View

MVP (Model-View-Presenter)

Tanım

MVP, kullanıcı arayüzü (View) ve iş mantığını (Presenter) ayırarak daha test edilebilir ve bakımı kolay kod yazmayı sağlar. Model, veri katmanını temsil eder.

Örnek

Basit bir giriş ekranı uygulaması:

Model

Presenter

Singleton

Tanım

Singleton kalıbı, bir sınıfın yalnızca bir örneğinin oluşturulmasını sağlar. Bu, özellikle konfigürasyon veya bağlantı nesneleri gibi tek bir örneğin yeterli olduğu durumlar için kullanışlıdır.

Örnek

Basit bir Logger sınıfı:

Observer

Tanım

Observer kalıbı, bir nesnedeki değişikliklerin, bu nesneyi izleyen diğer nesnelere otomatik olarak bildirilmesini sağlar.

Örnek

Bir haber güncelleme sistemi:

Observable

Observer

Kullanım

Builder

Tanım

Builder kalıbı, karmaşık nesnelerin oluşturulmasını kontrol eden bir tasarım kalıbıdır. Bu kalıp, bir nesnenin nasıl oluşturulacağını ve temsil edileceğini ayırır.

Örnek

Bir araba nesnesi oluşturma:

Factory

Tanım

Factory kalıbı, nesne yaratma sürecini alt sınıflara devrederek nesne oluşturma sorumluluğunu merkezi bir yerden yönetir.

Örnek

Bir hayvan oluşturma fabrikası:

Dependency Injection

Tanım

Dependency Injection (DI), bağımlılıkları (dependencies) bir sınıfa dışarıdan enjekte ederek kodun esnekliğini ve test edilebilirliğini artıran bir tasarım kalıbıdır.

Örnek

Kotlin ve Dagger 2 ile DI:

Modül

Bileşen

Activity

Adapter

Tanım

Adapter kalıbı, uyumsuz arayüzlere sahip sınıfların birlikte çalışmasını sağlamak için kullanılır. Adapter, mevcut bir arayüzü, beklenen başka bir arayüze dönüştürür.

Örnek

Bir RecyclerView adaptörü:

Sonuç

Bu makalede, Android geliştirme sürecinde sıkça kullanılan bazı tasarım kalıplarını inceledik. MVVM ve MVP gibi kalıplar, kullanıcı arayüzü ile iş mantığını ayırarak daha modüler ve test edilebilir kod yazmayı sağlar. Singleton, Builder, Factory gibi kalıplar ise nesne oluşturma süreçlerini yönetir. Observer ve Adapter kalıpları, nesneler arasındaki ilişkileri ve uyumluluğu düzenlerken, Dependency Injection bağımlılıkların yönetimini kolaylaştırır.

Tasarım kalıpları, doğru kullanıldığında uygulama geliştirme sürecini büyük ölçüde iyileştirebilir. Bu nedenle, her bir kalıbı ve ne zaman kullanılması gerektiğini anlamak, daha sürdürülebilir ve bakımı kolay kod yazmanın anahtarıdır.

--

--