گفت و گو با محمد قاسمی | چرا react native ؟


خوشحالم که بالاخره قسمت سوم گپ و گفت هم آماده شد ، اولین بار که به فکر برنامه گپ و گفت برای بلاگ سایت افتادیم به سراغ تیم ویندی رفتیم و بعد از اون هم گفت و گویی با عرفان یوسفی فر توسعه دهنده کتابخانه react native jalaali calendar داشتیم ، حالا در سری سوم قراره با محمد قاسمی عزیز صحبت کنیم تا یه سری از تجربیاتش در دنیای react native رو باما به اشتراک بزاره ، پس در ادامه این نوشته همراهمون باشید .
سلام محمد عزیز ، ممنون میشم اگه یه بیوگرافی مختصر از خودت برای ما بگی تا بیشتر باهم آشنا بشیم ؟
سلام عرض میکنم خدمت شما و تمامی کاربران عزیز سایتتون . محمد قاسمی هستم یه برنامه نویس دهه شصتی ، از دبیرستان کامپیوتر خوندم و در حال حاضر هم کارشناسی ارشد نرم افزار دارم .
میشه در مورد آشناییت با دنیای برنامه نویسی برامون بگی و چی شد که وارد این حوزه شدی ؟
اجازه بدید قبل از اینکه وارد بحث آشنایی با دنیای برنامه نویسی بشیم، از آشنایی با کامپیوتر براتون بگم. تابستون سال ۱۳۷۷ بود که به همراه پدرم به دانشگاه میرفتم و با کامپیوتر یکی از اساتید که مدرس رشته کامپیوتر بودند بازی می کردم. کاملا یادمه که Prince of Persia بازی میکردم و تحت سیستم عامل MS-DOS اجرا می شد. از همان زمان بود که جرقه های ورود به دنیای پهناور و بی انتهای کامپیوتر در ذهن من زده شد. درخواست های شبانه روزی من بالاخره باعث شد که خونوادم یک کامپیوتر خریداری کنند و در اختیار کلیه اعضای خانواده قرار بدن. همونطورکه گفتم از سال دوم دبیرستان رشته کامپیوتر رو انتخاب کردم و برای اولین بار برنامه نویسی رو در همون سال با نوشتن Hello World در زبان QBasic استارت کردم. بعد از اون تا دوران دیپلم، در پاسکال، ویژوال بیسیک ورژن ۶ و C کد میزدم تا اینکه با زبان PHP و زبان های تحت وب آشنا شدم. در طول دوره کاردانی و کارشناسی که مشغول به تحصیل در رشته کامپیوتر بودم، همیشه از طریق برنامه نویسی برای دانشجویان و طراحی وب سایت کسب درامد داشتم تا این که با شرکت پات شرق و تیم خوب سایت نارنجی (narenji.ir) آشنا شدم و حدود دو سال با هم همکاری داشتیم. در طول این همکاری افتخار طراحی قالب جدید نارنجی رو هم داشتم.
چطور با react native آشنا شدی و نظرت در موردش چیه؟
یک سال بعد از اتفاقاتی که برای نارنجی افتاد، با شرکت یکتا ارتباط که بر روی استارت آپ تله فریم تمرکز داشت همکاری رو شروع کردم و تا سال ۱۳۹۶ این همکاری ادامه داشت. آبان ماه همون سال در شرکت یکی از دوستانم شروع بکار بر روی استارت آپ کشکول کردیم. کشکول نیاز به اپلیکیشن موبایل بر روی دو پلتفرم اندروید و ios داشت. در اون زمان من دو راه پیش رو داشتم یا استفاده از Native Script و یا استفاده از React Native. خب بعد از کلی تحقیق و پرس و جو ، React Native انتخاب شد و من شروع به آموزش دیدن در حوزه React کردم. در حین آموزش پروژه رو جلو می بردم. ابتدا همه چیز خوب پیش میرفت تا اینکه رسید به قسمت سخت ماجرا، استفاده از State Management ها. اونم Redux که کل ساختار پروژه رو بهم می ریخت و باقی ماجرا. اگر بخوام نظر شخصی رو راجب React Native بگم، در یک توصیف می تونم بگم “یک جوان فوق العاده”. از سال ۲۰۱۵ تا به امروز و پس از گذراندن ۵۷ ورژن، کتابخانه ای با ۶۸ هزار ستاره در گیت هاب، بی انصافی محض است اگر بهش بگیم یک کودک فوق العاده! اما جوان است چرا که کاملا بالغ و پخته نشده و هنوز ایراداتی داره، به عنوان مثال گزارش خطای بسیار بسیار ضعیف!
قطعا دراین مدتی که با این فریمورک کار کردین به یک سری تجربیات رسیدین ،لطفا از تجربیات کار با React Native برامون بگو
خب مثل هر برنامه نویس دیگه ای ، تجربیات برنامه نویسی نشأت گرفته اند از برخی خطاها و باگ هایی که ممکن است روزها، هفته ها و حتی ماه ها ذهن رو درگیر کنه و در نهایت برطرف و تبدیل به تجربه بشه. من هم از این قاعده مستثنی نیستم و در طول کار بر روی پروژه های مختلف React Native با اینطور مسائل روبرو شدم. اگه بخوام خیلی کوتاه به چند مورد اشاره کنم میشه اینطور گفت که:
– در کشکول ما نیاز داشتیم عکس پس زمینه برای قسمتی از پروژه استفاده کنیم، اما مستندات وبسایت اصلی بروزرسانی نشده بود و ما طبق دستور اونها از کامپوننت Image استفاده می کردیم و با خطا مواجه می شدیم. در نسخه جدید کامپوننت ImageBackground ارائه شده بود اما در سایت اصلی قرار نگرفته بود و ما نمی دونستیم.
– در یه پروژه دیگه که در اون از Native Base استفاده می کردیم، نیاز بود Status Bar اندروید رو مخفی کنیم که این کار باعث ایجاد اختلال در عملکرد اسکرول صفحه می شد.
– یکی دیگه از پروژه ها که برای تست شنوایی سنجی یک مرکز درمانی تهیه می شد، بایستی Pan فایل های صدا را تغییر می دادیم، در واقع تعریف می کردیم که در لحظه صدا برای کدام گوش پخش شود، اما کتابخانه معروف react-native-sound فقط برای ios این امکان رو ارائه می داد و ما به ناچار شیوه دیگری را برای اینکار انتخاب کردیم.
در حال حاضر روی پروژه خاصی کار میکنی و دوست داری که در موردش برامون بگی ؟
با کمال میل. کشکول که یک استارت آپ در حوزه روش های مختلف آنلاین پرداخت پول هست، در مراحل پایانی خودش به سر میبره و به امید خدا به زودی منتشر میشه. سکیوریپتو(Securypto) پروژه بعدی هست که بر روی خرید و فروش ارزهای دیجیتال تمرکز داره و در حال برنامه نویسی هستش. دوپلیکا هم که برای مبحث نتورک مارکتینگ مورد استفاده قرار می گیره و داره برنامش نوشته میشه.
نظرت در مورد برنامه نویسی react native در ایران و پروژه های داخلی که با این فریمورک پیاده سازی شدند چیه ؟
چندسالی هست که در ایران تیم های استارت آپی تشکیل شده و روی تولید محصولشون تمرکز می کنن. یکی از بزرگترین مزایای React Native برای این تیم ها، خروجی گرفتن همزمان اپلیکیشن بر روی دو پلتفرم Android و ios هست.
در کشور تعداد زیادی برنامه نویس هستش که با Javascript کار کردند و این یک نکته مثبت برای درک و شروع برنامه نویسی با React Native هست. همکاران ما در کرمان پروژه های زیادی رو با React Native پیاده سازی کرده اند که در حال حاضر این پروژه ها بدون هیچ نقصی به حیاتشون ادامه میدن.
سوالی هست که من نپرسیده باشم و نیاز باشه راجبش توضیح بدی ؟
یکی از سوالاتی که همیشه از من و همکارانم پرسیده میشه این هست که چه زبان برنامه نویسی رو یاد بگیریم که توی ایران بازار کار داشته باشه، پول ساز باشه و به درد مهاجرت بخوره و…؟
من همیشه در پاسخ به این سوال میگم فرقی نمیکنه که شما چه زبانی را برای یادگیری انتخاب می کنید، اما هر زبانی را که انتخاب کردید تا جایی که می تونید توی اون زبان خبره بشید. یکی از اشتباهاتی که خودم توی این سالها انجام دادم کارکردن با زبان های مختلف بود. اینکار باعث می شود شما دریایی از زبان های برنامه نویسی بلد باشید اما به عمق کمتر از یک میلیمتر! در پایان هم از شماو سایت خوبتون تشکر میکنم .
با محمد قاسمی میتونید در توییتر ،تلگرام و لینکدین ارتباط داشته باشید و خیلی ازش ممنونیم بابت زمانی که در اختیارمون قرار داد. امیدوارم مثل دو سری قبلی از این قسمت گپ و گفت راضی باشید و براتون مفید باشه ، با پیشنهاد و انتقاد های شماست که میشه قسمت های بعدی رو بهتر و بهتر کنیم ، راستی نظر شما راجب به این فریمورک چیه ؟
مطالب زیر را حتما مطالعه کنید
قسمت دوازدهم گپ و گفت | اشکان اهرابی از SnappQ
قسمت یازدهم گپ و گفت | گفت و گو با علیرضا گودرزی
قسمت دهم گپ و گفت | مهدی خسروی از دیجیاتو
قسمت نهم گپ و گفت | مینا ربطی متخصص داده کاوی
قسمت هشتم گپ و گفت | مهرنوش دشتی از تیم ایوند
قسمت هفتم گپ و گفت |گفت و گو اکوموتیو با تیم reactapp
3 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام به دنبال هم تیمی برای ریاکت نیتیوم ابتدا نمونه کاری که دارم قوی کنیم بعد پروزه بگیریم کسب درامد کنیم
مرسی از انتقال تجربیات و خیلی گفت وگویی خوبی بود ، نارنجی های دوست داشتنی
البته با اون جمله که جوان فوق العادس خیلی موافقم ولی بعضی وقتا خیلی اذیت میکنه
مرسی ممنون از این همه انرژی ، بعضی چیزهارو باید به جون خرید ارزشش رو داره