İlk olarak otomobil parçalarını etiketlemek için 1994 yılında Masahiro Hara tarafından icat edilen QR kodlar, yaklaşık 20 yıl sonra artık hayatımızın her alanında kullanılıyor. Ödeme sistemleri, bankacılık, ulaşım ve restoran bu alanlardan sadece birkaçı ve en önemlileri diyebiliriz.
QR kodların kullanımı arttıkça doğal olarak bu kodları tarayan ve işleyen uygulamaların sayısı da arttı. Günümüzde artık neredeyse her uygulamada barkod tarayan bir parça mevcut.
Biz de bu blog yazısında Android uygulamalar için Google ML Kit kütüphanesinin bir parçası olan Barkod Tarama API’sinin ne olduğunu öğrenip, Kotlin dilinde uygulamamıza nasıl entegre edebileceğimizi örneklendireceğiz.
Google ML Kit nedir?
İlk olarak 2023 Mart ayında kullanma sunulan bu kit ile cihazdaki kamera kullanılarak, cihaz içerisinde gerçek zamanlı ve çevrimdışı olarak da kullanılabilen bir makine öğrenimi deneyimi sunuluyor. Bu kit ile barkod tarama, yüz algılama ve metin tarama gibi işlemler hem IOS hem Android cihazlarda kolay ve hızlı bir şekilde yapılabiliyor. Daha fazla doküman için (kendi sitesine, 2023) göz gezdirebilirsiniz.
Google ML Kit ile nasıl barkod taranır?
- Gerekli kütüphaneleri projeye ekleme
Barkodları tarayabilmek için 2 adet kütüphaneye ihtiyacımız bulunuyor. CameraX ve Barkod Tarama API.
Projemizin build.gradle dosyasındaki dependecies kısmına kütüphaneleri ekliyoruz.
Kameraya erişim için de AndroidManifest.xml dosyasına izin ekliyoruz.
- ImageAnalysis.Analyzer’den sınıf oluşturma
Kameradan okunan verilerin işlenmesi için ImageAnalysis.Analyzer sınıfından türeyen bir alt sınıfa ihtiyacımız olacak. Bunun adına MyImageAnalyzer diyelim.
Bu sınıf analyze metodunu override etmeli. Bu metot bize ekranda olan görüntüye ait frame’leri InputProxy olarak dönecek. Bu objeyi de kullanarak ekrandaki görüntünün bir QR olup olmadığını anlayıp, QR ise içeriğini mesaj olarak göstereceğiz.
- Layout dosyası oluşturma
res/layout/ altına activity_main.xml oluşturuyor ve içine kamera bileşenimizi ekliyoruz.
- Son olarak MainActivity dosyasına eklemeler yapma
İlk olarak kamera kullanımı için bir “executer” objesine ihtiyacımız var. OnCreate metodunda bu objeye atama yapıyoruz.
Sonrasında kamera erişimi için izne ihtiyacımız olacak. Aşağıdaki kod blokları ile kullanıcının izni var mı diye kontrol ediyoruz. Eğer izni var ise kamerayı başlatıyoruz, yoksa izin istiyoruz. Kullanıcı izin vermez ise iznin alınamadığına dair mesaj gösteriyoruz, izin verirse kamerayı açıyoruz.
Kamerayı açmak için kamera yaşam döngüsünü uygulamaya bağlayan bir sınıfa, tasarımımızda olan kamera ön izleme objesine ve kamera işleme için oluşturduğumuz sınıfa ihtiyacımız var. Bu verilerle kamerayı başlatıyoruz.
Tüm aşamalardan sonra artık uygulamamız barkod okuyabilecek duruma gelecektir.
Projenin detaylı ve tüm kodlarına github adresimden ulaşabilirsiniz. Umarım bu makale Google ML Kit’i anlamada ve barkod okumada sizlere açıklayıcı bilgiler sunabilmiştir.
İyi günler. ☺
Kaynakça
- (2023, Ağustos 22) https://developer.android.com/codelabs/camerax-getting-started#0
- (2023, Ağustos 22) https://developers.google.com/ml-kit/vision/barcodescanning/android?hl=tr kendi sitesine.
- (2023, Ağustos 22). https://developers.google.com/ml-kit?hl=tr adresinden alındı