تو این پست که به مرور زمان بروزرسانی هم خواهد شد، به بررسی کتابخانه های بسیار پرکاربرد اندرویدی با هم میپردازیم. 
کتابخونه هایی مثل: 
  • Logger
  • Android Annotation
  • LeakCanary
  • Retrofit 
  • Realm 
  • EventBus
  • ButterKnife
  • Parceler
  • Glide
  • IcePick
  • Espresso
  • Robolectric
  • RxJava
  • Hugo 
  • Calligraphy
  • Acra
  • و... 


خیلی از برنامه نویسان اندرویدی بعد از مدتی برای لاگ کردن از یه کلاس شخصی که خودشون مینویسن استفاده میکنن. اما یه لحظه فک کنید اگه کتابخونه ای باشه که بتونید با هر بار لاگ کردن اطلاعات به جز اون دیتایی که لاگ شده اطلاعات بیشتری از محل لاگ، متدی که در آن بودید، زمان رخ دادن آن و ... را داشته باشید

 

نمونه استفاده: 
Logger
  .init(YOUR_TAG)                 // default PRETTYLOGGER or use just init()
  .methodCount(3)                 // default 2
  .hideThreadInfo()               // default shown
  .logLevel(LogLevel.NONE)        // default LogLevel.FULL
  .methodOffset(2)                // default 0
  .logAdapter(new AndroidLogAdapter()); //default AndroidLogAdapter
}

Logger.d("hello");
Logger.d("hello %s %d", "world", 5);   // String.format
Logger.d("hello");
Logger.e("hello");
Logger.w("hello");
Logger.v("hello");
Logger.wtf("hello");
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
Logger.log(DEBUG, "tag", "message", throwable);




خیلی وقتا کدهای تکراری باعث زیاد شدن تعداد خط های کد برنامه میشه. با استفاده از annotation میشه از تکرار یک متد یا کد جلوگیری کرد. 
برای مثال: هنگامی که میخایم یه view رو توی کد پیدا کنیم از findviewbyid استفاده میکنیم. و اون view رو به کلاس مورد نظر cast میکنیم. همین نمونه ساده با استفاده از این کتابخانه به صورت زیر قابل انجام است: 
 @ViewById
  EditText search;

به همین راحتی. این فقط یه گوشه از خلاصه نویسی به کمک این کتابخانه است. برای جزییات بیشتر سایت اصلی شو مشاهده کنید و در مصرف کد همین امروز صرفه جویی کنید. :) 


برای شما هم احتمالا پیش اومده وقتی که متدی یا کدی رو نوشتید و باعث درگیر شدن Thread Ui شدید. یا کدی نوشتید که مصرف حافظه اش خیلی زیاد هست و برنامه تون به مشکل خورده. اما از کجا میشه فهمید کجای برنامه داره بیشترین رم رو مصرف میکنه؟ از کجا بفهمیم کجای کدی که نوشتیم مشکل نشتی حافظه داره؟  به راحتی به کمک همین کتابخونه. 

نحوه استفاده: (برای اطلاعات بیشتر به لینک اصلی مراجعه کنید.)
public class ExampleApplication extends Application {

  @Override public void onCreate() {
    super.onCreate();
    if (LeakCanary.isInAnalyzerProcess(this)) {
      // This process is dedicated to LeakCanary for heap analysis.
      // You should not init your app in this process.
      return;
    }
    LeakCanary.install(this);
    // Normal app init code...
  }
}



ادامه کتابخانه ها بزودی ...