از میان تمام ملاحظاتی که هنگام طراحی اپلیکیشن موبایل باید در نظر گرفته شود، انتخاب معماری اپلیکیشن یکی از مهم ترین تصمیم هاست. در این مرحله باید مشخص شود که اپلیکیشن نیتیو توسعه پیدا کند یا از ساختار وب ویو استفاده شود. همچنین لازم است مشخص شود که برنامه برای یک سیستم عامل خاص طراحی خواهد شد یا قرار است روی چند سیستم عامل تلفن همراه قابل استفاده باشد. انتخاب هر کدام از این روش ها به نیازهای پروژه و شرایط کسب و کار بستگی دارد و نمی توان یک راهکار ثابت را برای همه اپلیکیشن ها در نظر گرفت.
یکی از عوامل مهم، شناخت مخاطبان هدف است. پیش از شروع توسعه باید مشخص باشد چه افرادی قرار است از اپلیکیشن استفاده کنند و بیشتر از چه دستگاه هایی برای دسترسی به آن بهره می برند. در ادامه، سیستم عامل های مورد نظر نیز باید مشخص شوند تا معماری و فناوری مناسب برای توسعه انتخاب شود.
قابلیت ها و امکانات مورد نیاز اپلیکیشن نیز تاثیر مستقیمی بر این تصمیم دارند. برای مثال، اگر برنامه قرار باشد از امکانات سخت افزاری مانند دوربین، میکروفون یا GPS استفاده کند، باید معماری و فناوری توسعه به گونه ای انتخاب شود که دسترسی مناسب به این قابلیت ها را فراهم کند. علاوه بر این، مهارت و تجربه تیم برنامه نویسی در زبان ها و سیستم عامل های مختلف نیز باید مورد توجه قرار گیرد.
در نهایت، محدودیت های زمانی و بودجه پروژه نقش مهمی در انتخاب روش توسعه دارند. ممکن است یک معماری از نظر فنی امکانات بیشتری ارائه دهد، اما زمان و هزینه توسعه آن برای پروژه مناسب نباشد. بنابراین انتخاب معماری اپلیکیشن باید با در نظر گرفتن همزمان نیاز کاربران، امکانات فنی، توانایی تیم توسعه و منابع در دسترس انجام شود.
اپلیکیشن نیتیو (Native)
هر برنامه ای که در موبایل خود نصب دارید، یک اپلیکیشن نیتیو است. اپلیکیشن نیتیو برنامه ای است که مستقیماً روی تلفن هوشمند شما نصب شده و در بیشتر موارد، بدون اتصال به اینترنت، بسته به ماهیت برنامه کار می کند. این برنامه ها را می توانید از برنامه های بازار (مانند Google Play یا بازار یا Apple’s App Store) نصب کنید. آن ها به طور خاص برای یک سیستم عامل ساخته شده و می توانند از ویژگی های دستگاه نهایت استفاده را ببرند.
می توانند با مهار قدرت پردازنده بسیار سریعتر کار کنند و به سختافزار خاصی مانند GPS دسترسی داشته باشند و در برخی از تلفنهای هوشمند میتواند دستگاههای دیگر را کنترل کند. اپلیکیشنهای نیتیو میتوانند از سیستم اعلان دستگاه نیز استفاده کنند. برنامههای نیتیو معمولاً به زبان پیشفرض پلتفرم تلفن همراه مربوطه توسعه مییابند؛ به عنوان مثال Objective-C در iOS ، جاوا در اندروید و C# در ویندوز فون

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

فرق اپلیکیشن وب ویو با اپلیکیشن نیتیو
تفاوت این دو نوع اپلیکیشن را از دیدگاههای مختلف زیر بررسی کرده ایم:
عملکرد
کد جاوااسکریپت بهکاررفته در وب موبایل توسط مرورگر وب ترجمه میشود و بنابراین در بیشتر موارد از کد نیتیو کامپایلشده، کندتر اجرا شده و در نهایت پردازش انجامشده با کد نیتیو در یک اپلیکیشن نیتیو سریع تر از پردازش مشابه با کد جاوا اسکریپ در اپلیکیشن وب ویو است.
یکی از نکات کلیدی در سنجش عملکرد، عملکرد رابط کاربری است. تعداد کمی از اپلیکیشن های وبویو میتوانند یک رابط کاربری روان و با پاسخگویی بالا مشابه اپلیکیشنهای نیتیو ارائه دهند. اگر بهترین عملکرد رابط کاربری و تجربه کاربری عالی مد نظرتان است، از اپلیکیشن نیتیو استفاده کنید اما اگر قصد استفاده از برنامه در چندین سیستم عامل را دارید و تجربه کاربری سطح بالا را در نظر ندارید، پیشنهاد میشود از اپلیکیشنهای وبویو استفاده کنید.
توسعه
اپلیکیشنهای نیتیو را میتوان مستقیماً از استورهای اپلیکیشن در اکثر سیستم عاملهای مدرن دانلود و نصب کرد، باید در نظر داشت که اپ استورها هنگام انتظار برای تایید اپلیکیشنهای جدید یا بهروزرسانی آنها، ناگزیر سبب تاخیرات زمانی میشوند اگر این تاخیر برای اپلیکیشن مسئلهساز است، پیشنهاد میشود از وبویو استفاده کنید.
اپلیکیشنهای وبویو برای نصب نیازی به تأیید فروشنده ندارند، زیرا معمولاً کاربر با وارد کردن URL در مرورگر وب به آنها دسترسی پیدا میکند. اگر نیاز به بهروزرسانی مداوم است، اپلیکیشن وبویو انتخاب خوبی بوده و قابلکشف و دسترسی مستقیم از طریق موتورهای جستجو نیز هست. اگر قصد اعمال خریدهای درون برنامهای را دارید از نیز اپلیکیشنهای وبویو استفاده کنید.
دسترسی به سختافزار
اپلیکیشنهای نیتیو معمولاً به ویژگیهای سختافزاری تلفن همراه، مانند دوربین، GPS ، سیستم فایل، کارتهای حافظه، میکروفون و… دسترسی کامل دارند. اگرچه اپلیکیشنهای وبویو با استفاده از HTML5 در این زمینه پیشرفتهایی داشتهاند اما در اکثر موارد همچنان دسترسی محدودتری به ویژگیهای سختافزاری دارند.

عملکرد آفلاین
اپلیکیشن نیتیو معمولاً عملکرد آفلاین بهتری دارد، زیرا توانایی اجرای فرایندهای پسزمینه را دارند و به راحتی میتوان از حالتهای آفلاین در یک برنامه نیتیو استفاده کرد. اپلیکیشنهای وبویو برای استفاده به دسترسی به اینترنت نیاز دارند، گرچه اخیراً پیشرفتهایی در این زمینه داشتهاند.
قابلیت حمل کد
یکی از مزایای اپلیکیشنهای وبویو این است که کد آن (قسمتهای تحتوب نوشته شده با HTML ، CSS و JavaScript) در سیستم عاملهای موبایل مورد استفاده مجدد قرار گیرد و معمولاً برخی اصلاحات جزئی برای اطمینان از عملکرد درست در مرورگر وب اعمال میشود. از طرف دیگر کد اپلیکیشنهای وبویو در هر سیستم عامل متفاوت است مثلا کد Objective-C در اندروید و کد جاوا در iOS اجرا نمیشود. در صورتی که به طراحی سایت توریستی علاقه مندید می توانید به سایت سیتی نت مراجعه نمایید.
هزینه و جدول زمانی
هزینه و جدول زمانی فاکتورهای مهمی در بیشتر پروژههای نرمافزاری هستند. اپلیکیشن نیتیو باید برای هر سیستم عاملی جداگانه نوشته شوند و بنابراین اگر قصد ساخت برنامه بر روی چندین سیستم عامل را دارید، هزینه زیادی متحمل خواهید شد. از نظر تئوری اپلیکیشنهای وبویو گزینه کمهزینهتری جهت توسعه بین سیستم عاملی است اما متأسفانه در پایان یک پروژه وبویو زمان زیادی صرف برطرف کردن ناسازگاریها میشود. با این وجود، ایجاد یک بیس کد واحد همیشه هزینه کمتری نسبت به تهیه سه بیس کد جداگانه دارد.

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








