AllerCheck, gıda ürünlerinin alerjen içeriğini kontrol etmenize yardımcı olan bir iOS uygulamasıdır. Barkod tarama ve OCR (Optik Karakter Tanıma) ile ürün bilgisini okur; seçtiğiniz alerjen ve özel hassasiyetlere göre Güvenli, Dikkat veya Riskli sonucu gösterir.
Önemli: Bu uygulama yalnızca bilgilendirme amaçlıdır. Ciddi alerjik reaksiyon riski için mutlaka bir sağlık uzmanına danışın ve ürün etiketini kendiniz de kontrol edin.
| Özellik | Açıklama |
|---|---|
| Hızlı barkod tarama | Barkod okutulur, Open Food Facts’ten ürün bilgisi çekilir |
| Detaylı tarama | Barkod + etiket fotoğrafı ile çapraz doğrulama |
| Etiket okuma (OCR) | Kamera veya galeriden fotoğraf; içindekiler metni analiz edilir |
| Manuel barkod | Barkod elle girilebilir |
| Ürün bulunamadı | Veritabanında yoksa etiket fotoğrafı ile devam edilebilir |
- 12 standart alerjen (laktoz, gluten, yumurta, fıstık, soya, kabuklu yemişler, balık, kabuklu deniz ürünleri, susam, hardal, kereviz, sülfit)
- Özel hassasiyetler — Listede olmayan kelimeler (ör. çilek, kakao); virgülle İngilizce eşanlam eklenebilir (
Çilek, strawberry) - İz / çapraz bulaşma uyarısı — “İz miktarda”, “may contain” vb. ifadelerde Dikkat seviyesi
- Türkçe metin desteği — OCR ve içindekiler için normalleştirme (ş→s, ı→i vb.)
- Olumsuzlama — “Glutensiz”, “laktozsuz” gibi ifadelerde yanlış alarm azaltılır
- Tarama geçmişi (barkod / etiket türü, risk, eşleşen alerjenler)
- Detay ekranı, kaydırarak silme, Tekrar tara
- Alerjen seçimi, açık/koyu tema
- İlk kullanım onboarding akışı
- Ana sayfa özet kartı (son taramalar)
- Tıbbi sorumluluk uyarısı (sonuç ekranları)
- Open Food Facts yanıtları için bellek + disk önbelleği (24 saat)
| Seviye | Anlamı |
|---|---|
| Güvenli | Seçili alerjenler içindekilerde tespit edilmedi |
| Dikkat | İz miktarda / çapraz bulaşma uyarısı veya içindekiler eksik |
| Riskli | Seçili alerjen doğrudan içindekilerde veya OFF alerjen etiketinde bulundu |
Ana Sayfa ──► Barkod Tara (Hızlı / Detaylı)
└──► Etiket Oku (OCR)
Geçmiş ──► Tarama detayı ──► Tekrar tara
Profil ──► Standart alerjenler + Özel hassasiyetler + Tema
- Uygulamayı açın ve onboarding’de alerjenlerinizi seçin.
- İstediğiniz zaman Profil’den listeyi güncelleyin.
- Ana sayfada Barkod Tara’ya dokunun, mod seçin (Hızlı veya Detaylı).
- Barkodu kameraya hizalayın veya Manuel Barkod Gir kullanın.
- Sonuç ekranında risk seviyesi ve eşleşen alerjenleri inceleyin.
- İsterseniz Etiket Doğrulama ile OCR’a geçin.
- Ana sayfada Etiket Oku’ya gidin.
- Fotoğraf çekin veya galeriden seçin; metni gerekirse düzenleyin.
- Analiz Et ile sonucu görün.
- Profil → Özel Hassasiyetler
- Örn.
KakaoveyaÇilek, strawberryyazıp + ile ekleyin. - Eklenen hassasiyet otomatik seçilir; taramalarda içindekiler metninde aranır.
| Alan | Kullanılan |
|---|---|
| UI | SwiftUI |
| Mimari | MVVM |
| Veri | Core Data, UserDefaults |
| Kamera / barkod | AVFoundation |
| OCR | Vision |
| Ağ | URLSession |
| Ürün verisi | Open Food Facts API |
- iOS 17.0+
- Xcode 15.0+ (önerilen: güncel Xcode)
- Swift 5.9+
- Kamera izni (barkod ve OCR için)
git clone <repository-url>
cd AllerCheck
open AllerCheck.xcodeprojXcode’da hedef cihaz veya simülatör seçip ⌘R ile çalıştırın.
AllerCheck/
├── App/ # Uygulama girişi, Core Data, varlıklar
├── Core/
│ ├── Models/ # Allergen, ProductDTO, RiskLevel, ScanMode…
│ ├── Services/ # AllergenAnalyzer, OpenFoodFacts, History
│ ├── ViewModels/ # MVVM katmanı
│ ├── Helpers/ # OCRTextParser, TextNormalizer…
│ └── Utils/ # UserSettings, AppTheme, AllergenData…
├── UI/
│ ├── Screens/ # Home, Scan, OCR, Result, History, Profile…
│ └── Components/ # CameraView, MedicalDisclaimerBanner…
└── PrivacyInfo.xcprivacy # Apple gizlilik bildirimi
AllerCheckTests/ # Birim testleri (alerjen analizi, OCR ayrıştırma)
# Xcode içinde
⌘U → AllerCheckTests şemasıTest kapsamı örnekleri:
- Fıstık / antep fıstığı ayrımı
- Özel hassasiyet eşleşmesi
- OCR içindekiler çıkarma
- İz etiketi uyarısı
Ürün sorguları OpenFoodFactsService.swift içinde yapılır:
GET https://world.openfoodfacts.org/api/v2/product/{barcode}?lc=tr&fields=...
Yanıtlar off_product_cache.json dosyasında önbelleğe alınır.
- Tarama geçmişi ve alerjen tercihleri cihazda saklanır.
PrivacyInfo.xcprivacy— UserDefaults ve dosya zaman damgası API bildirimi.
Bu proje kişisel kullanım için geliştirilmiştir.
Ece Akçay