دغدغه هر توسعه دهندهای این است که اپلیکیشناش در سراسر سیستم عاملها و فروشگاههای اپلیکیشن وجود داشته باشد و باعث افزایش تعداد کاربرانش شود ولی توسعه و طراحی هر اپلیکیشن برای یک پلتفرم خاص نیاز به هزینه و زمان زیادی دارد.
از سوی دیگر به آگاهی و تسلط بر طیف گستردهای از زبانهای برنامه نویسی مختلف نیز احتیاج است.
خوشبختانه ارتقای ابزار توسعه کراس پلتفرم توانسته است تا حدی اینگونه مشکلات را از سر راه توسعه دهندگان بردارد. فارغ از ضعف و قوتهای این ابزار که در مواجهه با بهرهگیری از قابلیتهای تلفن همراه خود را نشان میدهد در زیر به معرفی 6 مورد از محبوبترین این ابزار خواهیم پرداخت:
Xamarin
زامارین (Xamarin) در ماه مه سال ۲۰۱۱ توسط سازندگان پروژه متن باز Mono Android خلق شد. تاکنون حدود ۷۰۰ هزار توسعه دهنده در بیش از ۱۲۰ کشور جهان بروی این فریم ورک کار کردهاند. زامارین بر پایه زبان برنامه نویسی سی شارپ بنا شده است و کتابخانه آن حدود ۲۰۰۰۰ کامپوننت قابل استفاده دارد، کدهای برنامه قبل از کامپایل شدن در بستر فریم ورک دات نت اجرا میشوند و نهایتا به صورت کدهای بومی آی او اس و آندروید در خروجی پدید میآیند. توسعه دهندگانی که از این ابزار استفاده کنند میتوانند اپلیکیشنهای خود را بروی بیش از ۱۰۰۰ دستگاه مختلف که با تکنولوژی پردازش ابری (Cloud) بنا شده است تست کنند.
در وب سایت زامارین سرویسی تحت عنوان INSIGHT وجود دارد که همانند سرویسهای آمارگیر و تحلیلگر اطلاعات مفیدی در رابطه با میزان ترافیک کاربران، گزارشی از خرابیها را به توسعه دهندگان ارائه میکند.
البته شاید بتوان گفت که نیمی از طرفداران Xamarin برنامه نویسان پیشرفته هستند چون بیشترین آمار استفاده از این فریم ورک در پروژههای تجاری و کارهای تیمی است. محیط برنامه نویسی این فریم ورک Xamarin Studio نام دارد که قابل نصب بروی هر دو سیستم عامل ویندوز و مک خواهد بود و همچنین اخیرا بروی نرم افزار Visual Studio 2015 امکان استفاده از آن وجود دارد.
Phonegap
ایده آن در سال ۲۰۰۹ از یک استارتاپ تحت عنوان Nitobi شکل گرفت و در سال ۲۰۱۱ توسط شرکت ادوبی خریداری شد که هدف آنها ایجاد فریم ورکی برای تولید اپلیکیشنهای موبایل براساس زبانهای رایج وب مثل CSS و HTML5 و جاوا اسکریپت بود، از آنجایی که قرار بود این پروژه به صورت متن باز مدیریت شود اجرای آن به شرکت حامی اپن سورس یعنی آپاچی واگذار شد.
فون گپ (Phonegap) کدهای برنامه را با توجه به مرورگر هر دستگاه خروجی را به کاربر نمایش خواهد داد و به همین دلیل کیفیت خروجی بروی دستگاههای مختلف یکسان نیست و به هسته گرافیکی دستگاه کاربران بر میگردد. این فریم ورک تقریبا تمام سیستم عاملهای رایج نظیر آندروید، آی او اس و ویندوز موبایل و … را پشتیبانی میکند.
ساده و راحتترین محیط برنامه برای کدنویسی با فون گپ نرم افزارهای رایج ادیتور متن و افزونههای توسعه دهندگان مرورگر گوگل کروم است، البته در کنار آنها میتوان به نرم افزارهای Xcode ، Visual Studio و نسخه آخر Adobe Dreamweaver اشاره کرد. مهارت در زبانهای HTML5 و CSS و جاوا اسکریپت فرآیند کار در این پلتفرم را برای توسعه دهندگان تسهیل میکند. همچنین پلاگینهای متعددی در سورس کدهای گوناگون برای راحتی کار با فون گپ وجود دارد.
Appcelerator
اپسلریتر (Appcelerator) نام یکی از شرکتهای فناوری حوزه تلفن همراه در کالیفرنیا است که یکی از محصولات متن باز آن تیتانیوم نام داشته و مورد بحث ما است. این پلتفرم هم همانند دیگر رقبای خود از اغلب سیستم عاملهای معروف پشتیبانی میکند. رویکرد تیتانیوم را میتوان به نوعی مثل فون گپ تصور کرد زیرا هر دو از فناوریهای وب برای توسعه برنامه استفاده میکنند.
SDK تیتانیوم توسعه دهندگان را قادر میسازد تا با هر سطحی از دانش به کمک یک پایگاه کد واحد جاوا اسکریپت به همراه بیش از ۵۰۰۰ رابط کاربردی برنامه نویسی اپلیکیشنهای بومی و کراس پلتفرم تولید کنند.
معماری این زبان برپایه MVC است و بیش از ۶۵۰ هزار توسعه دهنده برای بهبود و گسترش این پلتفرم مشغول فعالیت هستند.
اگر شما از آن دسته افرادی هستید که در محیط Eclipse برنامه نویسی کردهاید به راحتی می توانید با تیتانیوم استودیو کار کنید چون محیط آن Eclipse-based است و همچنین حدود ۷۰٪ تا ۸۰٪ از کدهای نوشته شده را میتوان در سراسر برنامه دوباره استفاده کرد.
وب سایت Business Insider در سال ۲۰۱۳ تخمین زده بود که حدود ۱۰٪ اپلیکیشنهای موجود در تلفنهای هوشمند براساس این پلتفرم ساخته شدهاند.
RhoMobile
روموبایل (RhoMobile) یک فریم ورک متن باز است که برای تولید اپلیکیشنهای بومی توسط شرکت موتورولا توسعه یافته و بروی اغلب دستگاههای همراه قابل اجرا خواهد بود. این مساله به این معنی است که این فریم ورک بدون در نظر گرفتن برند تجاری، اندازه صفحه نمایش یا سیستم عامل در چارچوبی مشخص؛ فرآیند تولید یک اپلیکیشن را طی میکند. Rhodes بر اساس یک مدل View-controller based که بر پایه HTML5 و زبان Ruby توسعه یافته است. Rhodes همانند دیگر هم صنفهای خود از سیستم عاملهای رایج و همچنین سیمبین پشتیبانی میکند.
در کل Rhodes دارای چهار قابلیت کلی است. به عنوان اولین قابلیت از RhoElements نام میبریم که کاربرد آن در اپلیکیشنهای تجاری با اطلاعات گسترده است که میتوان از API فراوانی که وجود دارد برای فشرده سازی و یکپارچه سازی اطلاعات استفاده کرد، البته ناگفته نماند که RhoElements فقط یک API نیست بلکه در خیلی موارد ORM (یک لایه مترجم بین زبان برنامهنویسی و پایگاه داده رابطهای است که این دو را به هم تبدیل میکند و در عمل باعث میشود که این دو حیطه کاملا متفاوت زبان یکدیگر را به خوبی بشناسند) بدون احتیاج به استفاده از دستورات SQL اطلاعات را فراخوانی میکند.
قابلیت دوم RhoStudio نام دارد که در محیطی اجازه توسعه و طراحی و اشکال زدایی و نهایتا تست را برای توسعه دهندگان بوجود میآورد.
قابلیت سوم RhoConnect است و مربوط به ادغام اطلاعات و همگام سازی دادهها است که با تکنولوژی پردازش ابری این امکان قابل استفاده است.
قابلیت آخر RhoGallery است که در واقع میتواند به عنوان یک هاست امکان مدیریت اپلیکیشنها بروی دستگاههای مختلف و کنترل کاربران آنها را برای توسعه دهندگان و بویژه مدیران IT سازمانها را فراهم آورد. این امکان غالبا برای سازمانهای بزرگ با یک جامعه مصرف کننده مشخص کارآمد خواهد بود.
Unity
شاید بتوان یونیتی (Unity) را یکی از محبوبترین موتورهای بازی ساز معرفی کرد که برای توسعه بازیهای کراس پلتفرم مورد توجه بسیاری از توسعه دهندگان قرار گرفته و همین طور دارای محیطی ویژوال متشکل از موتور گرافیکی و توسعه یکپارچه خطی است. UnityScript از نرمافزار Mono که یک نرمافزار متن باز است به عنوان ویرایشگر زبان برنامه نویسی استفاده میکند و همچنین از اکثر زبانهای برنامه نویسی بزرگ نظیر جاوااسکریپت و سی شارپ پشتیبانی به عمل میآورد.
Sencha
سنچا (Sencha) با ترکیبی از تکنولوژیهای وب، به خصوص HTML5 به توسعه وب اپلیکیشنها کمک میکند. این فریم ورک با هدف گسترش استفاده از زبان HTML5 در توسعه تولیدات کراس پلتفرم از سال ۲۰۰۸ شهرت زیادی یافت و حدود ۲ میلیون توسعه دهنده در سراسر جهان دارد.
نام پروژههای متن باز گروه سنچا عبارتند از Sencha Touch ، Sencha Extjs و Sencha Gxt که با کتابخانههای متعدد به ساخت وب اپلیکیشنها کمک شایانی میکنند.