Ana sayfa/Hizmetler/Mobil Uygulama Geliştirme
Hizmet · Yazılım geliştirme

Kullanıcıların sakladığı, silmediği mobil uygulamalar.

iOS ve Android — native ya da cross-platform; bizim kolayımıza göre değil, ürününüze göre seçilir. Mağaza başvurusu, sürüm trenleri ve çökme disiplini dâhil.

Mobil Uygulama GeliştirmeNeler yapıyoruz
01Platform stratejisi
02Çevrimdışı öncelikli veri
03Sürüm treni otomasyonu
04Mağaza & inceleme hazırlığı
Nasıl ilerler
  1. Platform & mimari
  2. Çekirdek deneyim
  3. Sağlamlaştırma
  4. Lansman & sürüm trenleri
Neden var

Native mi cross-platform mı sorusu bir teknoloji tercihi değil, bir ürün kararıdır.

Mobil, özensizliği herkesin gözü önünde cezalandırır. Yorumlar gelecekteki her müşteriye görünür, uygulamayı kaldırmak tek hareketlik iştir ve her sürüm, okumadığınız bir ayrıntı yüzünden onu bekletebilecek bir kapı bekçisinden geçer. Web’de hatalı bir devreye alma dakikalar içinde geri alınır; telefonda ise yeni bir derleme onaylanıp yaygınlaşana kadar kullanıcıların cihazlarında durur. Bu yüzden en baştan bu gerçeğe göre mühendislik yaparız: açılış süresi, çevrimdışı davranış, çökme oranları ve sürüm otomasyonu birinci sınıf gereksinimlerdir, cila aşaması değil.

Bunun sonucu, zor kararların çoğunun arayüz tasarlanmadan önce alınmasıdır. Hangi platform ve neden, ağ çalışmadığında verinin nasıl davrandığı, bir sürümün kullanıcılara hepsine birden değil kademeli olarak nasıl ulaştığı ve hatalı bir derlemeyi otomatik olarak neyin durdurduğu. Bu kararları atlayan ekipler ofis wifi’sinde çalışan bir demo çıkarır, sonra uzun bir süreyi bir asansörün, bir depo bodrumunun ve iki yıllık orta seviye bir Android’in o demoya ne yaptığını keşfederek geçirir.

Tek satır kod yazılmadan önce önerimizi yazılı olarak sunarız — ödünleşimler, cihaz matrisi ve her birinin bakım maliyetiyle birlikte — ve cevap aslında bir uygulamaya hiç ihtiyacınız olmadığıysa bunu da açıkça söyleriz.

Yetkinlikler

Bir mobil ürünün doğru yapması gereken dört şey.

Aşağıdakilerin tamamı ilk fazda kararlaştırılır, çünkü her biri yapısaldır: sonradan fikir değiştirmek yeniden düzenleme değil, baştan yazmak demektir.

01

Platform stratejisi

Tek bir ekibin her iki mağazaya birden çıkması gerektiğinde React Native veya Flutter; ürün donanımın kendisini talep ettiğinde — sürekli kamera kullanımı, sıkı donanım entegrasyonu, platform öncelikli etkileşim — Swift veya Kotlin. Öneri gerekçeli ve yazılıdır; cihaz matrisinize, ihtiyaç duyduğunuz platform özelliklerinin derinliğine ve uygulamanın bakımını iki yıl sonra kimin üstleneceğine dayanır. Kurumsal uygulamaların çoğu cross-platform ile daha hızlı ve en az o kadar iyi çıkar; doğru olduğunda bunu söyleriz, olmadığında tersini söyleriz.

02

Çevrimdışı öncelikli veri

Kullanıcılarınızın sinyalsiz kaldığı anlar için senkronizasyon motorları ve çakışma yönetimi — saha uygulamalarının tam da en çok işe yaradığı anlar. Yazma işlemleri yerelde kuyruğa alınır ve bağlantı geri geldiğinde eşitlenir, çakışmalar en son gelen isteğe göre değil açık bir kurala göre çözülür, arayüz de kullanıcıya neyin kaydedildiğini ve neyin hâlâ beklediğini söyler. Bunu baştan tasarlamak, bir depodan gelen ilk şikâyetten sonra sonradan eklemenin maliyetinin küçük bir kısmıdır.

03

Sürüm treni otomasyonu

Commit’ten mağazaya uzanan CI hatları: imzalı derlemeler, sürümleme, değişiklik notları, kademeli yayılımlar ve hatalı bir sürümü kullanıcılarınızın geri kalanına ulaşmadan otomatik olarak durduran çökme kapıları. Sertifikalar ve imzalama anahtarları bir dizüstü bilgisayarda değil, sizin hesaplarınızda ve CI hattında durur; böylece bir sürüm tek bir kişinin müsait olmasına bağlı kalmaz. Tren sizinle kararlaştırılan düzenli bir ritimde çalışır, bu da sürüm çıkarmayı bir olay olmaktan çıkarıp sıradanlaştırır.

04

Mağaza & inceleme hazırlığı

Başvuru yönetimi, inceleme kılavuzlarına uyum, gizlilik beyanları ve veri güvenliği formları, mağaza sayfası görselleri — ekiplerin çoğunun hafife aldığı ve lansman haftasının planına uyup uymayacağını belirleyen son adım. Meta verileri ve inceleme notlarını derlemeden sonra değil, derlemeyle birlikte hazırlarız; bir ret geldiğinde de yanıtı ve yeniden başvuru döngüsünü biz üstleniriz.

Uygulamada

İş günlük olarak nasıl yürür?

01

Platform kararı, kanıta dayalı.

Native mi cross-platform mı, bize sorulan ilk soru ve en sık alışkanlıkla cevaplanan soru. Biz bu soruyu ürününüze bakarak cevaplarız: uygulamanın cihazla ne yapması gerektiğine, arayüzün gerçekten ne kadarının platforma özgü olduğuna, kullanıcı kitlenizin elinde ne taşıdığına ve devirden sonra bakımı kimin yapacağına. Tek bir ekibin tek bir kod tabanını iki mağazaya çıkarması gerçek bir ekonomik avantajdır; ürün kameranın, sensörlerin ya da işletim sisteminin ayrıcalıklı saydığı bir arka plan servisinin içinde yaşıyorsa yanlış tercihtir. Karar, gerekçesiyle birlikte mimari notuna girer; böylece bir görüş olarak yeniden açılmak yerine olgular üzerinden gözden geçirilebilir.

  • Ödünleşimler, cihaz matrisi ve iki yıllık bakım maliyetiyle birlikte yazılı öneri
  • Cevap cross-platform bir istemciyse TypeScript ile ortak iş mantığı
  • Belirli bir yetenek gerektirdiğinde, uygulamanın tamamı baştan yazılmadan native modüller
Sürekli kamera veya sensör kullanımıNative — Swift / Kotlin
Platform öncelikli etkileşim ve widget’larNative, ortak API katmanıyla
Formlar, listeler, senkronizasyon, bildirimlerCross-platform — tek ekip, iki mağaza
Kısa ömürlü iç araçCross-platform veya web uygulaması
02

Ağ bağlantısı verili değildir.

Saha kullanıcıları bağlantının koptuğu yerlerde çalışır: bodrumlar, depolar, asansörler, kırsal güzergâhlar, park pozisyonundaki bir uçak. Ağı bir ön koşul sayan uygulama, tam da satın alınma nedeni olan anda işe yaramaz hâle gelir. Biz veri katmanını tersinden tasarlarız — çalışma kümesi cihazda durur, yazma işlemleri idempotency anahtarıyla yerelde kuyruğa alınır ve bağlantı geri geldiğinde eşitleme, hâlihazırda ulaşmış olanı çoğaltmadan yapılır. Çakışmalar operasyon ekibinizle birlikte kararlaştırılan bir kurala göre çözülür; kuralın sonuçlandıramadığı her şey, en son senkronize olanın lehine sessizce çözülmek yerine bir kişinin önüne getirilir.

  • Idempotency anahtarlarıyla yerel öncelikli yazma; yeniden deneme çoğaltmaz, düzeltir
  • İş birimiyle kararlaştırılmış açık çakışma kuralları, kazara son-yazan-kazanır değil
  • Arayüzde görünür senkronizasyon durumu: kaydedildi, bekliyor, başarısız — asla belirsiz değil
03

Bir sürüm treni ve onu durduran bir kapı.

Her ay sürüm çıkaran ekiplerle ancak cesaret ettiğinde çıkaran ekipler arasındaki fark otomasyondur. Sürüm dalındaki her commit imzalı bir derleme üretir; derleme önce iç test kullanıcılarına, sonra TestFlight’a ya da kapalı kanala, sonra da kullanıcıların küçük bir yüzdesiyle başlayan kademeli yayılıma gider. Yayılımı güvenli kılan şey kapıdır: çökmesiz oturumlar ve hata oranları otomatik olarak izlenir, eşik aşıldığında yayılım kullanıcılarınızın çoğunluğu derlemeyi almadan durdurulur. Bir düzeltmeyle ileri gitmek de böylece bir olay değil sıradan bir gün olur, çünkü onu çıkaracak olan CI hattı zaten defalarca çalışmıştır.

  • İmzalama anahtarları ve sertifikalar CI hattında ve sizin hesaplarınızda, asla bir dizüstünde değil
  • Yüzdeye göre kademeli yayılım, önceden kararlaştırılmış çökme ve hata eşikleriyle
  • Eşik aşımında otomatik durdurma ve düzeltici sürüme giden provalı bir yol
  1. 01Commit
  2. 02İmzalı derleme
  3. 03İç kanal
  4. 04Kademeli yayılım
  5. 05Tam sürüm

Sürüm treni

Rollere göre

Tek uygulama, üç farklı sonuç kümesi.

Tüketici ürünü

Puan, elde tutma metriğidir.

Tüketici uygulamalarında mağaza sayfası herkese açık bir skor tablosudur ve onu en çok hareket ettiren iki şey açılış süresi ile çökmelerdir. Soğuk açılışı orta seviye cihazlara göre bütçeleriz, ilk ekranı ağı beklemeden kullanışlı tutarız ve çökmesiz oturumları aylık bir rapor değil bir sürüm kapısı olarak ele alırız. Yorum madenciliği doğrudan iş listesini besler, çünkü uygulamayı kaldırma nedenlerini genellikle ayrılan kişiler yazmıştır.

  • Soğuk açılış bütçesi amiral gemisinde değil, orta seviye donanımda ölçülür
  • Her yayılımı kapıya bağlayan çökmesiz oturum oranı
  • Her döngüde mağaza yorumları taranıp iş listesi maddelerine bağlanır
Saha operasyonu

Demo için değil, depo için yapılır.

Operasyonel uygulamalar ortak cihazlarda, eldivenle, kötü ışıkta ve sinyalsiz ortamlarda yaşar. Bu, mimariyi değiştirdiği kadar arayüzü de değiştirir: büyük hedef alanları, görev başına az dokunuş, biten bataryayı atlatan iş kaydı ve ekiplerinizin gerçekten taşıdığı dayanıklı el terminallerini içeren bir cihaz matrisi. Veri, entegrasyon sayfamızda anlatılan desenlerle kayıt sistemlerinize geri akar; böylece operasyon iki değil tek bir gerçeği görür.

  • Kuyruklu yazma ve çakışmalar için amir yolu içeren çevrimdışı çalışma kümesi
  • Eski ve dayanıklı donanım dâhil, kendi cihaz filonuzdan kararlaştırılan cihaz matrisi
  • Barkod, NFC, kamera ve konum birinci sınıf girdi olarak ele alınır
Mühendislik lideri

Bizsiz de yürütebileceğiniz bir sürüm süreci.

Her şey kod olarak durur: uygulama, CI hattı, imzalama yapılandırması, çökme panoları ve runbook’lar. Mühendisleriniz isterlerse ilk sprintten itibaren pull request’leri inceler ve devir, bir sunum değil sürüm treninin provasıdır. DevOps & Cloud işlerimizdeki teslimat standartlarının aynısı geçerlidir.

  • Commit’ten mağazaya CI hattı kod olarak tanımlıdır, sıfır makinede yeniden kurulabilir
  • QA & Test ile belirlenen test stratejisi: birim, entegrasyon, cihaz laboratuvarı ve sürüm duman testi
  • Ret, geri alma ve acil düzeltme sürümü için runbook’lar, devirden önce prova edilir
Kapsam

Neler standart, neler ürüne göre şekillenir.

CapabilityIn every engagementShaped per product
Yazılı platform önerisi—
İmzalamalı commit’ten mağazaya CI hattı—
Çökme kapılı kademeli yayılımEşikler
Çökme ve performans izlemeUyarı yolları
Cihaz ve OS destek matrisi
Çevrimdışı çalışma kümesi ve senkronizasyonSaha gerektirdiğinde
Push bildirimleri ve deep link’ler
Mağaza başvurusu ve inceleme yönetimi—
Ana akışlarda erişilebilirlik turuDerinlik
Backend ve API’ler—
Mağaza ve kod mülkiyetiSözleşmede belirlenir—
Devirden sonra treni yürütmekEkibinizİsteğe bağlı bizimle
Nasıl işler

Dört faz, erken aşamadan itibaren gerçek cihazlarda.

01

Platform & mimari

Kitle, cihaz matrisi ve native mi cross-platform mı kararı — ardından navigasyon, veri ve çevrimdışı mimari. Cihaz ve işletim sistemi dağılımını sektör ortalamasından değil, kendi analitiğinizden ya da cihaz envanterinizden alırız; açılış ve çökme hedeflerini birlikte belirleriz ve öneriyi ödünleşimleriyle birlikte yazıya dökeriz. Mağaza hesapları, imzalama ve iskelet CI hattı bu fazda kurulur; böylece ilk derleme erkenden bir test kullanıcısına ulaşabilir.

02

Çekirdek deneyim

Mağaza puanınızın bağlı olduğu akışlar, düzenli olarak gerçek cihazlarda geliştirilip gösterilir — erken bir aşamadan itibaren TestFlight ya da iç kanal üzerinden. Yana yayılmadan önce tek bir yolculuğu uçtan uca kurarız; çevrimdışı ve hata durumları da dâhil, çünkü uygulamanın telefonda kalıp kalmayacağına bu durumlar karar verir. Her demo, kararlaştırılan matristeki donanımda yapılır; böylece performans geri bildirimi hâlâ ucuza aksiyon alınabilecekken gelir.

03

Sağlamlaştırma

Performans turları, çökmesiz oturum hedefleri, erişilebilirlik ve cihaz laboratuvarı matrisi. Soğuk açılışı ve en ağır ekranları orta seviye donanımda profilleriz, hata yollarını bilerek çalıştırırız — sinyal yok, oturum süresi dolmuş, izin reddedilmiş, depolama dolu, ödeme yarıda kesilmiş — ve erişilebilirlik turunu platformun ekran okuyucularıyla yaparız. Bir mağaza incelemesini bekletebilecek her şey bir incelemeci tarafından değil, burada bulunur.

04

Lansman & sürüm trenleri

Mağaza başvurusu, kademeli yayılım, izleme — ve ekibinizin yürütebileceği, tekrar eden bir sürüm treni. Başvuruyu ve inceleme yazışmalarını biz yürütürüz, yayılımı çökme kapıları kurulu şekilde küçük başlatırız ve ilk kullanıcı gruplarını sizinle birlikte izleriz. Faz, treni mühendislerinizin prova etmesiyle biter: commit’ten mağazaya tam bir döngü, bilerek yapılan bir durdurma ve düzeltici bir sürüm dâhil.

Ne alırsınız

Lansmanda masada ne var.

  • iOS ve Android’de mağazada yayımlanmış uygulamalar
  • İmzalama ve kademeli yayılım içeren, commit’ten mağazaya CI/CD
  • Test kapsamıyla birlikte cihaz/işletim sistemi destek matrisi
  • Uyarı eşikleriyle çökme ve performans izleme
  • Yazılı platform önerisi ve mimari notu
  • Operasyon ekibinizle kararlaştırılan çakışma kuralları dâhil, çevrimdışı ve senkronizasyon tasarımı
  • Mağaza reddi, geri alma ve acil düzeltme sürümleri için runbook’lar, ekibinizle prova edilmiş
Genellikle şunlarla çalışır
React NativeFlutterSwiftKotlinTypeScriptFirebaseFastlaneApp Store ConnectPlay ConsoleSentry
Uygunluk

Bu ne zaman doğru karardır.

Doğru tercih

Ürün cihazın kendisine ihtiyaç duyuyorsa mobil geliştirmeyi seçin — kamera, tarayıcı, arka planda konum, insanların aksiyon aldığı bildirimler ya da ağ olmadan da sürmesi gereken işler. Elde tutmanın açılış süresine ve kararlılığa bağlı olduğu tüketici ürünlerine, telefonun kâğıdın yerini aldığı saha ve depo uygulamalarına ve hâlihazırda işlettiğiniz bir platformun yardımcı uygulamalarına uygundur. Mevcut bir uygulamanın yorumları kötüyse ve sürüm disiplini yoksa da doğru karardır: çökme verileri ve yorum madenciliği, tek satır kod değişmeden uygulamayı kaldırmanın başlıca nedenlerini ortaya koyar.

Başka yere bakın

Aynı işi tarayıcı da en az o kadar iyi yapıyorsa başka yere bakın — formlar, panolar, ara sıra kullanım, bağlantıyla paylaşılan her şey. Web uygulaması daha hızlı çıkar, kapı bekçisi olmadan güncellenir ve ayakta tutması daha ucuza gelir; ekrandaki bir simge tek başına uygulama yapmak için gerekçe değildir. İş varsayımı henüz test edilmediyse başka yere bakın: bazen önce web üzerinde bir MVP bu soruyu daha ucuza cevaplar. Devirden sonra sürümleri kimsenin sahiplenmeyeceği durumlarda da dikkatli olun — sürüm çıkarmayı bırakan bir uygulama, bir sonraki işletim sistemi sürümünde bozulmaya başlar.

SSS

Sık sorulan sorular

Ürün hangisine ihtiyaç duyuyorsa onu. Yoğun platform entegrasyonu, sürekli kamera veya sensör kullanımı, zorlayıcı grafikler ve platform öncelikli etkileşim native’e doğru iter; kurumsal uygulamaların çoğu ise cross-platform ile daha hızlı ve en az o kadar iyi çıkar, tek ekip her iki mağaza için tek bir kod tabanının bakımını yapar. Kararı ilk fazda cihaz matrisinize ve bakım gerçekliğinize bakarak veririz, ödünleşimleri yazıya dökeriz ve tek bir yetenek, geri kalanı ortak olan bir uygulamanın içinde native modül gerektirdiğinde ikisini birlikte kullanırız.
Evet. Kılavuzlardan yeterince kez geçtik; yaygın nedenleri baştan eliyoruz — gizlilik beyanları, hesap silme, izin gerekçeleri, satın alma kuralları — ve inceleme notlarını derlemeden sonra değil derlemeyle birlikte hazırlıyoruz. Bir ret geldiğinde yazışmayı ve yeniden başvuru döngüsünü biz üstleniriz; neyin gündeme geldiğini ve yanıtımızın ne olduğunu size iletiriz. Retler bir takvim riskidir; bu yüzden sürpriz olarak değil, planlanmış bir ihtimal olarak ele alınır.
Evet ve bu iş genellikle tek satır kod değişmeden başlar. Çökme verilerini okur, yorumları tarayarak uygulamayı kaldırmanın başlıca nedenlerini buluruz; bunlar neredeyse her zaman genel bir kalite sorunu değil, küçük bir dizi belirli arızadır. Önce bunlar düzeltilir, ardından düzeltmelerin kullanıcılara öngörülebilir biçimde ulaşması için sürüm trenini yeniden kurarız. En sık gördüğümüz tablo, kötü değil ama sıkışmış bir uygulamadır: CI hattı yok, izleme yok ve sürüm çıkarmanın güvenli bir yolu yok.
Her işte sözleşmede belirlenir.
Genellikle evet — mobil ve API birlikte tasarlanır, çünkü telefondaki zor problemlerin çoğu veri problemidir: ne önbelleğe alınır, ne senkronize olur, kuyruktaki bir yazma işlemine ne olur. Hâlihazırda bir backend’iniz varsa onunla entegre oluruz ve mobil trafik desenlerine göre kurulmamışsa neyin değişmesi gerektiğini söyleriz; bu iş çoğu zaman baştan yazmaya değil, entegrasyon hizmetimize benzer.
Ritim sizinle, ihtiyaçlarınıza göre belirlenir; buradaki asıl mesele, bir sürümün boyutunun artık bir karar olmaktan çıkmasıdır. Küçük ve sık sürümler daha güvenlidir; her biri daha az şey içerir, kademeli yayılım sorunu kullanıcıların küçük bir yüzdesindeyken yakalar ve çökme kapısı eşiği aşan her şeyi durdurur. Acil düzeltmeler de aynı CI hattından geçer; böylece acil bir müdahale doğaçlama değil, alışıldık bir prosedür olur.

Sinyal kesildiğinde neyin çalışması gerekiyor?

Cihazı kimin taşıdığını ve onunla ne yaptığını bize anlatın. Her iki mağazaya da uygulama çıkarmış bir mühendis okur ve yazılı bir öneriyle yanıt verir.

✓ Satış sunumu yok✓ AI-native bir mühendisten yanıt✓ Yazılı geri dönüş