Press "Enter" to skip to content

Rust در دنیای موبایل؛ وقتی شما هم اپلیکیشن سریع می‌خواید، هم ایمن

وقتی صحبت از برنامه‌نویسی موبایل می‌شه، همه اول از همه به Flutter، React Native، یا نهایتاً Kotlin و Swift فکر می‌کنن. این‌ها همشون عالی‌ان، اما اگه یه‌ذره بیشتر زیر پوست این ابزارها رو بخواید بررسی کنید، مخصوصاً وقتی اپلیکیشن قراره سنگین، real-time یا چندسکویی باشه، Rust یواش‌یواش از پشت صحنه میاد وسط صحنه و می‌گه: «سلام، من می‌تونم backend اپتون رو مثل برق اجرا کنم، بدون کرش و با حافظه‌ای امن‌تر از گاوصندوق بانک مرکزی!»

البته راستش اینه که Rust در موبایل هنوز ابزار مستقلی برای ساخت کامل UI مثل Flutter نداره، پس فعلاً نمی‌تونید با pure Rust یه اپ کامل native UI بسازید. اما توی ساخت لایه‌ی منطقی (business logic)، پردازش سنگین دیتا، رمزنگاری، یا شبکه‌سازی سریع، Rust یه سلاح قدرتمند توی جیب شماست.

سناریوی رایج اینه: اپلیکیشن رو با Kotlin یا Swift برای Android و iOS پیاده‌سازی می‌کنید، ولی اون تکه‌ی حساس که مثلاً داده‌ها رو encrypt می‌کنه، یا JSON سنگین رو parse می‌کنه، یا یه ماشین‌حالت (state machine) اجرا می‌کنه، رو با Rust می‌نویسید و با FFI (Foreign Function Interface) به اپ وصل می‌کنید.

ابراز‌های Rust برای موبایل

برای این کار، ابزارهایی مثل cargo-ndk برای Android و uniffi برای تولید binding‌های خودکار خیلی مفیدن. پروژه‌ی محبوب Mozilla’s UniFFI به شما اجازه می‌ده فقط با تعریف یک فایل interface ساده، به‌صورت خودکار binding برای Kotlin، Swift و حتی Python بسازید، بدون اینکه مجبور بشید دستی با extern "C" و header fileها کلنجار برید.

تو دنیای Android، شما می‌تونید خیلی راحت یه crate Rust بسازید، با NDK کامپایلش کنید و از داخل Kotlin صداش بزنید. چند تا flag نیاز دارید، یه Cargo.toml کمی تنظیم، و بوم: الان یه تکه کد با سرعت C و امنیت Rust تو دل اپ موبایل‌تونه. توی iOS هم وضعیت مشابهیه، با این تفاوت که Xcode معمولاً یه کم سخت‌گیرتره.

حتی یه قدم جلوتر بریم، اگر دنبال ساخت اپلیکیشن گرافیکی یا game هستید، موتورهایی مثل Bevy یا Macroquad دارن خروجی به Android و iOS رو هم پشتیبانی می‌کنن. شاید هنوز به Unity نرسیدن، ولی اگه یه بازی دوبعدی سریع و سبک می‌خواید، یا یه ابزار گرافیکی cross-platform، این‌ها گزینه‌های معقولی هستن.

یه مورد دیگه هم بحث WebAssembly روی موبایله. با Rust می‌تونید اپ‌هایی بنویسید که از طریق WebView روی موبایل اجرا بشن ولی منطقشون با wasm باشه. این یه روش جدیده برای ساخت اپ‌های سبک، امن، و قابل به‌روزرسانی بدون نیاز به اپ‌استور.

جمع‌بندی

البته باید اعتراف کرد توسعه‌ی اپلیکیشن موبایل با Rust هنوز مسیر همواری نداره. مستندات بعضی ابزارها ناقصه، گاهی مجبور می‌شید وارد دنیای ABI و symbol mangling بشید، و شاید debugging سخت‌تر از وقتی باشه که مستقیم با Kotlin یا Swift کار می‌کنید. ولی اگه شما از اون دسته برنامه‌نویسایی هستید که «performance»، «ایمنی حافظه»، و «کد قابل اشتراک بین پلتفرم‌ها» براتون از هر چیز دیگه‌ای مهم‌تره، Rust دقیقاً برای شماست.

در نهایت، شاید نتونید با Rust UI اپ رو بسازید، ولی می‌تونید اون مغز پشت UI رو باهاش بنویسید، و مطمئن باشید که این مغز نه memory leak داره، نه panic بی‌مورد، و نه نیاز به runtime سنگین. Rust در موبایل، کمتر کرش می‌کنه، سریع‌تر load می‌شه، و راحت‌تر قابل نگه‌داریه.

اولین نظر را ثبت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *