قسمت چهارم گپ و گفت | استارتاپ کارجو +


چهارمین قسمت گپ و گفتمون هم آماده شد و به نظر من این گپ و گفت یکی از بهترین ها میتونه باشه ، سری قبلی با محمد قاسمی عزیز گپ زدیم و از تجربیاتش در زمینه برنامه نویسی react native استفاده کردیم ، اما در این قسمت از گپ و گفت به سراغ یک استارتاپ خفن رفتیم که پیشنهاد میکنم ادامه این گفت و گو رو از دست ندید . کارجو + یکی از تیم های منتخب نمایشگاه الکامپ بود که هر دو نسخه اپلیکیشنشون رو با استفاده از react native پیاده سازی کردند ، در ادامه در مورد استارتاپشون و همچنین دلایل انتخاب react native ، مشکلاتی که در طول مسیر با اون ها رو به رو شدند و … برای ما صحبت خواهند کرد و به سوالتمون پاسخ میدن .
لطفا در مورد استارتاپتون و اینکه فعالیت کارجو + دقیقا چی هست برامون بگید ؟
مشکل بیکاری سال هاست که در کشور ما وجود داشته و با همه تلاش های انجام شده همچنان از نقاط ضعف اقتصاد کشورمون به حساب میاد. نرخ بالای بیکاری، مشاغل کاذب و پایین بودن سطح رضایت شغلی هر چند خسارت زیادی رو ایجاد کرده اما هزینه بزرگتری هم وجود داره و اون هم هزینه فرصت از دست رفته برای میلیون ها جوان آماده به کاره که امکان فعالیت مفید اقتصادی براشون فراهم نشده و مسیر پیشرفتشون به صورت ناعادلانه ای بسته شده.
کارجو+ (کارجوپلاس) نام سرویسی هست که می تونه مسیر روشنی برای ورود فارغ التحصیلان به بازار کار باشه. این سرویس که صورت شبکه اجتماعی عمل می کنه، گزارشی تکمیلی از تعداد درخواست برای مهارت کارجویان و حدود درآمدشون عرضه می کنه. همچنین با توجه به تقاضای کارفرمایان مهارت هایی که باعث افزایش درآمد کارجویان می شه رو به اونها پیشنهاد میده . به این ترتیب کارجویان، آشنایی بیشتری نسبت به بازار کار خواهند داشت و میتونند با توجه به توانمندی ها و استعداد هایی که دارند شغل مناسبی رو انتخاب کنند.
اطلاعات این گزارش با داده کاوی حدود ۵۰ هزار آگهی استخدامی آنلاین و آفلاین سراسر ایران در ماه جمع آوری می شه و در اختیار کاربران قرار داده میشه. همچنین با توجه به روند اهمیت مهارت های نرم (soft skills) در استخدام ،مجموعهای از تست های روانشناسی استاندارد و تست های شناختی به صورت رایگان در اختیار کاربران هست که این امکان رو دارن تا ویژگی های شخصیتی، رفتاری، هوش و مهارت های مختلف خودشون رو ارزیابی کنند و از طرفی کارفرمایان اطلاعات دقیق تری نسبت به کارجویان پیدا کنند. در این شبکه اجتماعی کارفرمایان میتونند توسط ویژگی های مختلفی (مهارت های تخصصی- مهارت های شخصی- شهر …) متناسب ترین فرد رو پیدا کرده و مستقیما برای مصاحبه استخدامی ارتباط برقرار کنند.
اعضای اصلی تیم کارجو پلاس رو فراز کریمی (هم بنیانگذار کسب و کار)، ســینا ملکی و ســجاد هاشمیان (هم بنیانگذاران فنی) تشکیل میدن که مهرماه امسال این استارتاپ یک ساله میشه.
خب حالا که با استارتاپتون اشنا شدیم به سراغ دنیای react native میریم ، شما هر دو نسخه اپلیکیشنتون رو با react native توسعه دادید ، میشه دلیل اینکه react native رو انتخاب کردید برامون بگید ؟ استفاده از react native در بحث های مالی ، نیروی فنی و زمان چه تاثیری برای استارتاپ شما داشت ؟
همون طور که همه شما میدونید react native یک نسخه محلی (native) معروف از کتابخانه React که توسط توسعه دهندگان فیس بوک و اینستاگرام ارایه شد. و در سال های اخیر از محبوبیت چشم گیری در بین برنامه نویس ها برخوردار شده (۱۴ پروژه محبوب گیت هاب) . حتی گوگل اخیرا اعلام کرده که واژه ”React Native“ از واژگان ‘iOS development’ و ‘Android development’ بیشتر جستجو میشه. از مزایای خوب اون می تونم به موارد زیر اشاره کنم:
Cross Platform: بخش عمده ای از کدهای شما در اندروید و آی او اس یکی هست و این مورد سرعت توسعه محصول شما رو به صورت قابل توجهی بالا می بره.
فراوانی پروژه های openSource: همون طور که اشاره کردم react native از جامعه بزرگی از برنامه نویسان تشکیل شده و در ابتدای مسیر به شما کمک میکنه که نمونه کد های خوبی در اختیار داشته باشین.
بروزرسانی زنده (live update) توسط code push: یکی از فوق العاده ترین و جذاب ترین بخش هایی که من به شخصه همیشه به اون اشاره میکنم. توسط سرویس های مثل code push شما می تونید اپ خودتون رو بدون اینکه کاربران نیاز به بروزرسانی اپ از اپ استور ها باشن، بروز کنین. این امکان ناشی از این است که کد های شما به زبان javascript هست. در واقع تمامی کد های جاوااسکریپت شما و assets های برنامه شما (مثل عکس) قابل به روز رسانی هستند. تنها در صورتی که از کتابخانه native در بروزرسانی استفاده کرده باشین نیاز دارین که به اپ استور ها مراجعه کنین و اپ جدیدتونو آپلود کنین.
دسترسی بهتر و هزینه کمتر نیروی فنی: همه دوستان مستحضر هستند که استخدام برنامه نویس اندروید و ios هم سخته و هم هزینه بالایی داره اما برنامه نویسان جاوااسکریپت تعدادشون خیلی بیشتر هست و از لحاظ هزینه و بحث های مالی هم طبیعتا تفاوت هایی ایجاد میکنه .
چند درصد کدهاتون بین نسخه اندروید و ios مشترک هست ؟
همون طور که در بالا اشاره کردم خاصیت react native به گونه ای هست که بسیاری از کد های شما بین هر دو پلتفرم یکسانه. اما دوستان باید این رو در نظر داشته باشن که تا اون جایی که می تونن از کپی کردن کد ها جلوگیری کنن، داکیومنت ها رو مطالعه کنن- اینکه آیا این کامپوننتی که استفاده می کنن برای هر دو پلتفرم قابل استفاده هست یا خیر و مواردی از این قبیل. البته ما در ابتدا اپ اندروید رو توسعه دادیم و بعد از حدود ۷ ماه نسخه ios رو هم انتشار دادیم. که با کمی تغییرات همراه بود. خوشبختانه react native حتی این امکان رو برای شما فراهم میکنه که با شناسایی پلتفرم کاربر که اندروید هست یا ios ، فایلی جدا رو نمایش بده و این برای طراحی های مخصوص به هر پلتفرم هم میتونه کمک کننده باشه.
طبیعتا با یک سری چالش ها رو به رو شدین ، لطفا در موردشون برامون توضیح بده ؟
از چالش ها میتونم به مواردی اشاره کنم که معمولا تیم های توسعه دهنده ای که با react native کار رو شروع میکنن با اونها مواجه میشن. مواردی از قبیل اینکه برای navigation از کدوم کتابخانه استفاده کنن، چطور میتونن خروجی اندروید و ios داشته باشن. برای push notification چه راه حل هایی هست. مهم ترین مواردی که باید دوستان به اون توجه کنن اینه که محصول اولیه یا همون mvp خودشون رو منتشر کنن. محصولی که حداقل ویژگی های کار کردنی برای کاربران رو داشته باشه حتی اگر تنها یک ویژگی از اپ نهایی در اون هست و بعد سعی کنن طراحی محصولشونو با بازخورد هایی که از کاربران اولیه شون یا همون early adaptor ها میگیرن تکمیل کنن. چند مورد هست که معمولا زیاد با این سوال از دیگر دوستان برنامه نویسمون مواجه میشم که جوابشونو همین جا میدم:
چطور میشه react رو به صورت مفهومی متوجه شد؟ برای جواب این سوال بهترین منبع و ساده ترینشون thinking in react که به صورت کامل ساده با مثال کلیت ارتباط صفحات و کامپوننت ها رو توضیح داده. باید به جد بگم اگر کسی این داکیومنت ساده رو متوجه بشه ۶۰ درصد سختی راه رو رفته و اگر متوجه نشه تا آخر مفاهیم react براش مشکله. آدرس لینک: https://reactjs.org/docs/thinking-in-react.html
سوال دیگه اینه که چطور میشه خروجی اپ اندروید داشت؟ این مراحل برای زمانی است که دوستان میخوان اپ رو منتشر کنن و برای اینکار هم دوستان میتونند از این لینک استفاده کنند .
و اینکه چطور میشه خروجی اپ ios داشت؟
برای ios مراحل کمی زیاد تره ( نه دشوار تر 🙂 ) در ابتدا دوستان در نظر داشته باشن که نیاز به سیستم عامل mac os دارن. و برنامه xcode. با خود xcode میتونن اپ رو روی شبیه ساز بالا بیارن. ولی برای اینکه اپ روی گوشی iphone تست کنن باز خود react native داکیومنت کاملی داره به آدرس زیر:
https://facebook.github.io/react-native/docs/running-on-device
متاسفانه شرکت اپل سخت گیری های زیادی برای انتشار اپ نهایی میکنه. و برای اینکه بتونین اپ رو منتشر کنین (خروجی ipa) و روی خود اپ استور اپل بزارین باید اکانت ۹۹دلاری خریداری کنین. حتی برای خروجی ipa و انتشار روی اپ استور های ایرانی مثل سیب اپ شما نیاز به این اکانت پولی دارین . ولی یک راه کار خدعه آمیز هست که میتونین این روش رو دور بزنین. که ویدیو این راه کارم میتونید در ادامه ببینید 🙂
از چه کتابخونه هایی استفاده کردید ؟ نیاز پیدا کردید کتابخونه ای رو فارسی سازی کنید ؟
برای navigation ما از react-native-navigation استفاده کردیم که خیلی تجربه خوبی بود. من به شخصه در یک پروژه دیگه https://sibapp.com/applications/teambo از react-navigation هم استقاده کردم. هر دو نقاط ضعف و مزایایی دارن که بسته به انتخاب خود تیم توسعه دهنده هست که کدوم رو انتخاب میکنه. ولی بزرگترین بیشنهادی که دارم اینه که دوستان حتما از graphql در پروژه استفاده کنن. https://graphql.org/
سرویسی که فوق العاده بهینه برای اپ های موبایله و در سال ۲۰۱۲ توسط فیس بوک ظهور و در سال ۲۰۱۵ در دسترس عموم قرار داده شد. در حال حاضر شرکت هایی مثل فیس بوک- گیت هاب- پینترست- کورسرا- شاپیفای و https://graphql.org/users/ از graphql استفاده میکنن. graphql در واقع یک زبان query برای درخواست api سمت سرورهست. از مزایای اون هم نسبت به تکنولوژی REST اینه که:
به شما اجازه میده کاملا مشخص کنین چه مقادیری از دیتا رو میخواین واکشی کنین. برای مثال نیاز نیست یک سرویس جدا برای آبجکت user تعریف کرد که {name, description, city, country, id, age} رو برگردونه و یک سرویس دیگه که فقط {id, age} رو .
نمونه کد:
query HeroNameAndFriends {
hero {
name
friends {
name
}
}
}
به سادگی میتونین با منابع حتی خارج از سرور خودتون برای بارگذاری دیتای خودتون استفاده کنین. برای درک بهتر می تونین از دوره آموزشی زیر استفاده کنین .
https://farinsoft.ir/udemy-graphql-with-react-the-complete-developers-guide-2/
سوالی به نظرتون مونده که من نپرسیده باشم یا نیاز باشه نکته خاصی از تجربیاتتون رو بیان کنید ؟
تشکر از شما که برای ارایه تجربیات به توسعه دهندگان بدون هیچ چشم داشتی تلاش میکنین. دوستان میتونن اپ آی او اس و اندروید کارجو+ رو از لینک های زیر دانلود کنن و نظراتشونو در مورد سرویسمون از طریق اینستاگرام و تلگرام در میون بزارند . برای دانلود اپلیکیشن کارجو + هم میتونید از لینک های زیر استفاده کنید :
سینا عزیز ممنون که زمانتو در اختیار من و تمامی کاربران وب سایت reactapp.ir قرار دادی ، امیدوارم که در آینده اتفاق های فوق العاده ای برای استارتاپتون بیفته و باعث خوشحالی همه ما بشه ، دوستان عزیز اگه سوال و یا مسئله ای براتون مبهم بود میتونید از طریق توئیتر با سینا در ارتباط باشد .
مطالب زیر را حتما مطالعه کنید
قسمت دوازدهم گپ و گفت | اشکان اهرابی از SnappQ
قسمت یازدهم گپ و گفت | گفت و گو با علیرضا گودرزی
قسمت دهم گپ و گفت | مهدی خسروی از دیجیاتو
قسمت نهم گپ و گفت | مینا ربطی متخصص داده کاوی
قسمت هشتم گپ و گفت | مهرنوش دشتی از تیم ایوند
قسمت هفتم گپ و گفت |گفت و گو اکوموتیو با تیم reactapp
5 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
گفتگو خیلی خوبی بود مرسی از تیم ری اکت اپ
ممنون از لطفتون
سلام به دنبال هم تیمی برای ریاکت نیتیوم ابتدا نمونه کاری که دارم قوی کنیم بعد پروزه بگیریم کسب درامد کنیم
قبل از هر چیز واقعا ممنونم برای این گفت و گوها ، خیلی لذت بخش هست و تشکر ویژه هم دارم از اقای ملکی ، لطفا در مورد graphgl بیشتر توضیح بدید با تشکر و خسته نباشید
سلام ، ممنون از این همه روحیه و انرژی ، البته که به فکرش هستیم و همیشه پیشنهاداتتون برای ما مهم بوده ، ممنون