إنشاء تطبيق المؤذن يحتاج إلى مجموعة من العناصر والميزات لتذكير المستخدمين بمواعيد الصلاة استناداً إلى الموقع الجغرافي الخاص بهم. سأقوم بتوضيح كل التفاصيل الخاصة ببناء التطبيق باستخدام MIT App Inventor، بما في ذلك الكود والبلوكس الضرورية لتطبيق المؤذن. ### المميزات التي سيشملها التطبيق: 1. **حساب مواعيد الصلاة بناءً على الموقع الجغرافي**. 2. **عرض مواعيد الصلاة على الشاشة**. 3. **تنبيه المستخدم عند كل صلاة باستخدام إشعارات أو نغمات الأذان**. 4. **خيار اختيار المدينة يدوياً أو تلقائياً باستخدام GPS**. ### المكونات التي تحتاج إلى إضافتها من لوحة التصميم: 1. **LocationSensor**: لتحديد الموقع الجغرافي. 2. **Label**: لعرض مواعيد الصلاة لكل صلاة (الفجر، الظهر، العصر، المغرب، العشاء). 3. **Clock**: لاستخدامه للتذكير بمواعيد الصلاة. 4. **Notifier**: لإظهار التنبيهات للمستخدم. 5. **Buttons**: لإعدادات مثل اختيار المدينة يدويًا. 6. **Web Component**: للتواصل مع API خاص بحساب مواعيد الصلاة (مثل AlAdhan API). 7. **Sound or Player Component**: لتشغيل صوت الأذان. 8. **TinyDB**: لحفظ المدينة المختارة والمعلومات المتعلقة بها. ### الخطوات التفصيلية لإنشاء التطبيق: #### 1. **الحصول على الموقع الجغرافي:** - أضف **LocationSensor** من قائمة Sensors. - تأكد من تمكين الوصول إلى الموقع في إعدادات الجهاز. - استخدم البلوك التالي للحصول على الموقع: - `When LocationSensor.LocationChanged` - `Set Latitude = LocationSensor.Latitude` - `Set Longitude = LocationSensor.Longitude` #### 2. **استخدام API لحساب مواعيد الصلاة:** - استخدم **Web Component** لجلب مواعيد الصلاة من أحد مزودي خدمات API مثل **AlAdhan API**. - تحتاج إلى إرسال طلب GET إلى API باستخدام خطوط العرض والطول: - **URL**: `api.aladhan.com/v1/timings?latitude=LATITUDE&longitude=LONGITUDE&method=2` - استخدم البلوك: - `call Web1.Get` - عند استلام الرد (When Web1.GotText)، قم بتحليل بيانات JSON للحصول على مواعيد الصلاة. #### 3. **عرض مواعيد الصلاة على الشاشة:** - استخدم **Labels** لعرض مواعيد الصلاة المختلفة مثل الفجر، الظهر، العصر، المغرب، العشاء. - بعد تحليل JSON، قم بتحديث قيم **Labels** كالتالي: - `Set LabelFajr.Text = get Value from JSON for Fajr` - `Set LabelDhuhr.Text = get Value from JSON for Dhuhr` - وهكذا لكل صلاة. #### 4. **إعداد التنبيهات للصلاة:** - استخدم **Clock Component** لتفحص الوقت الحالي كل دقيقة. - قارن الوقت الحالي بمواعيد الصلاة، وإذا كانت الصلاة على وشك البدء (مثلاً بفارق دقيقة): - استخدم **Notifier** لإظهار تنبيه: `call Notifier1.ShowAlert "حان وقت صلاة الفجر"` - أو قم بتشغيل صوت الأذان باستخدام **Player Component**: - `call Player1.Start` لتشغيل ملف صوت الأذان المحفوظ. #### 5. **التحكم اليدوي في المدينة:** - إذا أراد المستخدم تحديد المدينة يدوياً، أضف **Button** لفتح نافذة لاختيار المدينة. - استخدم **TinyDB** لتخزين المدينة المختارة وإعادة حساب مواعيد الصلاة باستخدام المدينة الجديدة. - عند الضغط على الزر: - `call TinyDB.StoreValue tag "city" value TextBoxCity.Text` - ثم جلب مواعيد الصلاة باستخدام المدينة المدخلة بدلاً من الموقع. ### البلوكس (Blocks) الأساسية: #### 1. **الحصول على الموقع وتحديث مواعيد الصلاة:** ```plaintext When LocationSensor.LocationChanged Set Latitude to LocationSensor.Latitude Set Longitude to LocationSensor.Longitude call Web1.Url to "api.aladhan.com/v1/timings?latitude=" + Latitude + "&longitude=" + Longitude + "&method=2" call Web1.Get ``` #### 2. **جلب بيانات مواعيد الصلاة وتحليلها:** ```plaintext When Web1.GotText call JSONTextDecode Web1.ResponseContent Set Fajr to get value "Fajr" from JSON object Set Dhuhr to get value "Dhuhr" from JSON object Set Asr to get value "Asr" from JSON object Set Maghrib to get value "Maghrib" from JSON object Set Isha to get value "Isha" from JSON object Set LabelFajr.Text to Fajr Set LabelDhuhr.Text to Dhuhr Set LabelAsr.Text to Asr Set LabelMaghrib.Text to Maghrib Set LabelIsha.Text to Isha ``` #### 3. **فحص الوقت الحالي وتنبيه المستخدم:** ```plaintext When Clock1.Timer If CurrentTime = FajrTime call Notifier1.ShowAlert "حان وقت صلاة الفجر" call Player1.Start (لتشغيل صوت الأذان) Else If CurrentTime = DhuhrTime call Notifier1.ShowAlert "حان وقت صلاة الظهر" call Player1.Start (استمر بهذا الشكل لبقية مواعيد الصلاة) ``` #### 4. **حفظ المدينة يدويًا واستخدامها:** ```plaintext When ButtonSelectCity.Click call TinyDB.StoreValue tag "city" value TextBoxCity.Text call Web1.Url to "api.aladhan.com/v1/timingsByCity?city=" + TextBoxCity.Text + "&country=Egypt&method=2" call Web1.Get ``` ### الخاتمة: باستخدام هذه المكونات والبلوكات، يمكنك إنشاء تطبيق مؤذن بسيط وفعال. يمكنك إضافة ميزات إضافية مثل ضبط الإعدادات لاختيار طريقة الحساب أو إضافة خيارات لتخصيص صوت الأذان. انا معايا الكود بس مش عارف اطبق الابلكيشن ممكن تساعدنى ❤
استاذي الفاضل اريد اضهار بيانات علي شكل اعمدةفي الليست فيو بشكل منظم مثلا الصنف العدد السعر الاجمالي بحيث يحتوي كل صف علي بيانات صنف مختلف ولكن تكون البيانات مرتبة تحت بعض فتظهر كانهااعمدة واستطيع في نفس الوقت ان اسختار كل صف من السلكشن عند الضغط عليه وهذا في الاب اينفينتور او الكوديولار
رائع 😊+ معلش ممكن حضرتك لو تقدر تبعتلي طريقه بدل ما انا بكتب الاحداثيات يخليه اسم المكان يعني اشيل الابعاد واخليه اسم مكان بليز حضرتك ترد عليا علشان انا محتاجه الاكواد جدا
عنجد شكرا إلك كثير من اول السنة كنت اخذ مع استاذ المدرسة حرفيا كان كثير سيء لو انا اطلع اشرح احسن منه و ما شرح و لا فتح الوحدة الاخيرة و كنت ضايع في الي صديق دلني عليك وقت التجريبي و درست منك و دوسيتك كل اشي بس الوقت كان متأخر بس لحقت حالي و الحمد لله جبت بفضل الله ثم بفضلك ٩٢ بتكنولوجيا جد شكرا .