ماجرای آپدیتِ جدیدِ یک اپِ قدیمی (هدهد) (بخش اول)

سلام تو این نوشته (یا احتمالا مجموعه نوشته ها) میخوام که مراحل بازپروری و بروزرسانی یک اپلیکیشن پیام رسان پیامکی (هدهد) رو بعد از چندین سال رهاشدگی با هم جلو ببریم.سعی می کنم که به صورت گاه نویس باشه تا از تجربیات تلخ و شیرین اون اینجا بگم که امیدوارم بتونه تجربه خوبی برای دیگر دوستان باشه. همچنین به ساده ترین شکل مناسب بنویسم که هم قابل فهم و هم وقت کمتری رو از من و شما بگیره که بتونم جزییات بیشتری رو پوشش بدم (اگه احیانا ایراد نگارشی ای هم دیدین (بخصوص نیم فاصله یا ه) به بزرگی خودتون ببخشید ???مقدمهاول یکم در مورد این اپ بگم برای کسایی که نمی دونن. این اپ در سال ۹۴ توسط یه تیم متشکل از بچه های فارغ التحصیل دانشگاه کاشان و شریف ایجاد شد و بعدا توسط من و هادی (به عنوان فاندرها) ادامه پیدا کرد. تونست تو کمتر از دو ماه بیش از ۱۰۰ هزار کاربر جذب کنه و کلی عناوین بهترین اپ سال رو تونست کسب کنه و جلو بره. در ادامه ما سعی کردیم قابلیت های بیشتری رو اضافه کنیم و تونستیم سرمایه کوچیکی رو از ۴ سرمایه گذار جذب کنیم. اما متاسفانه به دلایلی که از این نوشته خارج هست سال ۹۷ مجبور شدیم توسعه اون رو متوقف کنیم و تیم و شرکت رو منحل کردیم. اما اپلیکیشن با بیش از ۱۰۰ هزار کاربر به حیات خودش و بدون پشتیبانی ادامه داد.حدود یک سال و خورده ای بعد از اون اتفاق کاربران خیلی زیادی اظهار لطف داشتند و خواستن که ما هدهد رو بروزرسانی کنیم، منتها ما دیگه به دلایل مشغله های شخصی دیگه نمی تونستیم وقتی بذاریم. ولی سعی کردیم که یه بروزرسانی خیلی خوب که خیلی از ایرادات رو رفع کنه و برای عزیزان نابینا هم مناسب سازی بشه بدیم. خیلی از کتابخانه هایی که استفاده کرده بودیم از رده خارج شده بودن و سیستم اندروید مخصوصا بخش نوتیفیکیشن (از اندروید ۸.۰) با اومدن قابلیت چنل به کلی تغییر کرده بود.به کمک کاربرا بعد از یه مدت تونستیم همه ایرادارو رفع کنیم و اپدیت خیلی خوبی منتشر شد. بعد از اون هم سعی کردم یه سری ایرادات خیلی قدیمی رو رفع کنم. ولی درست وسط تغییر سیستم ارسال و دریافت پیامک هدهد به دلایلی که باز اینجا خیلی جاش نیست کار روش رو متوقف کردم و متاسفانه از اخرین نسخه ای که تو بازار هم بود گیت اسنپشات مناسبی هم نداشتم. برا همین به خاطر اینکه کاملا از موضوع خارج شده بودم دیگه تا به امروز نتونستم برگردم بهش (چون به شدت تو جای پیچیده ای رها شده بود و هیچ وقت تمرکز مناسبی برای انجام اون رو پیدا نکردم). از طرفی هم بیزینس های کوچیک کوچیکی رو هم داشتم که باعث می شد هدهد همیشه اولویت چندم من تعریف بشه. تو این مدت کاربرای زیادی گاها با خواهش ازمون میخواستن که اپدیتی بدیم و بابتش حاضر هستند پول هم بدن (که این مورد واقعا باعث شرمندگیم بود همیشه) چون مدت زیادی هست که از این اپ استفاده می کنند و کاملا به اون عادت کردند.این وسط ایراداتی هم در طی اپدیت های اندروید برای اپ به وجود اومده بود که عملا باعث شده بود بخشی از کاربران هنگام کار با اپ دچار مشکل بشن و متاسفانه تعداد زیادی از کاربرا بابتش مجبور شدن که استفاده از هدهد رو کنار بذارن.امروز بعد مدت ۲.۵ سال از اخرین اپدیت بالاخره فراغت پیدا کردم که کار روش رو آغاز کنم.با این مقدمه ایشالا با هم این فرایند رو بررسی می کنیم.اولین قدمخوب می دونستم که وقتی بخوام شروع کنم حس ورود به یه کارگاه متروکه‌ی خاک گرفته و پر از تار عنکبوت با دستگاه های قدیمی رو دارم. یه همچین عکسی (این عکس با استفاده از موتور متن به عکس Stable Diffusion ایجاد شده)ایجاد شده توسط Stable Diffusionقبل از اینکه پروژه رو باز کنم تصمیم گرفتم که لیست کارهایی که به ذهنم می رسه که باید برای اولین اپدیت انجام بشه رو بنویسم. این لیست رو می تونین ببینین (احتمال زیاد به این لیست اضافه خواهد شد)لیست کارهای مورد نیاز برای اپدیت جدید هدهدبهترین کاری که همیشه من برای شروع یه پروژه سنگین و سخت یا پروژه ای که خیلی وقتی پیش سراغش اومدم اینه که همیشه از آسون ترین کار شروع می کنم. برا همین از انجام کارهای خیلی ساده ای شروع می کنم که داخل موضوع وارد بشم و کم کم به بخش های مختلف میرم. مثلا تو این مورد خاص اولین تسکم اینه که اپ اجرا بشه و این باعث میشه کم کم بتونم وارد بشم.البته که گاهی این آسونترین کار میشه سخت ترین. نمونه اش الان! یه سری از کتابخانه ها بالکل دیگه نیستند و قابل استفاده نیستن مثلا متاسفانه امروز هیچ اثری از سرویس cheshmak.me نیس و من مجبور هستم همه کد های مربوط بهش رو پاک کنم.کار وقتی وحشتناک تر میشه که شما پروژه رو وسط بیلد ارور ول کرده باشی ??‍♂️در حال حاضر دارم اروری رو می بینم که هیچ ایده ای ندارم که چیه و دقیقا کجای برنامه اس.اولین اروری که موقع بیلد دیدماین وسط هنوز ایرادت دیگه ای هم هست که خودشونو نشون ندادن. مثلا یکی از کلاسام نزدیک به ۸۰ تا ارور داره ? ? یکی از کلاسام ۸۰ تا ارور داره تو اولین بیلدم نکته دیگه اینکه هنوز ارورهای مربوط به پاک کردن cheshmak رو هم نشون نداده. چندین بار تو این مدت فرمت گریدل عوض شده و بعضی از کتابخانه ها از نسخه های خیلی قدیمی استفاده می کنن که ممکنه دیگه وجود نداشته باشن.اینم بگم که قطعا می دونین که امروز دیگه jcenter هم وجود خارجی نداره و یه سری کتابخانه های قدیمیم از این سرور دیتاهاشون رو می گیرن که باید ببینم اونارو هم چیکار باید بکنم. (البته نگاه کردم ظاهرا نسخه های قدیمی کتابخانه ها همچنان روش هستند. چون با حذفش ارور گرفتم ولی وقتی دوباره اضافه کردم دیدم تونست کتابخونه قدیمی هارو بگیره)حالا با این اوصاف به نظرتون آیا می تونم این اپدیت رو به سرانجام برسونم؟با من همراه باشید :)ادامه دارد...