انتشار برنامه اندروید مثل یک حرفه‌ای

نویسنده : سید ایوب کوکبی ۱۹ بهمن ۱۳۹۷

در اسکارپ مقالات متعددی دربارۀ ساخت و توسعۀ اپلکیشن‌های اندروید منتشر کرده‌ایم. امروز قصد دارم دربارۀ هیجاان‌انگیزترین بخش ساخت یک محصول نرم‌افزاری صحبت کنم. بله، انتشار برنامه که در صورت اجرای نادرست به اندازۀ جذابیتش، ضدحال هم خواهد زد. این مقاله تلاش دارد با معرفی راه‌های صحیح انتشار برنامه و ملاحظاتی که باید در این مسیر مدنظر قرار دهید احتمال بروز مشکلات پیش‌بینی نشده را کاهش دهد! امید که اپلیکیشنی پایدار، با بهترین تجربۀ کاربری و درخور کاربرانتان منتشر کنید.

ابتدا خودتان را در نقطه‌ای تجسم کنید که فایل APK برنامه آمادۀ انتشار شده است. اگر برنامه‌نویس مستقل هستید، احتمالاً تمامی مسئولیت‌های تست برنامه بر دوش شما بوده و زمانی زیادی را برای آماده‌سازی یک محصول عاری از خطا صرف نموده‌اید. در چنین شرایطی استفاده از ابزارهای کمکی برای آزمون واحد و تست یکپارچگی (Unit & Integration) کار شما را آسان‌تر می‌کند. و اگر در سازمانی کنار سایر اعضای تیم فعالیت می‌کنید قطعاً واحدی برای تضمین کیفی (QA: Quality Assurance) دارید که وظیفه‌اش انجام امور مربوط به تست، اطمینان از پایداری، عاری از باگ بودن برنامه و حفظ محصول در سطح بالایی از کیفیت است.

اما به نظر شما این موضوع به تنهایی برای اطمینان از سلامت برنامه کافی است؟

به چند سوال پاسخ دهید. آیا واقعاً اطمینان دارید که محصول شما عاری از اشکالات و باگ‌های بحرانی است؟ آیا مطمئنید که برنامه به دلایل پنهانی کرش نکند؟ آیا اپلیکیشن شما بدون هیچ مشکلی روی تمام نسخ اندروید کار خواهد کرد؟ قطعاً خیر.

انتشار برنامه به صورت آلفا

قبل از انتشار مستقیم برنامه در کافه‌بازار یا پلی‌استور ابتدا برنامه را به صورت آلفا بین گروه کوچکی از دوستان، همکلاسی‌های دانشگاه و … منتشر کنید. اگر در شرکتی کار می‌کنید، برنامه را به همکاران خود بدهید تا یکی دو روزی با آن ور رفته و بازخوردشان را بیان کنند.

انتشار آلفا محدود به ۵ الی ۱۰ کاربر است. نه بیشتر، نه کمتر.

چرا؟ چون هر چقدر اعضای گروه کوچکتر باشد، بررسی و تمرکز روی بازخوردها آسان‌تر است. در واقع شما از اعضای گروه که معمولاً با آن‌ها صمیمی هستید درخواست می‌کنید چند روز با اپلیکیشن شما کار کنند و بازخوردهایشان را از طریق راه‌های ارتباطی با شما در میان بگذارند. این افزاد می‌توانند دربارۀ فیچرهای برنامه، میزان سهولت استفاده، تجربۀ کاربری، مشکلاتی که از چشم شما پنهان مانده و حتی ایده‌هایی که دارند به شما کمک کنند. انتشار آلفا کمک می‌کند تا احیاناً اگر باگی از چنگ تیم QA خارج شده اینجا بتوان گیرش انداخت. شاید قابلیت خاصی بر روی برخی از دستگاه‌های اندرویدی باعث کرش برنامه شود که انتشار آلفا می‌تواند تقش موثری در کشف این دسته از مشکلات بازی کند.

انتشار برنامه اندروید

اما شکار چنین باگ‌هایی کاری تکنیکی است. به همین دلیل استفاده از ابزار قدرتمندی مثل Instabug می‌تواند صرفه‌جویی زیادی در زمان به عمل آورد. اینستاباگ مورد اطمینان شرکت‌های بزرگی همچون پی‌پال، یاهو، ساندکلود، لیفت و … است. این ابزار، گزارش جامع و دقیقی از کرش‌هایی که در برنامه اتفاق می‌افتد جمع‌آوری کرده و در پنلی تحت وب به شما نشان می‌دهد. از این اطلاعات می‌توان برای شناسایی منشاء خطا و سلسله‌مراتبی که باعث بروز آن خطا شده استفاده کرد.

با یک ابزار خوب، سریعتر می‌توان باگ‌ها را یافت و اولویت‌بندیشان کرد. معمولاً تست آلفا نباید بیش از ۲ روز زمان ببرد. هرچقدر بازخوردها را بتوانید سریعتر بررسی کنید کارتان جلو می‌افتد. تولید نسخه آلفا کار بسیار آسانی است. در قسمت App Release از بخش Release Management در کنسول پلی‌استور می‌توانید کانال Alpha را ذیل Production و Beta پیدا کنید. شما می‌توانید کاربرانی که می‌توانند نسخۀ آلفا برنامه را تست کنند مدیریت کرده و تنها به آن‌ها اجازه نصب دهید.

بخوانید  آموزش زبان کاتلین – درس 27 (Object Declarations و Object Expression)

انتشار نسخۀ بتا

بعد از پشت‌سر نهادن فاز آلفا و رفع مشکلات موجود، زمان آن می‌رسد تا برنامه را بین گروه بزرگتری از کاربران منتشر کنید که همان تست بتای برنامه است. تست بتا هم دو نوع است: بتای باز (Open Beta Release)، بتای بسته (Closed Beta Release).

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

اما فارغ از نوع تست بتا، چیزی که در این فاز اهمیت بالایی دارد، نظارت دقیق و اعلان سریع و موثر بازخوردهاست که اینجا بازهم Instabug با ابزارهای خودکارسازی‌اش می‌تواند مفید واقع شود. شما می‌توانید از ابزار انعطاف‌پذیر و ارزشمند این سرویس برای جمع‌آوری فیدبک‌ها، باگ‌ها و کرش‌های مختلف مستقیماً از سوی کاربران استفاده کنید. واسط کاربری این ابزار زیبا و مطابق با UI اپلیکیشن شما خواهد بود. کاربرانتان به راحتی می‌توانند تصاویر خطا، یادداشت و دیگر جزئیات مشکلی که یافته‌اند را برایتان ارسال کنند.

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

برای انتشار نسخه بتا نیز از همان بخش قبلی که گفته شد، این بار گزینه Release to Beta را بزنید. جهت آشنایی با ترفندها و بهترین روش‌های تست بتا توصیه می‌کنم این مطلب را بخوانید.

تکنیک‌های حرفه‌ای برای تست آلفا/بتا

کانالی برای دریافت بازخورد تسترها

اطمینان یابید که تسترها روش مناسبی برای ارائۀ بازخوردهایشان داشته باشند.  ایمیل، تلگرام، فرم تماس با ما، فروم‌های اینترنتی، حتی تماس تلفنی می‌تواند به درد این کار بخورد ولی ارائۀ جزئیات خطا کاری فنی است و از عهدۀ همۀ کاربران برنمی‌آید. در واقع دانش و تجربۀ قبلی برای بازتولید باگ نیاز است که هر کسی ندارد. استفاده از ابزاری همچون Instabug می‌تواند چارۀ این مشکل باشد.

اهدای پاداش به تسترها

بهتر است به تسترها در قبال زحمتی که می‌کشند پاداش بدهید تا انگیزه برای کار بیشتر داشته باشند. جایزه لزوماً پول نیست. به عنوان مثال اگر برنامه پولی است می‌توانید نسخۀ رایگان آن را در اختیار افرادی که بیشترین تعداد باگ را گزارش داده‌اند قرار دهید. یا به همه تسترها یک ماه اشتراک رایگان بدهید. ساده‌ترین کار یک تشکر رسمی از کاربر (بخصوص با یک تماس تلفنی) است. وقتی کاربران بدانند نظراتشان برای شما اهمیت دارد به آن‌ها دلگرمی می‌دهد.

بخوانید  آموزش زبان کاتلین – درس 9 (when)

تدارک مکانیزمی مناسب برای ثبت و اولویت‌بندی باگ‌ها

معمولاً در فرایند تست بتا، بخصوص اگه جامعۀ کاربری بزرگ باشد، باگ‌های زیادی گزارش می‌شود که نیازمند ثبت و اولویت‌بندی است. برای این کار ابزارهای مختلفی همچون گیت‌هاب، جیرا، ترلو یا حتی داشبورد مدیریتی اینستاباگ وجود دارد.

برای کسب اطلاعات بیشتر از فرایند تست بتا به این لینک مراجعه کنید.

از کجا تستر پیدا کنیم؟

یافتن گروه مناسبی از کاربران برای تست برنامه از گام‌های ابتدایی و البته دشوار است. اما برای شروع می‌توانید از این مکان‌ها استفاده کنید:

XDA Developers: احتمالاً تنها فرومی که تا این حد کاربران آگاه و متخصص دربارۀ اندروید دارد XDA است. محل تولد بسیاری از کاستوم‌رام‌ها و ابزارهای تخصصی اندروید همینجاست. XDA کاربران فعالی دارد که می‌توانند بی‌رحمانه برای تست اپلیکیشن شما یاریتان کنند. استفاده از این کاربران قبل از انتشار برنامه منافع زیادی دارد.

Twitter: توییتر بیش از یک محیط سرگرمی، محیطی نخبگانی است. کاربران ارزشمندی دارد. بسیاری از توسعه‌دهندگان در این شبکه عضو هستند و فعالیت خوبی هم دارند. برای تست اپلیکیشن اندروید چه بهتر از توسعه‌دهندگان و علاقه‌مندانی که با نگاه تیزبینانه‌شان می‌توانند کوچکترین باگ‌های برنامه را گزارش دهند. با هشتگ‌های betatesting #betatesters #testmyapp #indiedev# نیز می‌توانید تسترهای زیادی را پیدا کنید.

Reddit: ساب‌ردیت‌های فعال و خوبی برای تست برنامه در این شبکه وجود دارد که می‌توانند بسیار کاربردی و مفید باشند. به عنوان مثال: r/TestMyApp/r/betatests/r/alphaandbetausersand /r/AndroidAppTesters/ .

Beta Family: این شبکه مختص تست بتای برنامه‌های اندرویدی ساخته شده است. اینجا شانس تست برنامه روی گوشی کاربران واقعی را خواهید داشت. این سایت و تعدادی دیگر از سایت‌ها که مخصوص تست برنامه اندروید ساخته شده‌اند معمولاً در قبال این کار، مبلغی هم به کاربران می‌دهند که مشوق آن‌هاست. خیلی از کاربران نیز به طمع آزمایش زودهنگام محصول قبل از انتشار برنامه دوست دارند آن را بچشند.

Betalist: این هم سایت معروفی دیگری است که جدیدترین استارت‌آپ‌ها، محصولات و رویدادهای پیش‌رو را به کاربران علاقه‌مند معرفی می‌کند. می‌توانید یک سایت تک صفحه‌ای زیبا با توضیحات مناسب (ترجیحاً ویدیو) بسازید و در این سایت معرفی‌اش کنید. ضمن اینکه از کاربران بخواهید برای تست برنامه عضو کامیونیتی شما شوند. بسیاری از استارت‌آپ‌ها حضور فعالی در Betalist دارند که خود نشان از ضریب نفوذ آن دارد.

Erlic Bird: این سایت نیز مثل BetaFamily، پلی بین کاربران واقعی و شما است که درواقع جامعۀ بزرگی از افراد را گرد آورده است که برای تست اپ‌های اندرویدی، iOS، برنامه‌های دسکتاپ و تحت‌وب می‌توان از آن‌ها کمک گرفت. تست برنامه روی طیف وسیعی از دستگاه‌ها با مشخصات سخت‌افزاری و نرم‌افزاری مختلف صورت می‌گیرد و بازخوردها نیز با سرعت بالا و در محیطی مناسب به دست شما می‌رسد.

Hacker News: این سایت نیز مهد گیک‌های تکنولوژی است که علاقه‌مند به تست محصولات جدید هستند. با حفظ قوانین ShowHN، می‌توانید برنامه خود را به این شبکه معرفی کنید.

انتشار برنامه به صورت درصدی (Staged Rollout)

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

ممکن است باگ‌های پنهانی در گوشه‌وکنار برنامه پنهان شده باشند که از تست آلفا و بتا قِسِر در رفته باشند و بعد از انتشار عمومی برنامه نمایان شوند!

تنوع دستگاه‌های اندرویدی و شرایط غیرقابل پیش‌بینی آنقدر زیاد است که بروز باگ‌های جدید در انتشار عمومی برنامه بعید نیست. گوگل برای حل این مشکل و حفظ پایداری برنامه قابلیتی را در پنل توسعه‌دهندگان پلی‌استور تعبیه کرده تحت عنوان : Staged Rollout. البته این قابلیت برای ارائۀ بروزرسانی‌های برنامه کاربرد دارد و برای اولین باری که APK برنامه را عرضه می‌کنید امکان استفاده از آن نیست. طرزکارش اینطور است که در هنگام عرضۀ بروزرسانی‌های جدید می‌توانید از گوگل بخواهید که جمعیت کاربرانی که آپدیت را دریافت می‌کنند به مرور زمان افزایش دهد. مثلا ابتدا ۵ درصد کاربران، سپس بعد از اطمینان از پایداری برنامه برای این دسته، جمعیت را به ۲۵ درصد افزایش داده، سپس ۵۰، ۷۵ و نهایتاً همۀ کاربران که اصطلاحاً Full Rollout نام دارد. (کمترین درصد کاربران از ۰٫۵% شروع می‌شود ضمن اینکه این مقادیر را به صورت دستی هم می‌توانید وارد کنید.)

بخوانید  آموزش زبان کاتلین – درس 30 (سربارگذاری عملگرها)

هدف از این کار ارائۀ بروزرسانی‌های برنامه در محیطی کنترل شده است. قطعاً پیگیری باگ‌ریپورت‌های ۵ درصد کاربران آسان‌تر از ۱۰۰% درصد آنهاست. سیاست انتشار درصدی برای حفظ کاربران نیز مفید است. اینکه باگی آزاردهنده را در یک جامعۀ کاربری کوچک کشف کنید بهتر از آن است که برنامه را ۱۰۰% منتشر کنید و با یک باگ غیرمنتظره، بخش عمدۀ کاربران را از دست دهید؛ کاربران کم‌طاقتی که بعید نیست حتی پس از حل مشکل سراغی از شما نگیرند!

همانطور که در فازهای تست هم اشاره کردم، استفاده از ابزارهای ثبت باگ برای پیگیری و رفع این مشکلات ضروری است. Instabug علاوه بر لاگ نمودن باگ‌های گزارش شده امکان ردیابی مراحل بروز باگ را هم دارد؛ به این صورت که نشان می‌دهد کاربر چه کارهای انجام داده که باعث بروز باگ شده است. تا زمانی که نتوان باگی را بازتولید نمود، نمی‌توان اقدام به تعمیرش کرد. این قابلیت فوق‌العاده ارزشمند بوده و بار سنگینی را از دوش شما برمی‌دارد.

انتشار برنامه به صورت کامل  (Full Rollout)

وقتی اپلیکیشن شما برای ۲۵% کاربران بدون هیچ مشکل بزرگی کار کند، اطمینان کافی برای انتشار برنامه به صورت کامل وجود دارد. بعد از Full Rollout، فرایند انتشار برنامه یا Release Process به پایان می‌رسد. بعید است بعد از طی کردن درست این مراحل هنوز باگ و مشکل بزرگی در برنامه باقی مانده باشد. استثناء همیشه هست ولی بالاخره استثناء است و درصد بروزش اندک است. وقتی کاری به صورت اصولی و درست و به کمک ابزارهای مناسب انجام شود دردسرهای کمی برایتان به وجود می‌آید. همانطور که خواندید حتی انتشار برنامه هم استراتژی می‌خواهد. به جای کمیت روی کیفیت تمرکز کنید. امیدوارم این مقاله مجابتان کند تا برنامه را به شیوۀ هردنبیل و بِزَن‌دررویی منتشر نکنید و محصولی شایستۀ کاربران به آن‌ها عرضه کنید.

مطلبی که خواندید با اندکی تلخیص و تصرف، ترجمۀ مقالۀ Releasing Android Apps Like A Pro (انتشار برنامه اندروید مثل یک حرفه‌ای) است.

سید ایوب کوکبی

نویسنده و مترجم...

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *