از داستان و تاریخچهی موبایل بگذریم. همه میدانیم که امروزه موبایلها نه تنها به عنوان یک وسیلهی ارتباطی، بلکه به عنوان یک منشی هوشمند کارهای افراد را ساماندهی میکنند و در بسیاری امور به آنها کمک می نمایند. دستگاههای همراه امروزه نحوهی گوش فرا دادن به موسیقی، تماشای فیلم، خواندن کتاب، گشت و گذار در اینترنت، و بسیاری امور دیگر را تغییر دادهاند.
با به وجود آمدن گوشیهای هوشمند و به طور خاص تلفن همراه شرکت اپل با نام آیفون، مفهوم جدیدی به دنیای نرمافزارها و بازیها به نام اپ (App) وارد شد. ایدههای بسیاری پرورش یافته و در نهایت منجر به تولید نرمافزارهای کاربردی و سرگرمی بسیاری از سوی تولیدکنندگان گردید. در این مقاله میخواهیم فرآیند صفر تا صد تولید یک اپ، یا به عبارتی از شروع پروژه تا زمانی که نرم افزار تکمیل شده و بر روی گوشی شما نصب میشود را مورد بررسی قرار دهیم.
تولید هر نرمافزار به طور کلی شامل مراحلی همچون ایده یا صورت مساله، طراحی، پیادهسازی و تست است. تولید نرمافزارهای موبایل از جهاتی شبیه به و از جهاتی دیگر متفاوت از نرمافزارهای عادی است. در این نوشتار سعی داریم تا مراحل مختلف تولید یک نرمافزار را مورد بررسی قرار دهیم.
ایده
شاید عجیب باشد که در این مراحل، یک فصل جدا به ایده اختصاص میدهیم اما ایده و پخته شدن آن، نقش بسزایی در تولید و موفقیت یک نرمافزار دارد. قطعا تولید هر نرمافزار با جرقه ی یک ایده شروع می شود اما بسیاری از ایدهها با مشکلاتی همراه هستند که آنها را غیر قابل ساخت و یا بی فایده می کند. به همین جهت بهترین کار برای آنکه یک ایده از حالت خام درآید، مطرح نمودن صورت مساله و ایده در یک جمع و تقاضای انتقاد است. ایدهای که از جلسات انتقاد بیرون میآید، به میزانی که فعالیت فکری بر روی آن انجام میشود؛ پختهتر و دارای اشکالات کمتری خواهد بود.
ممکن است در برخی موارد اشکالاتی بر میزان عملی بودن ایده گرفته شود که بسیاری اوقات نیازمند تحقیق و بررسی بیشتر است. به عنوان مثال اگر بخواهیم نرمافزاری برای ردیابی کودک و پیدا کردن وی تولید نماییم، ممکن است با این اشکال مواجه شویم که آیا امکان دریافت موقعیت جغرافیایی به صورت مکرر توسط برنامهی ما وجود دارد یا خیر؟! جواب به این مساله نیازمند یک تحقیق اولیه قبل از طراحی و پیاده سازی برنامه است. این عمل در اکثر پروژههای نرم افزاری که با تکنولوژیهای جدید سر و کار دارند، رواج داشته و Spike Test نامیده میشود. آزمایش Spike به معنی تولید یک برنامهی کوچک آزمایشی برای پاسخ به یک سوال بنیادی در ایده است که در مثال ما ایجاد یک برنامهی کوچک برای دریافت موقعیت به صورت مکرر خواهد بود.
طراحی
همانگونه که برای ساخت یک ساختمان نیاز به طرح و نقشهی از پیش نوشته شده داریم، قبل از ساخت محصول به صورت عملی نیز یک مرحله طراحی و توصیف نیاز خواهد بود تا ویژگیها و مشخصات و ارتباط اجزای مختلف آن به طور واضح مستند گردد. شروع ساخت نرم افزار بدون انجام مرحلهی طراحی، همانند ساختن ساختمان بدون نقشه است. یکی دیگر از مواردی که در مرحلهی طراحی مورد بررسی قرار گرفته و توصیف میشود، واسط کاربری برنامه است. در این مرحله واسط کاربری برنامه توسط متخصصان این حوزه و به صورت تصاویری دست ساز و یا به کمک برنامههایی طراحی شده و روندی که کاربر نهایی استفاده خواهد نمود و این موضوع که هر اطلاعی در کجا نمایش داده شود مشخص میگردد. در مورد برنامههای موبایل، این حقیقت که صفحهی نمایش کوچک است، اهمیت مسالهی طراحی واسط کاربری و نحوهی نمایش اطلاعات در یک فضای اندک را دو چندان مینماید.
ممکن است مرحلهی طراحی برای پروژههای کوچک (برنامه هایی که یک تا سه صفحه دارند) انجام نشود، اما عدم وجود طرح اولیه برای برنامههای بزرگتر، مشکلات فراوانی برای برنامهنویس و کاربر نهایی نرمافزار ایجاد خواهد نمود. در انتهای مرحلهی طراحی، علاوه بر یک نوشته (سند) که ارتباط و اجزای سیستم را توصیف میکند، نمودارهایی مانند نمودار اجزا و واسط گرافیکی تولید میشود که تعدادی از آنها را در تصاویر زیر مشاهده میکنید:
پس از نهایی شدن طرح اولیهی واسط گرافیکی، یک گرافیست اقدام به طراحی اجزای تصویری مورد نیاز برای ایجاد چنین طرحی میکند. به عنوان مثال، طرح پنجرهها، لیستها، تصویر پسزمینه و دکمههای نرم افزار از مواردی است که برای یک اپ تولید شده و میبایست هماهنگی و هارمونی مورد نیاز را با یکدیگر داشته باشند. تصویرهای تولید شده در مرحلهی بعد توسط برنامهنویسان مورد استفاده قرار میگیرد تا محصول نهایی را از روی طرح و تصاویر گرافیست بسازند.
پیادهسازی
پیادهسازی نرم افزار که عموم مردم به آن برنامه نویسی می گویند، همانند ساختن آجر به آجر ساختمانی است که نقشه و طرح آن در مرحلهی قبل آماده شده است. هر برنامهی موبایل عموما دارای دو بخش اصلی واسط گرافیکی (User Interface) و بخش پسین (Back-End) است. هریک از این بخشها به صورت جداگانه نیازمند پیادهسازی براساس طرح بوده و در نهایت بخشهای مختلف به یکدیگر متصل می شوند تا برنامهی نهایی تولید شده و کار کند.
تولید واسط گرافیکی نیاز به دو مرحله دارد. در مرحله اول برنامه نویس، طرح دریافت شده از مرحله طراحی را به صورت بصری توسط ابزاری به نام Interface Builder می سازد. تصویر بالا یک نمونه طراحی انجام شده برای برنامه «شعرهای پارسی» را در محیط Interface Builder نمایش میدهد. این ابزار در آخرین نسخه ها، جزوی از محیط توسعه Xcode گردیده است. انجام این مرحله مانند تولید یک جسم است که هنوز هیچ حرکت و فعالیتی ندارد و هنوز روحی در آن دمیده نشده است. در مرحله دوم، برنامه نویس اقدام به تعریف نمودن رفتار تمامی اجزا موجود در واسط گرافیکی طراحی شده میکند. این کار توسط زبان برنامه نویسی Objective-C انجام میشود.
در انتها میبایست تمامی کدهای نوشته شده برای عملکرد واسط گرافیکی با واسط گرافیکی طراحی شده در Interface Builder یکپارچه شوند. همچنین این بخش میبایست به بخش پسین نرم افزار (Backend) که عملکرد اصلی محاسبات و ذخیره سازی و دریافت اطلاعات را انجام میدهد، متصل شود تا برنامه حیات خود را آغاز نماید. بدین صورت هنگامی که کاربر برنامه را باز میکند، واسط گرافیکی طراحی شده در Interface Builder نمایش داده میشود، اگر کاربر یکی از عناصر این برنامه را لمس کند، کد نوشته شده به زبان Objective-C این لمس را احساس و از بخش پسین برنامه کمک میگیرد تا عملی که کاربر درخواست نموده است را انجام دهد.
تست و انتشار
در فرآیند تولید نرم افزار، برنامه نویس میتواند آن را توسط نرم افزار شبیهسازی که از طرف شرکت اپل ارایه شده است، تست نماید. این نرم افزار یک دستگاه آیفون مجازی بر روی صفحه نمایش میدهد که برنامهی تولید شده در آن اجرا میشود. اجرای برنامه در شبیهساز، کمک میکند تا اشکالات اولیه توسط برنامه نویس تشخیص داده شوند. در مراحل انتهایی تولید، از آنجا که شبیهساز با دستگاه واقعی تفاوتهایی دارد، برنامه میبایست بر روی دستگاههای مختلف از جمله نسلهای مختلف آیفون، آیپاد، و آیپد تست شود تا اشکالات احتمالی هنگام اجرای واقعی بر روی دستگاه تشخیص داده شده و رفع گردند.
برنامه پس از تست نهایی بر روی دستگاه، به گروه تست کننده یا مشتریان به عنوان یک محصول بتا داده میشود تا اشکالات دیگری که دیده نشده اند، یافت شده و رفع گردند. پس از رفع اشکالات نهایی، برنامه برای انتشار بستهبندی شده و به یک توزیع کننده مانند بازار اپل استور یا سیبچه ارسال میگردد تا به دست کاربران نهایی برسد.
من همیشه برام سوال بود که چقدر وقت می زارن چجوریه. چند نفرن و این آ.
که تو این مطلب شما به بیشتر سوال هام جواب داده شده.
ممنون که وقت گذاشتین و با دقت نوشتید.
خیلی خیلی لطف کردید.
همیشه خندون باشید.
عالی بود دوستان سیبچه اطلاعات خوبی بود .
مفيد بود و خوانًدني. ممنون