راهنمای شروع برنامه نویسی اندروید

اندرویداین روز ها برنامه نویسی اندروید خیلی محبوب شده چون هم بازار کار خوبی داره هم خیلی باحاله.اگه به این حوضه علاقه دارید میتونید از اینجا چیز های خوبی یاد بگیرید.جاوا یا کاتلین؟همون طور که میدونید با دو زبان جاوا و کاتلین میتونید به صورت نیتیو اپ های اندروید بسازید ولی سوال اصلی اینه که کدوم بهتره. پاسخ خیلی کوتاهه ... کاتلین اما: فعلا خیلی از کتاب ها و دوره ها وحتی سوالات stack overflow به جاوا اختصاص داره و یه جور هایی خیلی خوبه که جاوا هم کمی بلد باشید. البته بدون جاوا هم میشه. روزانه کلی اموزش با کاتلین داره منتشر میشه و حتی چند تا کتاب خوب هم داریم ولی حداقل بعدا که حرفه ای شدید حتمی سراغ جاوا برین.چقدر طول میکشه که یاد بگیریم؟البته همیشه به استعداد و پشت کار خودتون بستگی داره. چون باید قبل از شروع به یک زبان (جاوا یا کاتلین) تقریبا مسلط باشید کمی بیشتر طول میکشه. میتونم حدودی بگم که اگه روزی دوسه ساعت براش وقت بزارین حدود یک سال طول میکشه که کاملا مسلط بشید. ولی تو همون چند ماه اول هم کار های شگفت انگیزی میتونید انجام بدید.دور زدن تحریم ها ：همون طور که میدونید گوگل مارو از خیلی از سرویس هاش محروم کرده که دو تا از اونها یعنی سایت توسعه دهندگاه اندروید(developer.android.com) و اندروید استودیو که محیط برنامه نویسی اندروید هست برای ما مهمه(برای نصب کتابخونه های جدید به مشکل بر میخورید).شکن یه راه ساده و رایگان برای دور زدن بعضی از تحریم های گوگله(مثلا تو یوتیوب نمیتونید برید ولی برای اندروید استودیو و سایت اندروید کار میکنه. حداقل برای من).توی سایت shecan.ir میتونید اطلاعات بیشتری بدست بیارید. در واقع ادرس DNS اتصال اینترنت خودتون رو به یه چیزی که تو سایت نوشته تغییر میدید.اگه با این مشکلتون حل نشد دیگه باید سراغ قند شکن و پروکسی برید.فناوری های دیگر：React Native در واقع یک کتابخانه بر مبنای جاوا اسکریپته که امکان ساخت برنامه های موبایل به طور همزمان برای اندروید وIOS در اختیار توسعه دهنگان میزاره. ری اکت در سال های اخیر خیلی مورد توجه قرار گرفته چون میشه همزمان برنامه هایی نوشت که هم روی اندروید و هم روی IOS قابل اجرا هستند و توی وقت هم خیلی صرفه جویی میشه چون برادی دیدن تغییرات نیازی به کامپایل دوباره نیست.فریمورک flutter که در سال ۲۰۱۷تو سط گوگل منتشر شد بهتون این امکان رو میده که همزمان برنامه هایی بسازید که هم در اندروید و هم IOS قابل استفاده است. سرعت کار در flutter بسیار بالاست و برای مشاهده تغییرات نیازی به کامپایل کد نیست. این فریمورک با زبان دارت (dart) که توسط گوگل توسعه داده میشه کار میکنه.منابعتنها دوره فارسی که به نظرم ارزش گفتن داره دوره سایت اکسیما (لطفا برنامه نویسی اندروید را حرفه ای یاد بگیرید ) هست که خیلی تعریفشو شنیدم ولی به شخصه تهیه نکردم. سرفصل های کاملی داره . اگه پولشو دارید خالی از لطف نیست.دوره های سایت udacity.com هم کیفیت خوبی دارن . بعضی از دوره ها توسط گوگل منتشر شده و بعضی هم رایگانه.کتاب ها ：**همه این کتاب هارو میتونید از سایت pdfdrive.com دانلود کنید.کتاب Head First Android Development برای مبتدی ها کتاب خوبی محسوب میشه و مخصوصا چند فصل اول برای کسایی که هیچ درکی از برنامه نویسی اندروید ندارند پیشنهاد میشه. ولی مشکلی که داره به نظرم کمی پراکنده بودن مباحث و زیاد توضیح دادن در بعضی جا هاست.ولی از همه بیشتر کتاب Android Programming: The Big Nerd Ranch Guide رو دوست دارم . البته این کتاب برای مبتدی ها مناسب نیست. البته خوندن چند فصل اول کتاب اول, کمی مطالعه در اینترنت و علاقه برای خودن این کتاب کفایت میکنه. ویژگی خوب این کتاب اینه که ویرایش چهارمش با کاتلین اموزش داده که برای کسایی که به کاتلین علاقه دارن خوبه. البته من نتونستم ویرایش چهارمشو گیر بیارم , اگه پیدا کردید به منم بگید.کتاب Android App Development for Dummies هم ظاهرا کتاب خوبیه . یه نگاه بهش بندازید اگه خوشتون اومد میتونید جایگزین کتاب اول کنید.و در اخر کتاب Kotlin Programming by Example: Build real-world Android and web applications the Kotlin way برای کسایی که میخوان اندروید با کاتلین یاد بگیرن میتونه مفید باشه.سایت ها：سایت توسعه دهندگان اندروید developer.android.com :در این سایت به علاوه داکیومنت های اندروید راهنمای خوبی هم برای برنامه نویس ها داره. در developer.android.com/guide میتونید اموزش های خوبی پیدا کنید که خیلی وقت ها بهترین چیزی هست که پیدا میشه.در https://developer.android.com/courses هم میتونید توی دوره های متنوع اندروید با زبان کاتلین یا جاوا شرکت کنید(با جست و جو android training course هم میتونید پیداش کنید) .دوره ها خیلی کامل و پروژه محور هستند.کانال یوتیوب thenewboston هم دوره اندروید کامل و پر طرفداری داره. البته این دوره قدیمیه و به همین خاطر شاید زیاد مفید نباشه ولی بازم خوبه.پیشنهاد استفاده از منابع：این روشیه که خودم استفاده کردم. ابتدا دو یا سه فصل اول کتاب head first... رو بخونید یا تو اینترنت در مورد نصب اندروید استودیو و ساخت پروژه جدید و فایل manifest و XMLتحقیق کنید. بعد سراغ کتاب Android Programming: The Big Nerd Ranch Guide برید و پروژه اولشو انجام بدید(فکر کنم هفت فصل اول) که چیز های خیلی خوبی توش یاد میگیرید. در این بین هر وقت احساس کمبود یا نیاز به اطلاعات بیشتر کردید از منابع بخش سایت ها استفاده کنید. مخصوصا سایت اندروید . بعد یه پروژه ساده برای خودتون تعریف کنید. لازم نیست زیاد پیچیده و خفن باشه. برای خود من یه برنامه ساده بود که یه دکمه و یه متن داشت که هر وقت روی دکمه میزدین رنگ متن عوض میشد：) حالا نه به این سادگی چون قراره در طول یادگیری کاملش کنید. مثلا یه دفترچه یادداشت برای شروع خوبه. با چیز هایی که تا حالا یاد گرفتید کمی کاملش کنید.بعد سری به android training course (در بالا بهش اشاره شد) بزنید و از بین دوره های مقدماتی یکی رو بر اساس زبانی که می خواین باهاش کار کنید انتخاب کنید و یکی یکی بخونید و توی پروژه خودتون پیاده کنید.در لینک زیر هم اشتباهاتی که موقع شروع اندروید کردم رو ببینید. شاید مفید باشه. https://virgool.io/@dndshmdr/انچه-یکسال-برنامه-نویسی-از-راه-اشتباه-به-من-اموخت-h4ymfwdmpav8