iToverDose/Yazılım· 30 NISAN 2026 · 00:08

Bir Küba'lı Geliştiricinin 2G Bütçesiyle Nasıl Bir Araç Paylaşım Uygulaması Geliştirdiği

Kübalı bir geliştirici, Organik Haritalar ve OpenStreetMap kullanarak sıfırdan bir ulaşım çağırma uygulaması geliştirdi ve yakıt krizinde 20.000'den fazla taksi yolculuğunun gerçekleşmesini sağladı—tüm bunlar sadece 1GB RAM'e sahip telefonlarda ve aralıklı 2G sinyallerle çalışırken.

DEV Community2 dk okuma0 Yorumlar

Cezalandırıcı yakıt kıtlığı Küba’daki ulaşımı felç ettiğinde, bir geliştirici bu zorluğu yenilikçi bir çözüme dönüştürerek sıfırdan hafif bir yolculuk paylaşım uygulaması inşa etti. Sıfırdan başlamak yerine, gereksiz özelliklerden arındırdığı Organic Maps’i yeniden yapılandırdı ve harita verilerini özelleştirerek 20.000’in üzerinde gerçek taksi yolculuğunu sınırlı kaynaklara ve güvenilmez bağlantılara sahip cihazlarda yönetebilen bir sistem oluşturdu.

Uygulamanın mimarisi ciddi kısıtlamaları aşmak üzere tasarlandı: sadece 1GB RAM’e sahip telefonlar, aralıklı 2G sinyalleri ve güvenilir bir bulut altyapısının bulunmaması. OpenStreetMap verilerini kullanarak ve her bileşeni optimize ederek, geliştirici geleneksel uygulamaların başarısız olacağı bir ortamda işlevsel bir yolculuk paylaşım çözümü sundu.

Düşük Performanslı Donanıma Yönelik Minimalist Mimari

Sistem, Küba’nın altyapı zorluklarına özel olarak uyarlanmış üç temel bileşenden oluşuyor:

  • Yolcu uygulaması (58MB): Kullanıcıların yolculuk talep etmelerine, çevrimdışı adres araması yapmalarına ve sürücüleri gerçek zamanlı olarak takip etmelerine olanak tanır—ilk kurulumdan sonra internet bağlantısı gerektirmeden.
  • Sürücü uygulaması (62MB): Sürücülere yolculuk taleplerini almalarına, atamaları kabul etmelerine ve konumlarını yolcularla paylaşmalarına imkan verir.
  • Hafif Python/Django arka ucu: OSRM kullanarak gerçek yol mesafelerini hesaplayarak yolcuları en yakın müsait sürücülerle eşleştirir ve çevrimiçi coğrafi kodlama hizmeti olan Nominatim’e gerek bırakmaz.

Tüm sistem, ilk yol eşleştirme süreci hariç, çevrimdışı çalışır ve bağlantı kesintileri sırasında bile işlevselliği sürdürür.

Bütçe Telefonlarına Uyması İçin Haritadan 100MB Kaldırmak

Organic Maps, özellikler açısından zengin olmasına rağmen asla bir taksi dağıtım sistemi için tasarlanmamıştı. Küba için varsayılan harita dosyaları 160MB’tan fazlaydı—düşük performanslı Android cihazlar için çok büyüktü. Geliştirici, temel işlevselliğinden ödün vermeden daha hafif bir çözüme ihtiyaç duyuyordu.

Kod Kaldırmak Ötesinde: Haritanın Kendisini Yeniden İnşa Etmek

Çoğu geliştirici uygulamadan kullanılmayan kodu kaldırmaya başlardı. Bu yardımcı olduysa da gerçek atılım, yolculuk paylaşımına özel olarak optimize edilmiş özel harita dosyaları (*.mwm formatı) oluşturulmasından geldi.

Orijinal Organic Maps harita dosyaları şunları içeriyordu:

  • Küba’da gereksiz olan 50’den fazla dilde çeviriler.
  • OpenStreetMap’ten isimlendirilmemiş çokgenler (boş araziler, isimlendirilmemiş tarlalar).
  • Taksi hizmetleri için gereksiz olan her ilgi noktasının tam meta verileri.

Harita işlem hattını yeniden inşa ederek geliştirici hedefli azaltımlar yaptı:

  • İsimsiz çokgenleri filtreledi: Boş park alanları veya etiketsiz tarlalar gibi isim etiketi olmayan tüm coğrafi özellikleri kaldırdı.
  • Dil desteğini azalttı: Sadece İspanyolca ve İngilizceyi koruyarak meta veri boyutunu yaklaşık %80 azalttı.
  • Özel bir arama dizini yerleştirdi: .mwm dosyasına doğrudan sıkıştırılmış bir arama dizini ekleyerek Nominatim’e gerek bırakmadı ve anında çevrimdışı adres aramaları sağladı.

Sonuç, Küba’nın varsayılan harita dosyasının boyutunun yarısından az olan 25MB’lık bir harita dosyasıydı—ve depolama alanı sınırlı cihazlar için kritik önem taşıyordu.

Kod Optimizasyonu: Sadece Önemli Olanları Korumak

Harita boyutu kontrol altına alındıktan sonra geliştirici uygulamanın kod tabanına odaklandı. Gereksiz özellikler kaldırıldı:

| Kaldırılan özellik | Nedeni | |-------------------|--------| | Rota kaydı | Yolcular taksi yolculukları için rota geçmişine ihtiyaç duymuyor | | Çoklu iş parçacıklı render | RAM kullanımını azalttı; gerçek zamanlı kaydırma yolcular için kritik değil | | Bulut yer imi senkronizasyonu | Küba’da bulut altyapısı yok; yerel senkronizasyon yeterli | | Dünya harita parçaları | Sadece Küba’ya ihtiyaç vardı |

Geriye kalanlar, taksi özel işlevleri için yeniden yapılandırıldı. Örneğin, BookmarkManager bileşeni "Sık Kullanılan Yerler" özelliğine dönüştürüldü; yolcuların ev ve iş adreslerini tek dokunuşla yolculuk talebi için kaydetmelerini sağladı.

Son APK boyutları bu verimliliği yansıtıyordu:

  • Yolcu uygulaması: 58MB
  • Sürücü uygulaması: 62MB

Eski Android cihazlardaki başlatma süresi 8 saniyeden 3 saniyenin altına düştü.

Sunucu Olmadan Çevrimdışı Aramayı Çözmek

Yapay zeka özeti

Discover how a Cuban developer engineered a ride-hailing app enabling 20,000+ taxi rides on low-end phones with intermittent 2G signals using Organic Maps and OpenStreetMap.

Yorumlar

00
YORUM BIRAK
ID #2MECR8

0 / 1200 KARAKTER

İnsan doğrulaması

9 + 9 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.