آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

۱۵ مطلب در بهمن ۱۳۹۹ ثبت شده است

این اپراتور دیتای observable را با تاخیری که خودمون مشخص میکنیم منتشر میکنه.

کاربرد:

وقتی کاربر سرچ میکنه، خوب نیست که به ازای هر کاراکتری که مینویسه یه درخواستی به سرور بره. بهتره مثلا بعد از دو ثانیه برای عبارتی که نوشته، یک درخواست سرچ به سرور بره. اینجوری درخواست های بیهوده به سرور نمیره و کدنویسی بهینه تر هست.

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ بهمن ۹۹ ، ۲۱:۴۸
میم دال

این اپراتور عملیات قبلی رو تکرار میکنه و حتما باید روی یک شی observable فراخونی بشه (استاتیک نیست)

در کد زیر محدوده صفر تا 3 را چهار بار چاپ میکند!

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ بهمن ۹۹ ، ۰۲:۵۸
میم دال

آرگومان اول این اپراتور مقدار اولیه و آرگومان دوم تعدادی که باید جلو بره می باشد.

این اپراتور فقط میتونه observable از جنس integer بده (توی api این اپراتور جنریک خروجی از جنس integer است)

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ بهمن ۹۹ ، ۰۲:۳۹
میم دال

این اپراتور خیلی ساده ست. تنها نکته ای که داره اینه که حداکثر ده تا آرگومان قبول میکنه و اینکه اگر یک آرایه بهش پاس بدیم به صورت یک single item اونو انتشار میده.

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ بهمن ۹۹ ، ۰۲:۰۳
میم دال

این اپراتور یک observable برای ما میسازد.

 

- نکته ای که داره اینه که این اپراتور مقداری که بهش میدیم (در مثال زیر words) رو وقتی یک observer آن را سابسکرایب میکند، بررسی میکند. (یعنی تا قبل از اینکه کسی سابسکرایب کنه، متد onNext در امیتر نمیدونه چیو میخواد به آبزرور منتشر کنه)

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ بهمن ۹۹ ، ۱۶:۴۷
میم دال

لینک های مفید برای RxJava:

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ بهمن ۹۹ ، ۱۳:۲۰
میم دال

اکتیویتی (یا فرگمنت) لایف سایکل داره، بنابراین lifeCycle owner است.

میشه یه کلاسی را به عنوان observer برای اکتیویتی تعریف کرد که براساس state های مختلف عملیات متفاوتی انجام بده.

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ بهمن ۹۹ ، ۱۸:۵۳
میم دال

قدم اول:

برای رتروفیت باید dependency خودش و Gson converter رو اضافه کنیم. Gson converter دیتا مدل جاوا رو به جیسون تبدیل میکنه و برعکس (یعنی جیسون رو از سرور میگیره و به دیتا مدل جاوا تبدیل میکنه). در واقع توی رتروفیت ما با دیتا در قالب جیسون سر و کار نداریم. (در حالی که توی والی باید خودمون جیسون رو به آبجکت جاوایی تبدیل میکردیم و این نقطه مثبت رتروفیت به حساب میاد)

//retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
//gson converter
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

۰ نظر موافقین ۰ مخالفین ۰ ۱۵ بهمن ۹۹ ، ۲۰:۲۳
میم دال

http متدهای زیادی داره که چهار تای اون که شامل get، post، put و delete است، پر استفاده تر هستن.

 

متد get از نوع read only هست و بنابراین نسبت به سه متد دیگر safe می باشد.

 

متدهای put، delete و post از نوع write هستند، یعنی در سرور دیتا مینویسند، بنابراین باید با احتیاط بیشتری از اونها استفاده کرد.

 

به متدهای get، put و delete متدهای idemponent گفته میشود. یعنی متدهایی که اگر عملکردشون چند بار هم تکرار بشه تغییری در خروجی ایجاد نمیکنه. بنابراین استفاده چند باره از این متدها نگرانی ندارد. تعریف idemponent در ویکیپدیا

 

به متد post متد non idemponent گفته میشود. یعنی متدی که تکرار عملکرد آن سبب تغییر در خروجی میشود. یعنی اگر چند بار این متد فراخونی بشه، دیتای مشابه در سرور ایجاد میشه که خوب نیست. بنابراین در استفاده از این متد باید دقت کرد.

 

متد post کش نمیشه، در حالی که متد get دیتا رو کش میکنه.

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۵ بهمن ۹۹ ، ۱۶:۳۳
میم دال

لینک های مرتبط:

 

1. متدهای http

 

2. این لینک w3schools هست و همه متدهای http رو به خوبی توضیح داده. انتهای صفحه یه جدولی هست که مقایسه خیلی خوبی بین متدهای get و post انجام داده.

 

3. نحوه ارسال دیتا در متد post

 

URI در واقع آدرس یک ریسورس هست که توی عکس زیر به خوبی نشون داده شده:

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ بهمن ۹۹ ، ۱۷:۵۵
میم دال