Ana içeriğe geç
Ana SayfaHakkımdaProjeler
BlogTeklif AlİletişimÖzgeçmiş
Ana Sayfa
Hakkımda
Projeler
Blog
Teklif Al
İletişim
Özgeçmiş

İçerik

KarşılaştırmalarKaynaklarOkuma Listesi

Araçlar

Kod SnippetsAraç KutusuDashboard

Etkileşim

Bilgi YarışmasıPlaygroundDuvar Kağıtları

Ben

/uses/nowGitHubBaşarımlar

Site

ChangelogStatusColophonCredits
  1. Ana Sayfa
  2. /
  3. Projeler
  4. /
  5. Travel Lens
Seyahat & Keşif

Travel Lens

AR Seyahat Rehberi

9:41
T

Kullanıcı

İndirme

4.8(3.200+)

App Store Puanı

14 ay

Geliştirme Süresi

Proje Hakkında

Travel Lens, seyahat deneyimini kökten değiştiren bir artırılmış gerçeklik platformudur. Kullanıcılar kameralarını herhangi bir tarihi yapıya, anıta veya doğal güzelliğe doğrulttuklarında, uygulama Core ML tabanlı görüntü tanıma modeli ile mekanı anında tanımlar ve zengin bilgi katmanları sunar. Osmanlı camilerinden Roma kalıntılarına, gotik katedrallerden Uzak Doğu tapınaklarına kadar 50.000'den fazla tarihi mekan veritabanı ile desteklenen sistem, kullanıcıya o anki konumuna özel hikayeler anlatır. Uygulamanın en güçlü özelliği, ARKit 6 ile geliştirilen "Zaman Yolculuğu" modudur. Bu modda kullanıcı, bir yapının yüzyıllar önceki halini artırılmış gerçeklik ile görebilir — örneğin Ayasofya'nın 537 yılındaki açılış törenini veya Kolezyum'un gladyatör dövüşleri sırasındaki atmosferini deneyimleyebilir. 3D rekonstrüksiyon modelleri, tarihçiler ve arkeologlarla iş birliği içinde oluşturulmuş ve akademik doğruluk açısından peer-review sürecinden geçirilmiştir. Kişiselleştirilmiş tur rotası motoru, kullanıcının ilgi alanlarını (mimari, gastronomi, doğa, sanat), fiziksel kapasitesini, mevcut zamanını ve hava durumunu analiz ederek optimize edilmiş rotalar oluşturur. MapKit ve özel yol bulma algoritmaları ile toplu taşıma entegrasyonu sağlanmıştır. Çevrimdışı mod sayesinde internet erişimi olmayan bölgelerde bile harita ve bilgi katmanları kullanılabilir — bu özellik özellikle kırsal tarihi alanlar ve ücra doğa parkurları için kritik öneme sahiptir. Sosyal katman, gezginlerin deneyimlerini paylaşmasına, AR fotoğraflar oluşturmasına ve kolektif keşif haritaları oluşturmasına olanak tanır. "Keşif Puanı" gamification sistemi, kullanıcıları yeni mekanlar keşfetmeye teşvik ederken, yerel rehberler için gelir modeli sunar.

Özellikler

✦ AR ile Tarihi Mekan Tanıma — Kamerayı doğrultun, anında bilgi alın
✦ Zaman Yolculuğu Modu — Yapıların yüzyıllar önceki 3D rekonstrüksiyonu
✦ Akıllı Tur Rotası — İlgi alanı, süre ve hava durumuna göre optimizasyon
✦ Çevrimdışı Harita ve Bilgi — İnternetsiz bölgelerde tam erişim
✦ 50.000+ Tarihi Mekan Veritabanı — Akademik doğruluğu onaylanmış
✦ AR Fotoğraf Stüdyosu — Tarihi arka planlarla fotoğraf oluşturma
✦ Sesli Rehber Entegrasyonu — 12 dilde profesyonel anlatım
✦ Keşif Puanı Sistemi — Gamification ile motivasyon
✦ Yerel Rehber Pazaryeri — Canlı ve sanal tur rezervasyonu
✦ Erişilebilirlik Modu — VoiceOver uyumlu AR deneyimi

Süreç

  1. Keşif
  2. Tasarım
  3. Geliştirme
  4. Test
  5. Yayın

Zorluklar & Çözümler

Zorluk

AR tabanlı tarihi mekan tanıma projesinin en büyük teknik zorluğu, farklı ışık koşullarında ve açılardan çekilen görüntülerde tutarlı tanıma sağlamaktı. Bir katedralin sabah sisi içindeki silueti ile öğle güneşindeki detaylı görünümü tamamen farklı özellik vektörleri üretiyordu. Ayrıca restorasyon geçirmiş yapıların farklı dönemlerdeki görünümlerini tek bir model altında birleştirmek, transfer learning stratejisinde özel yaklaşımlar gerektirdi. Çevrimdışı mod için 50.000 mekanın bilgi ve 3D modellerini cihazda depolamak ciddi bir alan yönetimi sorunu yarattı. Kullanıcının gitmeyi planladığı bölgenin verilerini önceden indirmesi gerekiyordu, ancak bu indirme paketlerinin boyutu başlangıçta 2GB'ı aşıyordu — kabul edilemez bir rakam. Progressive mesh decimation ve texture atlas compression ile bu boyutu %80 azalttık. Zaman Yolculuğu modunda tarihi doğruluğu korumak için akademik danışmanlarla çalıştık, ancak her tarihçinin farklı yorumu vardı. Bir yapının "orijinal hali" konusunda bile uzmanlar arasında görüş ayrılıkları çıkıyordu. Bu durum, kullanıcıya birden fazla akademik perspektif sunma kararına yol açtı. Performans açısından, ARKit session'ı aktifken arka planda Core ML inference çalıştırmak pil tüketimini saatte %40'a çıkarıyordu. Termal throttling ve düşük pil senaryolarında graceful degradation stratejisi geliştirmek zorundaydık.

Çözüm

Görüntü tanıma sorununu çözmek için multi-scale feature extraction yaklaşımı benimsedik. Vision Framework'ün VNFeaturePrintObservation'ı ile yapısal özellikler çıkarılırken, özel eğitilmiş Core ML modeli mimari stil sınıflandırması yapıyordu. Bu iki katmanlı yaklaşım, %94 doğruluk oranına ulaşmamızı sağladı. Gece çekimleri için özel low-light enhancement pipeline'ı geliştirdik. Çevrimdışı veri boyutu sorununu çözmek için progressive loading mimarisi tasarladık. Level 1'de sadece mekan adı ve temel bilgiler (toplam ~50MB), Level 2'de detaylı içerik ve düşük çözünürlüklü görseller (~200MB), Level 3'te tam 3D modeller ve HD görseller (~500MB) indiriliyor. Kullanıcı profili ve kullanım pattern'ine göre önbellek stratejisi otomatik optimize ediliyor. Zaman Yolculuğu modunda RealityKit ile prosedürel geometri üretimi kullandık. Tarihi dönem parametreleri (malzeme yaşlanması, bitki örtüsü, çevresel bağlam) shader'lara parametre olarak geçiriliyor ve gerçek zamanlı render ediliyor. Metal compute shader'ları ile paralel vertex işleme, 60 FPS'i koruyor. Pil optimizasyonu için adaptive duty cycle implementasyonu yaptık. Kullanıcı kamerayı sabit tuttuğunda inference frekansı düşüyor, hareket algılandığında artıyor. Core ML model quantization (Float16 → Int8) ile inference süresini %60 azalttık. Thermal state monitoring ile kritik sıcaklıklarda AR kalitesi otomatik düşürülüyor. MapKit entegrasyonu için özel routing engine geliştirdik. A* algoritmasının turist-odaklı varyantı, sadece mesafe değil görsel zenginlik ve tarihi yoğunluk metriklerini de hesaba katıyor.

Teknik Detaylar

Travel Lens'in teknik altyapısı, birden fazla Apple framework'ünün senkronize çalışmasını gerektiren karmaşık bir orkestrasyon üzerine kuruludur. ARKit 6 session yönetimi, ARWorldTrackingConfiguration ile 6DOF takip sağlarken, eşzamanlı olarak ARGeoTrackingConfiguration ile GPS koordinatlarını AR sahnesine entegre eder. Bu dual-tracking yaklaşımı, hem iç mekan hem dış mekan senaryolarında kesintisiz deneyim sunar. Core ML pipeline'ı üç aşamalıdır: İlk aşamada Vision Framework VNRecognizeTextRequest ile tabelaları okur ve mekan ipuçları toplar. İkinci aşamada özel eğitilmiş MobileNetV3 tabanlı mimari stil sınıflandırıcı (Gotik, Barok, Osmanlı, Art Deco vb. 24 kategori) çalışır. Üçüncü aşamada feature matching ile veritabanındaki spesifik yapı eşleştirilir — bu aşama FAISS (Facebook AI Similarity Search) index'i kullanır ve cihaz üzerinde 50.000 vektör arasında 100ms altında arama yapar. Zaman Yolculuğu modu, RealityKit'in CustomMaterial API'si ile Metal shader'larını kullanır. Prosedürel aging shader'ı, yapı yüzeyindeki taş dokusunu parametre olarak aldığı yüzyıl değerine göre yaşlandırır veya gençleştirir — kir, yosun, aşınma ve restorasyon izleri fizik tabanlı hesaplanır. Çevrimdışı veri yönetimi Core Data + CloudKit senkronizasyonu üzerine kuruludur. Mekan veritabanı SQLite FTS5 (Full Text Search) ile aranabilir, 3D modeller USDZ formatında sıkıştırılmış olarak saklanır. Progressive mesh loading ile kullanıcının bakış açısına göre LOD (Level of Detail) dinamik ayarlanır. Performans monitoring için MetricKit entegrasyonu yapılmıştır — launch time, hang rate, disk write ve CPU/GPU utilization metrikleri gerçek zamanlı dashboard'a akar.

Araştırma Notları

AR seyahat uygulamaları pazarı 2024'te $3.2 milyar değerine ulaştı ve yıllık %28.4 büyüme oranıyla 2028'de $8.7 milyara ulaşması öngörülüyor. Google Lens ve Apple Visual Look Up gibi genel amaçlı görsel tanıma araçları pazar farkındalığını artırırken, dikey seyahat odaklı AR çözümlerinde ciddi bir boşluk bulunuyordu. Rakip analizi: Nearest rakip olan AR City, sadece navigasyon odaklı olup tarihi içerik sunmuyor. Google Arts & Culture uygulaması zengin içeriğe sahip ancak AR deneyimi sınırlı. Travel Lens, bu iki yaklaşımı birleştiren ilk çözüm olarak konumlandı. Türk turizm pazarı özelinde araştırma: Türkiye yılda 50+ milyon turist ağırlıyor ve UNESCO Dünya Mirası listesinde 19 varlığa sahip. Anket sonuçlarına göre turistlerin %67'si ziyaret ettikleri yerin tarihçesini öğrenmek istiyor ancak geleneksel rehber hizmetleri pahalı ve sınırlı bulunuyor. Teknoloji araştırması: ARKit 6'nın Location Anchor özelliği, GPS koordinatlarına sabitlenmiş AR içerik yerleştirmeyi mümkün kılarak projemizin temel enabler'ı oldu. Competitive benchmark testlerinde ARKit'in ARCore'a göre tracking stabilitesinde %12 üstünlük gösterdiği doğrulandı. Kullanıcı araştırması: 500 kişilik anket ve 30 derinlemesine mülakat ile seyahat alışkanlıkları haritalandı. En çarpıcı bulgu: Millennials ve Gen-Z gezginlerin %78'i "Instagram-worthy" deneyimler için ekstra ödeme yapmaya hazır.

Tasarım Süreci

Travel Lens'in tasarım süreci, Double Diamond metodolojisi ile yürütüldü. Discover aşamasında 3 hafta boyunca İstanbul, Roma ve Paris'te field research yapıldı — turistlerin mekan keşif davranışları gözlemlendi, mevcut rehber uygulamaları kullanılarak pain point'ler belirlendi. Define aşamasında 4 kullanıcı personası oluşturuldu: "Tarih Meraklısı Ayşe" (55, emekli öğretmen), "Dijital Nomad Alex" (28, freelancer), "Aile Babası Mehmet" (40, mühendis) ve "Solo Gezgin Yuki" (32, fotoğrafçı). Her persona için journey map çizildi ve ortak pain point'ler belirlendi: bilgiye erişim zorluğu, rehber maliyeti, dil bariyeri ve mekan keşfinin rastgeleliği. Develop aşamasında 12 haftalık design sprint döngüsü uygulandı. Her sprint'te bir ana özellik prototiplendi, 5 kullanıcıyla test edildi ve iterate edildi. AR arayüz tasarımında en büyük zorluk, gerçek dünya görüntüsü üzerine bilgi katmanı yerleştirirken okunabilirliği korumaktı — 23 farklı overlay stili test edildi. Deliver aşamasında Apple Human Interface Guidelines'ın AR bölümü titizlikle uygulandı. Bilgi kartları, kullanıcının bakış açısına göre otomatik konumlanan floating panel'ler olarak tasarlandı — her zaman okunabilir açıda ve uygun mesafede. Erişilebilirlik testleri için 8 engelli kullanıcı ile özel oturum düzenlendi. Tasarım sistemi, 3 temel prensip üzerine kuruldu: (1) Gerçek dünya öncelikli — AR katmanı asla manzarayı kapatmamalı, (2) Bağlamsal bilgi — sadece o an relevant olan bilgi gösterilmeli, (3) Kademeli derinlik — temel bilgiden detaya doğru kullanıcı kontrolünde ilerleme.

Sonuçlar & Etki

Travel Lens, App Store Seyahat kategorisinde 28 ülkede "Editörün Seçimi" rozetini kazandı ve ilk 6 ayda 500.000'den fazla indirildi. Aktif kullanıcı sayısı 200.000'i aşarken, günlük ortalama kullanım süresi 18 dakika olarak ölçüldü — seyahat uygulamaları ortalamasının 3 katı. AR mekan tanıma doğruluğu üretim ortamında %91.3'e ulaştı (lab ortamında %94). En başarılı tanıma kategorileri camiler (%96.1) ve katedraller (%95.4) olurken, modern mimari yapılarda oran %84.7'ye düştü — bu durum eğitim verisindeki tarihi yapı ağırlığından kaynaklanıyor. Çevrimdışı mod kullanım oranı %34 ile beklentilerin üzerinde gerçekleşti — özellikle Kapadokya, Efes ve Pamukkale gibi kırsal turistik bölgelerde bu oran %67'ye çıkıyor. Progressive loading stratejisi sayesinde ortalama indirme paketi boyutu 180MB'a düşürüldü. Zaman Yolculuğu modu, sosyal medyada viral oldu — kullanıcıların paylaştığı AR fotoğraflar ve videolar toplamda 12 milyon görüntülenmeye ulaştı. Bu organik büyüme, pazarlama bütçesinin %60'ını tasarruf etmemizi sağladı. Pil optimizasyonu meyvelerini verdi: ortalama AR session pil tüketimi saatte %18'e düşürüldü (başlangıçtaki %40'tan). Kullanıcı memnuniyet anketlerinde "pil dostu" özellikle vurgulanan bir artı olarak öne çıktı. Yerel rehber pazaryeri, 1.200 lisanslı rehberin platforma katılmasıyla ek gelir kanalı oluşturdu.

Öğrenilen Dersler

Travel Lens projesinde en büyük öğrenimim, AR uygulamalarında "wow faktörü" ile "günlük kullanılabilirlik" arasındaki dengenin ne kadar kritik olduğuydu. İlk prototipte Zaman Yolculuğu modunu ön plana çıkardık, ancak kullanıcı testlerinde insanların %70'inin bu özelliğe ilk kullanımda hayran kaldığını ama ikinci kullanımda basit bilgi katmanını tercih ettiğini gördük. Bu insight, UX stratejimizi kökten değiştirdi — spektaküler özellikler pazarlama için harika, ancak retansiyon günlük fayda sağlayan özelliklerden gelir. Multi-disciplinary ekip yönetimi konusunda değerli dersler çıkardım. Tarihçi danışmanımız ile 3D artist'lerimiz arasındaki iletişim başlangıçta zorlu oldu — biri akademik doğruluk isterken, diğeri görsel etki peşindeydi. Haftalık "tarihi doğruluk review" seansları düzenleyerek bu gerilimi üretken bir diyaloga dönüştürdük. Core ML model deployment stratejisinde önemli bir hata yaptık: İlk versiyonda modeli uygulama bundle'ına gömdük (150MB). Bu hem App Store inceleme süresini uzattı hem de model güncellemesi için uygulama güncellemesi gerektirdi. İkinci versiyonda Core ML Model Deployment ile OTA model güncellemesine geçtik — bu karar model iterasyon hızımızı 10 kat artırdı. Çevrimdışı-öncelikli mimari tasarım, başlangıçta "nice to have" olarak planlanmıştı. Ancak beta testlerinde Kapadokya'daki kullanıcılardan gelen geri bildirimler, bunun "must have" olduğunu kanıtladı. Bu deneyim, kullanıcı araştırmasının proje planlamasından önce yapılması gerektiğini bir kez daha gösterdi.

Proje Bilgileri

RolLead iOS Developer & AR Architect
Takım8 kişi (2 iOS, 1 Backend, 1 ML Engineer, 2 3D Artist, 1 Tarihçi, 1 UX)
Yıl2024
Süre14 ay
MimariMVVM-C + Clean Architecture
Platformlar
iOSiPadOS

Teknolojiler

SwiftARKit 6Core MLRealityKitMapKitCloudKitCore LocationVision FrameworkSceneKitMetal

Paylaş

İlgili Yazılar

Swift

Swift 6.0 Tam Rehber: Concurrency, Typed Throws ve Daha Fazlası

Swift 6.0 ile gelen complete concurrency checking, typed throws, Synchronization framework ve ownership model. Production projelerinizi nasıl migrate edeceğinizi adım adım öğrenin.

22 dk
Swift

Swift Macros Deep Dive: Compile-Time Code Generation Mastery

Swift 5.9+ Macros ile compile-time code generation. Freestanding ve attached macro türleri, SwiftSyntax ile custom macro yazımı, testing ve production best practices.

26 dk
Machine Learning

Core ML ile On-Device Machine Learning: Kapsamlı Entegrasyon Rehberi

iOS uygulamalarınıza on-device ML ekleyin. Model entegrasyonu, Vision framework, NLP, Create ML ile custom model, performans optimizasyonu ve production best practices.

25 dk
Bir Sonraki Adım

Benzer Bir Proje mi Düşünüyorsunuz?

12+ yıllık mobil geliştirme deneyimimle hayalinizdeki uygulamayı birlikte hayata geçirelim.

Ücretsiz Teklif AlınProjelerimi İnceleyin

İlk görüşme tamamen ücretsizdir

Önceki Proje

Kitap Takas

Kitap & Kültür
Sonraki Proje

Carbon Track

Çevre & Sürdürülebilirlik

İlgili Blog Yazıları

Tüm Yazıları Gör
AR/VR

ARKit ile Artırılmış Gerçeklik: Sıfırdan İleri Seviye

ARKit ve RealityKit ile immersive AR deneyimleri oluşturun. Plane detection, image tracking, face tracking ve LiDAR entegrasyonu.

24 dk
Machine Learning

Core ML ile On-Device Machine Learning: Kapsamlı Entegrasyon Rehberi

iOS uygulamalarınıza on-device ML ekleyin. Model entegrasyonu, Vision framework, NLP, Create ML ile custom model, performans optimizasyonu ve production best practices.

25 dk
visionOS

visionOS Development: Spatial Computing ile Geleceği Kodla

Apple Vision Pro için uygulama geliştirme. Windows, volumes, immersive spaces, RealityKit entegrasyonu ve spatial interaction patterns.

23 dk
Tüm Projeleri Gör

Muhittin Çamdalı

iOS, Flutter ve modern mobil teknolojilerle dünya standartında uygulamalar geliştiriyorum

İstanbul
Yeni projeler için müsaitim

Hızlı Bağlantılar

  • Ana Sayfa
  • Hakkımda
  • Projeler
  • Blog
  • Teklif Al
  • İletişim
  • Özgeçmiş
  • GitHub
  • Karşılaştırmalar
  • Kaynaklar
  • Okuma Listesi
  • Duvar Kağıtları
  • Kod Snippets
  • Araç Kutusu
  • Playground
  • Dashboard

Sosyal Medya

RSS Beslemesi
Changelog•Colophon•Credits•Status•RSS•Gizlilik•Çerez Politikası•Koşullar•KVKK Aydınlatma•Telif Hakkı•

Bülten

Yeni yazılar ve projeler için haftalık bültene abone olun.

© 2026 Muhittin Çamdalı. Tüm hakları saklıdır.•Blog: CC BY-NC-SA 4.0 | Code: MIT•

•

İstanbul, Türkiye 🇹🇷