سؤال

هل هناك طريقة قياسية لجعل تطبيقاتي سهلة الإزالة؟

أعني بكلمة "skinnable" قدرة التطبيق على دعم الأسطح المتعددة.

أنا لا أستهدف أي منصة معينة هنا.أريد فقط معرفة ما إذا كانت هناك أي إرشادات عامة لجعل التطبيقات قابلة للسلخ.

يبدو أن سلخ تطبيقات الويب سهل نسبيًا.ماذا عن تطبيقات سطح المكتب؟

هل كانت مفيدة؟

المحلول

الجلود هي مجرد مستوى آخر من التجريد (YALOA!).

إذا قرأت على نمط تصميم MVC عندها ستفهم العديد من المبادئ المطلوبة.

يجب على طبقة العرض (أو الجلد) القيام ببعض الأشياء فقط:

  • إظهار الواجهة
  • عند اتخاذ إجراءات معينة (النقر، أو إدخال نص في مربع، وما إلى ذلك) فإنه يؤدي إلى بدء الإجراءات
  • يجب أن يتلقى إشعارات من النموذج ووحدة التحكم عندما يحتاج إلى التغيير

في البرنامج العادي، يتم هذا التجريد من خلال وجود تعليمات برمجية تربط مربعات النص بالطرق والكائنات المرتبطة بها، ووجود تعليمات برمجية تغير العرض بناءً على أوامر البرنامج.

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

تحقق، على سبيل المثال، من XUL وشاهد كيف يتم ذلك هناك.ستجد الكثير من مشاريع السلخ تستخدم لغة XML لوصف "الوجوه" المختلفة للجلد (تشغيل الموسيقى، أو تنظيم المكتبة لسطح مشغل MP3)، ثم مكان وجود كل عنصر تحكم وما هي البيانات والأساليب التي يستخدمها يجب أن تكون مرفقة في البرنامج

قد يبدو الأمر صعبًا حتى تفعل ذلك، ثم تدرك أنه تمامًا مثل أي مستوى آخر من التجريد تعاملت معه من قبل (من برنامج يحتوي على gotos، إلى هياكل التحكم، إلى الوظائف، إلى الهياكل، إلى الفئات والكائنات، إلى JIT المجمعين، الخ).

منحنى التعلم الأولي ليس تافها، ولكن قم ببعض المشاريع وستجد أن الأمر ليس صعبًا.

-آدم

نصائح أخرى

احتفظ بجميع أنماطك في ملف (ملفات) CSS منفصلة

ابتعد عن أي تصميم مضمّن

وانها حقا يتوقف على كيفية "سكينبل" تريد التطبيقات الخاصة بك لتكون. السماح للمستخدم تكوين الألوان والصور ستكون أسهل بكثير من السماح لهم إخفاء / إزالة مكونات أو حتى كتابة مكوناتها الخاصة.

لمعظم الحالات، يمكنك الحصول على الارجح بعيدا مع الكتابة نوعا من مزود الموارد التي تخدم ما يصل الألوان والصور بدلا من hardcoding لهم في الملف المصدر. لذلك، هذا:

Color backgroundColor = Color.BLUE;

هل تصبح شيئا مثل:

Color backgroundColor = ResourceManager.getColor("form.background");

وبعد ذلك، كل ما عليك القيام به هو تغيير تعيينات في فئة ResourceManager الخاص بك وسوف جميع العملاء تكون متسقة. إذا كنت تريد أن تفعل هذا في الوقت الحقيقي، وتغيير أي تعيينات في ResourceManager سوف ربما يرسل حدث لعملائها وإخطارهم بأن شيئا ما قد تغير. ثم يمكن للعملاء إعادة رسم مكوناتها إذا كانت ترغب في ذلك.

يختلف التنفيذ حسب النظام الأساسي، ولكن فيما يلي بعض الاعتبارات العامة عبر الأنظمة الأساسية:

  • من الجيد أن يكون لديك تخطيط إجمالي راسخ يمكن فيه "توصيل العناصر المرئية". من الصعب (ولكن لا يزال من الممكن) دعم تخطيطات عامة مختلفة تمامًا من خلال البذر.
  • قم بتطوير اصطلاح تسمية موثق جيدًا للأصول (الصور، وأجزاء HTML، وما إلى ذلك) التي تتكون من السطح.
  • صمم طريقة نظيفة "لاكتشاف" الأشكال الموجودة وإضافة أشكال جديدة.على سبيل المثال:يستخدم برنامج Winamp تنسيق ملف ZIP لتخزين كافة الصور لأسطحه.جميع ملفات الجلد موجودة في مجلد معروف خارج مجلد التطبيق.
  • كن على دراية بقضايا القياس.لا يستخدم الجميع نفس دقة الشاشة.
  • هل ستسمح بتطوير بشرة طرف ثالث؟وهذا سوف يؤثر على التصميم الخاص بك.
  • من الناحية المعمارية، فإن نمط Model-View-Controller يفسح المجال للسلخ.

هذه مجرد بعض الأشياء التي يجب أن تكون على دراية بها.سيختلف التنفيذ الخاص بك بين الويب والعميل الدهني، وحسب متطلبات الميزات الخاصة بك.هث.

المبدأ الأساسي هو الذي تستخدمه CSS في صفحات الويب.

بدلاً من تحديد التنسيق (اللون / الخط / التخطيط [إلى حد ما]) للمحتوى الخاص بك، يمكنك ببساطة وصف نوع المحتوى.

لإعطاء مثال على الويب، في محتوى صفحة المدونة، يمكنك وضع علامة على أقسام مختلفة باعتبارها:

  1. عنوان
  2. دخول المدونة
  3. جزء الأرشيف

إلخ.

قد يتكون الإدخال من عدة أقسام فرعية مثل "العنوان" و"النص الأساسي" و"الطابع الزمني".

ثم، في مكان آخر لديك ورقة أنماط تحدد جميع خصائص كل نوع من العناصر، الحجم، المحاذاة، اللون، الخلفية، الخط وما إلى ذلك.عند عرض الصفحة أو مسح/تهيئة المكونات في واجهة المستخدم لديك، عليك دائمًا الرجوع إلى ورقة الأنماط الحالية للبحث عن هذه الخصائص.

بعد ذلك، يصبح سلخ التصميم وتحريره أسهل بكثير.يمكنك ببساطة إنشاء ورقة أنماط مختلفة وتعديل القيم بما يتناسب مع محتوى الحرارة الخاص بك.

يحرر:

إحدى النقاط الرئيسية التي يجب تذكرها هي التمييز بين النمط العام (مثل الفئات في CSS) والنمط المحدد (مثل المعرفات في CSS).تريد أن تكون قادرًا على تعريف بعض العناصر بشكل فريد في تخطيطك، مثل العنوان، باعتبارها عنصرًا واحدًا يمكن تحديده ويمكنك تطبيق نمط فريد عليه، في حين أن العناصر الأخرى (مثل إدخال في مدونة، أو حقل في عرض قاعدة البيانات) سيرغب الجميع في الحصول على نفس النمط.

وانها مختلفة لكل منصة / التكنولوجيا.

لبرنامج الأغذية العالمي، نلقي نظرة على ما تسميه جوش سميث السلخ الهيكلي: HTTP: / /www.codeproject.com/KB/WPF/podder2.aspx

يجب أن يكون هذا سهلًا نسبيًا، اتبع الخطوات التالية:

  1. قم بإزالة جميع الأنماط لتطبيق الويب أو موقع الويب الخاص بك بالكامل
  2. استخدم CSS لتغيير شكل تطبيقك.

للمزيد من المعلومات قم بزيارة حديقة زن CSS للأفكار.

وأنت لا ينبغي. أو على الأقل يجب عليك أن تسأل نفسك ما اذا كان حقا القرار الصحيح.

والسلخ يكسر إرشادات تصميم واجهة المستخدم. أنه "الجرار" المستخدم بسبب التطبيق البشرة الخاص بك يعمل ويبدو مختلفا تماما عن جميع التطبيقات الأخرى الخاصة بهم باستخدام. سوف أشياء مثل مفاتيح الاختصار القيادة لا تكون متسقة وأنها سوف تفقد الإنتاجية. سيكون أقل المعاقين الوصول إليها لقارئات الشاشة سوف يجدون صعوبة في فهم ذلك.

وهناك طن من الأسباب NOT على الجلد. إذا كنت ترغب فقط في جعل طلبك متميزة بصريا، وهذا هو السبب الفقراء في رأيي. سوف تجعل التطبيق الخاص بك من الصعب استخدام وأقل احتمالا أن الناس سوف تذهب من أي وقت مضى إلى ما بعد الفترة التجريبية.

وبعد كل ذلك، هناك بعض الفئات من التطبيقات حيث من المتوقع أساسا السلخ، مثل وسائل الاعلام اللاعبين وimersive الألعاب كامل الشاشة. ولكن إذا كان التطبيق ليس في فئة حيث تم تكليف السلخ إلى حد كبير، وأود أن تنظر بجدية في إيجاد طرق أخرى لجعل التطبيق الخاص بك أفضل من منافسيك.

واعتمادا على مدى عمق ترغب في حفر، يمكنك أن تختار لاستخدام "تنسيق" إطار (مثل جاوة PLAF، CSS على الإنترنت)، أو بنية الطبقة متعددة تنفصل تماما.

إذا كنت تريد أن تعرف الجلد للتوصيل، تحتاج إلى النظر في ذلك من البداية. طبقة العرض تعرف <م> لا شيء عن منطق الأعمال ولكن هذا API والعكس بالعكس.

يبدو أن معظم الأشخاص هنا يشيرون إلى CSS، كما لو كان خيار السلخ الوحيد.يستخدم Windows Media Player (وWinamp، AFAIR) XML بالإضافة إلى الصور (إذا لزم الأمر) لتحديد المظهر.

يشير XML إلى الخطافات والأحداث وما إلى ذلك.ويتعامل مع كيفية ظهور الأشياء وتفاعلها.لست متأكدًا من كيفية تعاملهم مع الواجهة الخلفية، ولكن تحميل مظهر معين هو في الحقيقة مجرد تحديد موقع ملف XML المناسب، وتحميل الصور ثم وضعها في المكان الذي تريد الذهاب إليه.

يمنحك XML أيضًا قدرًا أكبر من التحكم في ما يمكنك القيام به (على سبيل المثال.إنشاء مكونات جديدة، وتغيير أحجام المكونات، وما إلى ذلك).

يمكن أن يعطي XML مع CSS نتائج رائعة لمحرك سطح المكتب أو تطبيق الويب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top