آشنایی با انواع اپلیکیشن های موبایل - بخش اول
روش های گوناگونی برای ساخت اپلیکیشن های موبایل موجود است، اما تنوع روش ها، تکنولوژی های مورد استفاده و پلتفرم های موردنیاز و مدت زمان موردنیاز جهت ساخت اپلیکیشن، سوالاتی را پیش روی توسعه دهندگان قرار می دهند. با معرفی گوشی آیفون در سال 2007، دنیای موبایل میزبان انقلاب بزرگی شد، در سال 2008 کمپانی اپل به معرفی SDK نیتیو پرداخت که به این انقلاب قدرت بیشتری بخشید. از آن زمان تاکنون میلیون ها اپلیکیشن با استفاده از پلتفرم ها و فریم ورک های بیشمار پدید آمده اند.
نحوه گزینش نوع اپلیکیشن، پلتفرم و فریم ورک امری چالش برانگیز می باشد و این مقاله بر روی تسهیل این روند متمرکز شده است. در ادامه به شرح انواع اپلیکیشن های موبایل، مزایای اپلیکیشن های نیتیو و هیبرید و چندین پلتفرم رایج برای توسعه اپلیکیشن های موبایل پرداخته می شود.
انواع اپلیکیشن ها
اپلیکیشن های موبایل را می توان در سه دسته عمده قرار داد:
- وب اپلیکیشن ها
- اپلیکیشن های هیبرید
- اپلیکیشن های نیتیو
هریک از این انواع دارای مزایا و معایب منحصر به فرد خود می باشند و نمی توان به طور قطع تعیین کرد که کدامیک از این اپلیکیشن ها بهترین گزینه است، چرا که این امر به عوامل متعددی بستگی دارد. برای درک بیشتر موضوع بهتر است به شرح هریک از این انواع پرداخته شود.
وب اپلیکیشن ها
به احتمال زیاد با وب اپلیکیشن ها آشنایی دارید، یک وب اپلیکیشن در حقیقت یک وب سایت است که عملکردی مشابه یک اپلیکیشن دارد. پیش از معرفی iOS SDK در سال 2008، وب اپلیکیشن ها تنها گزینه برای ساخت اپلیکیشن برای آیفون ها بود که توسعه دهندگان در اختیار داشتند.
وب اپلیکیشن ها دارای مزایای مشهودی هستند که مهم ترین آن به زمان توسعه باز می گردد. از آنجا که یک وب اپلیکیشن در حقیقت یک وب سایت است، یک بار ساخته شده و بر روی هر پلتفرمی که دارای یک مرورگر وب باشد به اجرا در می آید. برای برخی از کمپانی ها این گزینه راه حل جذابی است، چرا که توسعه نیتیو هزینه بر و زمان بر می باشد و وب اپلیکینشن ها، همان طور که از تعریفشان نیز پیداست، کراس پلتفرم می باشند.
دیگر مزیت وب اپلیکیشن ها به منحنی یادگیری آنها ارتباط پیدا می کند، برای ساخت وب اپلیکیشن شما به تکنولوژی های وب مانند اچ تی ام ال، سی اس اس و جاوا اسکریپت متکی هستید که به احتمال زیاد با آنها آشنایی دارید. بنابراین چنانچه در زمینه کار با این تکنولوژی ها تجربه کافی داشته باشید ساخت و توسعه وب اپلیکیشن برای شما بسیار ساده و آسان می گردد.
بدون شک همواره در کنار مزایا، معایبی نیز به چشم می خورند، مهم ترین معایب وب اپلیکیشن ها کارآیی و دسترسی به قابلیت های گوشی است. چنانچه قصد ساخت یک بازی را دارید، وب اپلیکیشن بهترین گزینه پیش روی شما نمی باشد، البته ساخت بازی با آنها ممکن است، اما نتیجه دریافتی آنچنان باکیفیت و خوب از آب در نمی آید. وب سایت ها و وب اپلیکیشن ها دسترسی محدودی به قابلیت ها و امکانات گوشی مانند دوربین، سرویس های موقعیت یاب و غیره دارند. این نقطه ضعف در طول این سال ها به طور چشمگیری ارتقا یافته، اما قدرت آن به اندازه اپلیکیشن های نیتیو نمی باشد.
چنانچه مایل به محدود کردن هزینه های ساخت و نگهداری اپلیکیشن موبایل خود هستید و کارآیی اهمیت چندانی برای شما ندارد، در این صورت وب اپلیکیشن گزینه ای است که به احتمال زیاد برای شما مناسب خواهد بود.
اپلیکیشن های هیبرید
اپلیکیشن های هیبرید همواره محبوب بوده و هستند، این اپلیکیشن ها در حقیقت ارائه دهنده ترکیبی از دنیای وب و نیتیو می باشند. تکنولوژی های استفاده شده جهت ساخت اپلیکیشن های هیبرید مشابه تکنولوژی های استفاده شده در وب اپلیکیشن ها یعنی اچ تی ام ال، سی اس اس و جاوا اسکریپت است، از این رو درک نحوه کار و عملکرد اپلیکیشن های هیبرید روشن است.
یک اپلیکیشن هیبرید از یک اپلیکیشن نیتیو به عنوان کانتینر خود استفاده می کند تا ظاهر نیتیوی به اپلیکیشن ببخشد، بدین ترتیب یک اپلیکیشن هیبرید ظاهر و احساس نیتیو را در کاربر القا می کند. کاربر می تواند این اپلیکیشن را از استور آن پلتفرم دانلود کرده و مورد استفاده قرار دهد، آیکون این اپلیکیشن در صفحه خانه گوشی نمایش داده می شود.
از آنجایی که اپلیکیشن های هیبرید نیز بر تکنولوژی های وب متکی هستند و در یک وب ویو به اجرا در می آیند، از همان مشکلاتی رنج می برند که گریبان گیر وب اپلیکیشن هاست. اما خوشبختانه هر ساله شاهد بهبود این تکنولوژی هستیم و میزان کارآیی جاوااسکریپت در طول دهه گذشته به میزان چشمگیری ارتقا یافته است.
رایج ترین راه حل به منظور توسعه اپلیکیشن های هیبرید Apache Cordova است. زمانی که Adobe اقدام به خریداری PhoneGap نمود، بسیاری از کد بیس ها را اپن سورس کرد و بدین ترتیب Cordova زاده شد.
به منظور تسریع فرآیند توسعه، توسعه دهندگان اغلب از ترکیبی از Cordova با سایر فریم ورک ها مانند Ionic و Onsen UI استفاده می کنند.
اپلیکیشن های نیتیو
گزینش اپلیکیشن های نیتیو به معنای انتحاب کارآیی و قابلیت اعتماد بالاست، اما چرا توسعه این دسته از اپلیکیشن ها موجب هراس بسیاری از توسعه دهندگان می گردد؟ پلتفرم آی او اس را به عنوان نمونه در نظر بگیرید، چنانچه مایل به ساخت یک اپلیکیشن نیتیو برای آی او اس باشید، لازم است تا یک زبان برنامه نویسی جدید به نام Objective-C یا سوئیفت را فرا بگیرید. علاوه بر این نیاز به آشنایی با Xcode که همان IDE مختص اپل است نیز دارید. ساخت و توسعه اپلیکیشن نیتیو معمولا مدت زمان بیشتری به طول می انجامد و Objective-C و جاوا اسکریپت دو زبان کاملا متفاوت می باشند.
در مقابل این تلاش و زحمت برای ساخت اپلیکیشن چه چیزی دریافت می کنید؟ احتمالا کارآیی جذاب ترین مزیت اپلیکیشن های نیتیو می باشد. اپلیکیشن های نیتیو بسیار جذاب هستند و برای بازی ها قادر به بهره گیری از منابع گوشی و سیستم عامل می باشند. هر ویژگی و قابلیت از گوشی که توسط API مربوط به SDK دریافت شده، در اختیار توسعه دهنده قرار دارد و این مورد یکی از مزایای مشهود نیتیو در مقابل هیبرید و وب است.
رویکردهای هیبرید متعددی وجود دارند که امکان توسعه اپلیکیشن های نیتیو را در اختیار توسعه دهندگان قرار داده اند. راه حل بسیار ساده است، کد را با زبان مورد نظر خود بنویسید و آن را برای یک اپلیکیشن نیتیو کامپایل کنید. متداول ترین راه حل برای این کار Xamarin و React Native می باشد.
زامارین به توسعه دهندگان امکان ساخت اپلیکیشن های نیتیو برای آی او اس، اندروید و ویندوز فون را با استفاده از سی شارپ می دهد. ابزارهای زامارین پروژه اپن سورس Mono را مورد استفاده قرار می دهند. React Native توسعه دهندگان را قادر به ساخت اپلیکیشن های نیتیو با استفاده از جاواسکریپت می گرداند.