با کاتلین مولتی پلتفرم موبایل (KMM) رقیب جدی فلاتر و React Native آشنا شوید!

  • حسین کرمی
  • 01 اسفند 1400
What is Kotlin Multiplatform Mobile (KMM)?

 در سال‌های اخیر بحث تکنولوژی‌های توسعه کراس پلتفرم اپلیکیشن‌های موبایل بسیار داغ شده است. همانطور که احتمالا هم می‌دانید، فلاتر (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 بخشی از KMP است که کمپانی سازنده کاتلین یعنی Jetbrains تصمیم گرفت برای توسعه اپلیکیشن‌های موبایل یک SDK جداگانه بر اساس KMP توسعه دهد. بنابراین KMM به کمک تیم گوگل و Jetbrains در حال توسعه است و با توجه به ویژگی‌های برنامه‌نویسی 100% بومی در این تکنولوژی، انتظار می‌رود که یک رقیب جدی دیگری وارد بازار آینده‌ای نه چندان دور شود.

ممکن است از خود بپرسید که چرا من تا کنون اسمی از KMM نشنیده‌ام؟ چون هم اکنون KMM در نسخه آلفا است و به زودی و در بهار 1401 نسخه بتا منتشر می‌شود. احتمالا نسخه پایدار KMM تا چن ماه پس از انتشار نسخه بتا در دسترس عموم قرار خواهد گرفت. بنابراین این پروژه در حالتی تقریبا مسکوت در حال توسعه بوده است.

ممکن است به این مطلب علاقه داشته باشید: کاتلین (KMM) یا فلاتر (Flutter)؟

معماری Kotlin Multiplatform Mobile

 

پیش‌نیاز‌های 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) را برای توسعه اپلیکیشن‌های موبایل انتخاب کنیم؟

  1. این تکنولوژی توسط دو کمپانی بزرگ گوگل و Jetbrains در حال توسعه است
  2. خروجی اندروید این تکنولوژی کاملا بومی است و بهترین خروجی ممکن برای اپلیکیشن اندروید است
  3. خروجی iOS این تکنولوژی بهترین و نزدیک‌ترین خروجی ممکن نسبت به سایر تکنولوژی‌ها (فلاتر و ری‌اکت نیتیو) است
  4. اگر توسعه دهنده اپلیکیشن‌های اندروید هستید، حتما با کاتلین آشنایی دارید بنابراین می‌توانید به سرعت این تکنولوژی را یاد بگیرید
  5. توسعه اپلیکیشن‌ها به زبان مدرن و قدرتمند کاتلین صورت می‌گیرد
  6. بر خلاف سایر تکنولوژی‌ها طراحی UI به صورت جداگانه برای هر سیستم عامل و به صورت بومی طراحی می‌شود
  7. اگر هم اکنون اپلیکیشن اندرویدی با اندروید استودیو نوشته‌اید و به نسخه iOS اپلیکیشن نیاز دارید، می‌توانید به کمک KMM نسخه iOS آن را نیز به سرعت آماده کنید
KMM هم اکنون در نسخه آلفا قرار دارد و به زودی نسخه بتا منتشر خواهد شد. طبق توضیحات Jetbrains، ممکن است با انتشار نسخه‌های مهم مانند نسخه بتا و نسخه پایدار، تغییرات زیادی در معماری KMM به وجود آید. بنابراین در صورتی که هم اکنون از KMM برای توسعه اپلیکیشن‌های خود استفاده می‌کنید، باید ریسک هر نوع تغییری در نسخه‌های مهم آینده را در نظر داشته باشید زیرا احتمال تغییراتی در کد‌های شما وجود خواهد داشت.

 

شروع یادگیری KMM (Kotlin Multiplatform Mobile)

1. آموزش کاتلین

قبل از شروع آموزش KMM، باید با زبان برنامه‌نویسی کاتلین آشنا باشید. بنابراین اگر این زبان را هنوز یاد نگرفته‌اید، می‌توانید از دوره‌های استک لرن استفاده نمایید.

پیشنهاد: دوره گام به گام آموزش برنامه‌نویسی به زبان کاتلین (Kotlin)

 

2. آموزش برنامه‌نویسی در محیط اندروید استودیو با کاتلین

برای یادگیری کاتلین مولتی پلتفرم موبایل، باید برنامه‌نویسی اندروید را یاد بگیرید. بنابراین اگر یک توسعه دهنده اندروید نیستید، پیشنهاد می‌کنیم از دوره‌های استک لرن برای آموزش برنامه‌نویسی اندروید استفاده کنید.

پیشنهاد: پکیج آموزشی برنامه‌نویسی اندروید به زبان کاتلین در محیط اندروید استودیو

 

3. یادگیری Swift و SwiftUI

یکی از مزیت‌های KMM طراحی رابط کاربری (UI) به صورت کاملا بومی است. در اندروید برای طراحی رابط کاربری می‌توانید از لایه‌های XML کمک بگیرید و یا از Jetpack Compose استفاده کنید. برای iOS باید از SwiftUI برای طراحی رابط کاربری استفاده نمایید. بنابراین یادگیری SwiftUI که به زبان Swift است، الزامی خواهد بود.

 

چگونه یک پروژه KMM در اندروید استودیو بسازیم؟

برای ساخت اولین پروژه Kotlin Multiplatform Mobile مراحل زیر را انجام دهید.

  1. ابتدا Android Studio را باز کنید و بر روی دکمه Create Project کلیک کنید. ساخت پروژه جدید در اندروید استودیو
  2. سپس در بخش Templates، به آخر صفحه اسکرول کنید و گزینه KMM Application را انتخاب کنید. انتخاب KMM Application از Template اندروید استودیو
  3. در این مرحله باید تنظیمات پروژه و اپلیکیشن اندروید را انجام دهید. برای تنظیمات اپلیکیشن اندروید، نام پکیج اندروید را در Package name بنویسید. سپس Minimum SDK را تنظیم کنید. (بهتر است از API 21 یا همان Lollipop Android استفاده کنید) تنظیمات اپلیکیشن Android و پروژه
  4. اکنون باید سایر تنظیمات پروژه و همچنین تنظیمات اپلیکیشن iOS را انجام دهید. نام اپلیکیشن اندروید و iOS را به ترتیب وارد کنید. سپس باید نام ماژول Shared Code را بنویسید. در آپشن بعدی باید فریمورک iOS را مشخص کنید. اگر از CocoaPods استفاده کنید، باید Ruby نیز بر روی سیستم شما نصب شود. تنظیمات اپلیکیشن iOS و پروژه

KMP همان کاتلین مولتی پلتفرم است که امکان توسعه اپلیکیشن کراس پلتفرم را برای شما فراهم می‌کند. به کمک KMP می‌توانید اپلیکیشن برای اندروید، iOS، ویندوز، مک او اس، لینوکس و... توسعه دهید. بنابراین KMM بخش کوچکی از KMP است که به کمک آن می‌توانید اپلیکیشن برای اندروید و iOS توسعه دهید.

KMM هم اکنون در نسخه آلفا قرار دارد و به زودی نسخه بتا منتشر خواهد شد. انتظار می‌رود در کمتر از یک سال آینده نسخه پایدار آن آماده شود. هم اکنون می‌توانید از نسخه آلفا استفاده کنید اما باید در نظر داشته باشید که ممکن است با انتشار نسخه‌های جدید از KMM، تغییراتی ایجاد شود و نیاز به تغییر برخی موارد در کد خود داشته باشید.

همانند فلاتر، کاتلین نیز به کمک پلاگین KMM می‌تواند اپلیکیشن کراس پلتفرم توسعه دهد. در صورتی که تیم کوچکی دارید و یا با API نیتیو سیستم عامل زیاد سر و کار ندارید، انتخاب فلاتر گزینه مناسبی است اما در صورتی که تیم بزرگی دارید و یا کیفیت کار برایتان مهم است و یا با API سیستم عامل اندروید یا iOS سر و کار دارید، کاتلین گزینه مناسب‌تری است.

به کمک این SDK می‌توانید اپلیکیشن iOS و Android را به صورت همزمان توسعه دهید. در اندروید استودیو یک ماژول Shared Code دارید که کد‌های مشترک هر دو اپلیکیشن را در آنجا می‌نویسید. سپس UI هر کدام به صورت جداگانه و نیتیو طراحی می‌شوند. اکنون می‌توانید به کمک Shared Code و UI طراحی شده، خروجی هر کدام را در کلاس مد نظر خود بنویسید و خروجی را دریافت کنید.

بله! تیم سازنده کاتلین یعنی Jetbrains با همکاری گوگل در حال توسعه این SDK می‌باشد. هم اکنون نسخه آلفا (Alpha) منتشر شده است. انتظار می‌رود در کمتر از یکسال آینده نسخه پایدار و نهایی منتشر شود.

بله! به کمک Kotlin Multiplatform (KMP) می‌توانید اپلیکیشن‌های iOS توسعه دهید. البته پلاگین KMM که توسط گوگل و جت برینز در حال توسعه است، مخصوص توسعه اپلیکیشن‌های موبایل (اندروید و iOS) ساخته شده است و با آن می‌توانید همزمان برای اندروید و iOS اپلیکیشن توسعه دهید.

Kotlin Multiplatform Mobile (KMM) در واقع یک SDK برای توسعه اپلیکیشن‌های کراس پلتفرم اندروید و iOS است. به کمک این پلاگین می‌توانید اپلیکیشن موبایل را توسعه دهید و با اشتراک بخش‌هایی از کد بین دو سیستم عامل اندروید و iOS، از نوشتن کد تکراری جلوگیری کنید و به سرعت اپلیکیشن خود را توسعه دهید.

مزیت Kotlin این است که به شما امکان می دهد منطق و کتابخانه های زیر لایه UI را به اشتراک بگذارید. این به توسعه دهندگان این امکان را می دهد تا مستقیماً با محیط اصلی خود (iOS/Android) تعامل داشته باشند.
تجربه رابط کاربری بومی: Kotlin Multiplatform برخلاف React Native از توسعه‌دهندگان نمی‌خواهد که رابط کاربری خود را دنبال کنند.
ارسال نظر :
پاسخ به