- Konu sahibi
- #1
Kotlin projede Java kodu birlikte nasıl yaşar?
Android geliştirmede en sık ihtiyaç duyulan konulardan biri, yeni işi Kotlin ile yazarken mevcut Java kodunu çöpe atmadan ilerleyebilmektir. Özellikle eski bir projede çalışıyorsanız ya da ekipte hem Kotlin hem Java bilen kişiler varsa, iki dili aynı uygulamada düzenli şekilde kullanmak çoğu zaman en pratik yoldur.
Kotlin ve Java aynı Android projesinde birlikte çalışabilir. Bu, tek seferde tüm kodu dönüştürmek zorunda olmadığınız anlamına gelir. Yeni ekranları Kotlin ile yazıp eski yardımcı sınıfları Java’da bırakabilir, sonra ihtiyaç oldukça parça parça taşıyabilirsiniz. Buradaki asıl hedef, dili değiştirmek değil; bakım yükünü artırmadan ilerlemektir.
Hangi durumda Java’yı hemen bırakmamak daha mantıklıdır?
Eski proje büyükse ve çalışan Java kodu stabilyse, toplu dönüşüm genelde iyi fikir değildir. Çünkü sadece sözdizimi değişmez; testler, null kontrolü, yardımcı sınıflar, Android API kullanımı ve derleme davranışı da etkilenebilir. Küçük bir değişiklik için tüm modülü çevirmek yerine, sadece yeni yazılacak parçayı Kotlin yapmak daha güvenli olur.
Şu durumlarda Java’yı bir süre korumak mantıklıdır:
- Proje uzun süredir Java ile çalışıyor ve hata oranı düşükse
- Takımda Kotlin bilgisi sınırlıysa
- Üçüncü parti eski kodlar veya özel yardımcı sınıflar Java ağırlıklıysa
- Taşıma sırasında teslim tarihini riske atmak istemiyorsanız
Kotlin ve Java aynı projede nasıl daha düzenli kullanılır?
En iyi sonuç genelde net bir geçiş kuralı belirleyince alınır. Örneğin yeni dosyalar Kotlin ile yazılır, mevcut Java sınıfları yalnızca gerçekten dokunulması gereken yerde değiştirilir. Böylece proje zamanla doğal biçimde Kotlin’e kayar.
Pratikte şu alışkanlıklar işi kolaylaştırır:
- Yeni ekran, yeni ViewModel veya yeni yardımcı sınıfları Kotlin’de açın
- Eski Java sınıflarına sadece ihtiyaç varsa dokunun
- Aynı iş mantığını iki dilde tekrar yazmaktan kaçının
- Kod standartlarını ekip içinde baştan belirleyin
En çok yapılan hatalar neler?
En yaygın hata, projeyi bir anda tamamen çevirmeye çalışmaktır. Bu yöntem hem riskli hem de yorucudur. Özellikle büyük projelerde dönüştürülen her dosya yeni hata alanı açabilir.
Bir diğer hata da iki dili yan yana kullanırken ortak kurallar koymamaktır. Örneğin bazı ekipler yeni kodu Kotlin’e alır ama isimlendirme, null yönetimi, test yazımı ve klasörleme konusunda tek düzen oluşturmaz. Sonuçta proje Kotlin’e geçmiş gibi görünür ama bakım kolaylığı beklenen kadar artmaz.
Bir başka sorun da "Java artık hiç kullanılmaz" gibi aşırı bir yaklaşım sergilemektir. Gerçekte amaç, mevcut çalışan parçayı bozmadan en doğru yerde Kotlin kullanmaktır. Eski bir yardımcı sınıf stabil çalışıyorsa, onu sadece dil değişsin diye zorla dönüştürmek gerekmez.
Kısa karar kuralı
Eğer yeni bir Android işine başlıyorsanız Kotlin’i varsayılan dil yapmak genelde daha uygundur. Eğer halihazırda büyük ve çalışan bir Java kod tabanınız varsa, önce yeni kodu Kotlin’e taşıyıp eski parçaları ihtiyaç oldukça güncellemek daha güvenli olur. Yani kararın merkezinde "hangi dil daha popüler" değil, "mevcut kodu bozmadan nasıl ilerlenir" sorusu olmalıdır.