آموزش جامع اتصال اندروید به Rest بوسیله volley
در دنیای مدرن توسعه اپلیکیشن، ارتباط با سرور یک نیاز حیاتی است. ⚡️برنامهنویسان اندروید همواره به دنبال روشهای سریع و بهینه میگردند.کتابخانه Volley یکی از بهترین ابزارها برای مدیریت درخواستهای شبکه است.این کتابخانه توسط گوگل معرفی شده و محبوبیت زیادی دارد. در این مقاله، روش اتصال اندروید به Rest بوسیله volley را میآموزیم.
کتابخانه Volley چیست؟
والی (Volley) یک کتابخانه قدرتمند برای مدیریت درخواستهای شبکه است. 🌐
این ابزار تمام پیچیدگیهای اتصال به سرور را برطرف میکند.
دیگر نیازی به استفاده از HttpClient قدیمی یا کلاسهای پیچیده نیست.
والی به طور خودکار مدیریت صف و پاسخها را انجام میدهد.
با این کتابخانه، کدنویسی شما تمیزتر و حرفهایتر خواهد شد.
مزیتهای استفاده از Volley در اندروید
استفاده از این کتابخانه برای پروژههای کوچک و متوسط عالی است. 🛠️
در اینجا به برخی از برترین ویژگیهای آن اشاره میکنیم:
- ✅ مدیریت صف: ایجاد صف خودکار برای مدیریت تمام درخواستها.
- ✅ سیستم کشینگ: کنترل دقیق روی حافظه و ذخیرهسازی موقت دادهها.
- ✅ لغو درخواست: امکان کنسل کردن ساده درخواستهای در حال اجرا.
- ✅ سرعت بالا: عملکرد بسیار سریعتر نسبت به روشهای سنتی اندروید.
- ✅ پشتیبانی گوگل: اطمینان از استاندارد بودن کدهای کتابخانه.
کاربردهای اصلی اتصال اندروید به Rest بوسیله volley
این کتابخانه در اکثر پروژههای تجاری کاربرد دارد. 📱
مهمترین کاربردهای آن شامل موارد زیر است:
- 🔹 دریافت اطلاعات: گرفتن اخبار، لیست محصولات یا پروفایل کاربری.
- 🔹 ارسال فرم: ارسال اطلاعات ثبتنام یا ورود به سرور.
- 🔹 بارگذاری تصویر: نمایش تصاویر از اینترنت با استفاده از ImageLoader.
- 🔹 بروزرسانی داده: سینک کردن اطلاعات اپلیکیشن با دیتابیس آنلاین.
آموزش نصب و راهاندازی Volley
امروزه دیگر نباید از فایلهای .jar به صورت دستی استفاده کنید. 💻
بهترین روش، استفاده از مخازن گریدل (Gradle) در اندروید استودیو است.
برای این کار، کد زیر را در فایل build.gradle قرار دهید:
dependencies {
implementation 'com.android.volley:volley:1.2.1'
}
سپس پروژه را Sync کنید تا کتابخانه آماده استفاده شود.
مدیریت کش با کلاس LruBitmapCache
یکی از قدرتهای والی، مدیریت هوشمندانه تصاویر و دادهها است. 🖼️
برای استفاده از قابلیت کش، ابتدا یک کلاس کمکی ایجاد میکنیم.
این کلاس باعث میشود تصاویر قبلاً دانلود شده دوباره دریافت نشوند.
این کار مصرف اینترنت کاربر را به شدت کاهش میدهد.
public class LruBitmapCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache {
public LruBitmapCache() {
this(getDefaultLruCacheSize());
}
public static int getDefaultLruCacheSize() {
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
return maxMemory / 8;
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight() / 1024;
}
@Override
public Bitmap getBitmap(String url) { return get(url); }
@Override
public void putBitmap(String url, Bitmap bitmap) { put(url, bitmap); }
}
ایجاد کلاس مدیریت اپلیکیشن (AppController)
برای مدیریت بهتر صف درخواستها، از الگوی Singleton استفاده میکنیم. 🏗️
یک کلاس با نام AppController ایجاد کنید که از Application ارثبری کند.
این کلاس وظیفه نگهداری صف درخواستها در کل برنامه را دارد.
public class AppController extends Application {
private RequestQueue mRequestQueue;
private static AppController mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static synchronized AppController getInstance() { return mInstance; }
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
public <T> void addToRequestQueue(Request<T> req) {
getRequestQueue().add(req);
}
}
نحوه ارسال درخواست JsonArray به سرور
حالا زمان اتصال اندروید به Rest بوسیله volley فرا رسیده است. 📡
فرض کنید میخواهیم لیستی از اسامی را از یک آدرس دریافت کنیم.
برای این کار از JsonArrayRequest استفاده میکنیم.
این متد دارای دو بخش پاسخ موفق و پاسخ خطا است.
String url = "https://api.example.com/data.json";
JsonArrayRequest request = new JsonArrayRequest(url,
response -> {
// مدیریت پاسخ موفق
Log.d("Response", response.toString());
},
error -> {
// مدیریت خطا
Log.e("Error", error.getMessage());
}
);
AppController.getInstance().addToRequestQueue(request);
ارسال پارامتر و اطلاعات به سمت سرور
گاهی نیاز است اطلاعاتی مانند نام کاربری را ارسال کنید. 📮
در والی، برای این کار متد getParams را بازنویسی میکنیم.
این کار معمولاً در درخواستهای از نوع POST انجام میشود.
به مثال زیر دقت کنید:
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("username", "Ali");
params.put("email", "test@mail.com");
return params;
}
بخش ثبتنام و دریافت پنل اختصاصی
اگر برای پروژههای خود نیاز به API معتبر دارید، ثبتنام کنید. ✨
شما میتوانید به راحتی در سامانه ما عضو شوید.
مراحل کار بسیار ساده و سریع طراحی شده است:
- ✉️ ابتدا وارد سایت شوید.
- 📝 اطلاعات هویتی را با دقت پر کنید.
- 🔗 به آدرس p.api.ir مراجعه نمایید.
- 🚀 کلید API اختصاصی خود را دریافت کنید.
نتیجهگیری و جمعبندی
در این مقاله روش اتصال اندروید به Rest بوسیله volley را بررسی کردیم. 🎓
دیدیم که این کتابخانه چقدر توسعه برنامههای اندرویدی را ساده میکند.
از مدیریت کش گرفته تا کنترل صف، همگی در والی گنجانده شده است.
پیشنهاد میشود در پروژههای خود حتماً از این ابزار استفاده کنید.
آیا سوالی در مورد پیادهسازی کدها دارید؟ در بخش نظرات بپرسید! 👇
