Günümüz standartlarına göre Android uygulama geliştirme ortamına giriş
- Derleme: gradle
- Derleme yapılandırması: convention plugin
- Bağımlılık yönetimi: version catalog
- build cache kullanımı
- Derleme performansı analizi: build-scan
- Modül yapısı: özellik bazında ayrım
- Ağ iletişimi - retrofit
- JSON eşleme - kotlinx serialization
- Kalıcı veri depolama - jetpack datastore, room
- DI - koin
- Görsel yükleyici - coil
- UI - compose
- View ile ViewModel arasındaki iletişim - flow
- Kod kalitesi yönetimi - ktlint, konsist
- Birim testi - junit 4
7 yorum
Güzel yazı için teşekkürler
Bir şekilde Android uygulama build mühendisi olarak yerleşmiş biri olarak fikrimi bırakacak olursam..
Çok büyük ya da karmaşık olsa bile gradle kullanmak gerekiyor... (uzaklara dalan bakış)
Çok büyük ya da karmaşık projelerde gradle’ın build performansını iyileştirmek için aşağıdaki projeler yürütülüyor; bu yüzden büyük projelerde gradle kullanıyorsanız, migration hazırlıklarını şimdiden yapmakta fayda var.
Kişisel olarak, mimari katmanları özellikle build sistemine görünür kılmak için bir neden olmadığını düşünüyorum.
Benim yönettiğim uygulamada modülleri feature-api / feature-impl olarak build sistemine görünür olacak şekilde düzenliyoruz.
Bu şekilde yapılandırınca, feature-impl içindeki kod değişiklikleri feature-api’yi referans alan diğer modülleri etkilemediği için (dependency isolation), incremental build ya da build cache hit rate artışı açısından çok faydalı oluyor.
Burada Google’ın kararının büyük rol oynadığını düşünüyorum.
Ama yakın zamanda yayınlanan screenshot testing plugin ise JUnit5 tabanlı.
Ancak en yeni teknolojileri(?) devreye almak istediğinizde JUnit4 sık sık ayak bağı olabiliyor; bu yüzden kişisel olarak JUnit5'e geçilmiş olmasını dileyen küçük bir temennim var.
https://docs.gradle.com/develocity/test-distribution/
junit-vintage-enginekullanılırsa büyük değişiklikler yapmadan junit4 testlerini junit5 üzerinde çalıştırmak mümkün, ancak ek yük oldukça fazla. (yaklaşık %20 kadar yavaşlıyor)Vay canına, aileniz adına ne büyük bir onur.
Ben Wilson!
Hmm... Bu arada son birkaç yılda startup'ların çoğunun Flutter'ı tercih ettiği, META ve OpenAI gibi büyük şirketlerin ise native'e yöneldiği garip bir olgu gözlemleniyor..
Tam bu yıl bir Android uygulaması yapmayı düşünüyordum; oldukça faydalı bir rehber oldu. :)