جریان کار، نه آلبوم صفحه
ثبتنام، کار اصلی کاربر، و حالت خالی یا خطا را مینویسم. صفحهای که فقط در دموی شاد کار کند و با دادهٔ واقعی بشکند، تحویل حساب نمیشود.
ساخت اپلیکیشن دو جور سفارش میشود. یکی بروشور است: چند صفحهٔ قشنگ که محصول را نشان بدهد. یکی نرمافزاری است که مشتری، کارمند یا خودت هر روز داخلش کار میکنی. من دومی را میسازم، و اگر اولی کافی باشد همان اول میگویم که اپ نساز.
استک پیشفرض من React، Next.js و Node.js است. اگر به اپ فروشگاه برسیم، باز هم بکاند و API را با همین دست مینویسم. صفحهٔ تنها، بدون داده و بدون حساب کاربری، اپ نیست.
مهدی رضاییام. فولاستک، دوازده سال، ساکن ایروان. فارسی و انگلیسی هر دو را کار میکنم. تیم موبایل و دفتر تهران ندارم. خودم محدوده را مینویسم و خودم کد را تحویل میدهم.
این صفحه برای کسی است که یک جریان کار واقعی دارد: ثبتنام، نقش کاربر، داده، و کاری که اگر اپ پایین باشد کسبوکار میلنگد. اگر فقط میخواهی خدماتت دیده شود، اغلب یک سایت واکنشگرا کافی است و نباید هزینهٔ اپ را بدهی.
محدوده را کتبی مینویسیم، بعد عدد.
قبل از ابزار، شکل محصول را انتخاب میکنیم. این جدول جایگزین مشاورهٔ فروش نیست. همان چیزی است که سر محدوده با هم خط میزنیم.
| شکل | کی مناسب است | کی بس است یا نرو |
|---|---|---|
| سایت واکنشگرا | معرفی، محتوا، فرم، و کاربری که هفتهای یک بار از مرورگر سر میزند. | وقتی کار روزانه با حساب کاربری، نقش و دادهٔ زنده است. اینجا سایت معرفی کم میآورد. |
| PWA | میخواهی روی صفحهٔ گوشی بنشیند، بدون صف فروشگاه، و همان وباپ را بهروز کنی. | وقتی به قابلیت عمیق دستگاه، پوش جدی، یا حضور داخل استور وابستهای. |
| کراسپلتفرم | یک محصول برای iOS و اندروید، با تیمی که نمیخواهد دو کدبیس جدا را تنها نگه دارد. | وقتی عملکرد بومی یا یک قابلیت خاص دستگاه، خود محصول است نه یک افزونه. |
| نیتیو | فروشگاه و API دستگاه بخش اصلی کارند و بودجهٔ نگهداری دو پلتفرم را دیدی. | وقتی هنوز مخاطب و جریان کار مشخص نیست. نیتیو راه گران فهمیدن است. |
بکاند، پنل و API در هر ردیفی که حساب و داده دارد جزو برآورد است. چند صفحه بدون اینها را بهعنوان اپ قیمت نمیکنم. کافهبازار، مایکت، گوگلپلی و اپاستور ردیف جداست.
صفحهٔ قشنگ تنها تحویل نیست. اگر محصول حساب و داده دارد، اینها را همان اول نام میبرم تا آخر کار غافلگیر نشوی.
ثبتنام، کار اصلی کاربر، و حالت خالی یا خطا را مینویسم. صفحهای که فقط در دموی شاد کار کند و با دادهٔ واقعی بشکند، تحویل حساب نمیشود.
داده، احراز هویت و رابط برنامهنویسی با Node.js بخشی از خود محصول است. اگر کسی فقط «صفحات را بزند» و API را به بعد موکول کند، نصف اپ ساخته نشده.
همان کارهایی که خودت یا همکارت باید بدون من انجام بدهید: دیدن کاربر، اصلاح یک رکورد، بستن یک دسترسی. پنل را به اندازهٔ همین کارها میسازم، نه یک داشبورد تزئینی با نمودار بیمصرف.
بسته به ردیفی که انتخاب کردیم: وباپ بالا، PWA قابل افزودن به صفحهٔ گوشی، یا بستهٔ تست برای دستگاه. این با «منتشر شد در استور» یکی نیست.
سورس در گیتهاب من با دسترسی تو، یا در سازمان خودت. اگر امضا و استور در محدوده باشد، کلید امضا و حساب کافهبازار، مایکت، گوگلپلی یا اپاستور به نام تو ساخته میشود. من مالک حسابت نمیمانم.
اپ از سایت معرفی کندتر است، چون داده و نقش کاربر جای آزمون و خطا ندارد. بازهها را گسترده میگویم تا مجبور نشوم وسط کار با عجله چیزی را قیچی کنم.
حدود یک هفته
چه کسی وارد میشود، چه کاری را باید تمام کند، و اگر اپ نباشد امروز آن کار را کجا میکند. اگر از این گفتگو معلوم شود سایت کافی است، همان را پیشنهاد میکنم.
چند روز
سایت، PWA، کراسپلتفرم یا نیتیو را کتبی انتخاب میکنیم، با دلیل. عوض کردن این تصمیم وسط ساخت، پروژهٔ تازه است.
چند روز تا یک هفته
موجودیتها، نقشها، و کارهایی که پنل باید بتواند. استور را همینجا یا داخل یا بیرون مینویسم تا کسی فکر نکند دکمهٔ انتشار رایگان به ساخت چسبیده است.
اغلب یک تا سه ماه
جریان اصلی، API و پنل حداقلی با هم جلو میروند. ابزار داخلی کوچک به یک ماه نزدیکتر است. محصول دو پلتفرمه اغلب به سه ماه میرسد. هر یکی دو هفته نسخهٔ قابل دست زدن داری.
جدا از ساخت، اغلب چند هفته رفتوبرگشت
اگر انتشار خواسته باشی، حساب و کلید به نام تو است و بسته را برای بررسی میفرستیم. ممکن است رد شود، ناقص باشد، یا سیاست فروشگاه عوض شده باشد. زمان بررسی دست فروشگاه است. من قول تأیید نمیدهم.
حدود یک تا دو هفته
دسترسی کد، نحوهٔ بالا آوردن محیط، و فهرست اشکالهایی که به همین نسخه مربوط است. قابلیت تازه داخل این بازه نیست.
کیس استودیویی با اسم مشتری نمیسازم. Infinite Monitor اپ دسکتاپ متنباز خودم است، برای مک و ویندوز و لینوکس، و صفحهٔ عمومیاش روی گیتهاب من است. npMax و FreezeRadar را هم خودم با React و Next.js ساختهام. نقش من سازندهٔ این محصولهاست، نه نمونهکار یک قرارداد پنهان.
ابزار مشخص با بکاند جمعوجور اغلب یک تا سه ماه بعد از قبول محدوده است. دو فروشگاه و پنل شلوغ کار را بلندتر میکند. تاریخ را بعد از انتخاب شکل محصول مینویسم.
مال تو. سورس در سازمان خودت یا در گیتهاب من با دسترسی تو است. کلید امضا و حساب استور، اگر در کار باشد، به نام تو باز میشود.
محدوده کتبی است و نسخه را روی یک نشانی یا بستهٔ تست میبینی. فارسی حرف میزنیم. لازم نیست به ایروان یا تهران بیایی.
بازهٔ کوتاه رفع اشکال همان نسخه داخل محدوده است. سیستمعامل، فروشگاه و کتابخانهها بعداً میشکنند. آن نگهداری، پشتیبانی جداست. قابلیت جدید هم الحاقیه است، نه بخشی از جملهٔ «اپ تمام شد».
نه. نه کافهبازار، نه مایکت، نه گوگلپلی و نه اپاستور. من بسته را تمیز و مطابق چیزی که خودشان نوشتهاند میفرستم. قبول یا ردش تصمیم آنهاست. اگر کسی تأیید را تضمین کند، دارد چیزی را میفروشد که مال او نیست.
از شکل محصول، از اندازهٔ بکاند و پنل، و از اینکه استور داخل محدوده هست یا نه. محدوده را کتبی مینویسیم، بعد عدد.
در فرم صفحهٔ اصلی بنویس کاربر کیست، چه کاری را باید تمام کند، و سایت داری یا نه. لازم نیست فهرست صفحه بفرستی. اگر از همان چند خط معلوم شود اپ اضافه است، همان را میگویم.
محدوده را کتبی مینویسیم، بعد عدد.
فرستادن بریف کوتاهسایت معرفی، سئو و نگهداری را داخل ساخت اپ پنهان نمیکنم. اگر به یکی از اینها رسیدی، صفحهٔ خودش را بخوان تا محدوده قاطی نشود.