برنامهنویسی نیتیو چیست - در این پست قصد داریم با یکی از مهمترین مفهومهایی که این روزها بسیاری از کاربران را سردرگم کرده است، شما را آشنا کنیم. توسعه بومی (نیتیو) یکی از روشهای توسعه اپلیکیشنها (به خصوص برای موبایل) است که تفاوتهای زیادی را با سایر پلتفرمهای برنامهنویسی دارد.
دلیلی که باعث میشود کسانی که علاقه به شروع برنامهنویسی دارند یا حتی برنامهنویسان در درک روشهای توسعه اپلیکیشن موبایل دچار سردرگمی شوند، وجود روشهای متعدد توسعه است.
در این میان ممکن است با مفاهیم زیر هم برخورد کنید:
- توسعه اپلیکیشن بومی (Native Application Development)
- توسعه اپلیکیشن کراس پلتفرم (Cross-Platform Development)
- توسعه اپلیکیشن مولتی پلتفرم نیتیو (Multi-platform Development)
- توسعه اپلیکیشن وب (Web Application Development)
- توسعه اپلیکیشن هیبریدی یا ترکیبی (Hybrid Application Development)
جالب است بدانید که تمام مفاهیم بالا برای توسعه اپلیکیشن موبایل (اندروید و iOS) استفاده میشوند و تفاوتهایی برخی کم و برخی بسیار زیاد و بنیادین با هم دارند!
پس اگر به دنبال توسعه اپلیکشن موبایل هستید و به برنامهنویسی موبایل علاقهمند هستید، باید در قدم اول تفاوت این مفاهیم را با هم بدانید و سپس شروع به یادگیری یکی از تکنولوژیها کنید.
در این پست به بررسی روش برنامهنویسی Native خواهیم پرداخت. با ما همراه باشید.
فهرست مطالب
برنامهنویسی Native چیست؟
برنامهنویسی نیتیو یا بومی، روش اصلی و ترجیحی توسعه اپلیکیشن برای سیستم عامل مورد نظر است. هر سیستم عامل مجموعهای از APIها در قالب SDK در اختیار توسعهدهندگان قرار داده است که بتوانند برای آن سیستم عامل نرمافزار توسعه دهند.
شاید بپرسید که این APIها چه کار میکنند. فرض کنید قصد دارید یک اپلیکیشن برای سیستم عامل اندروید بنویسید که با اسکن چهره کاربر، او را شناسایی کنید. خب چطور به دوربین میخواهید دسترسی داشته باشید؟ به کمک API (رابط توسعه اپلیکیشن)! این API دوربین اندروید است که به شما امکان دریافت اطلاعات و مدیریت دوربین را خواهد داد.
مبنای توسعه اپلیکیشنهای کراس پلتفرم (Cross-Platform) نیز توسط امکانات SDK نیتیو بنا شده است و در واقع لایهای بالاتر از لایه Native قرار دارد.
برنامهنویسی Native موبایل چیست؟
منظور همان توسعه اپلیکیشن برای دستگاههای اندروید و iOS است که به کمک SDK رسمی اندروید و iOS میتوان کار را انجام داد. گوگل و اپل برای سیستمعاملهای اندروید و iOS هر کدام SDK مورد نیاز را در اختیار توسعهدهندگان این سیستمعاملها قرار دادهاند که به ترتیب به کمک زبانهای جاوا و کاتلین برای اندروید، و Objective-C و Swift برای iOS نوشته شده است.
حتی برای اینکه بتوانید توسعه اپلیکیشن را به راحتی انجام دهید، برای شما IDEهای رسمی و رایگان نیز قرار داده شده است. به طور مثال گوگل اندروید استودیو را برای اپلیکیشنهای اندروید و اپل نیز XCode را برای iOS توسعه داده است.
البته این بدین معنا نیست که برای مثال Android Studio قابلیت توسعه اپلیکیشن iOS ندارد؛ بلکه به این معناست که IDE رسمی توسعه Native اپلیکیشن اندروید، رسما Android Studio است.
برای توسعه اپلیکیشنهای بومی اندروید و iOS، حتما نیازی به توسعه به کمک این دو IDE ندارید. برای مثال شرکت معروف Jetbrains دو IDE برای اندروید و iOS توسعه داده است که میتوان از آنها نیز استفاده کرد.
برای مثال برای توسعه اپلیکیشن اندروید میتوانید از IntelliJ IDEA استفاده کنید (البته محیط چندان تفاوتی با اندروید استودیو ندارد) و برای iOS نیز میتوانید از AppCode استفاده کنید.
مزایای توسعه اپلیکیشن Native
شاید از خود بپرسید که چرا باید توسعه اپلیکیشن Native را یاد بگیرم؟ خب دلایلی واضح برای آن وجود دارد. برخی از آنها را در زیر لیست کردهایم. البته باید گفت که ممکن است برخی موارد استثنا هم داشته باشد (مانند خروجی کم حجمتر)
- توسعه به کمک Native UI
- کارایی (Performance) بیشتر
- مدیریت حافظه بهتر
- امکان توسعه هر نوع اپلیکیشن بدون محدودیت نسبت به سایر روشها
- خروجی کم حجمتر
معایب توسعه اپلیکیشن Native
یک سری معایب برای روش توسعه بومی یا Native مطرح میگردد که درست هم هستند و باید به آنها دقت کرد. در زیر به بررسی برخی موارد پرداختهایم:
- کدنویسی بیشتر (به دلیل وجود معمولا دو سیستم عامل مانند اندروید و iOS)
- نیاز به دانش بیشتر و شناخت APIها و روش استفاده از آنها
- آشنایی کامل با معماری هر سیستم عامل
- نیاز به هزینه و زمان بیشتر
جمعبندی
توسعه اپلیکیشن Native یکی از روشهای توسعه اپلیکیشن برای موبایل و سایر دستگاهها است. از طریق این روش میتوانید اپلیکیشنی را توسعه دهید که بهترین خروجی را در اختیار شما قرار دهد. طبق آمار، 80% از 1000 اپلیکیشن برتر پلی استور به روش نیتیو و به زبان کاتلین نوشته شدهاند. این دلیلی بر قدرت توسعه اپلیکیشن Native موبایل و سایر پلتفرمها است.
البته این را هم باید مد نظر داشته باشید که توسعه اپلیکیشن Native معمولا زمان بیشتری را لازم دارد و وقتی که پای دو سیستم عامل وسط باشد، ممکن است حجم کار بسیار بیشتر شود. در چنین شرایطی نیاز به تیم بزرگتر و طبیعتا هزینه و زمان بیشتری نیاز است. اگر کیفیت برای شما حرف اول را میزند و یا نیاز به APIهای بومی برای اپلیکیشن خود دارید، قطعا توصیه ما برنامهنویسی Native است اما اگر بیشتر بحث زمان و هزینه مطرح است و نیازی به استفاده از APIهای بومی نباشد و بیشتر کارهای رایج باشد، توسعه اپلیکیشن به کمک سایر روشها پیشنهاد میشود.
نظر خود را برای ما بنویسید. شما چه روشی را انتخاب میکنید؟ آیا Native Code را انتخاب میکنید یا سایر روشها مثل Cross-Platform Programming؟