Haitham AssoliRead this in Arabicاقرأ هذه الصفحة بالإنجليزية
Back to the sheet

Mobile2025

Rooh Al-Jouf

A digital guide to the Al-Jouf region and everything in it.

A bilingual tourism guide for Al-Jouf in Saudi Arabia: heritage and tourist sites, live events and festivals, a directory of local restaurants and cafés, and the historical and cultural background behind them. Built for both a first-time visitor and a resident.

Production
Rooh Al-Jouf
Role
Client project: mobile development
Year
2025
Status
Shipped
Format
Mobile
Built with
React NativeExpo RouterTypeScripti18nFirebaseReact QueryReanimatedDeep Linking
Where to find it
Rooh Al-Jouf — A digital guide to the Al-Jouf region and everything in it.روح الجوف — دليلك الرقمي لمنطقة الجوف وكل ما فيها.

Treatment

Regional tourism apps usually fail in one of two ways: they are a brochure that never changes, or they are a map with pins and no reason to care about any of them. Al-Jouf has genuine depth in heritage sites, seasonal festivals and a food scene, and the client wanted all of it in one place.

تفشل تطبيقات السياحة الإقليمية عادةً بإحدى طريقتين: إما كتيّب لا يتغير، وإما خريطة بدبابيس بلا سبب يجعلك تهتم بأيٍّ منها. وللجوف عمق حقيقي في مواقعها التراثية ومهرجاناتها الموسمية ومشهد الطعام فيها، وأراد العميل ذلك كله في مكان واحد.

The app covers sites, events, and places to eat, each with the historical and cultural context that makes a visit worth making. It is fully bilingual, which for a Saudi tourism product is not a nice-to-have.

يغطي التطبيق المواقع والفعاليات وأماكن الطعام، ولكلٍّ سياقه التاريخي والثقافي الذي يجعل الزيارة تستحق. وهو ثنائي اللغة بالكامل، وهذا في منتج سياحي سعودي ليس ترفًا.

Challenges

  1. Bilingual means the layout mirrors, not just the words

    The problem

    Switching to Arabic flips the entire interface: navigation direction, icon orientation, list alignment, back gestures. Translating strings alone produces an app that reads Arabic but behaves English.

    What I did

    Direction is a property of the whole tree rather than a per-screen fix, so layout, navigation and gestures all mirror together. Anything directional is expressed in start/end terms instead of left/right.

  2. Events go stale faster than releases ship

    The problem

    A festival listing that is a week out of date is worse than no listing. Store review cycles are far slower than the pace at which a seasonal events calendar changes.

    What I did

    Events, sites and venues are all remote content the client edits directly. Shipping a build is never on the critical path for keeping the app current.

  3. Heavy imagery on a tourist's connection

    The problem

    A guide is mostly photographs, and it is opened by people on roaming data at a heritage site with one bar of signal, the worst possible conditions for the app's heaviest content.

    What I did

    Images are served at the size they are displayed and cached on disk after first view, so browsing back through places already seen costs nothing.

Results

  • Shipped on both the App Store and Google Play for a Saudi client.صدر على App Store وGoogle Play لعميل سعودي.
  • Fully bilingual with a properly mirrored right-to-left layout.ثنائي اللغة بالكامل مع تخطيط منعكس بشكل صحيح من اليمين إلى اليسار.
  • Content managed by the client without app releases.محتوى يديره العميل دون إصدارات جديدة للتطبيق.

Stills

  • Rooh Al-Jouf — still 1/7روح الجوف، لقطة 1 من 7
  • Rooh Al-Jouf — still 2/7روح الجوف، لقطة 2 من 7
  • Rooh Al-Jouf — still 3/7روح الجوف، لقطة 3 من 7
  • Rooh Al-Jouf — still 4/7روح الجوف، لقطة 4 من 7
  • Rooh Al-Jouf — still 5/7روح الجوف، لقطة 5 من 7
  • Rooh Al-Jouf — still 6/7روح الجوف، لقطة 6 من 7
  • Rooh Al-Jouf — still 7/7روح الجوف، لقطة 7 من 7
Next design — PlayroomSee all 14