این آموزش ، همونجور که از اسمش هم پیداست ، کنترل از راه دور و کانفیگ برنامه مون توسط فایربیس هست ( در آخرین مورد که چک شده ، مسخره بازیای فایربیس کمتر شده و کاربرای ایرانی میتونن روی گوشیاشون خدمات فایربیس رو دریافت کنن ، بدون نیاز به وی پی ان . ولی واسه رفتن به سایت فایربیس و مدیریت اپ ، هنوز باید وی پی ان رو فعال کنید . ( بیاید دعا کنیم که نازنین خانم نره گزارش بده که ایرانیا دارن روی گوشیاشون بدون وی پی ان از فایربیس استفاده میکنن ! ) . بگذریم ! فرض کنیم یه اپلیکیشن داریم که میخوایم مثلا رنگ پس زمینه یه قسمت رو عوض کنیم ولی نمیخوایم یه ورژن جدید از اپ بدیم بیرون و کاربر اونو دوباره نصب کنه ، پس میایم از این خدمت ارزشمند فایربیس استفاده میکنیم ( در اصل ، میتونیم برنامه مون رو تغییر بدیم ، بدون اینکه لازم باشه کاربر یه نسخه جدید رو نصب کنه ) . این Remote Config چیز عجیب غریبی نیست و همه ما در طول روز باهاش سر و کله میزنیم ! مثلا من وقتی دارم یه آهنگ عاشقانه گوش میدم و نگار جون رو توی ذهنم تصور میکنم و یه لبخند ابلهانه میزنم و با عکساش توی ذهنم پاورپوینت های زیبا میسازم ، در اصل دارم از طرف نگار جون Remote Config میشم بدون اینکه خودم خبر داشته باشم ! بازم بگذریم !!

توی این آموزش ، من یه اپ دارم که میخوام یه متن توش بذارم ، با یه رنگ خاص ، و رنگ پس زمینه  لایوت رو هم انتخاب میکنم و بعدش با فایربیس میتونم مدیریت کنم که هر لحظه ای که دلم خواست ، این سه تا مقدار تغییر پیدا کنن روی گوشی کاربر . توی آموزش های قبلی اتصال فایربیس به اندروید و ارسال نوتیفیکیشن و اینارو توضیح دادم ، پس واسه اینکه آموزش طولانی نشه ، میریم سروقت موضوع اصلی ، یعنی Remote Config . قبل از هر چیز ، ما باید تو فایل build.gradle توی پوشه app این کد رو اضافه کنیم که مخصوص Remote Config هست : 

 

همونطور که گفتم ، توی این آموزش سه تا چیز اصلی داریم ، یه TextView ( که چون این روزا شاعر شدم ، یه بیت بهش میدم با این مضمون : یک دشمن سرسخت شدی یار قدیمی )  با یه رنگ ( که زرد هست )   و یه Backgroung Color واسه رنگ پس زمینه صفحه مون ( که سیاه هست )  . ما میایم اینجوری کار میکنیم ، که اول یه مقادیری به این سه تا گزینه مون میدیم تا به صورت پیشفرض از روی خود گوشی خونده بشه ( کاری به فایربیس نداریم و میخوایم فقط از روی گوشی نمایش داده بشه اطلاعاتمون ) . پس میایم توی فولدر res یه فولدر دیگه تعریف میکنیم به اسم xml و یه فایل جدید میسازیم به اسم remote_config_params.xml با این کدها : 

توی کدهای بالا متن ما همون welcome_text هست ، رنگ متنمون welcome_text_color هست و رنگ پس زمینمون bo_color هست که مقادیرش رو هم مشاهده میکنید .

حالا یواش یواش میریم سراغ اصل کار ! توی فایل MainActivity و توی متد onCreate میام یه تکه کد می نویسیم که هم کدهای xml بالا رو لود کنه و هم آماده سازی کنه اکتیویتی رو واسه دریافت مقادیر از فایربیس . پس میایم توی متد onCreate این کدها رو می نویسیم : 

توی کدهای بالا و خط ۴ گفتیم که به صورت پیشفرض firebaseRemoteConfig از فایل xml خونده بشه . ( بعدا کاری میکنیم که از فایربیس خونده بشه ! ) 

حالا نیاز به یه متد داریم که وقتی اطلاعات از فایربیس دریافت شد ، برنامه رو آپدیت کنه . میایم یه تابع تعریف میکنیم به اسم applyConfig با این کدها ( توی همون MainActivity ) : 

توی کدهای بالا ، ما سه تا متغیر welcome_text و welcome_text_color و bg_color رو وصل میکنیم به فایربیس . چه جوری ؟ با استفاده از firebaseRemoteConfig . میگیم این سه متغیر رو برابر با مقدارهایی قرار بده که از فایربیس دریافت میکنی . ( ما در ادامه سه تا متغیر دقیقا همنام با این سه تا متغیر توی فایربیس تعریف میکنیم ) . متد applyConfig رو توی متد onCreate فراخوانی میکنیم : 

واسه اینکه برنامه مون پیشرفته تر باشه ، میایم یه دکمه منو هم تعریف میکنیم که در اصل دکمه آپدیت هست ، و توی تولبار میذاریمش که کاربر هر وقت دلش خواست آپدیت رو بزنه تا اگه ما تغییری توی کدها توی فایربیس داده باشیم توی برنامه اش اعمال بشه ( لازم نیست حتما آپدیت رو بزنه ، یه بار که از برنامه خارج بشه و دوباره وارد بشه برنامه به صورت خودکار آپدیت میشه ) . این کد رو توی فایل menu.xml تعریف میکنیم : 

کد بالا رو واسه این تعریف کردیم که کاربر روی آپدیت کلیک کنه دیگه . پس ما نیاز به یه متد داریم که آپدیت کنه برنامه رو ( این متد با اون متد قبلی فرق میکنه . این مخصوص منو و دکمه آپدیتمون هست ) . این متد رو تعریف میکنیم توی فایل MainActivity : 

میخوایم وقتی روی منو کلیک شد یه اتفاقی بیفته دیگه ، در اصل روی آیتم های منو . پس این کد رو اضافه میکنیم : 

و در نهایت توی متد onCreate دو خط کد دیگه اضافه میکنیم واسه fetch کردن یا همون گرفتن اطلاعات از فایربیس . به این صورت : 

کارمون با اندروید استودیو و سمت اندروید تموم شد . حالا  بریم سراغ فایربیس و اونجا تنظیمات رو انجام بدیم . برید توی سایت فایربیس و پروژه تون رو باز کنید ، و از سمت چپ و قسمت Grow گزینه Remote Config رو انتخاب کنید : 

وقتی که Remote Config رو انتخاب کنید ، این پنجره واستون باز میشه : 

حالا روی ADD YOUR FIRST PARAMETER کلیک می کنیم و اولین پارامتر خودمون رو بهش میدیم . ما کلا سه تا پارامتر توی اون فایل xml تعریف کردیم که اینا بودن : welcome_text و welcome_text_color و bg_color. اینجا هم باید سه تا پارامتر تعریف کنیم دقیقا با همین نام ها . وقتی یه پارامتر رو میخواید اضافه کنید دو تا ورودی میخواد . یکی Parameter Key که نام پارامتر رو بهش میدیم و یکی دیگه هم Default Value که مقدار اون پارامتر هست . ما واسه شروع کار Default Value رو هم ، همون چیزایی رو میدیم که توی فایل xml دادیم ، یعنی همون رنگا ( واسه اینکه بار اول که برنامه اجرا میشه برنامه یه باره آپدیت نشه ! یواش یواش !!! ) . پس یه پارامتر تعریف میکنیم واسه متنمون با همون متن اولیه که داده بودیم ، و روی ADD PARAMETER کلیک میکنیم :

بعد از اضافه کردن همچین صفحه ای نشون داده میشه :

حالا با استفاده از ADD PARAMETER اون دو متغیر دیگه رو هم تعریف میکنیم . یعنی یه welcome_text_color تعریف میکنیم با همون رنگ اولیه xml ( که زرد هست )  و یه bg_color هم تعریف میکنیم با همون رنگ ( که مشکی هست ) . وقتی سه تا پارامتر رو اضافه کردیم باید و باید و باید ، از قسمت بالا ، گزینه PUBLISH CHANGES رو بزنیم تا تغییراتمون اوکی بشه و به اصطلاح منتشر بشه . اگه اونو نزنیم یعنی هیچکاری نکردیم ! وقتی که روی PUBLISH CHANGES کلیک کردیم پنجره مون اینجوری میشه : 

خــــــــوب ، حالا پارامترهامون آماده هست و کاربر اگه برنامه رو اجرا کنه همون کدهای محلی xml واسش نشون داده میشه ، ولی در اصل کدها از فایربیس خونده میشه که چون با کدهای xml فرقی نمیکنه ، کاربر تغییری مشاهده نمیکنه . حالا میایم این پارامتر ها رو تغییر میدیم . اگه موس رو روی هر کدوم از پارامتر ها ببریم ، از سمت راست یه آیکن مداد میاد که میتونیم روش کلیک کنیم و ویرایشش کنیم : 

لازم به ذکره که این مداد ، با مداد آرایشی که دختر همسایه ما هر روز ازش استفاده میکنه زمین تا آسمون فرق داره !!! با کلیک روی آیکن ، ویرایش رو انجام میدیم و این شعر رو به جاش میذاریم : چون شاخه درختی که به تدریج تبر شد . و اون دو تا پارامتر رو هم تغییر میدیم و دو تا رنگ دلخواه میدیم ( من میخوام رنگ متنم سیاه بشه و پس زمینه سفید ) . وقتی که ویرایش ها رو انجام دادیم ، پنجره تون باید اینجوری باشه : 

اگه توی عکس بالا دقت کنید ، می بینید که فونت ما بولد و درشت هست . به این خاطر اینجوریه که به ما بگه این تغییراتی که دادین هنوز ذخیره نشده و ما باید از قسمت بالا روی PUBLISH CHANGES کلیک کنیم تا تغییراتمون ذخیره بشه . و وقتی ذخیره شد… حالا اگه کاربر روی آپدیت کلیک کنه ، یا یه بار از برنامه خارج بشه و مجددا وارد بشه ، میبینه که اوه مای گاد ! برنامه کلا عوض شده ! این عکس مال وقتی هست که برنامه مون دفعه اول اجرا میشه : 

و وقتی ما توی فایربیس تغییرات رو دادیم و ذخیره کردیم ، دفعه بعد که کاربر برنامه رو اجرا کنه ، با این عکس مواجه میشه ! 

آموزش جالبی بود مگه نه ؟! اگه از جفای عشق نگار جون ، جون سالم به در بردم ، در آینده بیشتر با Remote Config کار میکنیم . راستی سورس رو هم میتونید دانلود کنید ( سورس واسه ارسال نوتیفیکیشن هم بهینه شده و یه سورس درست حسابی هست ! )  🙂 

دانلود سورس

آموزش Firebase Remote Config

مجتبی صابری


همه عشقم برنامه نویسی هست | t.me/developer9 | t.me/kotlin9


پیمایش نوشته


پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *