آینده بدون گوشی های هوشمند را تصور کنید. دنیایی به دور از تکنولوژی که غیرقابل باور است. در دنیای امروز ۷۰ درصد از سهم بازار جهانی گوشی را سیستم عامل اندروید به خود اختصاص داده است و شرایطی را فراهم کرده تا افراد علاقه مند به برنامه نویسی در حیطه آموزش برنامه نویسی اندروید و ساخت اپلیکیشن های کاربردی فعالیت داشته باشند.
مسیر و نقشه یادگیری برنامه نویسی اندروید با کاتلین
-
قدم اول : یادگیری الگوریتم و فلوچارت
الگوریتم و فلوچارت اولین قدم در مسیر متخصص برنامه نویس اندروید شدن است. در این بخش ذهنیت یک برنامه نویس را پیدا می کنید و درک کاملی از اینکه سیستم های کامپیوتری چگونه کار می کنند بدست می آورید.
-
قدم دوم: زبان برنامه نویسی کاتلین
کاتلین بزرگترین زبان برنامه نویسی حال حاضر برای برنامه نویسی اندروید است و یا بهتر بگوییم قدرتمند ترین زبان برنامه نویسی اندروید. در سال 2017 رسما توسط گوگل معرفی شد و از سال 2019 تبدیل به یک زبان برنامه نویسی اندروید شد و در حال حاضر هر کتابخانه و تکنولوژی که گوگل برای اندروید می سازد با زبان برنامه نویسی کاتلین است.
-
قدم سوم: برنامه نویسی در محیط اندروید استودیو
اصلی ترین بخش آموزش برنامه نویسی اندروید در این بخش می باشد. شما برای تبدیل شدن به یک متخصص اندروید حتما باید وارد محیط نرم افزار اندروید استودیو شوید و با استفاده از زبان برنامه نویسی کاتلین (که زبان اصلی این سیستم عامل است) برنامه های مورد نظر خود را در این محیط پیاده سازی و اجرا کنید.
هر چند که جاوا در اندروید منسوخ شده است ما در آگهی های استخدام مدام می بینیم که به دنبال استخدام افرادی هستند که زبان اصلی انها زبان کاتلین باشد، اما در کنار کاتلین کمی فلاتر و جاوا هم یاد گرفته باشند. به همین دلیل این دوره شامل آموزش برنامه نویسی اندروید با جاوا و همچنین فریم ورک فلاتر نیز می باشد تا بتوانید روزمه کاملی برای ورود به بازار کار داشته باشید. و بعد از شرکت در این دوره اموزشی به هیچ اموزش دیگری در زمینه برنامه نویسی موبایل نیاز نداشته باشید.
درباره زبان برنامه نویس کاتلین
زبان برنامه نویس کاتلین توسط شرکت جت بنز توسعه و خلق داده شده است. شروع ساخت این زبان از سال 2011 کلید خورده بود ولی پس از 5 سال و در سال 2016 اولین نسخه بصورت رسمی منتشر شد.
سال 2017 گوکل اعلام کرد که احتمالا برای توسعه برخی اپلیکیشن ها و توسعه آنها از زبان کاتلین استفاده کند و در سال 2019 بصورت رسمی اعلام شد که زبان رسمی برای توسعه اپلیکشین های اندرویدی ، کاتلین است. در واقع یک مهاجرت از جاوا به کاتلین صورت گرفت و بسیاری از توسعه دهندگان اپلیشن های مویابل از زبان جاوا به کاتلین مهاجرت کردند و با این تغییر همگام شدند. و در حال حاضر بیشتر اپلیشکن های اندروید که بصورت حرفه ای توسعه داده می شوند به زبان کاتلین پیاده سازی شده اند.
با وجود اینکه کاتلین شباهت های زیادی با زبان جاوا دارد و حتی می تواند از کل کتابخانه هایی که در جاوا تعریف شده است استفاده کند، اما برخلاف تصور اشتباه برخی افراد ، کاتلین همان جاوا نیست و حتی نسخه ارتقا یافته ی جاوا هم نیست. بیس ساختاری این دو زبان کاملا با هم متفاوت است و این دو را نباید باهم اشتباه گرفت.
اینکه کاتلین می تواند در کنار زبان جاوا به خوبی کار کند و از کتابخانه های جاوا به راحتی استفاده کند به معنای سازگاری خیلی زیاد زبان کاتلین با زبان جاواست.
اگر دقت کنید کسانی که برنامه نویس جاوا هستند خیلی راحت می توانند زبان کاتلین را یاد بگیرند و بالعکس؛ این دقیقا بخاطر همین مساله است که زبان کاتلین از کتابخانه های جاوا استفاده می کند و از لحاظ سینتکس در بسیاری از مسائل شبیه جاوا است؛ همین مسئله باعث می شود که برای برنامه نویس های جاوا ، کاتلین زبان مناسبی برای مهاجرت باشد.
مزایای زبان برنامه نویسی کاتلین
- کاتلین یک زبان سطح بالاست. به این معنا که این زبان ها به زبان ماشین نوشته نمی شوند و نیاز به یک کامپایلر دارند که کدهای آن را به کدهای قابل فهم برای ماشین تبدیل کند. مفهوم کامپایلر در ادامه توضیح داده شد.
- کاتلین کراس پلت فرم هست. مهم نیست سیستم عامل شما مک ، لینوکس یا ویندوز باشد و در چه محیطی کد نویسی می کنید. شما می توانید در هر محیطی کد کاتلین را بنویسید و از آن خروجی بگیرید؛ به این دلیل که کاتلین کراس پلت فرم است.
- کاتلین شی گرا است. یکی از خصوصیت های بعضی از زبان های برنامه نویسی مبحث شی گرایی یا Object Oriented بودن است.
برنامه نویسی شی گرا (OOP) یک مدل برنامه نویسی کامپیوتری است که طراحی نرم افزار را حول داده ها یا اشیاء سازماندهی می کند تا توابع و منطق. قابلیت شی گرایی در زبان برنامه نویسی ، توسعه اپلیکیشن ها و برنامه ها را بصورت خلاصه خیلی راحتتر می کند و استفاده خیلی گسترده ای در زبان های برنامه نویسی دارد و زبان کاتلین نیز از شی گرایی به خوبی استفاده می کند.
- کاتلین خصوصیت Null Safety دارد. در زبان های برنامه نویسی یکی ازمسائلی که اپلیکیشن هایی که با زبان جاوا نوشته می شوند ، دارند این است که خصوصیت نال سیفتی ندارند. احتمالا برایتان پیش آمده است که بسیاری از نرم افزار های اندرویدی در حین کار با نرم افزار، اپلیکیشن متوقف و از برنامه خارج می شود؛ درصد خیلی زیادی از این اتفاق به دلیل نال ها هستند و برنامه هایی که با جاوا نوشته می شوند null ها را به خوبی مدیریت نمی کنند.
یکی از دلایل اصلی که زبان کاتلین نسبت به زبان جاوا بهتر کار می کند null safety بودن کاتلین است و این یکی از نکات ضعف جاوا است.
- کاتلین دارای چندین کامپایلر است.
کامپایلر نرم افزاری است که کد های نوشته شده توسط برنامه نویس زا به کد قابل فهم برای ماشین تبدیل می کند. کدی که به زبان جاوا یا کاتلین نوشته می شود مستقیما نمی تواند تبدیل به کدی شود که برای ماشین قابل فهم است و باید نرم افزار واسطی باشد که کدهای نوشته را برای ماشین قابل خواندن کند تا ماشین بتواند آنها را اجرا کند.
اولین بار که کاتلین بصورت رسمی در سال 2016 معرفی شد فقط یک کامپایلر داشت و آن هم Kotlin/JVM به معنی ماشین مجازی جاوا بود. جی وی ام در واقع نرم افزاری است که کدهای جاوا را کامپایلر می کند و آنها را تبدیل به بایت کد جاوا می کند و این بایت کدها می توانند روی پلت فرم هدف (دستگاهها و سیستم عامل ها) تبدیل به کدی شوند که پلت فرم بتواند بخواند و اجرا کند. بنابراین شما کد را به زبان کاتلین می نویسید ، Kotlin/JVM آن را تبدیل به بایت کد جاوا می کند و باقی مراحل.
با توجه به اینکه خود توسعه اندروید به زبان جاوا نوشته شده است با ساخت کاتلین جی وی ام ، شما در هر محیط و فریم ورکی که می تونید به زبان جاوا کد بزنید قطعا به زبان کاتلین هم می توانید کد نویسی کنید. شاید دلیل اینکه اول کار بسیاری افراد تصور می کردند کاتلین نسخه ارتقا یافته جاوا باشد همین است.
Kotlin/JS : کارکرد کامپایلر کاتلین جی اس این است که کدهای کاتلین را تبدیل به جاوااسکریپت می کند. از Kotlin/JS می توانید حتی برای توسعه UI به کمک کاتلین هم انجام دهید.
Kotlin/Native : به کمک کاتلین نیتیو می توانید اپلیکیشن را بصورت ویژه و خاص برای یک سیستم عامل خاص یا پلت فرم خاصی تارگت کنید. به این معنی که با کاتلین می توانید برای ویندور ، macOS ، ios ، لینوکس و برای هر سیستم عامل خاصی اپلیکیشن بسازید. زبان کاتلین خاصیت nativre بودن و کراس پلت فرم بودن را داراست و شما مشخصا می توانید خروجی نیتیو بگیرید. این ویژگی به شما کمک می ند که بتوانید اپلیکیشن های ios و macOS بسازید و بسیار مهم است.
و...
نکات ضعف کاتلین
- سرعت کامپایلر کاتلین کمتر از جاوا است: طبق اظهارات توسعه دهنده کاتلین در نسخه های آتی این مسئله به مرور حل می شود. در حال حاضر حس می شود که سرعت کامپایلر کاتلین نسبت به قبل بهتر شده است.
- یافتن برنامه نویس حرفه ای کاتلین کمی سخت است.
یکی از مسائلی که وجود دارد این است که در واقع هنوز برنامه نویس های حرفه ای در حوزه کاتلین کم است. با وجود اینکه اپلیکیشن های فوق حرفه ای برای اندروید با زبان کاتلین نوشته می شود اما اگر اندروید را کنار بگذارید برنامه نویس های زبان کاتلین با فریمورک های دیگر کمتر آشنا هستند و در این زمینه ضعف دارند. بخاطر همین برنامه نویس حرفه ای که با همه کامپایلر ها کار کرده باشد کم پیدا می شود.