10 مكتبات يجب على كل مطور أندرويد معرفتها

10 مكتبات يجب على كل مطور أندرويد معرفتها


في عام 2015 ، قمنا بنشر مقال حول أفضل خمس مكتبات استخدمناها في ذلك الوقت. ومع ذلك ، نمت منصة Android بشكل ملحوظ منذ ذلك الحين. كما تعلمون ، في مجال سريع التطور مثل تطوير البرمجيات ، كل شيء يتغير ويتطور بسرعة البرق. لذلك قررنا أن الوقت قد حان لتحديث قائمة أكثر مكتبات Android فعالية.


دون مزيد من اللغط ، دعنا نذهب مباشرة إلى قائمتنا. أولاً ، سنلقي نظرة على واحدة من أقدم ، ولكن في رأيي ، واحدة من أكثر مكتبات Android فعالية.


1. التعديل التحديثي


يعد التحديث التحديثي عميل HTTP آمنًا يسمح لك بتقديم واجهة برمجة تطبيقات REST الخاصة بك كواجهة. ستتمكن من إدارة الهيئات والعناوين والمعلمات لطلبات واجهة برمجة التطبيقات وغيرها الكثير بمساعدة التعليقات التوضيحية ، مما يجعل هذه العملية بسيطة ومفهومة. يسمح لك التعديل التحديثي أيضًا بإجراء مكالمات API متزامنة وغير متزامنة.


interface ApiService { @GET("movie/{id}") fun getMovieDetails(@Path("id") id: String) : Call<MovieDetails> } 

بالإضافة إلى ذلك ، توفر التحديثية وحدة Rx منفصلة. إذا كنت تستخدم Rx ، فسوف تقوم هذه الوحدة بإرجاع Observable عند الوصول إلى واجهة برمجة التطبيقات ، والتي ستسمح لك بربطها ببقية تطبيقك. هذه ليست سوى عدد قليل من الأسباب العديدة التي لا نزال نحبها ونستخدمها التحديثية.


2. موشي


موشي هي مكتبة لتحويل JSON إلى كائنات Java و Kotlin. ينظر الكثير إلى موشي على أنه GSON 3.0. ومع ذلك ، فإن هذه المكتبة تتفوق على GSON في عدة جوانب: فهي أسرع ، وتدعم Kotlin ، وتقوم بتحديثها ، وتولد استثناءات يمكن التنبؤ بها ولا تستخدم محول DateTime التالف بشكل افتراضي. بالإضافة إلى ذلك ، باستخدام Moshi ، تصبح عملية تحويل JSON إلى كائنات Java (والعكس صحيح) بسيطة ومباشرة قدر الإمكان.


 val moshi = Moshi.Builder().build() val jsonAdapter = moshi.adapter(Model::class.java) /* JSON to Model */ val model = jsonAdapter.fromJson(json) /* Model to JSON */ val json = jsonAdapter.toJson(model) 

كما نحب موشي لدعم واجهة برمجة تطبيقات JSON. واجهة برمجة تطبيقات JSON هي أحد مواصفات إنشاء واجهة برمجة التطبيقات ، وكثير من واجهات برمجة التطبيقات التي نعمل معها مكتوبة باستخدام هذه المواصفات. واجهة برمجة تطبيقات Moshi JSON تجعل حياتنا أسهل لأنه يتم تحويل واجهة برمجة تطبيقات JSON إلى كائنات Java ذات معنى. التعديل التحديثي لا يزال يدعم موشي ، وهم معا يعملون بشكل رائع.


3. تشاك


Chuck هو مفتش HTTP لنظام Android يسمح لك بالحفر في سجل HTTP الخاص بتطبيقك على هاتفك المحمول. يتم عرض سجل HTTP كإشعار ، يمكن توسيعه لتسجيل الدخول إلى Chuck ورؤية المعلومات التفصيلية. سيؤدي استخدام Chuck إلى إرضاء قسم ضمان الجودة بشكل لا يصدق ، حيث يمكنهم معرفة مكان المشكلة: على جانب Android أو على جانب الخادم. يمكن أن تساعدك هذه المكتبة في بعض الأحيان أكثر من logcat. هذا لأنه سيتم الاحتفاظ بسجل HTTP الخاص بك حتى إذا تم إغلاق التطبيق بشكل غير متوقع ، في حين يزيل logcat نفسه من وقت لآخر بعد إعادة التشغيل.


تشاك


4. أنسل


أنت على الأرجح تعرف أن تنزيل الصور على Android أمر صعب للغاية. حتى تغيير حجم الصورة يمكن أن يكون كارثة مع OutOfMemoryException . Glide هي مكتبة لتحميل الصور توفر واجهة برمجة تطبيقات عالية الجودة تتيح لك تعديل الصورة كما تريد.


 GlideApp.with(context) .load(url) .centerCrop() .placeholder(R.drawable.ic_placeholder) .into(imageView) 

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


5. ثلاثة عشر


ThreeTen هي مكتبة للتاريخ والوقت لنظام Android. هذه نسخة منقولة من JSR-310 تم تضمينها في Java 8 باعتبارها java.time.* القياسي java.time.* Package. نحن نحب هذه المكتبة لأن واجهة برمجة تطبيقات تقويم Android القياسية تحول العمل إلى كابوس.


 /* Current DateTime */ LocalDateTime.now() /* String to DateTime */ val localDateTimeString = "2011-12-03T10:15:30" val localDateTime = LocalDateTime.parse(localDateTimeString) 

ThreeTen أقل بكثير من JodaTime من حيث عدد الطرق والحجم الثنائي. واجهة برمجة التطبيقات لهذه المكتبة هي أيضًا أصغر من واجهة برمجة تطبيقات JodaTime. إذا كنت تستخدم JodaTime بالفعل ، فربما لا يجب الترقية إلى ThreeTen. ومع ذلك ، أوصي بشدة بتجربة ThreeTen إذا كنت قد بدأت للتو في العمل على مشروع جديد.


6. الأخشاب


Timber هي مكتبة تسجيل قوية وبسيطة مبنية على قمة Android Log class. بمساعدتها ، يمكنك بسهولة تشغيل وإيقاف عرض السجلات. تقدم المكتبة أيضًا دعمًا ممتازًا لتسجيل السلاسل والاستثناءات المنسقة. بفضل هذه المزايا ، تم تضمين Timber أيضًا في قائمة المكتبات الرئيسية التي نستخدمها في جميع مشروعات Android تقريبًا.


 /* Log error */ Timber.e("Error happened") /* Log warning with params */ Timber.w("Your variable value is %s", variable) /* Log exception */ try { ... } catch (e: Exception) { Timber.e(e) } 

7. الغرفة


الغرفة هي ORM الرسمي لنظام Android ، وهناك عدة أسباب لهذا الوضع. تحتوي هذه المكتبة على واجهة برمجة تطبيقات سهلة الاستخدام شبيهة بـ Retrofit. تعتمد الغرفة أيضًا بشكل كبير على التعليقات التوضيحية وبناء جملة SQL القياسي.


 @Dao interface MovieDao { @Query("SELECT details FROM movies WHERE id = :id") fun getMovieDetails(id: String): MovieDetails } 

بالإضافة إلى ذلك ، تتضمن الغرفة دعم Rx و LiveData ، لذا يمكنك استخدامه LiveData تشاء. الميزة الرئيسية للغرفة عبر مختلف ORMs هي بساطتها. تحتوي العديد من ORMs على واجهة برمجة تطبيقات أكثر تعقيدًا بكثير ، لاستخدامها ستحتاج إلى دراسة جميع الوثائق بعناية. بفضل بناء جملة SQL القياسي ، فإن Room مفهومة للغاية ، مما يسمح لك بالبدء على الفور دون قضاء الكثير من الوقت في قراءة الوثائق.


8. RxJava


RxJava هو تطبيق Java لواجهة برمجة تطبيقات ReactiveX التي تسمح لك بربط المهام والأحداث غير المتزامنة في تسلسلات يمكن ملاحظتها . يتوقع المستخدمون أن تعرض التطبيقات الحديثة البيانات في الوقت الفعلي. وبعبارة أخرى ، يريدون تحديث المعلومات تلقائيًا. في هذا الجانب يأتي RxJava في متناول اليدين.


عند تلقي البيانات في الوقت الفعلي ، يصبح من الصعب للغاية الجمع بين طلبات API المتعددة وتبديل التدفقات ومعالجة الأخطاء. هنا تظهر RxJava نفسها بشكل مثالي ، ولهذا السبب بدأنا في استخدام هذه المكتبة. أوافق على أن RxJava قد تبدو مربكة وصعبة التعلم ، لكن هذه المكتبة تستحق بالتأكيد وقتك. حتى بعد التحول إلى Kotlin ، واصلنا استخدام RxJava بسبب مزاياه. عند دمجها مع Kotlin API ، فإنها تتحسن بفضل وظائف الامتداد الإضافية.


 Single.zip( /* Execute first API call and retry twice if it fails */ apiService.getMovieActors(id).retry(2), /* Execute second API call and retry twice if it fails */ apiService.getMovieDetails(id).retry(2), /* Receive successful results and merge them into single model */ BiFunction<List<Actor>, MovieDetails, Movie> { actors, details -> Movie(details, actors) } ) /* Execute API calls on IO thread */ .subscribeOn(Schedulers.io()) /* Receive results on MainThread */ .observeOn(AndroidSchedulers.mainThread()) .subscribeBy( onError = { /* Handle error */ }, onSuccess = { /* Handle full movie data */ } ) 

حاول القيام بشيء مشابه للمقتطف أعلاه باستخدام Java بسيط. تعال.


9. أندرويد KTX


Android KTX عبارة عن مجموعة من الإضافات المجمعة لواجهة برمجة تطبيقات Android في Kotlin تجعلها أكثر ملاءمة. الهدف الرئيسي من هذه المكتبة هو جعل واجهة برمجة تطبيقات Android أكثر ملاءمة للاستخدام. يحتوي على العديد من الطرق وميزات Kotlin الجديدة الرائعة ، مثل المعلمات المسماة ووظائف lambda والمعلمات الافتراضية.


 /* Display View */ view.isVisible = true /* Apply padding to all sides */ view.setPadding(padding) /* Update padding on any side */ view.updatePadding(left = newPadding, right = newPadding) /* Quick Toast */ toast("Display test toast") /* New way to create bundle */ bundleOf { "key1" to item1 "key2" to item2 } /* Better way to use SharedPreferences */ sharedPreferences.edit { putString("key1", "value1") putString("key2", "value2") } 

يتميز Android KTX بوجود العديد من وظائف الإضافات ، والطريقة الوحيدة لمعرفة المزيد عنها هي الغطس في رمز المكتبة لمعرفة كيفية تحسين الوظائف لواجهة برمجة تطبيقات Android. يعمل Android KTX على تبسيط الطريقة التي تستخدم بها واجهة برمجة تطبيقات Android ، ولهذا السبب ، يجب أن تكون هذه المكتبة أساس كل تطبيق Android مكتوب في Kotlin.


10. خنجر


لن تكتمل قائمتنا لأفضل 10 مكتبات بدون خنجر. هذه المكتبة هي إطار حقن تبعية ثابت تمامًا في وقت الترجمة. من الصعب حقًا فهم Dagger ، مثل RxJava (كان علي قضاء بعض الوقت لفهم مثال CoffeeMaker الخاص بهم) ، ولكنه بالتأكيد يستحق الوقت والجهد.


حقن التبعية هي طريقة لإضافة مكونات صغيرة إلى نماذج أخرى بأقل جهد. على سبيل المثال ، إذا كان لديك طراز سيارة ، يمكنك إضافة إطارات إليه واستبدال تنفيذ الإطار بسهولة في المستقبل - دون تغيير سطر واحد من التعليمات البرمجية في طراز السيارة.


عند تطوير تطبيقات أكثر تعقيدًا ، لن ترغب بالتأكيد في أداء مهام حقن التبعية بنفسك ، لأن كمية الشفرة تنمو بسرعة وتصبح معقدة للغاية بحيث لا يمكن دعمها. يوفر لك Dagger هذه المشكلة لأنه ينشئ رسمًا بيانيًا لحقن التبعية في وقت الترجمة من خلال معالجة التعليقات التوضيحية.


في العام الماضي ، أضافت Google وحدة Android Dagger منفصلة تتيح لك كتابة كود نصفي أقل وتبسيط حقن التبعية.


الخلاصة


ها هي: قائمة أفضل 10 مكتبات Android في 2018. عشر مكتبات رائعة ستجعل عملية تطوير Android أكثر متعة لأي شخص يقرر استخدامها. هل تريد المزيد من المكتبات؟ حدث ذلك أننا في شركتنا طورنا العديد من مكتبات Android الخاصة بنا. يمكنك التعرف عليهم:


  • MjolnirRecyclerView - يضيف دعمًا لمكونات الرأس والتذييل والعرض الفارغ و DiffUtils إلى RecyclerView ؛
  • Goldfinger - يبسط تنفيذ مصادقة بصمات الأصابع ؛
  • DBInspector - عرض ويوفر الوصول إلى قواعد بيانات التطبيق ؛
  • التعقيد طريقة سهلة للتحقق من جودة كلمة مرور المستخدم ؛
  • أمير الإصدارات - يعالج تحديثات التطبيق داخل التطبيق.

Source: https://habr.com/ru/post/ar425397/


All Articles