ریاکت برای غارنشینان 13 (kiwi)

احتمالا نمیدونین kiwi چیه ... در بهترین حالت به فکر یه میوه ی موکتیه خوشمزه یا یه پرنده که نمیتونه پرواز کنه افتادین ... البته این kiwi ما خیلی بی ربط با پرواز نیست . شرکت kiwi.com یه شرکت فروش بلیط هواپیما هست که دولوپرهاش رو خیلی دوست داره و تا جایی که من فهمیدم عاشق پایتون و ریاکته . مدت کوتاهیه که این شرکت تصمیم گرفته کامپوننت هایی که ازش برای ساخت وبسایتش استفاده کرده رو به صورت یه دیزاین سیستم دربیاره و اپن سورس منتشرشون کنه. کارشون چند تا ویژگی داره که من خیلی خوشم اومده ازش .اول از همه این که از styled-components استفاده میکنن و برای استفاده ازش باید styled-components رو نصب کنیم که خب ما هم داریم از همین استفاده میکنیم . دوم این که نحوه ی کد نویسیش به نحوی هست که میشه خیلی راحت توسعه ش داد و اگه داخل سورسش بگردین میبینین که کار عجیبی نکرده و همه چی خیلی سر راست و قابل فهمهسوم این که به اون حالت اتمیک دیزاین ما خیلی نزدیکه و عملا هر کدوم از کامپوننت هاش یه اتم حساب میشه برای ماچهارم این که شاید بگید کامیونیتی قوی نداره ولی kiwi نیومده تکنولوژی جدیدی معرفی کنه و داره فقط برای styled-component کامپوننت های پایه رو میسازه که خب خود styled-component به قدر کافی کامیونیتی داره که خیالمون راحت باشه و به این هم باید توجه کنیم که این پروژه ی kiwi خیلی جدیده و هنوز به ریلیز 1.0.0 نرسیده . تیم توسعه ش که عملا کارمندای شرکت kiwi هستن دارن هر روز روش کار میکنن و تقریبا هفته ای 3 تا ریلیز جدید میدن . خوبیش اینه که برنامه ی مشخصی برای توسعه دارند که از اینجا میتونین ببینین. طبف این برنامه تا دو ماه دیگه ورژن 1.0.0 ریلیز میشه.پنجم این که kiwi هم برای React و هم برای React Native در حال توسعه هست . در کل اینجوریه که اینا اول کامپوننت رو توو sketch دیزاین میکنن .بعد نسخه ی React رو میدن و بعد نسخه ی React Native . وضعیت کامپوننت های منتشر شده هم از اینجا قابل مشاهده هست.میشه قسنگ دید هر کامپوننت الان در چه وضعی هست و تا کی باید منتظر بمونیم تا بیاد .میشه گفت دیگه تقریبا همه ی کامپوننت های اصلی آماده شده و کم کم میریم برای ریلیز 1.0.0ششم این که kiwi رو با flow نوشتن . که خب برای یه عده مزیت محسوب میشه و برای ما که پروژه مون تایپ اسکریپته خیلی خبر خوشحال کننده ای نیست. یه ایشو بهشون زدم و گفتن که توو برنامه شونه که خیلی زود تایپ ها رو هم منتشر کنن .بنابراین خیلی بی تایپ نمیمونیم . البته ما چون حال صبر کردن نداشتیم کل پروژه رو کلون کردیم و بردیمش روی تایپ اسکریپت با این خیال که از اینجا به بعدش رو خودمون توسعه میدیم ...ولی سرعت توسعه ی تیم kiwi اونقدر بالا بود که با خودم گفتم توو این پروژه بیخیال اون کلون بشم و kiwi رو از ریپوی خودش نصب کنیم و امیدوار باشیم تایپ ها زودتر برسه.هفتم این که همه ی کامپوننت ها تست داره و براشون storybook هم نوشته شده .کلا این پروژه حال میده برای این که کلون کنی و برای خودت یه اتمیک دیزاین شخصی باحال درست کنی ..میتونین استوری بوکش رو از لینک پایین ببینین. اگه خود سایت kiwi.com رو هم دیده باشین میبینین که کاملا همونه https://kiwicom.github.io/orbit-components/?path=/story/* هشتم این که از rtl پشتیبانی میکنه ... شاید بعضی جاها هنوز مشکل داشته باشه ولی چیزی نیست که نشه حلش کرد و در کل داخل تم گزینه ی rtl دیده شده و یه util برای rtl render داره .نهم این که بعضی از کامپوننت های قدیمیشون هنوز به صورت کلاس نوشته شدن ولی جدید هارو فانکشنال نوشتن . بهشون ایشو زدم و گفتن که کنم کم قدیمیا رو هم فانکشنال مینویسنیه توکن دیزاین برای تم هم داره که اونم سخت در دست توسعه و بهبود هست .. قابلیت ترجمه هم براش گذاشتن که من نیاز نداشتم و توی کلون خودم پاکش کردم ولی اینجا هست دیگه ...در کل همه چیزش خیلی برام دوست داشتنیه و نکته ی دیگه ای فعلا یادم نمیاد ...بریم که کل اتم های مورد نیاز پروژه مون رو با یه حرکت بسازیم .یادم رفت صفحه ی اصلی داکیومنتش رو معرفی کنم...اینه https://orbit.kiwi/ خب برای نصبش اینو میزنیم npm install @kiwicom/orbit-components شت ...نصب شد ولی بدون تایپ اسکریپت عملا نمیشه باهاش کار کرد :|مشکل استفاده نداره ها ولی نمیدونی کدوم کامپوننت چه پراپ هایی میگیره و همش باید تب داکیومنت باز باشه.مثلا کامپوننت Text رو بخوای استفاده کنی یه همچین چیزی میشه. من از پراپ های element , size, type,weight استفاده کردماینا رو چون تایپ نداریم موقع وارد کردن هیچ هینتی بهم نداد ولی توی داکیومنتش همچین چیزی دارهیه راهش اینه که منتظر بمونیم خودشون تایپ بنویسن و تا اون موقع با داکیومنتش بریم جلو ..یه راهم اینه که اون کلون دست و پا شکسته مون رو فعلا بیاریم داخل و بعدن که تایپ ها رسید با این جایگزینش کنیم.هومممم.یا که اصن پروژه مون رو ببریم روو فلو...اصن همزمان میشه فلو و تایپ اسکریپت فعال باشه؟زودی بر میگردم