کاتلین یا جاوا ، کدامیک بهتر است؟ – مقایسه و راهنمای کاربردی
- خواهید آموخت کاتلین و جاوا چه تفاوتها و چه مزایایی دارند.
- میآموزید کدام زبان را بهتر است برای پروژه یا مسیر شغلی خود انتخاب کنید.
- با قابلیتهای اصلی و نوآوریهای کاتلین در توسعه اندروید آشنا میشوید.
- یاد میگیرید در پروژههای اندرویدی چگونه از ویژگیهای مفید این زبانها استفاده کنید.

برنامه نویسی اندروید با جاوا
مزایای جاوا چیست؟
در ادامه، مزایای جاوا فهرست شدهاند.
- زبانی چندپلتفرمی (Multi-Platform) است و بر روی هر دستگاه، سرور و سیستم عاملی اجرا میشود.
- کدگذاری آن قوی است و دستورالعملهای زبان جاوا مشکلی برای حافظه و سایر برنامهها ایجاد نمیکنند.
- جاوا در زمره زبانهای برنامهنویسی شیگرا قرار میگیرد و به توسعهدهنده امکان «برنامه نویسی ماژولار» (Modular Programming) و جدا کردن عملکردهای مختلف برنامه را میدهد.
- در مقایسه با سایر زبانهای برنامهنویسی، استفاده، کامپایل و «اشکال زدایی» (دیباگ | Debugging) در جاوا آسانتر است.
- جاوا زبانی ایمن محسوب میشود و با کنار گذاشتن «اشارهگرهای صریح» (Explicit Pointers) میزان خطرات و تهدیدهای امنیتی با استفاده از این زبان کاهش مییابد.

معایب جاوا چیست؟
زبان قدرتمند و باسابقه جاوا محبوبیت زیادی در بین برنامهنویسان دارد، اما به هر حال چالشهایی هم در زمینه کار با آن برای توسعهدهندگان وجود داشته است.
در ادامه چالشها و معایب کار با جاوا ارائه شدهاند.
- سینتکس (Syntax) مورد استفاده در زبان جاوا در مقایسه با سایر زبانهای برنامهنویسی نظیر ++C و «پایتون» (Python) کمی پیچیده و دست و پا گیر است.
- برای دسترسی به محتوایی خاص حتماً باید دستگاه و تجهیزات مورد استفاده با زبان جاوا سازگاری داشته باشند.
- جاوا رابط کاربری گرافیکی جذابی را تا کنون ارائه نداده است؛ با این حال رابطهای گرافیکی مختلفی برای جاوا وجود دارند، اما هیچکدام از آنها برای ساخت و کادربندی «رابط کاربری» (User Interface) پیچیده مناسب نیستند.
- دسترسی و استفاده از آخرین فناوریهای ارائه شده در زمینه توسعه اپلیکیشن موبایل به وسیله زبان جاوا آسان نیست.
- در زمینه فرایند تست نرمافزار، نیاز است تا کدهای بیشتری نوشته شوند و همین امر درصد خطاها و اشکالات احتمالی را نیز افزایش میدهد.
- درک و خواندن کدهای نوشته شده به زبان جاوا به دلیل داشتن کلمات و جملات پیچیده و طولانی، دشوار است.
برنامه نویسی اندروید با کاتلین
زبان نوظهور «کاتلین» (Kotlin) به دلیل قابلیتها و ویژگیهای خود در سالهای اخیر مورد استقبال بسیاری از برنامهنویسان و شرکتها قرار گرفته است.
بسیاری از برنامهنویسان در دو راهی انتخاب بین کاتلین یا جاوا برای برنامهنویسی اندروید، زبان کاتلین را انتخاب کردهاند. زبان برنامهنویسی کاتلین نخستین بار در سال 2017 میلادی (1396 شمسی) به صورت عمومی عرضه شد و تنها دو سال بعد از آن یعنی در سال 2019 میلادی (1398 شمسی) توسط گوگل به عنوان دومین زبان رسمی برنامهنویسی اندروید معرفی شد.
کاتلین زبانی نسبتاً ساده است و در مقایسه با جاوا و سایر زبانهای برنامهنویسی از تشریفات و قوانین کمتری برخوردار است. از بارزترین ویژگیهای زبان کاتلین میتوان به تعامل آن با جاوا و قابلیت اجرای آن روی «ماشین مجازی جاوا» (Java Virtual Machine) اشاره کرد. توسعهدهندگانی که قصد استفاده از این زبان برای برنامهنویسی اندروید را دارند، باید درکی خوبی از مفاهیم و ساختارهای اصلی برنامهنویسی داشته باشند.
مزایای کاتلین چیست؟
رشد و محبوبیت زبان کاتلین در سالهای اخیر به واسطه قابلیتها و ویژگیهای منحصربهفردی بوده که این زبان در اختیار برنامهنویسان قرار داده است. بسیاری از توسعهدهندگان اندروید امروزه در انتخاب بین کاتلین یا جاوا زبان کاتلین را انتخاب میکنند.
در ادامه به بررسی مزایا و نکات مثبت کاتلین پرداختهایم.
- سرعت کامپایل برنامهها در زبان کاتلین بالاتر است و همچنین از افزایش حجم برنامه نیز جلوگیری به عمل میآورد.
- کاتلین کدهای نوشته شده را به «بایتکد» (Bytecode) تبدیل میکند به این دلیل که امکان اجرا در ماشین مجازی جاوا را داشته باشند.
- کاتلین در برابر خطای معروف NullPointerException ایمن است.
- اسکریپتهای کاتلین به پیکربندی پروژهها در اندروید استودیو (Android Studio) برای تکمیل خودکار کدها کمک میکند. در نتیجه، میزان خطا در زمان کامپایل کاهش مییابد.
- قابلیت همکاری با جاوا اسکریپت برای توسعه وب از مهمترین ویژگیهای کاتلین به حساب میآید.

معایب کاتلین چیست؟
زبان کاتلین در کنار تمام مزایا و ویژگیهای مثبتی که ارائه کرده است، نکات منفی و ایراداتی نیز دارد.
در ادامه مهمترین ایرادات کاتلین مورد بررسی قرار گرفتهاند.
- کاتلین زبانی نوظهور است و در نتیجه، جامعه توسعهدهندگان آن نیز در مقایسه با سایر زبانهای شناخته شده و محبوب کوچکتر است.
- الگوهای به کار رفته در کاتلین از ساختاری ضعیف برخوردار هستند و کدهای نوشته شده خوانایی کمتری دارند.
- کتابخانهها، منابع و آموزشهای کمتری برای کاتلین در دسترس هستند. علاوه بر این، تعداد انجمنها و گروههای مرتبط با آن نیز در مقایسه با سایر زبانهای برنامهنویسی کمتر است.
- تعداد برنامهنویسان کاتلین نسبت به سایر زبانها کمتر است. بنابراین، پیدا کردن برنامهنویس یا مربی با تجربه کاتلین اندکی دشوار خواهد بود.
- کاتلین و جاوا شباهتهای زیادی به یکدیگر دارند، اما مهاجرت از جاوا به کاتلین همچنان فرایندی زمانبر به حساب میآید، زیرا برنامهنویسان به زمان زیادی برای آشنایی کامل با آن نیاز دارند.
چه برنامه هایی با کاتلین نوشته شدهاند؟
با توجه به قابلیتهای جذاب کاتلین، بسیاری از شرکتهای بزرگ و کوچک در سالهای اخیر به استفاده از این زبان برنامهنویسی روی آوردهاند. البته این اقبال زیاد برای استفاده از کاتلین، مرهون حمایتهای شرکت بزرگی همچون گوگل بوده است.
شرکتهای مطرحی در دنیا همچون گوگل، نتفلیکس، اوبر، Atlassian ،Pinterest ،Kickstarter و بسیاری از شرکتهای دیگر هم اکنون از زبان برنامهنویسی کاتلین استفاده میکنند.

شکی نیست که در سالهای آینده شرکتهای بیشتری از زبان برنامه نویسی کاتلین برای پروژههای تجاری خود استفاده خواهند کرد. در ادامه شرکتها و برنامههایی فهرست شدهاند که از کاتلین برای توسعه استفاده کردهاند.
- گوگل
- اوبر
- Square
- Trello
- Evernote
- Slack
- Corda
- Tinder
- N26
- نتفلیکس (Netflix)
معرفی فیلم های آموزش برنامه نویسی اندروید با کاتلین یا جاوا

امروزه با توجه به ضریب نفوذ بالای استفاده از گوشیهای هوشمند در بین آحاد جامعه و همچنین، سهم بالای سیستم عامل اندروید در این بازار، برنامهنویسی اندروید و توانایی ساخت اپلیکیشن به حرفه بسیار پر سودی تبدیل شده است. در این بین افراد زیادی رویای برنامهنویس اندروید شدن و کسب درآمد بالا از این بازار را دارند. علاوه بر این، بسیاری از مشاغل و کسب و کارها نیز با توجه به حضور کاربران زیاد در این پلتفرم، علاقهمند به استفاده از این پتانسیل بالا برای رشد کسب و کار خود هستند. در نتیجه، تقاضا برای جذب و استخدام برنامهنویسان اندروید از این جهت نیز افزایش مضاعفی داشته است. تمام موارد بالا حاکی از آن است که با توجه به پتانسیل بالقوه موجود در این بخش، انتخاب این حوزه برنامهنویسی کار درستی است.
در پلتفرم فرادرس، دورههای آموزشی مرتبط با برنامه نویسی اندروید در صفحه مجموعه آموزشهای اندروید قابل دسترسی هستند. در مجموعه آموزشهای برنامه نویسی اندروید فرادرس، دورههای آموزشی مرتبط با زبان برنامهنویسی کاتلین و جاوا در جهت توسعه اندروید وجود دارند. این بخش شامل ۲ دوره آموزش مقدماتی و تکمیلی کاتلین برای آشنایی با نحوه توسعه اپلیکیشن اندروید با کاتلین است.
علاوه بر این، دورههای پروژهمحور و دورههایی هم برای کاربردهای خاص یا بخشهای مهم مربوط به توسعه اندروید مثل ارتباط با پایگاه داده قابل دسترسی هستند. در زمینه برنامهنویسی اندروید با جاوا نیز این مجموعه با داشتن ۳ دوره آموزش مقدماتی، تکمیلی و پیشرفته اندروید کاملاً غنی است. پس از گذراندن دورههای مقدماتی، تکمیلی و پیشرفته میتوان از سایر دورههای این مجموعه برای تسلط و یادگیری هر چه بیشتر برنامه نویسی اندروید استفاده کرد.
- برای دسترسی به صفحه فیلم های آموزش اندروید و شروع یادگیری + اینجا کلیک کنید.
کاتلین یا جاوا ، کدامیک به لحاظ فنی بهتر است؟
امروزه توسعه اپلیکیشن اندروید به یکی از اهداف و برنامههای هر سازمانی تبدیل شده است. دلیل این انتخاب نیز کاملاً مشخص است، زیرا تعداد زیادی از کاربران امروزه از گوشیهای هوشمند مبتنی بر سیستم عامل اندروید استفاده میکنند.
بیشتر انتخابها و تردیدها در این حوزه بین دو قطبی کاتلین یا جاوا شکل میگیرد. تا قبل از معرفی کاتلین برای توسعه اندروید، انتخاب چندان دشوار نبود، اما امروزه با حضور کاتلین و تمجید افراد مختلف از آن، انتخاب میان جاوا یا کاتلین سخت شده است. همین مسئله باعث شکل گرفتن سوالات زیادی برای توسعهدهندگان در این زمینه میشود.
به منظور پاسخ به این پرسشها و ارائه چشماندازی روشن برای انتخاب میان کاتلین یا جاوا به بررسی اصلیترین ویژگیهای هر کدام از این دو زبان در برنامهنویسی اندروید و تفاوت میان آنها پرداختهایم.
منظور از Null Saftey در کاتلین چیست؟
«امنیت در برابر مقادیر تهی» (Null Saftey) یکی از مهمترین قابلیتهای زبان کاتلین است. این ویژگی کاربردی کمک میکند تا از خطاهای مربوط به اختصاص مقادیر «تهی» (Null) در برنامه جلوگیری شود.
به زبان ساده، زمانی که متغیری در برنامه تعریف میشود ولی مقداری به آن اختصاص نمییابد، اخطار مرجع تهی رخ میدهد.
مشکل «استثنای اشارهگر تهی» (Null Pointer Exception | NPE) یکی از خطاهای رایج در برنامهنویسی اندروید با جاوا است.
البته همچنان در کاتلین میتوان متغیرهایی با مقادیر null تعریف کرد، اما باید با صراحت آن را در برنامه اعلان کرد. زبان کاتلین با ارائه قابلیت Null Saftey به دغدغه بسیاری از برنامهنویسان اندروید پایان داده است.
کلاسهای داده در کاتلین
یکی از مهمترین ویژگیهای زبان کاتلین که در انتخاب بین کاتلین یا جاوا کفه ترازو را به سمت کاتلین سنگینتر میکند، قابلیت استفاده از کلاسهای داده (Data Classes) است.
این ویژگی برای رفع مشکل حجم بسیار بالای «کدهای قالبی» (Boilerplate Code) در زبان جاوا ارائه شده است.
همانطور که پیشتر نیز بیان شد، هدف اصلی از معرفی کلاسهای داده در زبان کاتلین حذف کدهای تکراری در زبان جاوا بوده است.
در ادامه، برای روشنتر شدن این موضوع کلاسی یکسان در دو زبان جاوا و کاتلین تعریف شده است.
در نمونه کد بالا، کلاسBook در زبان جاوا تعریف شده است.برای مقایسه بهتر همین کلاس در زبان کاتلین با استفاده از کلاسهای داده پیادهسازی شده است.
همان طور که مشاهده میشود، حجم کدهای نوشته شده با استفاده از کلاس داده در کاتلین در مقایسه با تعریف همین کلاس در زبان جاوا بسیار کمتر است.

تابع اکستنشن در کاتلین
«تابع اکستنشن» (Extension Functions) یکی از قابلیتهای جذاب زبان کاتلین است که استفاده از این زبان را برنامهنویسان لذت بخشتر میکند. نه تنها کاتلین یا جاوا بلکه هر زبان برنامهنویسی دیگری نیز شامل تعدادی کلاس داخلی نظیرString ،List ،Toast و سایر موارد است.
گاهی اوقات برنامهنویس نیاز دارد برخی از ویژگیهای جدید را به این کلاسهای پایهای اضافه کند. در زبان کاتلین به کمک تابع اکستنشن این امکان وجود دارد تا ویژگی مورد نظر را به کلاس اضافه کرد. این قابلیت جذاب به برنامهنویس این امکان را میدهد تا عملکردهای کلاس موجود را بدون ارثبری یا بهرهگیری از الگوهای طراحی مانند «دکوراتور» (Decorator) گسترش دهد.
کلمه کلیدیthis در نمونه کد بالا مربوط به شی استفاده کننده از تابعswap در برنامه است.

در نتیجه، با اضافه کردن تابعswap به کلاسMutableList میتوان در هر قسمتی از برنامه از این تابع استفاده کرد.
مثال بالا، نمونهای از کاربرد تابعswap در برنامه است.
اسمارت کست Smart Cast در کاتلین
در خصوص مبحث مهم «تبدیل موقت نوع» (Cast)، کامپایلر زبان کاتلین بسیار هوشمند عمل میکند. در خیلی از موارد نیازی نیست برنامهنویس به صورت دستی به تبدیل نوع بپردازد و کامپایلر زبان مربوطه به صورت خودکار این کار را انجام میدهد. علاوه بر این، برای مقادیر «غیرقابل تغییر» (Immutable) ابتدا بررسی انجام میشود و سپس در صورت نیاز تبدیل نوع انجام میشود.
استنتاج نوع در کاتلین
زبان برنامهنویسی کاتلین به شدت به نوع متغیر حساس است و از قابلیت «استنتاج نوع» (Type Inference) پشتیبانی میکند. به زبان ساده استنتاج نوع به تشخیص نوع متغیر به صورت خودکار توسط کامپایلر مربوط میشود و دیگر نیازی به تعیین صریح نوع متغیر نیست. در قطعه کد زیر، مثالی در خصوص استفاده از این ویژگی آورده شده است.
برنامه نویسی تابعی
اعداد15 و11 خروجی نمونه کد بالا هستند. منظور از توابع مرتبه بالا آن دسته از توابعی هستند که تابع را به عنوان پارامتر ورودی دریافت میکنند و به عنوان خروجی نیز تابع بر میگردانند. به عنوان مثال، کد زیر را در نظر بگیرید.
در نمونه کد بالاfunc نام پارامتر و( ) -> Unit نوع تابع است. در این صورت گفته میشود کهfunc تابعی است که پارامتری دریافت نکرده و مقداری نیز بر نمیگرداند. عبارت لامبدا یا تابع ناشناس در واقع «تابعی تحت اللفظی» (Function Literal) است، یعنی تابعی که اعلان نمیشود اما بلافاصله به عنوان عبارت ارسال میشود. در ادامه، مثالی در این خصوص ارائه شده است.
کاتلین یا جاوا ، چرا کاتلین بهتر است؟
بعد از بررسی و مقایسه دو زبان کاتلین و جاوا سوالاتی نظیر «کاتلین یا جاوا برای برنامهنویسی اندروید» و «کاتلین یا جاوا کدامیک بهتر است» برای علاقهمندان شکل میگیرد. در نهایت، برای انتخاب کاتلین یا جاوا برای برنامهنویسی اندروید و همچنین، پاسخ به سوالات فوق، باید به طور دقیق این دو زبان را مورد بررسی قرار داد و انتخابی درست داشت.
بر اساس جنبههایی که در ادامه به بررسی آنها خواهیم پرداخت، زبان برنامهنویسی کاتلین نسبت به جاوا برای برنامهنویسی اندروید انتخاب مناسبتری است.

امکان کامپایل کاتلین به بایت کد یا جاوا اسکریپت
با استفاده از این قابلیت، کد منبع (Source Code) برنامه را بعد از کامپایل و اجرا از طریق ماشین مجازی میتوان بر روی هر پلتفرمی اجرا کرد. با تبدیل برنامه به بایتکد میتوان آن را در شبکه انتقال داد و توسط ماشین مجازی جاوا اجرا کرد.
استفاده از فریمورک ها و کتابخانه های مختلف در کاتلین
برنامههای نوشته شده با زبان کاتلین میتوانند از تمام فریمورکها و کتابخانههای موجود در آن استفاده کنند. امکان استفاده از فریمورکهای پیشرفتهای که به پردازش حاشیهنویسی متکی هستند نیز در کاتلین وجود دارد. نکته مهم دیگر در خصوص کاتلین امکان ادغام آن با Maven ،Gradle و سایر سیستمهای ساخت (Build Systems) است.
یادگیری و درک آسان کاتلین
امکان تبدیل خودکار کدهای جاوا به کاتلین
قابلیت Null-Safety در کاتلین
زبان برنامهنویسی کاتلین با ارائه قابلیت مدیریت مقادیر null، توسعهدهندگان اندروید را از شر خطای همیشگی و دردسرساز «استثنای اشارهگر تهی» (Null Pointer Exception | NPE) خلاص کرد. در کاتلین از کامپایل کردن کدهایی که سعی در اختصاص یا برگرداندن مقادیر null دارد، خودداری میشود. به عنوان مثال، نمونه کد زیر را در نظر بگیرید.
مرور و بررسی آسان تر کدها در کاتلین
یکی از نقاط قوت زبان کاتلین «سینتکس» (Syntax) خوانای آن است. بنابراین، مرور و بررسی مجدد کدها در آن کار آسانی به حساب میآید، حتی برای آن دسته از اعضای تیم برنامهنویسی که ممکن است با این زبان آشنا نباشند.
آینده زبان کاتلین چگونه است؟
داشتن آینده روشن دلیل بسیاری از افرادی است که در دو راهی میان کاتلین یا جاوا رای به انتخاب زبان کاتلین دادهاند. در سالهای گذشته، اقبال برنامهنویسان و کسب و کارها به استفاده از کاتلین رشد تصاعدی را تجربه کرده است. بسیاری از شرکتهای بزرگ در دنیای وب نظیر پینترست، Flipboard و Basecamp در حاضر از کاتلین برای توسعه ساختارهای اصلی خود استفاده میکنند.
علاوه بر این، حمایتهای اخیر گوگل از کاتلین و معرفی آن به عنوان زبان رسمی توسعه اندروید نیز گواه قطعی برای آینده روشن کاتلین است.
سوالات متداول در خصوص انتخاب کاتلین یا جاوا
تا به اینجای نوشته، دو زبان برنامهنویسی کاتلین و جاوا معرفی شدند و ویژگیها و قابلیتهای هر کدام به تفصیل مورد بررسی قرار گرفتند. در ادامه سعی شده است تا به برخی از رایجترین سوالات در خصوص انتخاب کاتلین یا جاوا برای برنامهنویسی اندروید پاسخ داده شود.
مزایای کاتلین برای کسب و کارها چیست؟
امروزه با توجه به سرعت بالای تغییرات در دنیای فناوری، بسیاری از کسب و کارها و سازمانها به دنبال بهینهتر کردن فعالیتهای خود و همچنین کاهش هزینهها هستند. در همین راستا، بهروز بودن و استفاده از جدیدترین فناوریها در دنیای برنامهنویسی میتواند به رشد هر چه بیشتر این کسب و کارها و کنار گذاشتن رقبا کمک شایانی را ارائه دهد.

استفاده از زبان نوظهور کاتلین که در سالهای اخیر به عنوان جایگزینی برای جاوا معرفی شده نیز مصداق همگامی با تغییرات و بهروز بودن است. در ادامه، مزایای کاتلین برای کسب و کارها عنوان شده است.
- با توجه به قابلیت تعامل بالای کاتلین، استفاده از آن عملاً ریسک زیادی را متوجه کسب و کار نمیکند.
- بررسی مجدد کدها و یادگیری زبان کاتلین بسیار آسان است.
- کاتلین ترکیبی از برنامهنویسی عملکردی و تابعی است. در نتیجه، برنامههای ایجاد شده با آن عملکرد فوق العاده خوبی دارند.
- کسب و کارها میتوانند از زبان برنامهنویسی کاتلین برای هر گونه توسعه، نظیر توسعه مبتنی بر سرور، وب و اندروید استفاده کنند.
آیا با کاتلین میتوان پروژههای چندپلتفرمی را توسعه داد؟
با استفاده از امکانات چندپلتفرمی کاتلین میتوان پروژههایی قابل اجرا را بر روی پلتفرمهای مختلف نظیر وب، دسکتاپ و سایر پلتفرمهای بومی ساخت. برنامههای کاتلین بر روی سیستم عاملهای مختلف همچون اندروید، iOS، لینوکس، macOS، ویندوز و سایر موارد قابل اجرا هستند.
کاتلین یا جاوا ، کدامیک سریع تر است؟
جاوا زبان برنامهنویسی سریعتری نسبت به کاتلین است. بر اساس یافتههای حاصل از پژوهشها، زبان جاوا در زمینه کامپایل به طور متوسط 13 درصد از کاتلین سریعتر است. با این حال، تفاوت در سرعت این دو زبان تنها در مرحله کامپایل به چشم میآید.
شباهت های میان کاتلین و جاوا چیست؟
کاتلین یا جاوا ، کدامیک ایمن تر است؟
زبان جاوا برای آسان کردن کدنویسی، امکان استفاده از کدهای «شخص ثالث» (Third-Party) را به برنامهنویس میدهد. مدیریت و حذف باگ در زبان جاوا نسبت به کاتلین بسیار آسانتر است. در مجموع، در مقایسه با کاتلین جاوا از استانداردهای امنیتی بالاتری برخوردار است.
کاتلین یا جاوا ، کدامیک برای توسعه بک اند بهتر است؟
جمعبندی
این روزها اگر فردی به دنبال یادگیری برنامهنویسی اندروید باشد، یکی از دو راهیهایی که با آن روبرو خواهد شد، انتخاب کاتلین یا جاوا برای توسعه اندروید است. برای این که فرد بهترین گزینه را بین کاتلین یا جاوا برای توسعه اندروید انتخاب کند باید اطلاعات کاملی در خصوص این دو زبان داشته باشد.
به طور کلی انتخاب بهترین گزینه به عوامل مختلفی بستگی دارد. اگر فرد قبلاً تجربه برنامهنویسی با زبان جاوا را داشته است، مطمئناً انتخاب جاوا برای شروع مسیر برنامهنویسی اندروید عاقلانهتر است. علاوه بر این، با توجه به ويژگیهای مشترک کاتلین و جاوا یادگیری و مهاجرت به کاتلین نیز برای این افراد در آینده آسانتر خواهد بود. در حال حاضر نیز کاتلین به دلیل قابلیتها و ویژگیهای منحصر به فردی که در زمینه برنامهنویسی اندروید ارائه کرده است، گزینه بسیار خوبی برای برنامهنویسی اندروید به حساب میآید.
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید













