چگونه یک برنامه نویس React Native بشیم

اگر شما به وضعیت جاوا اسکریپت در سال های گذشته نگاه کنید، یک تن اطلاعات جالب پیدا خواهید کرد.چیزی که من از این اطلاعات متوجه شدم اینکه بسیاری از مردم می خواهند React Native یاد بگیرند.

The State of JavaScript Mobile Results

این نتایج برای دیدن و تحلیل عالی است.من سال گذشته تمام وقت خودم رو صرف آموزش و یادگیری React Native به مردم و توسعه جامعه کردم.جامعه برنامه نویسان در سرتاسر دنیا به دنبال افزایش کیفیت زندگی، دانش و درآمد خود از طریق توسعه اپلیکیشن های موبایل برای سیستم عامل های Android و IOS هستند.

بخشی از این آموزش مربوط می شود به پاسخ دادن به سوالات در تالار گفتمان سایت و ایمیل هایی که مردم در مورد React Native و آینده و قدرت اون می پرسند.همچنین با ترجمه مقالاتی در مورد مقایسه React Native با تکنولوژی های جدید مثل Flutter سعی کردم که با دید باز و بر اساس علایق و مهارت هاشون انتخاب کنند.پیشنهاد میکنم اگر دوست دارید در مورد آینده React Native بدونید و مقایسه اون رو با دیگر زبان های برنامه نویسی و تکنولوژی ها  ببینید،مقالات زیر رو بخونید:

بیشتر سوالات که در ایمیل ها مطرح میشه : بهترین راه یادگیری React Native چیه؟ اگر چه بهترین راه وجود نداره ولی در ادامه من چیز هایی که به توسعه دهندگان گفتم رو بیان می کنم.امیدوارم کمکتون کنه.

نکات

قبل از اینکه من بخوام تاکتیک های تبدیل شدن به توسعه دهنده React Native رو به شما بگم قصد دارم چندین نکته برای خودآموزی رو بگم.من خیلی از افرادی رو دیدم که وقتی قصد یادگیری یک موضوع جدید را می گیرند در کمترین زمان ممکن این کار رو انجام میدن.من متوجهم که همه ما درگیر و مشغول هستیم و یادگیری با آسانترین راه و راحت طلبی در ذات انسانه ولی بهتره که در کمترین زمان بیشترین و بهترین چیزها رو یاد بگیریم به وسیله خودمون.

اجتناب از سر و صدا

شما حتما با Medium آشنا هستید و به احتمال خیلی زیاد مقالات زیادی رو ازش خوندید.پس شما بسیاری از مسائل مربوط به فناوری را می بینید.خوشبختانه با معرفی و پیدایش ویرگول توسعه دهنده ها و شرکت های ایرانی شروع به اشتراک گذاشتن تجربیات خودشون در زمینه های مختلف هستند و من خیلی خیلی از این موضوع خوشحالم.این عالی است.دنیایی که روز به روز به لطف تکنولوژی در حال رشد و تکامل است.

اما میتونه خسته کننده باشه، به ویژه اگر شما فقط شروع به کار کنید و مطالعه و زدن یک پروژه رو بعد از خوندن یک مقاله کنار بگذارید.هیجان زده نشید و سعی کنید همیشه مطالعه کنید و یاد بگیرید.

سعی کنید مفاهیم اصلی و پایه رو خودتون یاد بگیرید به جای اینکه دائم در لبه تکنولوژی و ویژگی های جدید حرکت کنید.اگر تالار گفتمان رو یک نگاه بندازید بیشتر سوالات در مورد اینکه  فلان کتابخونه رو نصب کردم و نمیدونم چرا یک قسمتی از اون کار نمیکنه.دلیل اصلی این سوالان میدونید چیه؟؟

من میدونم مردم دوست دارند به ساختن برنامه و اپلیکیشن شیرجه بزنند.دقیقا مثل کسی که شیرجه رو بلد نیست و با یک پرتاب نادرست کلیه عضلات بدنش رو داغون میکنه بخاطر تماس با آب.دلیل این مشکلات بر میگرده به اینکه مفاهیم به درستی یاد گرفته نشده و حتی نرفتیم issue هایی که برای اون کتابخونه هست یا سوالات stackoverflow رو نگاه کنیم.بعد خیلی راحت میایم میگم فلان تکنولوژی بده و اصلا بدردنمیخوره.چند تا فحش آبدار فیسبوک رو میدیدم بخاطر فریمورکش.دوست من درست استفاده کن تا همه رو به فحش نکشی.گاهی اوقات حتی میشنوی که performance اپلیکیشن هایی که با React Native نوشتیم اصلا خوب نیست و من اینجا شاخ در میارم.وقتی که از shouldComponentUpdate استفاده نکردی یا برای list هات از key استفاده نکردید یا اینکه کلی اطلاعات رو load میکنی بدون اینکه بخوای یک لیست بی نهایت بسازی معلومه که آخر کار باید بگی که عملکرد react native خوب نیست.دلیل همه اینا درک نکردن مسائل بنیادی هست

زمانبندی

مشغول هستید و کار می کنید و زمان زیادی برای یادگیری ندارید به همین دلیل سعی می کنید راحت ترین و بهترین راه رو پیدا کنید.من هم مثل شما مشغول هستم.صبح تا ظهر در خدمت مقدس سربازی هستم و تا وقتی که میرسم شرکت میشه ساعت 5 بعد ازظهر.اما باید برای چیزهای مهم حتما وقت بگذاریم.شاید ملاقات یک پزشک باشد،شاید ملاقات با یک سرمایه گذار و شاید ملاقات با نامزد.

مهم اینکه شما باید در تقویم یک روز را مشخص کنید و متعهد شوید که اون کار رو تا اون تاریخ انجام بدید.معمولا با deadline شناخته میشه.یادگیری و سرمایه گذاری بر روی خودمون جزء مهم ترین با شید مهم ترین کار ما باشد.

اما من وقت ندارم!!!

30 دقیقه رو پیدا کنید.همه ما حتما در طول روز میتونیم وقت پرت پیدا کنیم.همین 30 دقیقه رو به تقویم روزانتون برای یادگیری یک چیز جدید اضافه کنید و سعی کنید هر هفته 15 دقیقه به این زمان اضافه کنید.بعد از چند هفته می بینید که 3 ساعت برای یادگیری زمان پیدا کردید.مهم اینکه فقط در تقویم اینا رو بنویسید.

برنامه یادگیری بسازید

در پاراگراف قبلی این موضوع رو بیان کردم ولی می خواهم دوباره اون رو بگم.شما این کار رو برای بسیاری از کارهای زندگیتون انجام می دید.چرا این کار رو برای یادگیری React Native انجام ندید؟

به اولین نکته برگردید.می خواهید فقط در تعقیب جدیدترین اخبار تکنولوژی در ویرگول، Medium یا توئیتر باشید.این کار رو متوقف کنید.الان زمان این چیزها نیست.حالا وقت اینکه شما برنامه یادگیری خودتون رو آماده کنید.

اما چجوری برنامه یادگیری بسازم؟

برای اینکه برنامه یادگیری برای خودتون بسازید باید بدونید که قراره چه چیزهایی رو یاد بگیرید.به منابعی که در پایین ذکر میکنم نگاه کنید و اونا رو در تقویم آموزشی خودتون قرار بردید.چون قراره کلی پیش نیاز، اصول و مفاهیم یاد بگیرید و باید برای هر کدوم deadline بزارید تا خودتون رو ملزم و متعهد به رعایت زمان کنید.پس فقط به تقویم هر روز نگاه کنید و ببنید قرار است امروز چه مطالبی را یاد بگیرید.

فقط استفاده نکن

من متوجه موضوعی در دانشجویان دوره ها شدم.آن ها همراه با ویدئو پیش می روند و در هنگام تماشا یا بعد از آن فقط همان کدها را می نویسند و دقیقا همان چیزی که من درست کرده ام خروجی دانشجو است.هر روش یا مفهومی را که در ویدئو دیدید، کدها رو تغییر بدید،در موردش بیشتر بخونید.به مشکلاتی که بر میخورید سعی کنید خودتون حلش کنید و راه های رفع مشکل رو یاد بگیرید.فقط مصرف نکنید باید ایجاد کنید.بهترین روش برای ایجاد کردن میتونه ایجاد یک چالش باشه برای خودتون.وقتی که تصمیم میگیرید بعد از یادگرفتن مفاهیم پایه و اسای یک اپلیکیشن واقعی ایجاد کنید با هزارن چالش روبرو میشید که باید خودتون حلش کنید از طریق جستجو.

منابع یادگیری

1. جاوا اسکریپت:

ساده، رایگان، سرگرم کننده

ری اکت نیتیو بر پایه جاوا اسکریپ است پس شما باید حتما و حتما جاوا اسکریپت رو یاد بگیرید. برای یادگیری میتونید از منابع زیر استفاده کنید

اگر اهل خوندن متن و داکیومنت هستید میتونید از 3 منبع اول یا مجموعه کتاب های you dont know js استفاده کنید.اگر با ویدئو راحت تر هستید میتونید دوره آموزش جاوا اسکریپت موجود در سایت که مسعود صدری زحمتش رو کشیده رو ببینید.

2.جاوا اسکریپت 2015 ، ES6:

در React Native شما از syntax و استاندارد جدید جاوا اسکریپت یعنی ES6 استفاده می کنید و با جاوا اسکریپت خام کد نمی زنید.یادگیری ES6 خیلی ضروریه.سعی کنید هیچ موضوعی رو از ES6 نادیده نگیرید.چون هر مبحثی به کارتون میاد و کار رو براتون راحتتر میکنه.

3. ری اکت ، React:

ری اکت نیتیو بر پایه جاوا اسکریپت و React  بنا شده.پس برای یادگیری React Native باید با مفاهیم React آشنا باشید.چیز هایی مثل Component,state,props, و کلی موارد دیگه.شاید بشه گفت اولین منبع برای یادگیری react داکیومنت فوق العاده خودشه.همچنین پست هایDan Abramov هست که موارد موردنیاز React در React Native رو آموزش میده.

4. ری اکت نیتیو ، react native

اولین منبعی که باید بهش رجوع کنیم مثل react داکیومنت React Native هست.هرچند که اصلا مثل داکیومنت react قوی نیست.ولی همیشه اولین منبع داکیومنت اون زبان،کتابخونه یا فریمورک هست.

تا اینجا من یک سری منابع برای یادگیری پیش نیاز ها و خود React Native معرفی کردم.تمام هدف ما در reactapp.ir این بوده که به رشد و توسعه جامعه توسعه دهندگان فارسی زبان react native کمک کنیم.با قرار دادن رایگان پیش نیاز های React Native و بخش آموزش متنی سعی ما بر این بوده که اتفاقات خوبی در این زمینه افتاده باشه.شما میتونید به چارت آموزشی سایت مراجعه کنید و طبق چارت برای یادگیری React Native پیش برید.

ابزار و کتابخانه ها

یکی از سخت ترین قسمت ها در یادگیری یک مهارت،زبان یا هر چیز دیگری این است که محیط و ابزار لازم برای یادگیری و انجام کار موجود باشد.

بر خلاف زبان های native که شما نیاز به یک IDE دارید، در React Native شما می توانید خیلی راحت در هر TextEditor کدهای خودتون را بنویسید و اجرا بگیرید.پس شما نیاز به سیستم خیلی قوی و خفن ندارید.یک سیستم معمولی کار شما رو راه میندازه.

شما تقریبا به هر چیزی که نیاز پیدا کنید میتونید کتابخونه اون رو در گیت هاب پیدا کنید و از اون استفاده کنید.برای نمونه برای جابجایی بین صفحات کتابخونه های متفاوتی مثل wix,react navigation, router flux وجود داره که میتونید یک کدوم رو انتخاب کنید.

وجود UI Kit هایی مثل React Native Elements یا nativebase کار طراحی شما رو خیلی راحت میکنه و میتونید UI های مختلف زیبایی رو با در کمترین زمان ممکن و نسبتا بهینه ایجاد کنید.

برای تست شما میتونید از شبیه سازی های سیستم عامل Android و IOS استفاده کنید که با نصب و پیکربندی درست React Native بر روی ویندوز و مک در اختیارتون قرار میگیره(این موارد در دوره آموزش مقدماتی React Native بیان شده).حتی اگر به سرعت بیشتری برای تست و اجرا نیاز دارید میتونید بر روی گوشی موبایل تست رو انجام بدید.

خب با رعایت کردن این نکات و یادگیری مطالبی که در منابع معرفی شد،برنامه نویس React Native شدید.حالا نوبت به چالش بعدی یعنی تبدیل شدن به یک برنامه نویس حرفه ای React Native میرسه.چجوری حرفه ای بشیم؟

  • قرارگرفتن در چالش توسعه اپلیکیشن های واقعی
  • بررسی پروژه هایی که به صورت متن باز در گیت هاب وجود دارند
  • توسعه کتابخانه برای react native
  • بررسی کدهای کتابخونه های موجود React Native
  • بررسی بلاگ هایی که ویژگی های جدید را معرفی می کنند
  • استفاده از تجربیات دیگران
  • و…

اگر شما تجربه ای در این زمینه دارید، کامنت کنید تا همه از تجربیات و راهی که رفتید استفاده کنیم.