كيف تكتب شاشة الإعدادات في تطبيق Android
Arabic (العربية/عربي) translation by Meyria (you can also view the original English article)



فريق تصميم المواد في Google يقدم تعريفًا واضحًا للإعدادات الموجودة في تطبيق Android لديك:
إعدادات التطبيق السماح للمستخدمين بالإشارة إلى تفضيلات لكيف ينبغي أن تتصرف تطبيق.
أنهم في جوجل الدولة أيضا أن المستخدمين يجب أن انتقل إلى إعدادات التطبيق أما من قائمة شريط الأدوات أو التنقل الجانبي – مع عنصر المسمى الإعدادات.
يعطي المستخدمين القدرة على التحكم في بعض من الأداء الوظيفي للتطبيق الخاص بك بما في ذلك الإعدادات في التطبيق الخاص بك. وهذا يجعل المستخدمين سعيد بدلاً من الغضب – لأنهم الآن في السيطرة على سلوك التطبيق.
من المستحسن بشدة منح حق الوصول إلى إعدادات التطبيق. وهذا سيوفر تجربة أفضل لمستخدم للمستخدمين، الأمر الذي يؤدي إلى إجراء استعراض أفضل على مخزن اللعب Google، ترتفع فيها، ثم في نهاية المطاف يعطي لعدد أكبر من تنزيل التطبيق (وهو زيادة الإيرادات).
افترض يمكنك يجب أن تعاملوا مع الإعدادات التطبيق على الجهاز الخاص بك، على سبيل المثال عن طريق تحديد نغمة افتراضية، أو بالتحكم في الخصوصية الخاصة بك في التطبيق تقريبا جميع التطبيقات الأكثر شعبية يمكنك تنزيلها أو سيتم تحميل على مخزن اللعب Google تشمل إعدادات الشاشة لتتمكن من التحكم في سلوك التطبيق.
مثال على تطبيق شائع يحتوي على شاشة إعدادات هو تطبيق Chrome لنظام التشغيل Android من Google. في شاشة إعدادات هذا التطبيق ، يمكن للمستخدمين اختيار محرك البحث الافتراضي ، وتغيير سلوك الإخطار ، والتحكم في خصوصية المستخدم ، إلخ. يمكنك رؤية ذلك بنفسك عن طريق تنزيل تطبيق Chrome من متجر Google Play (إذا لم يكن لديك بالفعل على جهازك). لقطة الشاشة التالية من تطبيق Chrome ، وتعرض شاشة إعدادات التطبيق.



في هذه المشاركة ، ستتعرف على كيفية إنشاء شاشة إعدادات التطبيق من البداية وكذلك كيفية قراءة القيم التي حددها المستخدم من إعدادات التطبيق. للحصول على مكافأة إضافية ، ستتعلم أيضًا كيفية استخدام ميزة قوالب Android Studio لتشغيل مشروعك بسرعة باستخدام شاشة الإعدادات.
يمكن العثور على عينة من المشروع (في Kotlin) لهذا البرنامج التعليمي على الريش GitHub لدينا حتى تتمكن من متابعة بسهولة على طول.
المتطلبات الأساسية
ليتمكن من متابعة هذا البرنامج التعليمي، سوف تحتاج إلى:
- فهم أساسي لبعض واجهات برمجة تطبيقات Android (مثل
SharedPreferences
) - Android Studio 3.0 أو إصدار أحدث
- Kotlin plugin 1.1.51 أو أعلى
1-إنشاء مشروع استوديو الروبوت
إطلاق النار حتى استوديو الروبوت وإنشاء مشروع جديد (الذي يمكن تسميته سيتينجسكرينديمو
) مع نشاط فارغة تسمى سيتينجساكتيفيتي
. تأكد من حدد خانة الاختيار دعم كوتلين وتشمل أيضا.



2. إنشاء PreferenceFragment
لدعم API مستوى 11 (قرص العسل) وما فوقها ، يمكننا استخدام PreferenceFragment
.هذا الفصل هو ببساطة شظية
الذي يظهر تسلسل هرمي Preference
الكائنات كقوائم.
import android.os.Bundle import android.preference.PreferenceFragment import android.support.v7.app.AppCompatActivity class SettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (fragmentManager.findFragmentById(android.R.id.content) == null) { fragmentManager.beginTransaction() .add(android.R.id.content, SettingsFragment()).commit() } } class SettingsFragment : PreferenceFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) addPreferencesFromResource(R.xml.preferences) } } }
في الكود أعلاه ، أنشأنا nested class SettingsFragment في داخل SettingsActivity
(بسبب ال SetttingsFragment
الطبقة صغيرة جدا). لاحظ أن صفنا SetttingsFragment
الطبقة صغيرة جدا). لاحظ أن صفنا SettingsFragment
يمتد PreferenceFragment
الطبقة الفائقة ولها طريقة addPrerenceFromResource
في داخل onCreate()
. في هذا الأسلوب، أعطينا أنه مورد معرف R.xml.preference
من XML المفضل للتشغيل — عند تحميل
التجزئة. وأخيرًا ، نستضيف جزءًا من النشاط باستخدام ببساطة FragmentTransaction
لإضافته إلى واجهة المستخدم - بالداخل onCreate()
of SettingsActivity
.
3-خلق خياراتنا
إنشاء ملف XML وتسميته preferences.xml. حفظ هذا الملف داخل الدليل res/xml في المشروع التطبيق الخاص بك. ملاحظة يمكنك إعطاء هذا الملف أي اسم ولكن المستحسن بشدة التمسك باسم التقليدية "تفضيلات". أيضا، يجب عادة أن يكون مثل ملف واحد فقط في مشروع تطبيق.
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="https://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="checkbox" android:summary="Tap to check if on or off" android:title="Checkbox Preference" /> <RingtonePreference android:key="ringtone" android:showDefault="true" android:showSilent="true" android:summary="Pick a ringtone you like" android:title="Ringtone Preference" /> <EditTextPreference android:dialogTitle="Enter a text" android:key="text" android:summary="Click to show a text entry dialog" android:title="EditText Preference" /> <ListPreference android:dialogTitle="Select duration" android:entries="@array/settings_list_preference_titles" android:entryValues="@array/settings_list_preference_values" android:key="list" android:summary="Click to show a list to choose from" android:title="List Preference" /> <SwitchPreference android:key="switch" android:title="Switch Preference" android:summary="Click to switch on or off" android:defaultValue="true"/> </PreferenceScreen>
يجب أن تكون عقدة الجذر لملف preferences.xml يجب أن يكون الملف: جزء. < PreferenSreen>
داخل هذا العنصر الجذري ، لدينا الآن فردنا Preference
. فيما يلي السمات العامة المرتبطة بـ Preference
.
-
android:key
: هذه السمة تستخدم للحصول على القيمة فيSharedPreferences
موضوع.
-
الروبوت
: العنوان: تعيين العنوانللأفضلية
. وهذا هو نص غامق.
-
الروبوت
: موجز: مجموعات الموجزللتفضيل
(وهذا غير مطلوب). هذا هو تﻻشى النص تحت العنوان.
-
android:defaultValue
: يحدد القيمة الافتراضية لـPreference
.
ونحن سوف تذهب من خلال كل التفضيل
لقد حددنا أعلاه قريبا. علما أنه يمكنك أيضا إضافة أو تخصيص تفضيل
عبر محرر تفضيل استوديو الروبو – مشابهة لمحرر المورد تخطيط كنت بالفعل معتاداً. يمكنك أما اختيار إضافة/تحرير ملف XML تفضيل الخاص بك مباشرة في وضع "النص" أو استخدام واجهة السحب والإفلات في وضع "تصميم".



كما ترون، في هذا المحرر، يمكنك سحب وإسقاط أي تفضيل
في قسم لوح (على الجانب الأيسر). بمجرد إسقاط، يجب تحديده وتعديل السمات الخاصة به في جزء سمات (على الجانب الأيمن) للمحرر. لاحظ أنه بشكل افتراضي، نحن كنت نظراً لسمات قليلة لتعديل. لعرض أو تعديل جميع السمات المرتبطة
بتفضيل محددة، تأكد من النقر فوق View all attributes الرابط في الجزء السفلي من جزء السمات. هذا يشبه إلى حد كبير محرر التصميم الذي تعرفه بالفعل.
الآن، دعونا نذهب من خلال كل كيان من الكيانات تفضيل
لدينا.
خانة الاختيار المفضل
CheckBoxPreference
هو ببساطة خانة الاختيار
القطعة التي يتم تضمينها في شاشة التفضيل. هذه Preference
إرجاع القيمة "true" إذا تم تحديدها أو "false" بخلاف ذلك. بمعنى آخر ، تقوم بإرجاع قيمة منطقية بناءً على حالة عنصر واجهة المستخدم.
<CheckBoxPreference android:key="checkbox" android:summary="Tap to check if on or off" android:title="Checkbox Preference" />



سمات أخرى يمكنك إضافتها إلى CheckBoxPreference
:
-
الروبوت: سوماريوف
: مجموعات الموجز للأفضلية
في شاشة تفضيلات عندما يكون دون رادع.
-
الروبوت: سمرين
: مجموعات الموجز للأفضلية
في شاشة تفضيلات عندما يتم إيداعه. -
الروبوت: ديسابليديبيندينتستاتي
: الدولة (ينطبق على، أو كاذبة لإيقاف) الذي يسبب التوابع إلى تعطيل. قد تكون قيمة منطقية، مثل "صواب" أو "خطأ".
يفضل التبديل
SwitchPreference
ينفذ وظائف مماثلة ل CheckBoxPreference
. يوفر خيار الدولتين ("على" أو "إيقاف") قابل للتغيير. هذا يستخدم Switch
القطعة التي تسمح للمستخدم بالانزلاق إلى اليسار ("إيقاف") واليمين ("على"). هذا التفضيل
يتضمن أيضًا السمات الموصوفة للإخراج CheckBoxPreference
في الاعلى. بالإضافة إلى ذلك ، فإنه يحتوي على السمات التالية:
-
الروبوت: سويتشتيكستوف
: تعيين النص استخدام التبديل نفسها عندما تكون في حالة "إيقاف التشغيل".
-
الروبوت: سويتشتيكستون
: تعيين النص استخدام التبديل نفسها عندما تكون في الدولة "وعلى".
<SwitchPreference android:key="switch" android:title="Switch Preference" android:summary="Click to switch on or off" android:defaultValue="true"/>



تفضيل EditText
هذا التفضيل
، عند النقر فوقه، يظهر مربع حوار للمستخدم بإدخال نص إدخال. فإنه يستخدم القطعة EditText
— بما في ذلك جميع سمات تلك القطعة التي كنت بالفعل معتاداً.
<EditTextPreference android:dialogTitle="Enter a text" android:key="text" android:summary="Click to show a text entry dialog" android:title="EditText Preference" android:inputType="text"/>
لاحظ أن القيمة المخزنة
في شاريدبريفيرينسيس سلسلة.



قائمة التفضيل
سيتم عرض هذا النوع من تفضيل
قائمة الإدخالات في مربع حوار عند استغلالها. هنا، يمكنك تحديد زوج من صفيف سلسلة الموارد في تفضيلاتك XML. ويتضمن هذا المورد صفيف السلسلة ببساطة عبارة عن مجموعة من السلاسل. ويقع هذا المورد في res/values/arrays.xml
.
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="settings_list_preference_titles"> <item>15 minutes</item> <item>30 minutes</item> <item>1 hour</item> <item>3 hours</item> <item>6 hours</item> <item>Never</item> </string-array> <string-array name="settings_list_preference_values"> <item>15</item> <item>30</item> <item>60</item> <item>180</item> <item>360</item> <item>-1</item> </string-array> </resources>
ها هي عينتنا ListPreference
باستخدام هذا المورد.
<ListPreference android:dialogTitle="Select duration" android:entries="@array/settings_list_preference_titles" android:entryValues="@array/settings_list_preference_values" android:key="list" android:summary="Click to show a list to choose from" android:title="List Preference" />
قمنا بتعيين القيم وقيم الإدخال باستخدام android:entries
و android:entryValues
الصفات على التوالي.
-
الروبوت: إدخالات
: الصفيف الإنسان للقراءة لعرض كقائمة.
-
الروبوت: انتريفالويس
: الصفيف لإيجاد قيمة لحفظ ليتم تحديد تفضيل عند مدخل من مداخل.



على سبيل المثال، إذا استخدمنا عدد الدقائق في كل المدة كقيم الإدخال، عندما يختار المستخدم مدة زمنية (مثلاً 30 دقيقة)، سيتم تخزين قيمة عدد صحيح المطابق في شاريدبريفيرينسيس
(30 مثلاً).
القائمة multiSelect الأفضلية
هذا واحد مشابه ل ListPreference
ولكن بدلاً من وجود أزرار الاختيار ، لدينا خانات اختيار. بمعنى آخر ، يمكن للمستخدم تحديد عناصر متعددة في مربع الحوار. لاحظ أن النتيجة يتم تخزينها في "سلسلة" في مجموعة شاريدبريفيرينسيس
. وهذا يمكن استرداد باستخدام getStringSet
().
<MultiSelectListPreference android:dialogTitle="Dialog title" android:entries="@array/settings_multi_select_list_preference_titles" android:entryValues="@array/settings_multi_select_list_preference_values" android:key="multi_select_list" android:title="Multiselect title" />
تفضيل رنة
عندما يتم استغلالها
رينجتونيبريفيرينسي، يظهر مربع حوار يحتوي على قائمة النغمات المتوفرة على الجهاز أو المحاكي.
<RingtonePreference android:key="ringtone" android:showDefault="true" android:showSilent="true" android:summary="Pick a ringtone you like" android:title="Ringtone Preference" />
-
الروبوت: شووديفولت
: سواءا كان النغمة الأساسية سيتم عرض الخيار.
-
الروبوت: شووسيلينت
: ما إذا كان سيظهر خيار صامت في القائمة. يمكن للمستخدم تحديد هذا الخيار إذا كانت لا تريد أن تلعب أي نغمة.



لاحظ أن القيمة المخزنة في SharedPreferences
لهذا التفضيل هو سلسلة خاصة. هذه السلسلة الخاصة هي URI التي تشير إلى ContentProvider
.
4-إنشاء إعداد المجموعات
أن تصبح مشكلة عندما يكون لديك قائمة طويلة من تفضيلات أو إعدادات، لأنه قد يكون لدى المستخدمين صعوبة بعض المسح الضوئي أو فهم لهم. لحل هذه المشكلة، ونحن المجموعة خياراتنا. نلقي نظرة على لقطة لشاشة التطبيق الكروم قد أظهرت لك في البداية مرة أخرى – إشعار من تجميع التفضيلات إلى فئتين: أساسيات وخيارات متقدمة. وهذا يجعل من الأسهل بالنسبة للمستخدم لفهم التفضيلات وجعل القائمة تبدو ساحقة جداً لا.
دعونا الآن ننظر كيف بسيط لأداء هذه المهمة.
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Basic Settings"> <CheckBoxPreference android:key="checkbox" android:summary="Tap to check if on or off" android:title="Checkbox Preference"/> ... </PreferenceCategory> <PreferenceCategory android:title="Advanced Settings"> <ListPreference android:dialogTitle="Select duration" android:entries="@array/settings_list_preference_titles" android:entryValues="@array/settings_list_preference_values" android:key="list" android:summary="Click to show a list to choose from" android:title="List Preference"/> ... </PreferenceCategory> </PreferenceScreen>
نحن ببساطة تحيط اﻷفضليات التي نريد في المجموعة <PreferenceCategory>ا
لوسم وإعطاء كل مجموعة عنوان باستخدام سمة العنوان: الروبوت
.



5-وبدءا بنية
لاحظ أنه يمكن فتح نشاط بمجرد النقر فوق عنصر تفضيل من إعدادات الشاشة. وهذا يمكن أن تأتي في متناول اليدين عندما تريد فتح صفحة ويب. هنا هو رمز للقيام بذلك:
<Preference android:summary="Click to start an activity" android:title="Preference"> <intent android:action="com.chikeandroid.settingsscreendemo.SETTING_START_ACTIVITY" android:targetClass="com.chikeandroid.settingsscreendemo.MyActivity" android:targetPackage="com.chikeandroid.settingsscreendemo" /> </Preference>
هنا، وأضاف نحن <intent>
عنصر داخل <Preference>
عنصر.
- الروبوت: العمل: مجموعات العمل عن القصد (وهذا مماثل لاستدعاء setAction() في كائن نوايا).
-
الروبوت: تارجيتكلاس
: تعيين جزء فئة اسم العنصر (نفس الدعوةsetComponent()
على كائن نوايا).
-
الروبوت: تارجيتباكاجي
: تعيين حزمة جزء من اسم العنصر. -
الروبوت: البيانات
: مجموعات البيانات لتعيين (نفس الدعوةsetData()
على كائن نوايا).
على سبيل المثال، لفتح صفحة ويب، يمكن استخدام ما يلي:
<Preference android:title="@string/prefs_web_page" > <intent android:action="android.intent.action.VIEW" android:data="http://www.example.com" /> </Preference>
6-ربط الموجز تفضيل القيمة المحددة
دعونا نرى الآن كيفية تحديث تفضيل موجزة مع القيمة المحددة من قبل المستخدم.
class SettingsActivity : AppCompatActivity() { // ... class SettingsFragment : PreferenceFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) addPreferencesFromResource(R.xml.preferences) bindPreferenceSummaryToValue(findPreference("ringtone")) bindPreferenceSummaryToValue(findPreference("text")) bindPreferenceSummaryToValue(findPreference("list")) } } // ... }
في هذه الفئة، قمنا بإنشاء أسلوب مساعد يسمى bindPreferenceSummaryToValue()
، وداخل كائن رفيق لدينا، لتحديث نص التلخيص التفضيل مع القيمة التي قام المستخدم بتحديده. ونحن مرت عليه كائن تفضيل
كوسيطة. وسيعود findPreference()
تفضيل
استخدام المفتاح للتفضيل
.
class SettingsActivity : AppCompatActivity() { // ... companion object { /** * A preference value change listener that updates the preference's summary * to reflect its new value. */ private val sBindPreferenceSummaryToValueListener = Preference.OnPreferenceChangeListener { preference, value -> val stringValue = value.toString() if (preference is ListPreference) { // For list preferences, look up the correct display value in // the preference's 'entries' list. val listPreference = preference val index = listPreference.findIndexOfValue(stringValue) // Set the summary to reflect the new value. preference.setSummary( if (index >= 0) listPreference.entries[index] else null) } else if (preference is RingtonePreference) { // For ringtone preferences, look up the correct display value // using RingtoneManager. if (TextUtils.isEmpty(stringValue)) { // Empty values correspond to 'silent' (no ringtone). preference.setSummary("Silent") } else { val ringtone = RingtoneManager.getRingtone( preference.getContext(), Uri.parse(stringValue)) if (ringtone == null) { // Clear the summary if there was a lookup error. preference.setSummary(null) } else { // Set the summary to reflect the new ringtone display // name. val name = ringtone.getTitle(preference.getContext()) preference.setSummary(name) } } } else { // For all other preferences, set the summary to the value's // simple string representation. preference.summary = stringValue } true } private fun bindPreferenceSummaryToValue(preference: Preference) { // Set the listener to watch for value changes. preference.onPreferenceChangeListener = sBindPreferenceSummaryToValueListener // Trigger the listener immediately with the preference's // current value. sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, PreferenceManager .getDefaultSharedPreferences(preference.context) .getString(preference.key, "")) } } }
لدينا متغير sBindPreferenceSummaryToValueListene
r هذا هو مثال Preference.OnPreferenceChangeListener
. هذا هو ببساطة مستمع تغيير التفضيلات التي ستساعدنا في تحديث ملخص التفضيل إلى القيمة التي حددها المستخدم. نتحقق من وجود حالات خاصة ، مثلما يحدث عندما يكون التفضيل المحدد هو RingtonePrefere
nce أو ListPreference
. لأنواع تلك الأفضلية، ونحن نفعل بعض معالجة خاصة الحصول على سلسلة موجزة. إذا كان التفضيل ليس (مثل اديتيكستبريفيرينسي)،
أننا مجرد مجموعة الموجز إلى سلسلة القيمة الأفضلية.
داخل bindPreferenceSummaryToValue()، حددنا المستمع تغيير الأفضلية باستدعاء أونبريفيرينسيكهانجيليستينير (في جاوة، في سيتونبريفيرينسيكهانجيليستينير بدلاً من ذلك) على كائن الأفضلية.
قم الآن بتشغيل المشروع مرة أخرى لترى كيف يعمل كل شيء!



7-استرداد قيم الأفضلية
للبدء في الحصول على قيم التفضيلات لشاشة الإعدادات ، نسميها getDefaultSharedPreference()
وهو داخل فئة PreferenceManager
- تمريرها Context
الهدف من التفضيلات التي تكون قيمها مطلوبة. لاحظ أننا نحصل على القيم من الإعداد الافتراضي لطلبنا SharedPreferences
.
val prefs = PreferenceManager.getDefaultSharedPreferences(this) prefs.getBoolean("checkbox", false).toString() prefs.getString("ringtone", "<unset>") prefs.getString("text", "<unset>") prefs.getString("list", "<unset>")
يمكنك استدعاء الأسلوب getter المقابلة لنوع نريد استرداد القيمة من شاريدبريفيرينسيس
. يمكنك تمرير المفتاح كالوسيطة الأولى، والقيمة الافتراضية هي الوسيطة الثانية.
8-مكافأة: استخدام قوالب استوديو الروبوت
والآن بعد أن كنت قد تعلمت حول واجهات برمجة التطبيقات المشتركة إنشاء شاشة إعدادات من الصفر في الروبوت، سوف تظهر لك اختصار تجعل من أسرع في المرة القادمة. يمكنك اختيار استخدام قالب بدلاً من ترميز إعدادات شاشة من نقطة الصفر.
ستوديو الروبوت يوفر قوالب التعليمات البرمجية التي تتبع الروبوت تصميم وتطوير أفضل الممارسات. هذه القوالب البرمجية الموجودة (متوفر في جافا وكوتلين) يمكن أن تساعدك بسرعة بدء المشروع الخاص بك. يمكن استخدام قالب واحد مثل هذا إنشاء شاشة إعدادات.
لاستخدام هذه الميزة مفيدة لمشروع جديد، أولاً النار استوديو الروبوت.



أدخل اسم التطبيق ثم انقر فوق زر التالي. يمكنك ترك الافتراضيات كما هي في الحوارTarget Android Devices.
انقر فوق زر التالي مرة أخرى.



في إضافة نشاط للحوار المحمول، قم بالتمرير لأسفل وحدد إعدادات النشاط. انقر فوق زر التالي بعد ذلك.



في مربع الحوار الأخير، يمكنك إعادة تسمية اسم النشاط أو تخطيط الاسم أو العنوان إذا أردت. وأخيراً، انقر فوق الزر إنهاء لقبول كافة التكوينات.
استوديو الروبوت قد ساعدنا الآن لإنشاء مشروع باستخدام إعدادات نشاط. رائع حقاً! ينصح بشدة لاستكشاف التعليمة البرمجية التي تم إنشاؤها.
يمكنك استخدام قوالب لمشروع "استوديو الروبوت قائم بالفعل أيضا. ببساطة الذهاب إلى ملف > الجديدة > النشاط > النشاط الإعدادات.



ملاحظة القوالب التي تأتي المضمنة مع "استوديو الروبوت" جيدة لتخطيطات بسيطة، وجعل تطبيقات الأساسية، ولكن إذا كنت تريد حقاً بدء التطبيق الخاص بك, قد تفكر بعض قوالب التطبيق متاح من الأسواق Envato.
أنهم وقت المدخر ضخم للمطورين ذوي الخبرة، مما يساعدهم على قطع طريق مستنقع لإنشاء تطبيق من الصفر وتركيز مواهبهم بدلاً من ذلك على أجزاء فريدة من نوعها ومخصصة لإنشاء تطبيق جديد
الاستنتاج
في هذا البرنامج التعليمي، يمكنك تعلم كيفية إنشاء إعدادات التطبيق في الروبوت من نقطة الصفر. وبحثنا أيضا في كيفية بسهولة وسرعة استخدام قوالب الروبوت Studio لإنشاء إعدادات التطبيق.
أنا أوصى التحقق من المبادئ التوجيهية الرسمية التصميم المادي لإعدادات مزيد من المعلومات حول كيفية تصميم بشكل صحيح واستخدم الإعدادات في الروبوت. أيضا، راجع الدليل API الرسمي مزيد من المعلومات حول واجهات برمجة التطبيقات الأخرى لإنشاء نشاط إعدادات.
لمزيد من المعلومات حول ترميز للروبوت، تحقق بعض الدورات والدروس هنا في Envato Tuts + الأخرى!
- الروبوت SDKتظهر مربعات حوار التصميم المادي في تطبيق الروبوتChike Mgbemena
- Android SDKإرسال البيانات مع عميل HTTP التعديل التحديثي 2 الروبوتChike Mgbemena
- قوالب التطبيق15 قوالب التطبيق الروبوت أفضل من عام 2017Nona Blackman
- الروبوت SDKكيفية إنشاء دردشة الروبوت تطبيق باستخدام قاعدةAshraff Hathibelagal