Mobil Uygulama Çözümleri
Mobil uygulama, masaüstü bir arayüzün küçültülmüş hâli değildir. Bağlantının kesildiği, pilin bittiği, elin dolu olduğu koşullarda çalışması beklenir.
Mobil tarafta uygulamanın sahada kullanılabilir olup olmadığını belirleyen şey çoğu zaman ekran tasarımı değil. Bağlantı koptuğunda ne olacağı, verinin ne zaman eşitleneceği ve iki cihaz aynı kaydı değiştirdiğinde hangisinin geçerli sayılacağı daha belirleyici oluyor.
Hangi platformda ve hangi teknolojiyle geliştirileceği kullanım senaryosuna göre belirleniyor. Cihaz donanımına derin erişim gerektiren bir saha uygulamasıyla ağırlıklı olarak veri gösteren bir uygulamanın doğru cevabı aynı değil.
Bağlantıyı ön koşul kabul eden uygulamalar sahada bir süre sonra kullanılmaz oluyor.
Doğru adres miyiz?
Mobil uygulama her ihtiyacın cevabı değil. Kullanıcı masasında oturuyor ve iş tarayıcıda yürüyorsa, ayrı bir uygulama bakım ve sürüm yükü ekliyor, karşılığında bir şey getirmiyor.
Evet, konuşalım
- İş sahada, ayakta ve çoğu zaman tek elle yapılıyor
- Kamera, konum, barkod, NFC gibi cihaz donanımına erişim gerekiyor
- Bağlantının kesildiği yerlerde de kayıt girilebilmesi gerekiyor
Hayır, başkası daha iyi yapar
- Uygulama yalnızca mevcut bir web arayüzünü küçültecek
- Kullanıcı sayısı ve kullanım sıklığı, mağaza ve sürüm yükünü karşılamıyor
- Asıl ihtiyaç raporlama — bu genellikle web tarafında daha ucuz çözülüyor
Neler yapıyoruz
- Kullanım senaryosuna göre platform ve teknoloji seçimi
- Çevrimdışı çalışma ve yerel veri saklama
- Veri senkronizasyonu ve çakışma çözümleme
- Sunucu tarafı API tasarımı
- Cihaz donanımı erişimi — kamera, konum, barkod, NFC, Bluetooth
- Anlık bildirim altyapısı
- Saha koşullarında kullanılabilirlik tasarımı
- Mağaza yayın süreçleri ve sürüm yönetimi
Nasıl ilerliyoruz
Kullanım senaryoları
Uygulamanın nerede, hangi koşulda ve hangi sıklıkla kullanılacağını çıkarıyoruz. Saha koşulu, arayüz kararlarının çoğunu baştan belirler.
Veri akışı tasarımı
Hangi verinin cihazda duracağına, ne zaman senkronize edileceğine ve çakışmanın nasıl çözüleceğine burada karar veriyoruz.
API sözleşmesi
Sunucu tarafı arayüzü, uygulama geliştirmeye başlamadan yazıyoruz. İki taraf böylece paralel ilerliyor.
Geliştirme ve saha testi
Uygulamayı gerçek cihazlarda ve gerçek kullanım koşullarında test ediyoruz. Emülatör testini tek başına yeterli saymıyoruz.
Yayın ve sürüm
Mağaza süreçlerini biz yürütüyor, sürüm politikasını birlikte belirliyoruz. Eski sürümlerin sunucuyla uyumunu bir geçiş süresi boyunca koruyoruz.
Teknik tercihlerimiz
- Uygulama, ağ bağlantısı yokken de anlamlı çalışacak biçimde tasarlanır. Saha personeli bağlantının bulunmadığı bir yerde kayıt girebilir, bağlantı geldiğinde veri eşitlenir. Bağlantıyı ön koşul kabul eden uygulamalar sahada bir süre sonra kullanılmaz oluyor.
- İki cihazın aynı kaydı değiştirmesi durumunda ne olacağı tasarım aşamasında kararlaştırılır. Bu kural sonradan konduğunda, o ana kadar birikmiş verinin bir kısmı çoktan tutarsız hâle gelmiş oluyor.
- Kullanıcıların tamamı uygulamayı aynı anda güncellemez. Sunucu arayüzü eski sürümleri çalışır durumda bırakacak biçimde geliştirilir; aksi hâlde güncellemeyen kullanıcılar sistemin dışında kalır.
- Konum takibi, arka plan eşitlemesi ve bildirim sıklığı cihaz ömrü gözetilerek ayarlanır. Pili hızlı tüketen bir uygulama teknik olarak doğru çalışsa bile kullanıcı tarafından kapatılıyor.