منتشر شدن نسخهی ۰٫۱٫۰ جنریتور حلما
اگر پروژههاتون رو براساس الگوی معماری MVP درست میکنید، احتمالا از ساخت فایلهای اضافه برای هر اکتیویتی یا فرگمنت خسته شدید. اینجاس جنریتور میتونه کلی از کارتون کم کنه! و این وظیفه رو به عهده بگیره. خودم از وقتی که نسخهی خیلی اولیه جنریتور رو منتشر کردم، ازش استفاده میکنم. مزیت جنریتور در ساخت فایلهای مرتبط با MVP و … نسبت به روشهای دیگه اینه هم سریعتر هست و هم اینکه مثل روش کپی پیست باگ تولید نمیکنه (مثلا پیش نمیاد یادتون بره یه فیلد رو rename کنید).
توی این مدت یه سری مشکلات داخلش پیدا کردم. بین پروژهها دو روزی فرصت شد تا برای بهبود و توسعهاش وقت بذارم. البته مهمترین مشکل نسخهی قبل نداشتن راهنما برای استفاده بود. در ادامه تغییرات جدید و نحوهی استفاده از جنریتور رو براتون توضیح میدم.
تغییرات جدید در نسخهی ۰٫۱٫۰
- اضافه کردن آپشن nav-custom به ساب جنریتور activity
- اضافه کردن ساب جنریتور جدید به اسم fragment برای ساختن فرگمنتها
- تغییر مکان unsubscribe شدن observableها از onPuase به onStop
- اضافه کردن کتابخونه calligraphy برای استفاده از فونتها و استفاده از Timber برای لاگ کردن
- اضافه کردن مثال اینکه چطور میشه خطاهایی که از سمت سرور میاد و شامل json هست رو با rxjava هندل کرد. (داخل فایل MyApiServiceImpl.java)
- بهبود بخشهای مختلف جنریتور و رفع تعدادی باگ
راهنمای استفاده از جنریتور حلما
برای کار با جنریتور حلما اول باید نصبش کنید، آموزش نصب توی این لینک هست. وقتی جنریتور روی دستگاهتون نصب شد، میتونید با دستور زیر اولین پروژتون رو باهاش بسازید:
1 |
yo helma-mvp |
بعد اجرای این دستور، جنریتور تعدادی سوال میپرسه که براساس جوابهاتون پروژه رو تولید میکنه.
نکته مهم۱- برای اجرای بقیه دستورات باید وارد فولدر پروژه بشید و اونجا این دستورات رو اجرا کنید وگرنه با خطا مواجه میشید.
نکته مهم۲- در کنار اکتیویتی و فرگمنتهایی که توسط دستورات زیر ساخته میشند، فایلهای مورد نیاز برای الگوی معماری mvp مثل presenter و کتابخونهی dagger2 هم ساخته میشند.
لیست دستوراتی که جنریتور حلما پشتیبانی میکنه:
۱- دستور ساخت اکتیویتی خالی
1 |
yo helma-mvp:activity |
۲- دستور ساخت اکتیویتی که شامل کدهای endless recyclerview هست
1 |
yo helma-mvp:activity --list |
۳- دستور ساخت اکیتویتی که شامل یک فرگمنت هست
1 |
yo helma-mvp:activity --frag |
۴- دستور ساخت اکتیویتی که شامل navigation drawer از نوع سفارشی (custom) هست
1 |
yo helma-mvp:activity --nav-custom |
۵- دستور ساخت اکتیویتی که شامل navigation view از نوع استاتیک (یعنی آیتمهای navigation view از یک فایل xml خونده میشه) هست.
1 |
yo helma-mvp:activity --nav-support |
۶- دستور ساخت اکتیویتی که شامل navigation view از نوع داینامیک هست.
1 |
yo helma-mvp:activity --nav-support --nav-dynamic |
۷- دستور ساخت فرگمنت خالی
1 |
yo helma-mvp:fragment |