← العودة إلى المشاريع تطبيق هاتف · iOS وSwift

تطبيق iOS لتحديد الموقع الجغرافي

تطبيق iOS أصلي تم تطويره باستخدام Swift وSwiftUI لتتبع GPS عالي الدقة ومراقبة المسارات في الوقت الفعلي.

المشروع

المشروع

GeolocationApp هو تطبيق iOS أصلي تم تطويره باستخدام Swift وSwiftUI. يتيح التقاط إحداثيات GPS عالية الدقة، وتحويل الإحداثيات إلى عناوين تلقائيًا، وتتبع المسارات في الوقت الفعلي مع حساب السرعة والمسافة، بالإضافة إلى أرشفة البيانات محليًا ومشاركتها.

نظرة عامة على المشروع والبنية البرمجية

تطبيق GeolocationApp هو تطبيق أصلي لنظام iOS تم تطويره بلغة Swift وإطار عمل SwiftUI. صُمم لتحقيق أعلى مستويات الأداء وتجربة استخدام سلسة، عبر الجمع بين دقة خدمات CoreLocation وقوة عرض الخرائط عبر MapKit.

┌─────────────────────────────────────────────────────────────────────────────┐
│                   GeolocationApp iOS Native Architecture                    │
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       │
           ┌───────────────────────────┼───────────────────────────┐
           ▼                           ▼                           ▼
  📍 CoreLocation Engine       🗺️ MapKit & SwiftUI         💾 Local Data Pipeline
  • High-precision GPS fixes   • Interactive vector maps   • JSON File persistence
  • Reverse geocoding worker   • MapPolyline route tracing • Documents directory
  • Authorization state flow   • Combine reactive bindings • Multi-channel export
            

تحديد مواقع GPS فائق الدقة

التقاط فوري لخطوط الطول والعرض، ونسبة الخطأ، والطابع الزمني الكامل، وبيانات جهاز iOS.

الترميز الجغرافي العكسي التلقائي

تحويل إحداثيات GPS الأولية تلقائيًا إلى عناوين بريدية واضحة ومقروءة (الشارع، الرمز البريدي، المدينة، الدولة).

تتبع المسار في الوقت الفعلي

تسجيل مباشر للتحركات مع رسم المسار التفاعلي عبر MapPolyline، وقياس إجمالي المسافة والسرعة اللحظية.

الميزات الأساسية وإدارة البيانات

تخزين محلي دائم

حفظ آمن لسجل المواقع بتنسيق ملفات JSON مباشرة داخل مجلد Documents الخاص بالتطبيق.

مشاركة عبر قنوات متعددة

تصدير سريع لبيانات الموقع عبر Apple Maps، أو رسائل SMS مجهزة، أو بريد إلكتروني منسق.

إدارة السجل

واجهة استخدام بديهية تتيح فحص السجلات المحفوظة أو حذف النقاط المسجلة بشكل انتقائي.

البنية التقنية واللغات

  • لغة البرمجة والواجهة: Swift 5 مع إطار العمل التصريحي SwiftUI
  • خدمات تحديد الموقع: CoreLocation (إدارة الصلاحيات ومستقبل GPS عالي التردد)
  • الخرائط: MapKit (خرائط متجهة وتتبع مسارات MapPolyline في الوقت الفعلي)
  • إدارة الحالة: إطار عمل Combine (بنية تفاعلية تعتمد على @Published وObservableObject)
  • الحفظ الدائم: تسلسل JSON عبر FileManager المحلي (مجلد Documents)

هيكل الشفرة البرمجية

يعتمد المشروع على بنية برمجية قياسية تضمن الفصل التام للمسؤوليات:

  • App/نقطة الدخول: إعداد دورة حياة التطبيق الرئيسية (@main).
  • Models/نماذج البيانات: هياكل بيانات متوافقة مع بروتوكولات Codable وIdentifiable.
  • Services/طبقة الخدمات: متحكم تحديد الموقع وإدارة مستقبل الـ GPS المادي.
  • Views/طبقة الواجهات: واجهات SwiftUI (الرئيسية، التتبع المباشر، السجل، ومكونات الخريطة).

الخصوصية وصلاحيات Apple

يلتزم التطبيق بمعايير خصوصية Apple من خلال توضيح أسباب استخدام الأذونات داخل ملف Info.plist:

مفتاح الإذن في Info.plist الغرض من الاستخدام مستوى التفويض
NSLocationWhenInUseUsageDescription السماح بالتقاط إحداثيات GPS أثناء تشغيل التطبيق في الواجهة. إلزامي
NSLocationAlwaysAndWhenInUseUsageDescription السماح بالتسجيل المستمر للمسارات في الخلفية. خيار الخلفية

الشفرة البرمجية ومستودع GitHub

اطلع على الشيفرة المصدرية الكاملة لتطبيق iOS المطور بلغة Swift وSwiftUI على GitHub.

عرض الكود على GitHub ↗