ARCore platformu — Android'de artırılmış gerçeklik için Google'ın çözümü, uzaydaki konumu izlemek için akıllı telefonun kamerasını ve atalet sensörlerini kullanır. Google AR Developers, 2025'e göre platform, Motion Tracking, Environmental Understanding ve Light Estimation — sanal nesneleri gerçek ortamlara yerleştirmek için üç temel teknolojiyi destekler. Platformlar arası mimari, geliştiricilerin tek bir kod tabanıyla Android, iOS, Unity ve Unreal Engine için AR uygulamaları oluşturmasına olanak tanır.
Önemli Noktalar
ARCore, Google'ın artırılmış gerçeklik platformudur ve 2018 yılında Project Tango'nun halefi olarak daha hafif ve erişilebilir bir formatta duyurulmuştur. Özel derinlik sensörleri gerektiren Tango'nun aksine, ARCore yalnızca kamera ve atalet sensörlerini (IMU) kullanarak standart Android akıllı telefonlarda çalışır.
ARCore üç temel teknoloji kullanır: Motion Tracking cihaz konumunu izlemek için, Environmental Understanding yatay ve dikey düzlemleri algılamak için ve Light Estimation sanal nesnelerin aydınlatmasını gerçek ortama göre ayarlamak için. Bu üç teknoloji, herhangi bir yüzeyde doğal görünen AR nesneleri yerleştirmeyi sağlar.
Google I/O 2024'e göre, ARCore Samsung, Xiaomi, Huawei, OnePlus, Google Pixel ve diğerleri dahil olmak üzere 1 milyardan fazla Android cihazda desteklenmektedir. Platform, Google Play Services for AR ile entegredir ve Android sürümünden bağımsız olarak Google Play Store üzerinden ARCore'un güncellenmesine olanak tanır.
Altı sürüm boyunca ARCore önemli bir evrim geçirdi: ARCore 1.0 — temel izleme ve düzlem algılama; ARCore 1.2 — dikey düzlemler ve Augmented Images; ARCore 1.7 — çok oyunculu oturumlar için Cloud Anchors; ARCore 1.10 — yüz ifadesi izleme için Augmented Faces.
ARCore 1.20+, Scene Semantic Understanding içerir — cihazda TensorFlow Lite ML modeli aracılığıyla nesne kategorilerinin (zemin, tavan, duvar, mobilya, bitki, kapı) tanınması. Street View Geometry API, açık havada AR navigasyonu için Google Street View derinlik haritalarının kullanılmasına olanak tanır.
// ARCore oturumu başlatma
val session = Session(context)
val config = Config(session)
config.lightEstimationMode =
Config.LightEstimationMode.ENVIRONMENTAL_HDR
config.planeFindingMode =
Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL
session.configure(config)
// Kare işleme
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
Plane::class.java
)
ARCore hibrit bir yaklaşım kullanır: IMU (atalet ölçüm modülü) cihaz konumunu yüksek frekansta (1000 Hz'e kadar) tahmin ederken, görsel odometri kameradan 30–60 Hz'de özellik noktası analizine dayalı olarak hataları düzeltir. Bu yaklaşım, sabit koşullarda yaklaşık 1–2 santimetre izleme doğruluğu sağlar.
Environmental Understanding süreci üç aşamada çalışır: önce ARCore kamera görüntüsünde özellik noktaları bulur, ardından aynı düzlemdeki nokta kümelerini belirler ve bunları bir çokgene yaklaştırır. Düzlem tanıma sonrasında ARCore, yeni kareler alındıkça güncellenen Plane tipinde bir Trackable nesnesi oluşturur.
Google'a göre, ARCore kameradan 1 metreye kadar mesafede 10x10 santimetre boyutunda bir düzlemi algılar. Orta boy odalar (20 m²) için tam düzlem taraması yaklaşık 2–4 saniye sürer. ToF sensör desteğiyle Depth API kullanıldığında, tanıma doğruluğu %40 artar.
Depth API, kamera görüntüsünün stereo analizine dayalı olarak sahnenin derinlik haritasını oluşturan bir ARCore teknolojisidir. ToF sensörü (Time-of-Flight) olan cihazlarda derinlik haritası 2 cm'ye kadar doğrulukla anında elde edilir. Derinlik sensörü olmayan cihazlarda Depth API, tek bir kareden derinliği tahmin etmek için makine öğrenimini kullanır ve yaklaşık 10 cm doğruluk sağlar.
Scene Mesh, ARCore'un gerçek zamanlı olarak oluşturduğu ortamın üç boyutlu bir ağıdır. Ağ, çarpışma fiziği, sanal nesnelerin kapanması ve gölge oluşturma için kullanılır. Scene Mesh, OpenGL ES 3.1 ve Depth API desteği olan cihazlarda kullanılabilir ve kare başına 500 bine kadar çokgen üretir.
// Derinlik haritası alma
val depthImage = frame.acquireDepthImage16Bits()
// Algılanan düzleme nesne yerleştirme
val hitResult = frame.hitTest(x, y)
.firstOrNull { it.trackable is Plane }
hitResult?.let { result ->
val anchor = session.createAnchor(
result.hitPose
)
val model = ModelRenderable.builder()
.setSourceId(R.raw.my_model)
.build()
.exceptionally { null }
AnchorNode(anchor).apply {
this.renderable = model.get()
}
}
ARCore ve ARKit aynı görevleri çözse de (konum izleme, düzlem algılama ve aydınlatma tahmini), yaklaşımları ve ekosistemleri farklıdır. ARCore platformlar arası uyumluluğa öncelik verirken, ARKit Apple donanımıyla derin entegrasyon kullanır.
Temel farklar: ARCore, ARCore SDK aracılığıyla Android ve iOS'ta çalışırken, ARKit yalnızca iOS'ta çalışır. ARCore Firebase üzerinden senkronizasyon için Cloud Anchors kullanırken, ARKit cihazlar arası doğrudan değişim için ARWorldMap kullanır. Depth API ile ARCore ToF sensörlerini desteklerken, LiDAR ile ARKit 3 cm'ye kadar doğrulukla lazer tarama sağlar.
Google 2024 karşılaştırma testlerine göre, jiroskop ve ToF sensörü olan cihazlarda ARCore'un izleme doğruluğu, LiDAR'lı iPhone'da ARKit ile karşılaştırılabilir — 2 metre mesafede hata 2 cm'yi geçmez. ToF'suz cihazlarda ARCore, başlatma hızında ARKit'in gerisinde kalır: 3 saniyeye karşı 0,5 saniye.
ARCore ve ARKit arasındaki seçim hedef kitleye bağlıdır: uygulama yalnızca iOS içinse, ARKit daha iyi performans ve özel LiDAR özelliklerine erişim sağlar. Platformlar arası destek gerekiyorsa, ArcoreiOS SDK ile ARCore, her platformun bazı donanıma özgü yeteneklerinin kaybıyla birlikte minimum platform farklılıklarıyla tek bir kod tabanı kullanılmasına olanak tanır.
| Özellik | ARCore | ARKit |
|---|---|---|
| Platform | Android + iOS + Unity/Unreal | Yalnızca iOS |
| Derinlik sensörü | ToF (isteğe bağlı) | LiDAR (Pro modeller) |
| Senkronizasyon | Cloud Anchors (Firebase) | ARWorldMap (Multipeer) |
| Yüz izleme | Augmented Faces | Face Tracking (TrueDepth) |
| VIO doğruluğu | 1–3 cm | 0,5–1 cm |
ARCore entegrasyonu, build.gradle'a Google Play Services for AR bağımlılığını eklemekle başlar: com.google.ar:core. Uygulama, ArCoreApk.checkAvailability() aracılığıyla cihazda ARCore'un kullanılabilirliğini kontrol etmelidir — ARCore yüklü değilse, kullanıcıdan Google Play Store'dan yüklemesi istenmelidir.
Temel bir ARCore projesi şunları içerir: Session ve Config oluşturma, kamera görüntüleme için SurfaceView ayarlama, session.resume() ile oturumu başlatma ve session.update() ile kareleri işleme. 3D nesne oluşturma için Sceneform SDK (Filament tabanlı Google kütüphanesi) veya karmaşık sahneler için Unity/Unreal kullanılır.
Google, Kotlin uygulamaları için Sceneform önerir — hazır bileşenler sağlar: 3D modelleri (OBJ, glTF, FBX) yüklemek için ModelRenderable, AR sahnesine Android View yerleştirmek için ViewRenderable ve dokunma işleme için MotionEvent. Sceneform, AR oturumu yaşam döngüsünü ve kaynak temizlemeyi otomatik olarak yönetir.
ARCore, zayıf aydınlatma, tek renkli yüzeyler veya hızlı cihaz hareketlerinde izlemeyi kaybedebilir. İzleme durumu frame.getTrackingState() aracılığıyla kullanılabilir — değerler TRACKING, PAUSED ve STOPPED'dir. PAUSED'a geçiş yaparken, oluşturmayı duraklatmak ve kullanıcıya yönergeler göstermek önerilir: “Cihazı daha yavaş hareket ettirin” veya “Daha aydınlık bir yere gidin.”
Hata sonrası otomatik kurtarma için ARCore, kaydedilmiş özellik noktası haritasına dayalı yeniden konumlandırmayı destekler. Geliştirici, haritayı session.serialize() ile kaydedebilir ve session.deserialize() ile geri yükleyebilir — kullanıcının aynı fiziksel alana döndüğü uzun süreli AR deneyimleri için kullanışlıdır. Harita geri yükleme, ortam önemli ölçüde değişmemişse 1–2 saniye sürer.
class ARCoreActivity : AppCompatActivity() {
private lateinit var session: Session
override fun onResume() {
super.onResume()
when (ArCoreApk.getInstance()
.checkAvailability(this)
) {
ArCoreApk.Availability.SUPPORTED_INSTALLED -> {
session = Session(this)
session.resume()
}
else -> {
showInstallPrompt()
}
}
}
}
Sıkça Sorulan Sorular
ARCore, Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ ve daha birçokları dahil olmak üzere 1 milyardan fazla Android cihazda desteklenmektedir. Sertifikalı cihazların tam listesi developers.google.com/ar/devices adresinde yayınlanmıştır.
ARCore'un temel işlevleri — Motion Tracking ve Environmental Understanding — internet gerektirmez. Cloud Anchors ve bulut referanslı Augmented Images bağlantı gerektirir. Depth API ve Scene Mesh, ağ bağlantısı olmadan tamamen cihazda çalışır.
Evet, ARCore doğrudan OpenGL ES 3.1 ile, Unity veya Unreal Engine ile kullanılabilir. Sceneform, basit Kotlin projeleri için önerilen seçenektir ancak zorunlu değildir. Gerçekçi fizik içeren karmaşık 3D sahneler için ARCore SDK desteğine sahip oyun motorlarını kullanmak daha iyidir.
ARCore, yeterli aydınlatmaya (100–500 lüks) sahip iç mekanlar için optimize edilmiştir. Parlak güneş ışığında dış mekanda, kamera aşırı pozlaması nedeniyle izleme doğruluğu düşebilir. Dış mekan kullanımı için Google, kentsel konumlar için derinlik haritaları sağlayan Street View Geometry API'sini önerir.
Scene Viewer, kod yazmadan AR'de 3D modelleri görüntülemek için Google'ın hazır kullanıcı arayüzü bileşenidir ve WebXR üzerinden çalışır. ARCore, oturum, izleme ve oluşturmanın tüm yönleri üzerinde programlı kontrol ile özelleştirilmiş AR deneyimleri oluşturmak için tam özellikli bir SDK'dır.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun