Mobil uygulama indirdiğinizde ayarlarda "Versiyon 2.4.1" gibi sayılar görürsünüz. Bu sayılar rastgele belirlenmez; dünya genelinde kabul görmüş Semantic Versioning (SemVer) standardına göre oluşturulur. Sunucudaki API'ler ile binlerce kullanıcının cebindeki farklı uygulama versiyonlarının sorunsuz çalışabilmesi, doğru bir sürüm yönetimine bağlıdır.
Sayıların Anlamı: MAJOR.MINOR.PATCH
Bir uygulamanın sürüm numarası X.Y.Z formatındadır (Örn: 2.4.1):
- MAJOR (2): Büyük Sürüm. Uygulamanın tasarımı tamamen değiştiğinde veya eski veritabanı yapısıyla çalışmayı (Geriye Dönük Uyumluluk - Backward Compatibility) bozan radikal değişiklikler yapıldığında bu rakam artar (3.0.0 olur).
- MINOR (4): Yeni Özellik. Mevcut sistemi bozmayan yeni bir sayfa eklendiğinde (Örn: Gece modu geldi) bu rakam artar (2.5.0 olur).
- PATCH (1): Hata Düzeltmesi (Bugfix). Yeni bir özellik gelmeyen, sadece çöken bir butonu onardığınız ufak güncellemelerdir (2.4.2 olur).
Kabus Senaryosu: Geriye Dönük Uyumluluk (Backward Compatibility)
Web sitenizi güncellediğinizde (Deploy), o an siteye giren herkes saniyesinde yeni tasarımı görür. Ancak mobil uygulamalarda durum korkunçtur. Güncellemeyi mağazaya atarsınız; kullanıcıların %30'u otomatik günceller, %50'si Wi-Fi bulana kadar 2 gün bekler, inatçı bir %20'si ise güncellemeyi 3 ay boyunca reddeder.
İşte bu yüzden, sunucudaki (Backend) veritabanı veya API kodunu değiştirirken çok dikkatli olmalısınız. Eski API'yi silerseniz, güncellemeyi almamış o %20'lik kitlenin uygulamasını kalıcı olarak çökertirsiniz.
Phased Release (Kademeli Dağıtım)
Büyük markalar, yeni yazdıkları bir özelliği anında tüm kullanıcılara açmazlar. Hem Apple App Store'da hem Google Play Console'da "Phased Release" özelliği vardır. Güncellemeyi 1. gün sadece %1 kullanıcıya, 2. gün %5'e gönderirsiniz. Eğer sistemlerde (Crashlytics) çökmeler görüyorsanız, dağıtımı o an durdurur (Rollback) ve %95'lik büyük kitleyi korumuş olursunuz.
Hataya Yer Yok
Geliştirdiğimiz uygulamaları CI/CD (Sürekli Entegrasyon) araçlarıyla test ediyor, sıfır kesintiyle (Zero-downtime) kademeli olarak güncelliyoruz.
Geliştirme Süreçlerimizi İnceleyin