iOS mu, Android mi, ikisi birden mi? Tek kod tabanı yaklaşımı
iOS mu, Android mi sorusunun cevabını kullanıcılarınızın hangi telefonu kullandığı, gelir modeliniz ve yayından sonraki bakım planınız belirler. Kitleniz iki platforma da yayılıyorsa çoğu zaman en mantıklı yol, tek kod tabanıyla iki platforma birlikte çıkmaktır. Bütçe, test ya da odak gerekçesiyle önce tek platformla başlamak da meşru bir tercihtir; önemli olan bunu ürünün ihtiyacına göre seçmek.
Bu yazıda kararı verirken sorduğumuz soruları, tek kod tabanının ne kazandırıp neyi kazandırmadığını ve Tako’yu yayına alırken nasıl düşündüğümüzü anlatıyoruz.
Üç seçenek, kısaca
| Seçenek | Ne zaman mantıklı | Dikkat edilecek |
|---|---|---|
| Yalnız iOS | Kitle ağırlıkla iPhone kullanıyor; önce bir pazarda doğrulama isteniyor | Android kullanıcıları ilk aşamada dışarıda kalır |
| Yalnız Android | Kitle ağırlıkla Android kullanıyor ya da belirli cihazlarda çalışacak | iPhone kullanıcıları ilk aşamada dışarıda kalır |
| İkisi birden | Kitle iki platforma yayılmış; ürün ikisinde de aynı davranmalı | İki mağaza, iki test süreci, iki kural seti |
Hangisi seçilirse seçilsin, bugünkü kararın yarını kilitlememesi gerekir. Tek kod tabanıyla başlayan bir proje, önce bir platformda yayına çıkıp ikinciye sonradan geçebilir. Ayrı ayrı yazılmış bir uygulamada ise ikinci platform, neredeyse ikinci bir proje demektir.
Kararı belirleyen dört soru
1. Kullanıcılarınız hangi telefonu kullanıyor?
En önemli soru budur ve cevabı genel istatistiklerde değil, sizin kitlenizdedir. Türkiye’de Android kullanıcı tabanı geniştir; ama bir kurumsal ekipte, belli bir meslek grubunda ya da yurt dışına satış yapan bir üründe tablo tamamen farklı olabilir.
Elinizde veri varsa ona bakın: web sitenizin ziyaretçi istatistikleri, mevcut müşterilerinizin cihazları, sahada çalışan ekibinize verilen telefonlar. Veri yoksa, hedef kitlenizden birkaç kişiye sormak bile tahminden iyidir.
2. Gelir modeli ne?
Uygulama içi satın alma ve abonelik, her iki mağazada da kendi kurallarıyla çalışır. Dijital içerik satışında mağazanın ödeme sistemi kullanılır; fiziksel ürün ya da hizmet satışında farklı kurallar geçerlidir. İki platforma çıkılacaksa bu kurgunun iki tarafta da kurallara uygun kurulması gerekir.
Tako’da ücretsiz sürüm reklam destekli; genişletilmiş özellikler uygulama içi satın almayla geliyor. Bu kurgu en baştan, mağaza kuralları göz önünde tutularak planlandı.
3. Hangi cihaz özelliklerine ihtiyaç var?
Bildirim, kamera, konum, pusula ya da arka planda çalışma. Bu özelliklerin çoğu iki platformda da var; ama izinlerin istenme biçimi, arka plan kısıtları ve kullanıcıya gösterilen metinler farklıdır. Çok özel bir donanım ya da platforma özgü bir özellik gerekiyorsa, o kısım için platforma özel kod yazmak gerekebilir.
4. Yayından sonra bakımı kim yapacak?
İki ayrı uygulama, her yıl gelen iki ayrı işletim sistemi güncellemesine iki ayrı uyum demektir. Tek kod tabanında bu iş büyük ölçüde tek bir yerde yapılır. Bakımı planlamadan verilen platform kararı, ileride beklenmedik bir yük çıkarabilir.
Tek kod tabanı nedir, ne kazandırır?
Tek kod tabanı, iOS ve Android uygulamalarının aynı kaynak koddan üretilmesidir. Uygulamanın mantığı, ekranları ve davranışı bir kez yazılır; iki platform için ayrı paketler çıkar.
Kazandırdıkları:
- Tek proje, tek bakım. Bir hata bir kez düzeltilir, bir özellik bir kez eklenir.
- Tutarlılık. Uygulama iki platformda da aynı görünür ve aynı davranır. Kullanıcı bir telefondan ötekine geçtiğinde yabancılık çekmez.
- Esneklik. Önce bir platformda yayına çıkıp ikinciye geçmek, ikinci bir proje başlatmak anlamına gelmez.
- Daha sade bir bütçe. İki ayrı ekip ya da iki ayrı geliştirme süreci yerine tek bir süreç yürür.
Biz mobil projelerimizde bu yaklaşımla çalışıyoruz. Tako da Mümin 360 da tek kod tabanıyla geliştirildi.
Sınırları: tek kod tabanı her şeyi çözmez
Dürüst olmak gerekirse, tek kod tabanı bazı işleri ortadan kaldırmaz:
- İki mağaza, iki süreç. App Store ve Google Play’in başvuru adımları, inceleme biçimleri ve kuralları farklıdır. Her biri ayrı ekran görüntüsü, ayrı açıklama ve ayrı gizlilik beyanı ister.
- Platforma özgü davranışlar. Geri tuşu, bildirim izinleri, ayarlar ekranı ya da paylaşım menüsü gibi konularda her platformun kullanıcı beklentisi farklıdır. İyi bir uygulama bunlara saygı gösterir.
- Test. Kod tek olsa da uygulama iki platformda, farklı ekran boyutlarında ve farklı işletim sistemi sürümlerinde ayrı ayrı test edilir.
- Özel ihtiyaçlar. Çok ağır grafik işleri ya da platforma özgü bir donanım özelliği gerekiyorsa, belli parçaların platforma özel yazılması gerekebilir.
Bu yüzden “ikisi birden” demek işi ikiye katlamaz; ama ikinci platformun hiç emek istemediğini de söyleyemeyiz.
Mağaza tarafı: iki ayrı kapı
Platform kararı mağaza işini de belirler:
- App Store. Apple Developer Program üyeliği yıllık olarak yenilenir. Her sürüm Apple’ın incelemesinden geçer. Süreci ve sık ret sebeplerini App Store’a uygulama yükleme yazımızda anlattık.
- Google Play. Geliştirici hesabı tek seferlik kayıtla açılır. Uygulamalar da incelemeden geçer; yeni açılan bazı hesaplardan yayından önce kapalı test şartı istenebilir. Güncel kurallar için Google Play Console yardım sayfaları en doğru kaynaktır.
İki tarafta da hesapların sizin adınıza açılmasını öneriyoruz. Uygulama sizin hesabınızda yayınlanır; başvuru ve inceleme sürecini biz yürütürüz.
Tako’da nasıl karar verdik?
Tako, dağınık abonelikleri tek sakin ekranda toplayan bir abonelik takipçisi. Hesap yok, zorunlu bağlantı yok; veriler cihazda tutuluyor. İlk günden 11 dilde.
Tako’yu tek kod tabanıyla geliştirdik ve önce App Store’da yayına aldık. Bu, ilk aşamada tek bir mağazanın kurallarına, tek bir inceleme sürecine ve tek bir kullanıcı geri bildirimi akışına odaklanmamızı sağladı. Ürünün çekirdeği — abonelikleri toplamak, aylık ve yıllık toplamı göstermek, yenilemeden önce hatırlatmak — platformdan bağımsız olduğu için kod da öyle kuruldu.
Buradan çıkan ders şu: platform kararı bir “ya o ya bu” kararı olmak zorunda değil. Doğru kurulmuş bir yapı, “önce hangisi?” sorusunu stratejik bir sıralama sorusuna dönüştürür.
Karar için kısa kontrol listesi
- Hedef kitlenizin cihaz dağılımına dair elinizde ne veri var?
- Gelir modeli iki mağazanın kurallarına uygun kurulabilir mi?
- Platforma özgü bir donanım ya da özellik gerekiyor mu?
- Önce tek platformla çıkmak, ilk geri bildirimi toplamak için yeterli mi?
- İkinci platforma geçiş için bir eşik belirlediniz mi?
- Yayından sonra iki platformun bakımını kim üstlenecek?
Bu soruların cevabı maliyeti de doğrudan etkiler; maliyeti belirleyen diğer kalemleri mobil uygulama maliyetini ne belirler yazımızda topladık.
Sık sorulan sorular
Tek kod tabanıyla yapılan uygulama daha mı yavaş çalışır?
Günlük kullanılan uygulamaların büyük çoğunluğunda kullanıcı farkı hissetmez. Liste, form, bildirim ve takvim gibi işlerde akıcı bir deneyim mümkündür. Çok ağır grafik ya da yoğun hesaplama gerektiren durumlarda platforma özel parçalar eklenebilir.
Önce iOS’a çıkıp sonra Android’e geçebilir miyiz?
Evet. Tek kod tabanıyla kurulmuş bir uygulamada bu, büyük ölçüde test, platforma özgü düzenlemeler ve mağaza başvurusu işidir. Ayrı ayrı yazılmış bir uygulamada ise ikinci platform çok daha büyük bir iştir.
Hangi platform daha çok kazandırır?
Bunun genel bir cevabı yok. Kazancı, kitlenizin hangi platformda olduğu ve ürününüzün o kitleye ne kadar değer verdiği belirler. Bu yüzden karara genel istatistiklerle değil, kendi kitlenizin verisiyle başlamayı öneriyoruz.
Mevcut bir iOS uygulamasının Android sürümünü yapabilir misiniz?
Önce mevcut uygulamanın kodunu ve yapısını inceliyoruz. Ardından mevcut kodun üzerine mi gidilmeli, yoksa iki platformu birden taşıyacak tek bir kod tabanına mı geçilmeli, gerekçesiyle açıkça söylüyoruz.
Uygulamanız için hangi platformla, hangi sırayla başlamanın doğru olduğunu konuşmak isterseniz mobil uygulama geliştirme sayfamıza bakabilir ya da bize yazabilirsiniz.
