# Zenzop: لاسٹ مائل کے لیے بنائے گئے ڈیلیوری ایپس

> Zenzop کے کسٹمر اور رائیڈر ایپس کو React Native میں صفر سے بنانا: لائیو ٹریکنگ، iOS Live Activities، اور ایک ETA انجن جو 28% زیادہ درست ہوا۔

Canonical URL: https://saifsiddiqui.in/ur/work/zenzop/ (this is its markdown representation; the same URL serves HTML to browsers)
Other languages: en: https://saifsiddiqui.in/work/zenzop/ · hi: https://saifsiddiqui.in/hi/work/zenzop/ · kn: https://saifsiddiqui.in/kn/work/zenzop/ · te: https://saifsiddiqui.in/te/work/zenzop/ · ar: https://saifsiddiqui.in/ar/work/zenzop/ · hi-Latn: https://saifsiddiqui.in/hi-latn/work/zenzop/

**کردار:** 0 سے 1 تک بنایا  
**اسٹیک:** React Native, Swift, Google Maps, CodePush

**لنکس**

- iOS: https://apps.apple.com/in/app/zenzop/id6749267701

## مسئلہ

Zenzop ایک آن-ڈیمانڈ ڈیلیوری ایپ ہے: کھانا، گروسری، دوائیں، اور روزمرہ کی ضروریات آپ کے
دروازے تک۔ ڈیلیوری دو چیزوں پر ٹکتی یا گرتی ہے جنہیں کسٹمر سیدھے محسوس کرتا ہے: کیا مجھے
پتہ ہے میرا آرڈر کہاں ہے، اور کیا ETA ایماندار ہے۔ میرا کام ان ایپس کو بنانا تھا جو دونوں
کو سنبھالیں، صفر سے، iOS اور Android کے لیے۔

## فیصلے

**دو ایپس، ایک کام۔** میں نے دونوں طرف مکمل طور پر React Native میں بنائے: Shop ایپ جس سے
کسٹمر آرڈر کرتا ہے، اور Rider ایپ جسے ڈیلیوری پارٹنر چلاتا ہے۔ ہر ایک iOS اور Android پر
شپ ہوا، تاکہ ایک چھوٹی ٹیم چاروں سرفیس پر ایک ساتھ کام کر سکے۔ Google Maps ریئل-ٹائم
جیو لوکیشن اور روٹ آپٹیمائزیشن سنبھالتا ہے، وہی ریڑھ جو دونوں ایپس شیئر کرتے ہیں۔

**لائیو ٹریکنگ جو لاک شدہ فون میں بھی چلے۔** رائیڈر کا فون پوری ٹرپ جیب میں رہتا ہے۔ میں
نے بیک گراؤنڈ لائیو ٹریکنگ بنائی تاکہ رائیڈر کی پوزیشن تب بھی بہتی رہے جب ایپ فور گراؤنڈ
میں نہ ہو، اور iOS پر میں Swift کے ساتھ نیٹِو گیا تاکہ Live Activities چلا سکوں: آرڈر
اسٹیٹس اور رائیڈر پروگریس Dynamic Island اور لاک اسکرین پر، تاکہ کسٹمر بغیر کچھ کھولے دیکھ
سکے کہ اس کا کھانا کہاں ہے۔ ایک ایپ جسے لوگ چیک کرتے ہیں اور ایک ایپ جس پر لوگ بھروسہ کرتے
ہیں، ان دونوں کے درمیان یہی فرق ہے۔

**ایک ETA انجن، ETA اندازہ نہیں۔** ڈیلیوری ETA ایک وعدہ ہے۔ میں نے ایک انجن بنایا جو اسے
ڈسٹینس میٹرِسس، لائیو ٹریفک، رائیڈر کی لائیو پوزیشن، اور روٹ کے ہسٹاریکل ایوریج سے کیلکولیٹ
کرتا ہے، نہ کہ ایک سیدھی-لائن کے اندازے سے۔ اس نے ETA کی درستگی 28% بڑھائی، وہ نمبر جو
کسٹمر ہر ایک آرڈر پر محسوس کرتا ہے۔

**لوڈ میں تیز، فکس میں تیز۔** میں نے ایپس کو 30% تیز لوڈ ٹائم کے لیے ری فیکٹر کیا اور
CodePush جوڑا، تاکہ اوور-دی-ایئر اپڈیٹس پورے اسٹور ریلیز کے بغیر سیدھے صارفین تک پہنچیں۔
فکسز اور تبدیلیاں اسی دن آتی ہیں، اگلے ریویو سائیکل میں نہیں۔

**ڈاکس تاکہ API بوٹل نیک نہ بنے۔** میں نے جامع Swagger API ڈاکیومنٹیشن لکھی تاکہ کلائنٹ
اور بیک اینڈ ٹیمیں ٹرائبل نالج کے بجائے ایک سنگل سورس آف ٹروتھ کی بنیاد پر بلڈ، ٹیسٹ، اور
انٹیگریٹ کر سکیں۔

## نتیجہ

{/* TODO(saif): metrics slot, installs / on-time delivery rate / order volume.
    Qualitative until real numbers land. */}

دونوں ایپس iOS اور Android پر شپ ہوئیں: ایک کسٹمر ایپ اور ایک رائیڈر ایپ صفر سے بنے، لائیو
ٹریکنگ کے ساتھ جو جیب میں بھی ٹکتی ہے، Dynamic Island پر iOS Live Activities، اور ایک ETA
انجن جو بیس لائن سے 28% زیادہ درست ہے۔ لاسٹ مائل ڈیلیوری کا وہ حصہ ہے جسے کسٹمر اصل میں
تجربہ کرتا ہے، اور یہ ایپس اسی کو سنبھالا ہوا محسوس کرانے کے لیے بنے تھے۔

سارا کام: [/ur/work/](/ur/work/)

---

Mohd Saif, Product Engineer. I build solutions, not dead software.
Email: saifmd238@gmail.com · GitHub: https://github.com/Saif-09 · LinkedIn: https://www.linkedin.com/in/mohd-saif-134076141/ · Résumé (PDF): https://saifsiddiqui.in/resume

More for agents:
- [/llms.txt](/llms.txt): short summary of this site
- [/llms-full.txt](/llms-full.txt): the complete text of every page in one fetch
- [/agents.md](/agents.md): when to use this site, and how to query it
- [/sitemap-index.xml](/sitemap-index.xml): every URL, in seven languages
