Flutter ile iOS Entegrasyonu: Platform Channel ve Native Modüller
Flutter'da MethodChannel, EventChannel ve Pigeon ile native iOS modülleri. Add-to-app, PlatformView ve FlutterEngine yönetimi.
22 dk30 Dakikada Market Teslimat Platformu
Kullanıcı
İndirme
App Store Puanı
Geliştirme Süresi
Market Hızlı, hızlı ticaret (quick commerce) trendinin Türkiye pazarındaki güçlü temsilcilerinden biri olarak tasarlanmış kapsamlı bir mobil platformdur. Uygulama, kullanıcıların günlük market, manav, kasap ve eczane ihtiyaçlarını ortalama 25 dakikada kapılarına ulaştırmayı hedefler. Platformun altyapısı, dark store (karanlık mağaza) konseptine dayanır. Stratejik konumlarda yerleştirilmiş depolardan müşterilere en kısa sürede teslimat yapılır. Her dark store'un kapsama alanı, nüfus yoğunluğu ve ulaşım altyapısı analiz edilerek 3-5 km yarıçapla sınırlandırılmıştır. Gerçek zamanlı kurye takibi, siparişin hazırlanmasından teslimine kadar tüm süreci şeffaf şekilde kullanıcıya sunar. Kurye konumu harita üzerinde canlı olarak gösterilir, tahmini varış süresi trafik koşullarına göre dinamik olarak güncellenir. Kullanıcı ve kurye arasında anlık mesajlaşma ve arama özelliği ile iletişim sorunsuz sağlanır. Akıllı sipariş optimizasyonu, kullanıcının alışveriş geçmişini analiz ederek sıklıkla alınan ürünleri ön plana çıkarır. "Tekrar Sipariş" özelliği ile daha önce verilen siparişler tek dokunuşla tekrarlanabilir. Haftalık alışveriş listesi önerisi, tüketim paternlerine göre otomatik oluşturulur. Dinamik stok yönetimi, dark store'lardaki ürün mevcudiyetini gerçek zamanlı olarak yansıtır. Stokta olmayan ürünler için otomatik alternatif önerisi sunulur. Talep tahmini algoritması, bölgesel ve zamansal desenleri analiz ederek stok planlamasını optimize eder.
Market Hızlı projesinin en kritik teknik zorluğu, 30 dakikalık teslimat garantisini tutarlı şekilde sağlamaktı. Bu süre sipariş alımı, sipariş hazırlama (picking), paketleme ve teslimat aşamalarının toplamını kapsıyordu. Her bir aşamanın optimizasyonu farklı teknik zorluklar içeriyordu ve bir aşamadaki gecikme domino etkisiyle tüm süreci etkiliyordu. Gerçek zamanlı kurye takibinin düşük gecikme ile çalışması, özellikle yoğun saatlerde binlerce eş zamanlı bağlantıyı yönetmek anlamına geliyordu. WebSocket bağlantılarının stabil tutulması, bağlantı kopma durumlarında graceful reconnection ve batarya optimizasyonu dengelenmesi gereken parametrelerdi. Dinamik stok yönetimi, fiziksel envanter ile dijital gösterimin tutarlılığını sağlamak açısından zorlu bir problemdi. Dark store'daki ürün hareketi (yeni stok, müşteri siparişleri, fire/zayi) gerçek zamanlı olarak uygulamaya yansıtılmalıydı. Aynı ürüne aynı anda birden fazla sipariş geldiğinde stok çakışması önlenmeliydi. Teslimat rotası optimizasyonu, tek bir kuryeye birden fazla sipariş atandığında karmaşık hale geliyordu. Çoklu teslimat noktası, ürün hassasiyeti (soğuk zincir, kırılacak ürün), trafik koşulları ve kuryenin mevcut konumu göz önünde bulundurularak optimal rota hesaplanmalıydı. Bu, NP-hard bir optimizasyon problemi olup, gerçek zamanlı çözüm gerektiriyordu.
Teslimat süresini optimize etmek için tüm sipariş akışını mikro servis mimarisi ile modülerize ettik. Sipariş alım servisi, picking servisi, paketleme servisi ve teslimat servisi bağımsız ölçeklenebilir birimler olarak tasarlandı. Her servis arasında event-driven iletişim (Firebase Cloud Messaging + Firestore listeners) kuruldu. Picking süresini azaltmak için dark store'lardaki raf düzeni, sık sipariş edilen ürünlerin giriş noktasına yakın konumlandırılmasıyla optimize edildi. Gerçek zamanlı kurye takibi için WebSocket tabanlı bir konum yayını sistemi geliştirdik. Kurye uygulaması GPS konumunu 3 saniye aralıklarla sunucuya iletir. Sunucu tarafında konum verisi filtrelenir (Kalman filter ile gürültü azaltma) ve sadece anlamlı konum değişiklikleri müşteri uygulamasına push edilir. Bu yaklaşım bant genişliği kullanımını %65 azaltırken, konum güncelliğini 3 saniye seviyesinde tutmayı başardı. Stok çakışması problemi için optimistic locking stratejisi uyguladık. Her ürün için Firestore transaction kullanılarak atomik stok azaltma yapılır. Eş zamanlı sipariş durumunda ilk transaction başarılı olur, ikinci sipariş için otomatik alternatif önerisi tetiklenir. Stok sıfıra düşmeden önce "son 3 ürün" uyarısı ile erken müdahale sağlanır. Rota optimizasyonu için Google OR-Tools üzerine özelleştirilmiş bir Vehicle Routing Problem (VRP) çözücü geliştirdik. Zaman penceresi kısıtlamaları, kapasite limitleri ve ürün hassasiyeti parametreleri modele entegre edildi. Çözüm süresi 200ms'nin altında tutularak gerçek zamanlı rota güncelleme mümkün kılındı. Kuryeye yeni sipariş atandığında rota dinamik olarak yeniden hesaplanır.
Market Hızlı, Flutter framework üzerinde BLoC (Business Logic Component) state management pattern ile Clean Architecture katmanları kullanılarak geliştirilmiştir. Presentation, Domain ve Data katmanları kesin sınırlarla ayrılmış, dependency injection için GetIt service locator kullanılmaktadır. Gerçek zamanlı iletişim katmanı, dart:io WebSocket üzerine özel bir abstraction layer ile inşa edilmiştir. WebSocketChannel ile sunucuya bağlantı kurulur, heartbeat mekanizması ile bağlantı sağlığı izlenir. Bağlantı kopma durumunda exponential backoff ile otomatik reconnection uygulanır. Konum verileri Protocol Buffers formatında iletilerek JSON'a göre %40 daha az bant genişliği kullanılır. Harita modülü Google Maps SDK for Flutter üzerine geliştirilmiştir. Kurye konumu custom marker ile gösterilir, marker animasyonu AnimationController ile smooth interpolation yapılarak oluşturulur. Polyline ile aktif teslimat rotası çizilir ve gerçek zamanlı güncellenir. Clustering ile yoğun bölgelerdeki dark store'lar gruplandırılır. Lokal veri katmanı Hive NoSQL veritabanı kullanır. Sepet bilgileri, kullanıcı tercihleri ve önbelleğe alınmış ürün kataloğu Hive box'larında saklanır. TypeAdapter'lar ile custom model serialization sağlanır. Offline durumda sepet işlemleri devam eder, bağlantı sağlandığında sync edilir. Ödeme akışı Stripe Payment Sheet entegrasyonu ile gerçekleştirilmiştir. 3D Secure, Apple Pay ve Google Pay desteklenir. Kapıda ödeme seçeneği için kurye uygulamasında NFC tabanlı pos entegrasyonu bulunur. Split payment ile bahşiş ayrı transaction olarak işlenir. Push notification Firebase Cloud Messaging üzerinden çalışır. Sipariş durumu değişiklikleri (onaylandı, hazırlanıyor, yola çıktı, teslim edildi), kampanya bildirimleri ve stok uyarıları için ayrı notification channel'lar tanımlanmıştır. iOS'ta Critical Alert desteği ile sessiz moddaki kullanıcılara teslimat bildirimi ulaştırılır.
Türkiye hızlı ticaret pazarı 2024 itibarıyla 35 milyar TL büyüklüğe ulaşmış olup yıllık %55 büyüme göstermektedir. Getir, Trendyol Go, Migros Hemen ve İstegelsin gibi güçlü oyuncuların varlığı rekabetçi bir ortam oluşturmaktadır. Rakip analizi kapsamında Getir (TR), Gorillas (AB, kapandı), Flink (AB), GoPuff (ABD), Zepto (Hindistan) ve Blinkit (Hindistan) incelenmiştir. Gorillas ve benzeri şirketlerin kapanma nedenleri (yüksek müşteri edinme maliyeti, düşük birim ekonomisi, ölçeklenme zorlukları) detaylı şekilde analiz edilmiş ve bu hatalardan kaçınma stratejileri geliştirilmiştir. Kullanıcı araştırmasında 400+ kişilik nicel anket ve 80+ derinlemesine görüşme yapılmıştır. Tüketicilerin %67'si hız konusunda 30 dakikayı kabul edilebilir üst sınır olarak belirtmiştir. Fiyat hassasiyeti, teslimat ücreti ve minimum sipariş tutarı en kritik karar faktörleri olarak öne çıkmıştır. Kullanıcıların %54'ü haftalık 2-3 kez hızlı market teslimatı kullandığını belirtmiştir. Dark store operasyonu konusunda saha araştırması yapılmış, 3 farklı şehirde pilot dark store kurularak operasyonel veriler toplanmıştır. Ortalama picking süresi (3.5 dk), paketleme süresi (1.5 dk) ve son mil teslimat süresi (15-20 dk) benchmark olarak belirlenmiştir.
Tasarım süreci, hızlı ticaret kullanıcı deneyiminin temel beklentisi olan "hız" ve "basitlik" üzerine inşa edilmiştir. Rakip uygulamaların UX audit'i yapılmış, sipariş akışındaki sürtünme noktaları (friction points) tespit edilmiştir. Ortalama sipariş tamamlama süresi 90 saniyenin altında tutulması hedef olarak belirlenmiştir. Information architecture, kullanıcının en sık yaptığı eylemlere göre optimize edilmiştir. Ana sayfa: (1) son sipariş tekrar butonu, (2) kişiselleştirilmiş ürün önerileri, (3) kategoriler, (4) kampanyalar sırasıyla düzenlenmiştir. Arama özelliği her ekrandan erişilebilir konumda, otomatik tamamlama ve fuzzy matching ile güçlendirilmiştir. Sepet deneyimi, sipariş süresini minimize etmek için akıcı tasarlanmıştır. Bottom sheet üzerinden açılan mini sepet, ana gezinmeyi bozmadan ürün ekleme/çıkarma yapılmasını sağlar. Miktar artırma animasyonları ve haptic feedback ile etkileşim zenginleştirilmiştir. Renk paleti, tazelik ve hız hissini yansıtan teal-cyan tonlarından oluşur. Ürün kategorileri renk kodlaması ile ayrılır (yeşil: sebze-meyve, kırmızı: et-şarküteri, mavi: süt ürünleri, kahverengi: fırın). Teslimat durumu göstergesi, trafik ışığı metaforu ile tasarlanmıştır (kırmızı: hazırlanıyor, sarı: yolda, yeşil: teslim edildi). Kurye takip haritası, kullanıcı testlerinde en çok ilgi çeken ve bağlılık yaratan özellik olarak öne çıkmıştır. Harita tam ekran modunda açılabilir, kurye konumu smooth animasyonla güncellenir. Tahmini varış süresi countdown timer ile gösterilir ve her güncelleme küçük bir pulse animasyonu ile dikkat çeker.
Market Hızlı, lansmanından itibaren 14 ay içinde 120.000+ aktif kullanıcı ve 380.000+ indirmeye ulaşmıştır. Günlük ortalama sipariş adedi 8.500'ü aşmış, aylık Gross Merchandise Value (GMV) 45 milyon TL'yi geçmiştir. Ortalama teslimat süresi 24.7 dakika olup, 30 dakika garantisi %94.2 oranında tutturulmaktadır. Geciken siparişlerde otomatik kupon iadesi uygulanmakta ve bu durum müşteri memnuniyetini koruyan önemli bir unsur olmuştur. Müşteri memnuniyet skoru (NPS) 62 olup sektör ortalamasının (45) üzerindedir. Tekrar sipariş oranı %68 olup, bu oran sektörün en yüksek değerlerinden biridir. Haftalık alışveriş listesi önerisi kullanan kullanıcıların sepet ortalaması, kullanmayanlara göre %42 daha yüksektir. Sadakat programı, aktif kullanıcıların %73'ü tarafından kullanılmaktadır. Kurye verimliliği, rota optimizasyonu sayesinde saatte ortalama 4.2 teslimat olarak gerçekleşmektedir. Bu değer, optimizasyon öncesi dönemin (saatte 2.8 teslimat) %50 üzerindedir. Stok doğruluğu %98.7 seviyesinde olup, alternatif ürün kabul oranı %76'dır. Platform, 3 büyük şehirde (İstanbul, Ankara, İzmir) 45 dark store ile faaliyet göstermektedir. İstanbul'da 28 dark store ile şehrin %72'sini kapsama alanına almıştır.
Market Hızlı projesi, hızlı ticaretin teknik altyapı kadar operasyonel mükemmellik gerektirdiğini gösterdi. İlk aylarda yazılım mükemmel çalışsa bile, picking sürecindeki insan kaynaklı gecikmeler 30 dakika hedefini tehlikeye atıyordu. Barcode scanner entegrasyonlu picking listeleri ve ses yönlendirmeli raf navigasyonu ile picker verimliliği %35 artırıldı. Flutter'da WebSocket performansı, büyük ölçekli gerçek zamanlı uygulamalarda dikkatli yönetilmesi gereken bir konu. İlk sürümde her müşteri için ayrı WebSocket bağlantısı açılıyordu ve 5000+ eş zamanlı bağlantıda sunucu kaynak tüketimi sorun oluyordu. Room-based multiplexing yapısına geçilerek tek bağlantı üzerinden birden fazla sipariş takibi sağlandı ve sunucu yükü %70 azaldı. Dinamik stok yönetiminde, fiziksel sayım ile dijital envanter arasındaki sapma başlangıçta %8'di. RFID etiketleme pilot programı ve günlük otomatik sayım rutinleri ile sapma %1.3'e düşürüldü. Bu süreçte öğrenilen en önemli ders: dijital envanter sistemi ne kadar gelişmiş olursa olsun, fiziksel süreçlerle entegrasyon olmadan doğruluk sağlanamaz. Kapıda ödeme özelliğinin eklenmesi, sipariş iptal oranını %15'ten %8'e düşürdü ancak sahte sipariş riskini artırdı. Makine öğrenmesi tabanlı fraud detection sistemi (sipariş geçmişi, adres doğrulama, telefon doğrulama) ile sahte sipariş oranı %0.3'ün altına çekildi.
Flutter'da MethodChannel, EventChannel ve Pigeon ile native iOS modülleri. Add-to-app, PlatformView ve FlutterEngine yönetimi.
22 dkReact Native ve Flutter'ı mimari, performans, geliştirici deneyimi, ekosistem ve iş piyasası açısından derinlemesine karşılaştırın.
20 dkFirestore ileri seviye sorgular, offline persistence, güvenlik kuralları, Cloud Functions, Remote Config ve maliyet optimizasyonu stratejileri.
21 dk12+ yıllık mobil geliştirme deneyimimle hayalinizdeki uygulamayı birlikte hayata geçirelim.
İlk görüşme tamamen ücretsizdir