۲۰ ابزار توسعه اندروید که شاید نامشان را نشنیده باشید | فهرست جامع
اغلب ما با کتابخانهها و ابزارهای مشهور و معروف که برای توسعه اندروید مورد نیاز هستند، آشنا هستیم، اما تعداد زیادی از این کتابخانهها وجود دارند که افراد زیادی آنها را نمیشناسند. بنابراین در این مقاله با 20 ابزار توسعه اندروید آشنا خواهیم شد که احتمالاً نام آنها را تاکنون نشنیدهاید و با این حال میتوانند به تسریع و تسهیل کارهای شما کمک زیادی بکنند.
AinD: اندروید در داکر
AinD (+) اپلیکیشنهای اندروید را به وسیله کانتینرهای AnBox درون داکر و در محیط داکر اجرا میکند.
برخلاف پروژههای مشابه مبتنی بر ماشین مجازی، AinD میتواند روی وهلههای IaaS بدون پشتیبانی برای مجازیسازی تودرتو اجرا شود. هدف از این پروژه جلوگیری از سرقت و سازگاری با اندروید از طریق کلود برای تبلتهای iOS و ویندوزی است.
Booster
Booster (+) یک ابزار واقعاً جالب است. استفاده از آن ساده بوده و یک کیت ابزار بهینهسازی سبک، قدرتمند و با کیفیت قابل بسط است که به طور خاص برای اپلیکیشنهای موبایل طراحی شده است و هدف اصلی آن حل مسائل کیفیت با افزایش پیچیدگی اپلیکیشن مانند عملکرد، ثبات و اندازه پکیج است.
بوستر یک مجموعه از کلکسیونها برای تشخیص عملکرد، بهینهسازی چندنخی، اندیسگذاری درون خطی منابع، کاهش استفاده تکراری از منابع، فشردهسازی منابع، اصلاح باگ سیستم و غیره است. استفاده از بوستر موجب افزایش ثبات اپلیکیشن به میزان 15 تا 25 درصد میشود و اندازه پکیج نیز میتواند به میزان 1 تا 10 مگابایت کاهش یابد.
این ابزار بهینهسازی تحت لایسنس آپاچی 2.0 نوشته شده است و مستندات بسیار خوبی دارد.
Shake
Shake (+) یکی از بهترین ابزارها برای شناسایی باگ، بررسی مراحل کاربر برای بازتولید باگ و گردآوری اسکرینشات یا ویدئو برای ردگیری باگها است. این ابزار موجب میشود که یافتن و رفع باگها در برنامه بتا یا در محیط پروداکشن به میزان زیادی آسانتر شود. این اپلیکیشن واقعاً ارزش بررسی کردن را دارد.
چنان که در تصویر فوق میبینید، میتوان دستگاه را تکان داد تا یک قالب برای ارسال باگ ایجاد شود. کاربران میتوانند باگ را علامتگذاری کنند و حتی دادههای محرمانه را تار میکند و مشکل را توصیف کرده و در نهایت برای شما ارسال کنند.
نصب این ابزار بسیار آسان است و مستندات (+) بسیار خوبی دارد. همچنین یک دموی زنده وجود دارد که شیوه کارکرد درونی این ابزار را توصیف میکند.
Scabbard
Scabbard (+) ابزاری است که گراف وابستگی Dagger 2 شما را بصریسازی کرده و درک میکند.
Scabbard همه نقاط، گرافهای وابستگی، روابط کامپوننتها و دامنهها را بصریسازی میکند. برای قرار دادن آن در پروژه به تلاش بسیار کمی نیاز دارید. این ابزار به خوبی با Gradle و همچنین اندروید استودیو یا IntelliJ ادغام میشود. به این ترتیب میتوانید یک گراف Component@ یا یک Subcomponent@ را به صورت مستقیم از سورس کد از طریق آیکونهای حاشیه کد ببینید.
مستندات (+) این ابزار عالی است و پر از مثالها و نکات مختلف است. همه موارد مرتبط با این ابزار تحت لایسنس آپاچی 2.0 انتشار یافته است.
Can I Drop Jetifier
همان طور که میدانیم، گاهی اوقات مهاجرت از یک کتابخانه پشتیبانی قدیمی به AndroidX کار آسانی نیست و این موضوع در خصوص پروژههای بزرگ قدیمی مصداق بیشتری دارد. موفقیت این مهاجرت به میزان زیادی بسته به کاربرد Jetifier است. این ابزار وابستگیهایی که برای عملکرد روی کلاسهای AndroidX به موارد قدیمی وابسته هستند را تبدیل میکند. با این حال، زمان بیلد را افزایش میدهد.
از آنجا که رفته رفته کتابخانههای بیشتری به AndroidX مهاجرت میکنند، در یک موقعیت زمانی نیاز به فعالسازی این ابزار خواهیم داشت. این پلاگین برای شناسایی این که کدام کتابخانهها که استفاده میشوند باید به AndroidX مهاجرت کنند یا در صورت وجود نسخه جدید بهروزرسانی شوند، مورد استفاده قرار میگیرد.
مستندات این ابزار (+) کاملاً گویا است و پروژه تحت لایسنس آپاچی 2.0 انتشار یافته است.
ADB Event Mirror
ADB Event Mirror (+) امکان بازتاب رویدادهای لمس/ کلید/دکمه یک دستگاه را روی دستگاههای دیگر به صورت آنی فراهم میسازد.
این اسکریپت هیچ تلاشی در جهت نرمالسازی وضوح تصویر، تراکم پیکسل، جهتگیری یا تفاوتهای لیآوت نمیکند. این ابزار روی شبیهسازهایی بهترین عملکرد را دارد که دقیقاً با پیکربندی مشابه ساخته شده باشند.
این ابزار امکان تست اپلیکیشن را روی انواع مختلفی از شبیهسازها به صورت همزمان فراهم ساخته است.
Android Emulator Container Scripts
Android Emulator Container Scripts (+) یک مجموعه از اسکریپتهای مینیمال برای اجرای شبیهساز در یک کانتینر برای سیستمهای مختلف مانند داکر برای مصرف خارجی است. این اسکریپتها با هر دو نسخه 2 و 3 پایتون سازگار هستند. ریپوی مربوطه کاملاً محبوب است و در صورتی که بخواهید شبیهسازیها زیادی را روی ماشینهای ریموت اجرا کنید، مفید واقع خواهند شد.
این پروژه تحت لایسنس آپاچی 2.0 انتشار یافته و به خوبی مستندسازی شده است.
Autoplay
Autoplay (+) یک پلاگین Gradle برای انتشار محصولهای اندروید روی گوگل پلی است.
شما میتوانید با آن مانند یک جایگزین ساده برای Gradle Play Publisher یا Fastlane برخورد کنید. امکان انتشار اپلیکیشنهای شما به صورت apk روی App Bundle وجود دارد.
Autoplay دارای خصوصیات زیر است:
- برای کاربرد CI/CD بهینهسازی شده است.
- محبوب توسعهدهنده است.
- پایدار و تست شده است.
این پروژه مستندات خوبی دارد. نسخه 1.3.0 تخت لایسنس آپاچی 2.0 انتشار یافته است.
پلاگین Gradle Static Analysis
این ابزار (+) یک جایگزین خوب برای همه ابزارهای تحلیل استاتیک کد مانند موارد فهرست زیر محسوب میشود:
- Checkstyle
- PMD
- FindBugs
- SpotBugs
- Detekt
- Android Lint
- KtLint
به جای این که آن را خودتان راهاندازی کنید، یک روش آسان برای گنجاندن این ابزار به روشی کارآمد در کدبیس ارائه شده است. این پلاگین تحت لایسنس آپاچی 2.0 عرضه شده است، مستندات خوبی دارد و حتی یک پروژه نمونه نیز به همراه آن عرضه شده است.
AndroidUtilCode
AndroidUtilCode (+) یک کتابخانه قدرتمند و با استفاده آسان برای اندروید است. این کتابخانه تابعهایی را که در توسعه اندروید استفاده میشوند کپسولهسازی میکند و دمو و تستهای یونیت کاملی دارد. با بهرهگیری از API-های کپسولهسازیشده میتوانید عملکرد را به میزان زیادی بهبود ببخشید.
این پروژه به طور عمده شامل دو ماژول است که یکی به نام utilcode در محیط توسعه و دیگری به نام subutil به ندرت در محیط توسعه استفاده میشود و نسخه سادهشدهای از ماژول اصلی به حساب میآید.
این کد در نسخه 1.29.0 است و تحت لایسنس آپاچی 2.0 انتشار یافته است.
Hijckr
Hijckr (+) در مرحله ایجاد لیآوت اندروید دخالت کرده و عناصر نامدار را به کلاسهای دیگر هدایت میکند.
این یک ابزار کاملاً جالب است. برای نمونه یک فایل لیآوت که شامل TextView است در اندروید به طور معمول android.widget.TextView بارگذاری میشود، اما با استفاده از این کتابخانه میتوانیم تگهای xml را دزدیده و com.myapp.TextView را بارگذاری کنیم. فایل README کامل است و این امکان را به ما میدهد که سریعاً آغاز به کار با این ابزار کنیم که 100% با جاوا نوشته شده است.
Roomigrant
Roomigrant (+) یک کتابخانه کمکی است که میگریشنهای کتابخانه Room اندروید را به صورت خودکار با استفاده از تولید کد زمان کامپایل ایجاد میکند این کتابخانه از فایلهای اسکیما که از سوی کتابخانه Room تولید شده استفاده کرده و میگریشن را بر مبنای تفاوت بین آنها تولید میکند. این بدان معنی است که تولید میگریشن اسکیمای Room باید در فایل build.gradle فعالسازی شود که به خوبی در README توضیح داده شده است. این پروژه تحت لایسنس MIT نسخه 0.1.7 انتشار یافته است.
RoomExplorer
زمانی که کدبیس خود را به Room انتقال میدهیم، میتوانیم این پایگاه داده را در یک ابزار Viewer بررسی کنیم. RoomExplorer (+) امکان مشاهده همه دادههای جدول را در فرمت جدولی فراهم میسازد. همچنین امکان درج ردیف در جدول، بهروزرسانی، حذف ردیفها، حذف و پاکسازی ردیفها و غیره وجود دارد.
این ابزار مستندات خوبی دارد و تحت لایسنس آپاچی 2.0 انتشار یافته است.
android-framer
ابزار android-framer (+) امکان افزودن فریم و عنوان را به اسکرینشاتهای گوگل پلی فراهم میسازد.
این ابزار با استفاده از پایتون و ImageMagick ساخته شده است. شما میتوانید فریمها (پسزمینهها) را با استفاده از مثلاً طراحی فیسبوک پیکربندی کنید. همچنین میتوانید نوع و اندازه فونت، اندازه فریم و موارد دیگر را تغییر دهید. این کتابخانه تحت لایسنس آپاچی 2.0 انتشار یافته است.
Dependency Tree Diff
کتابخانه Dependency Tree Diff (+) یک ابزار diff هوشمندانه برای خروجی وظیفه Gradle است که همواره مسیر وابستگی ریشه را نمایش میدهد.
امکان نصب این ابزار با brew یا صرفاً با استفاده از فایل jar وجود دارد. این کتابخانه تحت لایسنس آپاچی 2.0 انتشار یافته است.
Gradle Doctor
کتابخانه Gradle Doctor (+) یک پلاگین بیلد گریدل است که شامل هشدارهای قابل پیکربندی برای مشکلات سریع بیلد است و زمان صرف شده در فرایندهای حاشیهنویسی داگر را اندازهگیری میکند. این ابزار مطمئن میشود که JAVA_HOME تعیین شده با مقدار JAVA_HOME در IDE تطبیق پیدا میکند. همچنین امکان کش کردن تست را به سادگی غیر فعال میکند تا زمانی که دایرکتوری src خالی است بیلد ناموفق باشد، زیرا دایرکتوریهای src خالی موجب از دست رفتن کشها و مشکلات بسیار دیگر میشوند.
این ابزار مستندات عالی دارد و تحت لایسنس آپاچی 2.0 انتشار یافته است.
GloballyDynamic
GloballyDynamic (+) یک مجموعه از ابزارها است که امکان عرضه سراسری Dynamic Delivery را صرف نظر از این که پلتفرم زیرین فروشگاه/ توزیع اپلیکیشن چیست ارائه کرده است. همچنین یک API کلاینت اندروید متحد و منفرد و یک تجربه توسعهدهنده سرراست عرضه میکند.
این کتابخانه در حال حاضر از موارد زیر پشتیبانی میکند:
- پلی استور گوگل
- گالری اپلیکیشن هواوی
- اغلب پلتفرمهای دیگر در ترکیب با GloballyDynamic Server مانند اپاستور آمازون، فروشگاه گلکسی سامسونگ، توزیع اپلیکیشن فایربیس یا در طی توسعه لوکال.
با استفاده از README این ابزار میتوانید با آن بیشتر آشنا شوید. این کتابخانه تحت لایسنس آپاچی 2.0 عرضه شده است.
Dagger Browser
Dagger Browser (+) یک ابزار دیگر است که امکان ناوبری آسان در گراف داگر پروژه را فراهم میسازد.
دادههای گراف از پلاگین SPI داگر تأمین میشوند و مرورگر با استفاده از اسکریپت و با تایپ اسکریپت ساخته شده است.
همچنین یک اپلیکیشن نمونه وجود دارد که طرز کار این اپلیکیشن را نمایش میدهد. همه این موارد تحت لایسنس BSD-3-Clause عرضه شدهاند.
Wormhole
Wormhole (+) یک ابزار بازنویسی بایتکد سفر در زمان است که API-های آینده را به android.jar اضافه میکند که میتوانند بر مبنای همه سطوح API از سوی D8 و R8 تطبیق داده شوند.
Wormhole ما را مطمئن میسازد که میتوانیم سازگاری رو به عقب با جدیدترین API-ها داشته باشیم. برای نمونه در اندروید R متدهای جدیدی از جاوا 9 مانند List.of وجود دارند، اما به لطف D8 و R8 این موارد منحصر به API 30 نیست، بلکه به طرز آنی تا API 1 نیز میتوانند از آن استفاده کنند. یک مجموعه از تطبیقها در D8 و R8 برای API-ها وجود دارند که هنوز در android.jar عرضه نشدهاند. به جای آن که مجبور باشیم منتظر بمانیم تا بتوانیم از آنها استفاده کنیم، این پروژه به ما امکان میدهد که بیدرنگ از آنها بهره بگیریم.
MNML
MNML (+) که به صورت مینیمال تلفظ میشود یک اسکرینرکوردر رایگان ساده برای اندروید است.
بدیهی است که اپلیکیشنها و ابزارهای زیادی به این منظور وجود دارند. در حال حاضر همه دستگاههای جدید دارای ابزار ضبط صفحه به صورت داخلی هستند، اما همچنین اگر بخواهید شیوه پیادهسازی یک اپلیکیشن را بررسی کنید، این پروژه میتواند یک منبع خوب باشد. این پروژه تحت لایسنس آپاچی 2.0 منتشر شده است.
سخن پایانی
در این مقاله با 20 کتابخانه مفید اندروید که کمتر شناخته شده هستند آشنا شدیم.
امیدواریم از مطالعه این فهرست کاربردی بهره لازم را برده باشید و ابزارهایی که در این مطلب معرفی شدند، بتوانند شما را در اجرای بهتر پروژههایتان کمک کنند.