العودة إلى المشاريع

Qarar (قرار)

تطبيق آيفون عربي أولًا يحوّل تقارير الشراء المولَّدة بالذكاء الاصطناعي إلى خطط تسوّق تعمل دون اتصال، متجرًا بمتجر، مع الطراز والمقاس والسعر.

السنة
2026
النوع
تطبيق جوّال
الحالة
خاص

مشروع خاص يُعرض كدراسة حالة وليس منتجًا عامًّا.

دراسة الحالة الكاملة متوفرة بالإنجليزية.

The problem. Tell Me More can tell you which running shoes or coffee grinder to buy, but a report is the wrong tool once you are standing in a store. Qarar turns those buying reports into shopping plans you can check off: store by store, with the exact model, size, a fallback, the expected price, and room for receipts and shelf photos. It is a native iPhone app, Arabic first, built as a private tool for my own use.

The hard part. Arabic interface text constantly mixes with Latin model names, sizes and prices, and the Unicode bidi algorithm will happily reorder "US 9 / EU 42.5" inside a right-to-left line. I wrote a small bidi layer that isolates those runs so they read correctly in either direction. The second problem was the store itself, where the signal is weak: plans live in SwiftData, and progress, photos, notes and questions go through sync queues that drain when the connection returns.

The approach. The app talks to the Tell Me More backend through a versioned contract, now at v1.3, with a JSON schema for the buy plan, and report content blocks render natively, with a web view only for HTML reports. Around that core sit widgets, a Live Activity for shopping progress, App Intents, Spotlight, geofence reminders near a store, Face ID lock and Sign in with Apple. Views stay dumb, logic sits in main-actor observable view models, and every string goes through one localisation layer with Arabic as the base language.

The outcome. The codebase holds more than 350 Swift files and about 590 tests written with Swift Testing, with the Xcode project generated by XcodeGen. Rules in the architecture document keep it maintainable as it grows: no file over 250 lines, design tokens only, no hard-coded strings. It is a working personal build rather than an App Store release, and it is the client that shaped the mobile API in Tell Me More.

دوري

Solo iOS Developer — designed and built the app end to end, from the bidi text layer and offline sync to the system integrations, and defined the versioned API contract it shares with the Tell Me More backend.
  • Swift 6
  • SwiftUI
  • SwiftData
  • iOS 18
  • WidgetKit
  • ActivityKit
  • App Intents
  • Core Spotlight
  • Core Location
  • LocalAuthentication
  • Sign in with Apple
  • Swift Testing
  • XcodeGen
  • SentryCocoa
Qarar (قرار) — لقطة شاشة 1 من 3Qarar (قرار) — لقطة شاشة 2 من 3Qarar (قرار) — لقطة شاشة 3 من 3