توسعه دهنده اندروید هستم. دوس دارم تجربیاتم رو با نوشتن به اشتراک بزارم.
فوت و فنهای شیء-گرایی: استفاده از Starter در اندروید
میخوام این نوشته رو ساده و کوتاه بنویسم که راحتتر اون رو بخونید. چون کاربرد زیادی داره و تقریبا تو هر پروژه ای استفاده میشه.
تقریبا از روز اولی که شروع کردم به توسعه برای اندروید تا همین چند وقت پیش، برای شروع یک اکتیویتی از کد زیر استفاده میکردم:
تو نگاه اول شناختینش نه؟ تقریبا همه ما برنامهنویسهای اندروید از این کد برای شروع یک اکتیویتی استفاده میکنیم. اما این کد مشکلاتی به همراه داره.
- اول اینکه هر جا احتیاج داشتم یک اکتیویتی رو شروع کنم باید کد بالا رو کپی میکردم و اکتیویتی هدف رو تغییر میدادم و دادههایی که قرار بود ارسال بشه رو دوباره ست میکردم.
- بعدش مجبور بودم تو اکتیویتی هدف، همه دادههایی که قرار بود دریافت کنم رو تعریف میکردم. تقریبا مثل تصویر زیر:
خوب اینجا شاید بگید که این چیزی نیست و خیلی هم راحت میشه ازش استفاده کرد و چرا ...شعر میگی.
اما باور کنید تو پروژهای بزرگ اگه از این روش استفاده کنید خیلی رو اعصابتونه. چندتا از مشکلاتی که ممکنه براتون پیش بیاد:
- ممکنه بعدا برای یک اکتیویتی داده های بیشتری ارسال کنید.
- اینکه فراموش کنید داده ها رو به اکتیویتی ارجاع بدید.
- ممکنه لازم بشه تو خیلی از جاها یک اکتیویتی رو اجرا کنید.
- ممکنه اصلا یادتون بره داده های جدید رو جایگزین داده های قبلی کنید.
تابع Starter
برای جلوگیری از مشکلات بالا، خیلی بهتر هست اگر از یک تابع استاتیک در اکتیویتی هدف استفاده کنید:
حتی خود اندروید استدیو هم یک تابع داخلی برای این کار داره:
استفاده از این روش تو پروژههام خیلی به من کمک کرده و کدهام قابل فهمتر شدن. امیدوارم که به شما هم کمک بکنه.
مطلبی دیگر از این انتشارات
کاهش سایز apk هنگام استفاده از کتابخانه های بومی(Native)
مطلبی دیگر از این انتشارات
یادگیری زبان جدید kotlin چقدر اهمیت داره ؟
مطلبی دیگر از این انتشارات
انواع Interceptor ها در OkHttpClient