در سالهای اخیر بحث تکنولوژیهای توسعه کراس پلتفرم اپلیکیشنهای موبایل بسیار داغ شده است. همانطور که احتمالا هم میدانید، فلاتر (Flutter) از گوگل و React Native از متا، توانستهاند موفقیت چشمگیری در توسعه اپلیکیشنهای موبایل بدست آورند. اگر شما هم به توسعه اپلیکیشنهای موبایل علاقه داشته باشید، حتما به یادگیری فلاتر یا یادگیری React Native فکر کردهاید و یا در حال یادگیری یکی از این تکنولوژیها هستید. اما صبر کنید! یک مورد را شما هنوز بررسی نکردهاید. آن هم تکنولوژی تازه نفس KMM! کاتلین مولتی پلتفرم موبایل (KMM) چیست؟ با ما همراه باشید.
همچنین اگر موضوعات زیر برای شما مطرح شده است، حتما این مقاله را تا آخر بخوانید:
- خروجی iOS از کاتلین
- برنامهنویسی iOS با کاتلین
- خروجی iOS در اندروید استودیو
- Kotlin یا Flutter
- Kotlin یا React Native
- آموزش کاتلین مولتی پلتفرم موبایل
- آموزش برنامهنویسی کراس پلتفرم (چند پلتفرمی) موبایل
- معماری کی ام ام (KMM Architecture)
فهرست مطالب
کاتلین مولتی پلتفرم موبایل (KMM) چیست؟
KMM یک SDK برای توسعه اپلیکیشنهای موبایل به صورت کراس پلتفرم (توسعه همزمان برای اندروید و iOS) است که این امکان را به شما میدهد که اپلیکیشنهای 100% بومی (Native) توسعه دهید. این تکنولوژی امکان اشتراک کد بین هر دو سیستم عامل Android و iOS را فراهم میکند. KMM به زبان کاتلین نوشته شده است. بنابراین به کمک قابلیتهای این زبان مدرن، میتوانید با سرعت بیشتر و در زمان کمتری اپلیکیشنهای نیتیو (بومی) بسازید.
ممکن است از خود بپرسید که چرا من تا کنون اسمی از KMM نشنیدهام؟ چون هم اکنون KMM در نسخه آلفا است و به زودی و در بهار 1401 نسخه بتا منتشر میشود. احتمالا نسخه پایدار KMM تا چن ماه پس از انتشار نسخه بتا در دسترس عموم قرار خواهد گرفت. بنابراین این پروژه در حالتی تقریبا مسکوت در حال توسعه بوده است.
ممکن است به این مطلب علاقه داشته باشید: کاتلین (KMM) یا فلاتر (Flutter)؟
پیشنیازهای KMM:
- جاوا نسخه 11
- اندروید استودیو نسخه 4.2 به بالا - تا این لحظه (20 فبریه 2022) نسخه Bumblebee اندروید استودیو منتشر شده است.
- Xcode نسخه 11.3 به بالا
- Ruby و Bundler (برای استفاده از فریمورک CocoaPods در توسعه اپ iOS)
- ابزار خط فرمان توسعهدهندگان Xcode
- پلاگین Kotlin Multiplatform Mobile برای اندروید استودیو (برای افزودن این پلاگین به اندروید استودیو به مسیر Preferences > Plugins بروید و Kotlin Multiplatform Mobile را جستجو و نصب کنید.
KMM چگونه کار میکند؟
در پروژههای KMM یک ماژول به نام Shared Code وجود دارد که کدهای مشترک (مانند مدلها، کلاسها و دیتا کلاسها) هر دو سیستم عامل در این قسمت قرار میگیرند. سپس برای هر کدام از اپلیکیشنهای اندروید و iOS یک ماژول به همین نامها وجود دارد که باید کدهای نیتیو را در آنجا نوشت.
بنابراین باید برای اندروید و iOS به صورت جداگانه لایههای صفحات را طراحی کرد و سپس ادامه کار با نوشتن کدهای کاتلین برای هر ماژول انجام میگیرد.
چگونه در اندروید استودیو خروجی iOS بگیریم؟ (راهنمای ویندوز و مک او اس)
همانطور که احتمالا میدانید، Xcode محیط توسعه اپلیکیشن برای iOS است. متاسفانه Xcode قابلیت نصب بر روی ویندوز را ندارد. در اندروید استودیو نسخه ویندوزی میتوان پروژه KMM ساخت اما فقط میتوان قسمت اندروید را برنامهنویسی کرد و برای iOS نمیتوان از ویندوز استفاده کرد. ممکن است بپرسید که آیا این محدودیت KMM است؟ خیر! همین محدودیت در فلاتر و ریاکت نیتیو نیز وجود دارد و این به دلیل نصب نشدن Xcode بر روی ویندوز است و ارتباطی با KMM ندارد.
در هر صورت برای دریافت خروجی نهایی iOS به Xcode نیاز است. برای این مشکل چه کاری باید انجام دهیم؟
- خرید یک مک بوک: بهترین گزینه بنظر خرید لپ تاپ اپل باشد اما همانطور که میدانید، این لپ تاپها گران قیمت هستند
- هکینتاش: یک نسخه هک شده از مکینتاش به نام هکینتاش وجود دارد که امکان نصب آن بر روی سیستمهای غیر مک بوک وجود دارد
- استفاده از VMware: به کمک VMware میتوانید سیستم عامل Mac را بر روی ویندوز شبیه سازی کنید
شاید به این مقاله علاقهمند باشید: gradle چیست؟ حل مشکل بیلد نشدن گریدل
چرا باید Kotlin Multiplatform Mobile (KMM) را برای توسعه اپلیکیشنهای موبایل انتخاب کنیم؟
- این تکنولوژی توسط دو کمپانی بزرگ گوگل و Jetbrains در حال توسعه است
- خروجی اندروید این تکنولوژی کاملا بومی است و بهترین خروجی ممکن برای اپلیکیشن اندروید است
- خروجی iOS این تکنولوژی بهترین و نزدیکترین خروجی ممکن نسبت به سایر تکنولوژیها (فلاتر و ریاکت نیتیو) است
- اگر توسعه دهنده اپلیکیشنهای اندروید هستید، حتما با کاتلین آشنایی دارید بنابراین میتوانید به سرعت این تکنولوژی را یاد بگیرید
- توسعه اپلیکیشنها به زبان مدرن و قدرتمند کاتلین صورت میگیرد
- بر خلاف سایر تکنولوژیها طراحی UI به صورت جداگانه برای هر سیستم عامل و به صورت بومی طراحی میشود
- اگر هم اکنون اپلیکیشن اندرویدی با اندروید استودیو نوشتهاید و به نسخه iOS اپلیکیشن نیاز دارید، میتوانید به کمک KMM نسخه iOS آن را نیز به سرعت آماده کنید
شروع یادگیری KMM (Kotlin Multiplatform Mobile)
1. آموزش کاتلین
قبل از شروع آموزش KMM، باید با زبان برنامهنویسی کاتلین آشنا باشید. بنابراین اگر این زبان را هنوز یاد نگرفتهاید، میتوانید از دورههای استک لرن استفاده نمایید.
پیشنهاد: دوره گام به گام آموزش برنامهنویسی به زبان کاتلین (Kotlin)
2. آموزش برنامهنویسی در محیط اندروید استودیو با کاتلین
برای یادگیری کاتلین مولتی پلتفرم موبایل، باید برنامهنویسی اندروید را یاد بگیرید. بنابراین اگر یک توسعه دهنده اندروید نیستید، پیشنهاد میکنیم از دورههای استک لرن برای آموزش برنامهنویسی اندروید استفاده کنید.
پیشنهاد: پکیج آموزشی برنامهنویسی اندروید به زبان کاتلین در محیط اندروید استودیو
3. یادگیری Swift و SwiftUI
یکی از مزیتهای KMM طراحی رابط کاربری (UI) به صورت کاملا بومی است. در اندروید برای طراحی رابط کاربری میتوانید از لایههای XML کمک بگیرید و یا از Jetpack Compose استفاده کنید. برای iOS باید از SwiftUI برای طراحی رابط کاربری استفاده نمایید. بنابراین یادگیری SwiftUI که به زبان Swift است، الزامی خواهد بود.
چگونه یک پروژه KMM در اندروید استودیو بسازیم؟
برای ساخت اولین پروژه Kotlin Multiplatform Mobile مراحل زیر را انجام دهید.
- ابتدا Android Studio را باز کنید و بر روی دکمه Create Project کلیک کنید.
- سپس در بخش Templates، به آخر صفحه اسکرول کنید و گزینه KMM Application را انتخاب کنید.
- در این مرحله باید تنظیمات پروژه و اپلیکیشن اندروید را انجام دهید. برای تنظیمات اپلیکیشن اندروید، نام پکیج اندروید را در Package name بنویسید. سپس Minimum SDK را تنظیم کنید. (بهتر است از API 21 یا همان Lollipop Android استفاده کنید)
- اکنون باید سایر تنظیمات پروژه و همچنین تنظیمات اپلیکیشن iOS را انجام دهید. نام اپلیکیشن اندروید و iOS را به ترتیب وارد کنید. سپس باید نام ماژول Shared Code را بنویسید. در آپشن بعدی باید فریمورک iOS را مشخص کنید. اگر از CocoaPods استفاده کنید، باید Ruby نیز بر روی سیستم شما نصب شود.