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

 این مطلب یکی از مجموعه مقالات پرونده ویژه «نرم‌افزارهای متن‌باز» شماره 196 ماهنامه شبکه است. علاقه‌مندان می‌توانند کل این پرونده ویژه را از روی سایت شبکه دانلود کنند.


زمانی که مارتین کوپر و جان اف میچل از شرکت موتورلا اولین گوشی موبایل را در سال 1973 عرضه کردند، هیچ‌گاه تصور نمی‌کردند که اختراع آن‌ها روزی به یکی از حیاتی‌ترین بخش‌های زندگی مردم تبدیل شود. همان ‌گونه که ما از شبکه‌های موبایلی نسل سوم به نسل چهارم و در حال حاضر به نسل پنجم در حال مهاجرت هستیم، گوشی‌های همراه ما نیز به همان نسبت باهوش و باهوش‌تر شدند. اما چه عاملی باعث شده است گوشی‌ها تا این اندازه هوشمند شوند؟ همه معتقدیم طیف گسترده‌ای از برنامه‌های کاربردی نصب شده روی گوشی‌های همراه اعتبار خاصی به آن‌ها بخشیده‌اند. گزارشی که به‌تازگی از سوی سازمان Statista منتشر شده است نشان می‌دهد که تا مارس 2017 کاربران سکوی اندروید به چیزی حدود 2.8 میلیون برنامه کاربردی از طریق فروشگاه گوگل‌پلی دسترسی داشتند. کاربران سکوی iOS نیز به چیزی بیش از 2.2 میلیون برنامه کاربردی در فروشگاه اپل‌ استور دسترسی داشتند. واقعیت این است که هرچه به‌سمت آینده در حال حرکت هستیم، وابستگی ما به برنامه‌های کاربردی که روی گوشی‌های هوشمندمان نصب شده است بیشتر می‌شود. برنامه‌هایی که قادرند طیف گسترده‌ای از کارها که در گذشته انجام آن‌ها نیازمند صرف وقت بسیاری بود را به‌سادگی انجام دهند. حماسه توسعه برنامه‌های کاربردی دستگاه‌های همراه از سال 1988 و همراه با Snake آغاز شد. اولین برنامه موبایلی که به‌عنوان یک بازی استاندارد برای گوشی‌های همراه نوکیا عرضه شد. از آن زمان تا به امروز شاهد پیشرفت عظیمی در این صنعت بوده‌ایم. اگر نگاهی به اطراف خود داشته باشید مشاهده می‌کنید که اکثر برنامه‌های وب اکنون به‌سمت نسخه‌های موبایلی در حال عزیمت هستند، به‌واسطه آنکه هر روزه بر تعداد کاربرانی که از گوشی‌های هوشمند خود برای انجام کارهای شخصی و تجاری استفاده می‌کنند، افزوده شده است. امروزه مردم از گوشی‌های هوشمند خود به‌شکل دوستانه‌تری استفاده و جالب‌تر آنکه تعدادی از آن‌ها گوشی‌های هوشمند خود را با لپ‌تاپ یا دسکتاپ خانگی مقایسه می‌کنند. یک برنامه موبایلی به طراحان اجازه می‌دهد تا قدرت محصول نرم‌افزاری که طراحی کرده‌اند را به ‌طور مستقیم در دستان کاربران قرار دهند. همین موضوع باعث شده است تا بازار شاهد یک افزایش و جهش ناگهانی در زمینه توسعه برنامه‌های کاربردی مختلفی باشد که برای گوشی‌های هوشمند عرضه می‌شوند. گوگل همراه با فروشگاه گوگل‌پلی در اکتبر 2008 کار خود را آغاز کرد. گزارشی که به‌تازگی از فعالیت این فروشگاه منتشر شده است نشان می‌‌دهد که روزانه 493 میلیون دانلود از طریق این فروشگاه انجام می‌شود. 

مطلب پیشنهادی

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

توسعه برنامه‌های موبایل برای سیستم‌ عامل‌های مختلف

توسعه‌های برنامه‌های کاربری برای گوشی‌های هوشمند مستلزم بررسی ویژگی‌ها و محدودیت‌های دستگاه‌هایی است که به‌دنبال ساخت برنامه‌های کاربردی برای آن‌ها هستید. برای این منظور باید مجموعه گسترده‌ای از ویژگی‌های گوشی‌های هوشمند همچون صفحه ‌نمایش، مشخصات سخت‌افزاری، تنظیمات تلفن همراه، سکو یا سیستم ‌عاملی که از سوی دستگاه‌ همراه به کار گرفته می‌شود، مورد بررسی قرار گیرد. به‌دلیل اینکه سیستم‌ عامل‌ها از پایه با یکدیگر متفاوت هستند، در نتیجه ممکن است توسعه یک برنامه‌ کاربردی با ویژگی‌های مشخص برای iOS فرآیند ساده‌ای باشد، اما توسعه همان برنامه برای اندروید کار مشکلی باشد. (شکل 1)


شکل 1- طبقه‌بندی برنامه‌های کاربردی موبایل

توسعه‌ برنامه‌های کاربردی برای اندروید

از سال 2016 تا به امروز، اندروید به یکی از بزرگ‌ترین سیستم ‌عامل‌های دستگاه‌های همراه تبدیل شده است. به همین دلیل حجم بسیار بالایی از برنامه‌های کاربردی برای این سیستم ‌عامل ساخته شده است. (شکل 2) سیستم‌ عامل اندروید از کرنل لینوکس همراه با API سطح بالایی استفاده می‌کند که با زبان سی نوشته شده‌اند. برنامه‌های مختلفی که روی این سیستم ‌عامل اجرا می‌شوند به‌ طور معمول به زبان جاوا نوشته می‌شوند، در ادامه از طریق ماشین مجازی Dalvik اجرا می‌شوند که از یک فرآیند کامپایل Just-in-time برای تبدیل جاوا بایت‌کد به Dalvik dex-code استفاده می‌کند. در این بین، ویژگی‌های امنیتی نیز به برنامه‌ها افزوده می‌شود که از آن جمله به مدیریت مؤثر حافظه، شناسه‌های کاربری یونیکس (UIDs) و تخصیص مجوز فایلی می‌توان اشاره کرد. اندروید استودیو به‌شکل گسترده‌ای برای توسعه برنامه‌های موبایلی به کار گرفته می‌شود.

شکل 2- در سال 2014 در هر خانه‌ای حداقل شش موبایل وجود داشت. بر طبق گزارش‌ها در سال جاری میلادی 4.4 میلیارد نفر از برنامه‌های کاربردی استفاده می‌کنند.

توسعه برنامه‌های کاربردی برای iOS

iOS سیستم‌ عامل دستگاه‌‌های همراه اپل است. سیستم ‌عاملی که به طور انحصاری از سخت‌افزار اپل استفاده می‌کند. این سیستم‌ عامل بر مبنای سیستم ‌عامل متن‌ باز داروین ساخته شده است. اکثر برنامه‌های کاربردی قرار گرفته در فروشگاه اپل‌استور از طریق زبان برنامه‌نویسی آبجکتیو ـ سی نوشته شده‌اند. طراحان برنامه‌های همراه iOS به ‌طور معمول از Xcode استفاده می‌کنند. برای ساخت یک برنامه iOS یک طراح باید از سیستم ‌عامل Mac OS X استفاده کند. ابزارهای توسعه‌ای که برای این منظور به آن‌ها نیاز است iOS 7 SDK و Xcode 5 است. برنامه‌هایی که برای این سیستم‌ عامل ساخته می‌شوند را می‌توان روی شبیه‌ساز iOS اجرا کرد که بخشی از کیت توسعه iOS است. برای اجرای یک برنامه کاربردی به‌شکلی ملموس روی یک دستگاه واقعی برنامه باید از فروشگاه اپل استور دریافت شود. 

مطلب پیشنهادی

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

فناوری چندسکویی توسعه برنامه‌های موبایل

برنامه‌های موبایلی که بر پایه فناوری‌های ترکیبی یا چندسکویی ساخته می‌شوند، این پتانسیل را دارند تا در آن واحد روی بیش از یک سکو اجرا شوند. بدون آنکه توسعه‌دهندگان مجبور باشند در این زمینه ورود پیدا کرده و نسخه‌های جداگانه‌ای از برنامه کاربردی خود را ایجاد کنند. برنامه‌های ترکیبی موبایل اساساً در قالب برنامه‌های وب و از طریق زبان‌های جاوااسکریپت، HTML و CSS نوشته می‌شوند. این برنامه‌ها قادرند محدودیت‌های موجود را دور بزنند و به این شکل روی هر دستگاهی اجرا شوند. نرم‌افزارهای چندسکویی اساساً به‌عنوان برنامه‌های مستقل‌ و در قالب کدهای محلی کامپایل می‌شوند و به این شکل قادرند روی سیستم‌ عامل‌های مختلف اجرا شوند. این تکنیک به طراحان اجازه می‌دهد روی یک سورس کد کار کنند. (شکل 3)


شکل 3- محبوب‌ترین برنامه‌های کاربردی موبایل

ملزومات مورد نیاز توسعه برنامه‌های موبایل

پرسشی که ذهن بسیاری از علاقه‌مندان به طراحی برنامه‌‌ها را به خود معطوف ساخته این است که برای ساخت برنامه‌های موبایلی به چه ملزوماتی نیاز دارد؟ در این بخش به‌صورت فهرست‌وار به گوشه‌ای از این ملزومات اشاره می‌کنیم.
1. ابتدا باید درک و شناخت درستی از مشکلی که مردم با آن دست به گریبان هستند به دست آورید و در ادامه راه‌ حل منحصر به فردی برای مشکل شناسایی شده ارائه کنید. برای این منظور می‌توانید از تحقیقات بازار در این زمینه کمک بگیرید.
2. در مرحله دوم باید اهداف و برنامه استراتژیک خود برای دستیابی به نیازهای مشتریان را مشخص کنید. این کار به شما کمک می‌کند از هرگونه تغییر ناخواسته‌ای که ممکن است بر روند توسعه سایه افکند دوری کنید. 
3. در مرحله بعد باید فناوری مناسب را انتخاب کنید. به‌واسطه آنکه انتخاب فناوری درست نقش تعیین‌کننده‌ای در ماندگاری یک نرم‌افزار دارد. فناوری‌ها به‌سرعت در حال تکامل هستند و در نتیجه توسعه‌دهندگان همواره تمایل دارند جدیدترین فناوری را در طول توسعه یک برنامه به کار گیرند. توصیه کلی این است که در گام اول باید تمرکز خود را روی یک سکوی ویژه متمرکز سازید. پس از آن می‌توانید برنامه خود را توسعه دهید و برای سکو‌های مختلف آماده کنید.
4. همیشه باید به رابط کاربری و تجربه کاربری دقت ویژه‌ای داشته باشید. به‌واسطه آنکه این دو عامل روی برنامه‌های موبایل به‌شدت مهم هستند. تجربه کاربری با سایر بخش‌های یک برنامه همچون فیلدهای ورودی کاربر و طراحی تعاملی کاربری ارتباط مستقیم دارد. 
5. اولویت شما در طراحی یک برنامه موبایل باید روی دو عامل کارایی و عملکرد متمرکز شده باشد. زمان پاسخ‌دهی سریع و پایداری برنامه معیارهای کلیدی مهمی هستند که باعث می‌شوند کاربران به برنامه شما امتیاز بالایی دهند.
6. باید مخاطبان هدف یا کاربران نهایی برنامه موبایل خود را مشخص کنید. این افراد با نقطه نظرهای خود قادرند به روند توسعه بهتر برنامه کاربردی کمک کنند. باید از آن‌ها سؤال کنید برنامه طراحی شده تا چه اندازه موفق بوده است در حل مشکل به آن‌ها کمک کند. اگر انتظارات کاربران را برآورده سازید، برنامه موبایلی شما محبوب‌تر خواهد شد. 
7. قبل از عرضه برنامه به بازار باید یک برنامه مشخص در ارتباط با اجرای پروسه آزمایش مؤثر را اجرا کنید. این پروسه آزمایش باید بر سه عامل عملکرد، کارایی و بارگذاری برنامه متمرکز شده باشد.
8. به مردم کمک کنید در وقت و پول خود صرفه‌جویی کنند. این‌ کار باعث می‌شود تا برنامه شما این شانس را پیدا کند که بیشتر دانلود شود. اگر در این کار موفق شوید، در ادامه برنامه و حتی خود شما نزد کاربران شناخته شده‌تر و محبوب‌تر خواهید شد.

مطلب پیشنهادی

مهندسان نرم افزار در نقاط مختلف جهان چقدر درآمد دارند؟
منطقه، نژاد، سلیقه یا تخصص، کدام مهمتر است

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

یک برنامه موبایل چیزی نیست جزء قطعه کدهایی که در کنار یکدیگر قرار گرفته‌اند. کدهایی که برای انجام کار مشخصی به زبان‌های مختلفی نوشته شده‌اند. اکنون اجازه دهید به تعدادی از زبان‌های برنامه‌نویسی متن باز که امروزه به شکل گسترده‌ای برای توسعه برنامه‌های همراه مورد استفاده قرار می‌گیرند نگاهی داشته باشیم.

Objective-C

یکی از اولین گزینه‌های متن‌ بازی که برای ساخت انواع مختلفی از برنامه‌های مبتنی بر سکوی iOS از سوی توسعه‌دهندگان به کار گرفته می‌شود آبجکتیو ـ سی است. آبجکتیو ـ سی از سوی اپل برای ساخت برنامه‌های کاربردی قدرتمند و گسترش‌پذیر انتخاب شد. این زبان طیف گسترده‌ای از توابعی که برای کار با واحدهای ورودی/ خروجی، گرافیکی و صفحه ‌نمایش به کار گرفته می‌شود در خود جای داده است. همچنین، به‌ طور کامل با چهارچوب‌های iOS و MacOX یکپارچه شده است. با این ‌حال، سوئیفت به‌آرامی در حال جایگزین شدن به‌جای این زبان است.

HTML5

HTML5 یکی از ایده‌آل‌ترین زبان‌های برنامه‌نویسی متن‌ باز به‌ویژه برای توسعه‌دهندگانی است که به‌دنبال ساخت برنامه‌های کاربردی Front-end وب برای دستگاه‌های همراه هستند. این زبان انواع مختلف داده‌‌ای را برای ساده‌سازی وظایفی همچون اضافه کردن، تجزیه و تحلیل پارامترهای ورودی و محاسبه اندازه صفحه‌ نمایش‌های مختلف در اختیارتان قرار می‌دهد. فرآیند یادگیری این زبان ساده است. 

Swift

سوئیفت جدیدترین زبان برنامه‌نویسی متن‌ بازی است که به ساختار اپل وارد شده است. این زبان اساساً برای نوشتن کدهای بهتر و کار با چهارچوب‌های CoCoa و Coca Touch آماده شده است. به‌رغم این‌ واقعیت که این زبان در تعامل با زبان آبجکتیو ـ سی نوشته شده است، اما شرکت مستقر در کوپرتینو به دلایل مختلفی توسعه‌دهندگان iOS را تشویق کرده است که به سوئیفت به‌عنوان یک زبان کامل مهاجرت کنند. این زبان به‌منظور از میان بردن آسیب‌پذیری‌های امنیتی که همراه با آبجیکتیو ـ سی به وجود می‌آیند عرضه شده است. 

Java

جاوا یکی از محبوب‌ترین زبان‌هایی است که در زمینه توسعه برنامه‌های اندرویدی به کار گرفته می‌شود. جاوا یک زبان برنامه‌نویسی شی‌گرا است که از سوی سان مایکروسیستمز طراحی شده است. البته به این نکته دقت داشته باشید که با جاوا کار چندان خاصی برای توسعه برنامه‌های موبایل مبتنی بر iOS نمی‌توانید انجام دهید. 

Python

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

بهترین چهارچوب‌های متن‌ بازی که برای توسعه برنامه‌های کاربرد می‌توان به‌ کار گرفت

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

Framework 7

Framework 7 یکی از محبوب‌ترین چهارچوب‌هایی است که در زمینه توسعه برنامه‌های مختلف iOS از آن استفاده می‌شود. با توجه به اینکه در حال حاضر از اندروید نیز پشتیبانی خوبی به عمل می‌آورد، به‌راستی گزینه ارزشمندی است که ارزش یادگیری دارد. مزیت اصلی این چهارچوب در این است که به طراحان کمک می‌کند تا برنامه‌های iOS مختلفی را تنها با جاوااسکریپت، CSS و HTML ایجاد کنند. از جمله ویژگی‌های این چهارچوب می‌توان به ارائه راهکارهایی برای پشتیبانی از ساخت برنامه‌های موبایل ترکیبی چندسکویی، ارائه مجموعه غنی و مطلوب از ویژگی‌ها برای توسعه برنامه‌های ترکیبی iOS، یک کتابخانه سفارشی DOM، ذخیره‌سازی و پیش‌بارگذاری XHR و پیمایش محلی اشاره کرد.

jQuery Mobile

این چهارچوب توسعه متن‌ باز موبایلی یکی از بزرگ‌ترین اجتماعات کاربران را در اختیار دارد. اگر به‌دنبال طراحی برنامه‌های ساده‌ای هستید که قرار است روی گوشی‌های بلک‌بری و ویندوز اجرا شوند، این چهارچوب گزینه ایده‌آلی است. این چهارچوب به توسعه‌دهندگان اجازه می‌دهد برنامه‌های همراه یکپارچه را همراه با تجربه کاربری منحصر به فرد که روی همه گوشی‌ها و تبلت‌ها اجرا می‌شود طراحی کنند. از ویژگی‌های این چهارچوب می‌توان به روان بودن، ارائه تم‌های مختلف طراحی، mark-up معنایی و پشتیبانی از Phone Gap/Cordova اشاره کرد.

Kendo UI

Kendo UI چهارچوبی است که برای ساخت هرگونه برنامه‌های ترکیبی از طریق جاوااسکریپت، HTML5 و CSS به کار گرفته می‌شود. دو نسخه تجاری و متن‌ باز از این چهارچوب وجود دارد. (شکل 4) چهارچوب فوق مجموعه‌ای از ویجت‌های رابط کاربری و پلاگین‌ها را عرضه می‌کند. همچنین، از سوی Telerik پشتیبانی می‌شود. 


شکل 4- معماری چهارچوب KendoUI

از جمله ویژگی‌های این زبان به وابستگی آن به جی‌کوئری، مجهز بودن به بیش از 70 ویجت جی‌کوئری آماده به استفاده، طرح‌های از پیش ساخته شده همراه با Material Design، مجهز بودن به یک سازنده تم پیشر‌فته، بهبود کارایی برحسب نیاز، یکپارچه‌سازی رابط کاربری آنگولار و بوت‌استرپ اشاره کرد.

Mobile Angular UI

این چهارچوب متن‌ باز، آنگولارجی‌اس و نسخه اصلاح شده بوت‌استرپ توییتر را ترکیب کرده است و آن‌ها را درون یک چهارچوب توسعه رابط کاربری در اختیار توسعه‌دهندگان قرار می‌دهد. این چهارچوب شامل کتابخانه‌های مختلفی همچون Overthrow.js و Fastclick.js است که تحت مجوز MIT به‌صورت رایگان قابل استفاده هستند. 
از جمله ویژگی‌های این چهارچوب به ارائه بهترین ویژگی‌های چهارچوب آنگولار و بوت‌استرپ 3 برای ساخت برنامه‌های مختلف موبایلی HTML5، عدم وابستگی به جی‌کوئری یا Bootstap.js و به‌کارگیری کتابخانه‌های Fastclick.js و Overthrow.js برای ارائه یک تجربه موبایلی روان اشاره کرد.

Sencha Touch

این چهارچوب برای ساخت برنامه‌های موبایلی چندسکویی نظیر به نظیر با HTML5 و جاوااسکریپت به کار گرفته می‌شود. چهارچوب فوق به دو شکل متن باز و دارای مجوز قابل استفاده است. این چهارچوب یک سازنده مجازی برنامه‌‌های کاربردی برای HML5 را در اختیارتان قرار می‌دهد که با استفاده از آن می‌توانید مؤلفه‌های سفارشی آماده کنید. 

ExtJS

ExtJS یکی از محبوب‌ترین چهارچوب‌های جاوااسکریپت است که بر پایه Sencha آماده شده است. این چهارچوب به شما اجازه ساخت برنامه‌هایی با کارایی بالا را ارائه می‌کند. از جمله ویژگی‌‌های این چهارچوب به ویجت‌های آماده به استفاده برای سکو‌های مختلف، الگوهای آماده به استفاده، مؤلفه‌های سفارشی برای ساخت و اضافه کردن کتابخانه‌ها برای استفاده مجدد از طریق برنامه‌های موبایل اشاره کرد.

برچسب: