<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Hosein Moayedi</title>
        <link>https://virgool.io/feed/@moayedi_hosein</link>
        <description>Senior React Native | Mobile Application Developer</description>
        <language>fa</language>
        <pubDate>2026-04-15 03:29:32</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>Hosein Moayedi</title>
            <link>https://virgool.io/@moayedi_hosein</link>
        </image>

                    <item>
                <title>۳ افزونه که بر هر ایرانی الزامیست ?</title>
                <link>https://virgool.io/CodeLovers/%DB%B3-%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87-%DA%A9%D9%87-%D8%A8%D8%B1-%D9%87%D8%B1-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C%D8%A7%D9%86-%D8%A7%D9%84%D8%B2%D8%A7%D9%85%DB%8C%D8%B3%D8%AA-nfoahwgapzrx</link>
                <description>سلام سلام سلام ?خب از اونجایی که مقاله قبلیم با عنوان ۷ ماه کار ریموت برای روسیه خیلی خیلی مورد توجه قرار گرفته بود و کلی لایک و کامنت گزاشتین گفتم این بار یه چندتا افزونه برای مرورگرهای کروم بیس بهتون معرفی کنم که دیگه نگرانیتون از بابت شناسایی شدن توسط سایت ها و بسته شدن اکانتتون رو از بین ببرم! ?بچه ها یه چیزی رو دوستانه بهتون بگم... این افزونه ها رو گلچین کردم از بین افزونه‌های مشابه و از هر افزونه ای کلی تست گرفتم پس اگر دارم اینارو معرفی میکنم مطمئن باشید کاملا سیف و اوکی تو همه سایت ها داره کار میکنه.? تایمزون دستگاه رو تغییر نده! خب یکی از روش هایی که خیلی ساده میتونن بفهمن که شما تو چه لوکیشنی هستین این هست که تایمزون سیستمتون رو چک میکنن ببینن که مربوط به کدوم کشور هست و بعد اگر تایمزون با لوکیشن ip تون یکی نباشه خیلی راحت اکانتتون رو میبندن.حالا بجای اینکه بیاین هربار تایمزون دستگاه رو تغییر بدین کافیه افزونه &quot;Spoof Timezone&quot; رو نصب کنید و تایمزون کشوری رو انتخاب کنید که با VPN بهش وصل شدین.برای دانلود و نصب این افزونه کلیک کنید.مطمئن بشید که همین رو دانلود کردینتنظیمات من این بود برای IP آلمان? عزیزم کجایی, دقیقا کجایی؟! این یکی از بهترین و پرکاربرد ترین افزونه برای جعل لوکیشن لایو شما. یعنی چی؟!یعنی اینکه اگر افزونه &quot;Location Guard&quot; رو نصب کنی میتونی خیلی ساده یه لوکیشن فیکس از روی نقشه انتخاب کنی و همیشه اگر سایتی نیاز به دسترسی به GPS دستگاه داشت خودش لوکیشنی که ست کردی رو برای سایت به صورت اتوماتیک میفرسته.نکتش این هست که اول ببینید لوکیشن دقیق IP تون رو کدوم شهر و کجای نقشه سایت ها دارن نشون میدن بعد باید تو تنظیمات این افزونه برین همون مکان رو به عنوان لوکیشن فیکس مارک کنید.برای دانلود و نصب این افزونه کلیک کنید.مطمئن بشید که همین رو دانلود کردین قسمت Default level رو بزارین رو Use Fixed locationبرین به منوی Fixed Location و اون مکانی که لوکیشن IP تون هست رو مارک کنید بعد از setup کردن برین تو گوگل یه چیزی سرچ کنید و اسکرول کنید به آخر صفحه و روی لینک Update location بزنید تا لوکیشنتون رو بر اساس GPS مرورگر چک کنه که ببینه کجا هستین.میبینید که برای من Kassel که تو آلمان هست رو زدهنکته: اگر دیدین وقتی مرورگر رو میبندین و دوباره باز میکنید تو گوگل میزنه که شما ایران هستین دلیلش ۲ تا چیز میتونه باشه. ۱- ممکن هست که VPN شما اون لحظه که سرچ میکردین خاموش بوده باشه ۲- گوگل به صورت دیفالت میاد آدرس خونتون یا محل کارتون یا هر آدرسی که تو گوگل مپتون روی اکانت گوگل ست کرده باشید رو ملاک قرار میده. من خودم آدرس خونه و محل کارم رو که حذف کردم اوکی شد.?نشتی داری!والا من زیاد از WebRTC و نشتی های DNS اطلاعات کاملی ندارم ولی یکی از مهمترین و بهترین راه ها برای تشخیص هویت واقعی شما همین نشتی هاست که اونم با افزونه &quot;WebRTC Leak Prevent Toggle&quot; اوکی میشه.برای دانلود و نصب این افزونه کلیک کنید.مطمئن بشید که همین رو دانلود کردین اینطوری تنظیم کنید⚠️ آخرین و مهم ترین بخش ⚠️:یه VPN خوب تهیه کنید چون اونایی که رایگانه خیلی ساده قابل ردیابین! من خودم چون کارم حساسه یه سرور هتزنر آلمان از خود سایت اصلی گرفتم و روش VPN راه انداختم ولی شما میتونید از همین سایت های ف ر و ش V P N یکی تهیه کنید و استفاده کنید.✅ چک نهایییکی از سایت هایی که خیلی دقیق هست سایت pixelscan که چندتا ملاک از جمله یکی بودن تایمزون دستگاه با لوکیشن آی پی و چیزای دیگه رو کامل براتون چک میکنه.برای دریافت لوکیشن IP و لوکیشن GPS هم این سایت خیلی خوبه:‌ mylocationحرف آخر ?خلاصه اگر تو ایران داری زندگی میکنی و میخوای تا حد توان سیف کار کنی و اکانتات بلاک نشه این ۳ تا افزونه رو نصب کن و حالشو ببر و من و دعا کن ?یا علی ?</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Mon, 28 Feb 2022 12:58:50 +0330</pubDate>
            </item>
                    <item>
                <title>۷ ماه کار ریموت برای روسیه</title>
                <link>https://virgool.io/Rocket/%DB%B7-%D9%85%D8%A7%D9%87-%DA%A9%D8%A7%D8%B1-%D8%B1%DB%8C%D9%85%D9%88%D8%AA-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B1%D9%88%D8%B3%DB%8C%D9%87-xk1k0wna4zf7</link>
                <description>سلام ??خیلی وقت بود که دیگه مقاله جدیدی ننوشته بودم و گفتم این بار یه چیز بدرد بخور بنویسم شاید به کارتون بیاد تو این بازار کساد! ?خب الان ۷ ماهی هست که دارم برای یه شرکت در جمهوری چک که تیم فنی شون در بلاروس هست کار میکنم و خیلی خیلی راضیم ?اوایلش به صورت پاره وقت (ساعتی) کار میکردم چون همزمان تو یه شرکت بسیار خوب در ایران فعالیت داشتم به صورت فول تایم و خب از طرفی هم اصلا اولش چشمم از کار ریموت برای روسیه آب نمیخورد. ?بعد که رزومه فرستادم دیدم یه جلسه تو گوگل میت برام ست کردن ? که دو دفعه اول کنسل شد ? و خیلی تو ذوقم خورده بود!? اصلا فکر نمیکردم که جدی باشه.ولی بالاخره جلسه شروع شد و با این که خب قبلا برای یک هندی یک پروژه حل باگ اپ انجام داده بودم و یه مقدار ترسم هم از نظر زبان و هم از نظر کار ریموت با خارج ریخته بود این بار با اعتماد به نفس بهتری شروع به صحبت کردم. ?اونایی که من رو از نزدیک میشناسند میدونن که من آدم خیلی شوخ طبعیم و همین خیلی تاثیر در روابط شما داره مخصوصا برای افرادی که ایرانی نیستند. برای همین همون اول وقتی میخوام با کسی انگلیسی صحبت کنم میگم:‌ &quot;سلام. اول از همه من خیلی عذر میخوام بابت ضعفم در زبان انگلیسیم. اگر امکانش هست آهسته با بنده صحبت کنید و از کلمات ساده استفاده کنید.&quot; ?خب اون ها اصلا انتظار ندارند که حتما من ? فول باشه چون حتی خودشون هم ?  دومشون هست و اصل داستان ارتباط برقرار کردن و رسوندن مفهوم هست نه چیز دیگه. (البته به کشوری که شما براش کار میکنید هم بستگی داره چون اگر کشوری باشد که زبان نیتیوش انگلیسی هست خیلی تو رزومه تاثیر میزار ولی بازم شرکت با شرکت متفاوت)یه چیز دیگه ای که درباره ? باید بگم این هست که هیچ وقت خودتون رو گول نزنید ??‍♂️ که آی من زبانم باید فول شه تا بتونم کار خارجی بگیرم! اینا همه کشکه... تاثیر داره ولی نمیخواد فول باشه... اکثر مکالمه ها تو چت هست و میتینگ معمولا کمه. به خدا اگه من الان IELTS بدم شاید ۲ هم نشم.? من در حد مدرسه و دانشگاه فقط زبان بلدم و سطحم معمولیه همیشه.برای اینکه ترستون از ? بریزه یه برنامه هست به نام Hallo که کارش اینه که شما رو به افراد خارجی وصل میکنه و درباره یه تاپیکی صحبت میکنی و ترست میریزه.خب پس این شد از ?ساخت رزومممن جدا از اینکه کارم برنامه نویسی React Native هست و فقط و فقط فکوسم رو همین بوده تو این چند سال کار UI/UX هم بعضی مواقع میکردم چون دید هنری خیلی خوبی از بچگی داشتم. برای همین نشستم یه ۷ ساعت تایم گذاشتم و با Adobe XD برای خودم یه رزومه توپ و خیلی خوشگل ساختم‌. (البته بگما مثل اینکه تو خارج رزومه ها باید خیلی ساده باشه ولی خب من میخواستم اون توان UI/UX رو هم نشون بدم که اگه هم نشد حداقل یه کار UI بگیرم و دلار دربیارم)خلاصه هرچی تو این ۴ سال بلد بودم و نوشتم البته همه مربوط به برنامه نویسی موبایل میشد ولی خب از بزرگ ترین چیزها تا کوچ ترینشون رو دقیق نوشتم و تمام سوابقم رو توش به صورت عالی و کامل یادداشت کردم. ?بعد از اینکه با چند نفر UI/UX کار مشورت کردم و یه تغییراتی روش دادم٬ رزومه آماده ارسال بود. ✅از کجا کار گرفتم؟ ?والا من برای اینکه انگلیسیم قوی شه و بتونم سوالایی که درباره React Native داشتم رو بپرسم شروع کرده بودم به عضو شدن تو گروه های React و React Native. ولی مشکل اصلی اینجا بود که کسی که با شماره ایرانی تو تلگرام عضو شه نمیتونه تو خیلی از گروه های خارجی عضو شه! برای همین رفتم سراغ یه شماره مجازی دائمی. خب بالاخره قرار یه بیزینسی داشته باشم و باید یه شماره آمریکا داشته باشم. من از سایت numberland یه شماره مجازی گوگل دائمی خریدم و خیلی از پروفایل هام رو اگه ببینید اون شماره رو دادم برای کارم چون باهاش هم میتونید به تمام شماره های تلفن همراه یا شرکتی یا حتی خونه طرف تو کانادا یا آمریکا زنگ بزید و هم مشکل تلگرام و عضویت تو تمام گروه هاش حل میشد. (چی بهتر از این ... ? ?)بعد از عضویت تو گروه های مربوط به رشتم شروع کردم پیام دادن که آقا من اگر دنبال جاب آفر بخوام بگردم باید چه کنم؟ اونا دوباره یه سری گروه که اصلا مخصوص این کار بود رو لینکش و شیر کردن منم عضو شدم.فرض کنید جاب اینجا رو اومدن تو قالب تلگرام بالا اوردن ولی فرقش اینه که جای کارفرما با جا من٬ جابه‌جاست.یعنی چی ؟!?? یعنی اینکه ملت که دنبال یه برنامه نویسی میگردن یه متنی رو آماده میکنن که مثلا دنباله چه فردی هستیم و با چه مهارتی و حقوق چقدر هست و اینا و در آخر آی دی HR رو میزاشتن که اگه برنامه نویس مایل بود بهش پیام بده. ?خب اون گروه هایی که من عضو شده بودم تماما زبانشون روسی بود و هر نوتیفیکیشن جاب آفری که میومد من میزدمش تو translate بعد میفهمیدم که به درد من میخوره یا نه.یکی یکی شروع به ارسال تمام رزومه هام چه به صورت لینک یا چه به صورت اپ یا حتی ویدیو براشون کردم.جالبه که این جایی که تو این ۷ ماه هنوز هم دارم توش کار میکنم اولین پیام و اولین جاب آفری بود که من دیدم تو اون گروه و بقیه همه میگفتن که تیم ما همشون انگلیسی بلد نیستند و  نمیتونیم با شما کار کنیم! ?جالبه که تو مصاحبم گفتن که ما از تجربه کاری که با NFC در شرکت ریالو داشتی فهمیدیم که شما بهترین فرد برای ما هستین چون کار ما هم بسیار نزدیک به اون هست.حقوق رو چطور گرفتم؟ ?راستش برای گرفتن اولین حقوقم خیلی خیلی تحقیق کردم چون تمام روش ها چه پی پل چه راه های دیگه کلی کارمزد میگرفتن ازم و من به هیچ عنوان تو مغزم نمیرفت که چرا من باید کلی زحمت بکشم یکی دیگه ۱۰ درصد از حقوق من رو بگیره!؟ ?شاید بگین خب چرا از ارز دیجیتال استفاده نمیکنی؟! ?درباره این موضوع اگه بخوام توضیح بدم شاید خیلی ها بهم بخندن ولی اعتقاد هر آدم محترم هست. دلیلش این بود که آیت الله سیستانی و اکثر مراجع خرید و فروش ارزهای دیجیتال رو مشکل دار میدوندن و اصلا ارز دیجیتال رو پول به حساب نمیارند. (چون تمام شرایط شرعی پول بودن رو ندار)من همیشه سعی کردم که پول حلال تو زندگیم بیارم و برای هر کاری که میکنم دقیق حساب کتاب میکنم برای همین نمیتونستم از اون استفاده کنم.ولی....یه راه هنوز مونده بود.. من نمیتونستم تو خرید و فروش ارز دیجیتال دخالتی داشته باشم ولی میتونستم از ارز دیجیتال به عنوان حواله استفاده کنم. (یعنی آدرس کیف پول یه صرافی رو به مدیر مالی روسیه بدم که بریزه به اون و کد تاییده رو بدم به صرافی)خب با این کار و پیدا کردن یه صرافی خیلی خوب نه تنها کارمزد نمیدادم بلکه خیلی وقت ها تتری که میفروختم خیلی بالاتر از دلار لحظه ای بود و یه سود ریزی هم میکردم. ?صرافی آنلاین زیاد هست و یه سرچ کنید کلی براتون میاد. از TRC20 برای ۱ دلار کردن کارمزد استفاده کنید.یعنی خداوکیلی کی انقدر وقت برای نوشتن یه مقاله و این همه تجربه و تایمی که گذاشته شده برای رفتن این راه رو توش کامل توضیح میده؟ ?خب خوشحال میشم اگه نظراتون یا سوالاتون رو با من به اشتراک بزارید. سعی میکنم همه رو جواب بدم.</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Tue, 07 Dec 2021 21:35:53 +0330</pubDate>
            </item>
                    <item>
                <title>نقش زبان انگلیسی در تعیین درآمد برنامه نویس!</title>
                <link>https://virgool.io/fboard/%D9%86%D9%82%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A7%D9%86%DA%AF%D9%84%DB%8C%D8%B3%DB%8C-%D8%AF%D8%B1-%D8%AA%D8%B9%DB%8C%DB%8C%D9%86-%D8%AF%D8%B1%D8%A2%D9%85%D8%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-xa1v32tyndhk</link>
                <description>خب خب خب ! ??یعنی چی؟! مگه زبان چقدر میتونه تو درآمد من تاثیر بزاره آخه؟ ??شاید این کوتاه ترین مقاله من باشه ولی مفید ترین مقاله برای تو خواهد بود و ممکن که نگاهت رو از این رو به اون رو کنه پس با دقت بخونش ?یک لحظه فکر کنید که شما در کشوری بسیار عالی دارید زندگی میکنید و یک برنامه نویسی با همین علمی که الان تو ایران دارید در اونجا دارید زندگی میکنید و در یک شرکت متوسط در حال کد زدن هستید.حالا بیاین یه محاسبه ساده کنیم و ببینیم تفاوت درآمد ها در ایران با سایر کشورها چقدر هست؟من خودم برنامه نویس React Native هستم و خیلی هم سینیور نیستم و در شرکتی کار میکنم که درآمد خیلی خوبی رو نسبت به شرکت های دیگه میدن. ولی یه سوال اینجا پیش میاد. چرا نیام و برای یه شرکت خارجی همون کدها رو نزنم؟! ??من اگر همین الان تو کانادا یا هلند میبودم درآمدم ماهی حداقل ۵۰۰۰ دلار میبود. ? درآمد یه جونیور React Native تو کانادا ماهی ۳۰۰۰ دلار حداقل هست. من چی کم دارم ازش؟! ??اینجاست که یکی از اساسی ترین چیزها خفتم و گرفت و مانع پیشرفت من شد. (مکالمه به زبان انگلیسی) رفتم سفیر ثبت نام کردم و انگلیسیم رو تقویت کردم ولی کافی نبود چون انگلیسی خیلی فرار و شما باید هر روز صحبت کنید.خب هی نشستم فکر کردم که خدایا من هیچ بیکاری رو سراغ ندارم که بشینم باهاش صحبت کنم پس تصمیم گرفتم تو اینترنت یه سرچ کوچیک بزنم که باعث شده یه اپلیکیشن خارجی خیلی با حالی رو پیدا کنم.این اپ هم اساتید زبان در دنیا میان توش استریم میزارند هم مهم تر از اون این که شما رو به افراد مختلف در دنیا به صورت رندم وصل میکنه که با هاشون وویس چت و ویدیو کال کنید که همین کار باعث میشه ترستون از حرف زدن بریز و اعتماد به نفس پیدا کنید.اسمش Hallo هست و میتونید از لینک زیر دانلودش کنید (فقط فیل شکن میخواد و لاگین با شماره تلفن کار نمیکنه که شما میتونید بجاش با چیزای دیگه مثل فیسبوک یا گوگل لاگین کنید)? دانلود Halloمن تقریبا هر روز میشینم پاش و روزی ۲۵ دقیقه باهاش کار میکنم و با ملت صحبت میکنم.تاثیرش برای من واقعا محسوس بود و سرعت صحبت کردم به شدت رفت بالا.خب اینم یه مقاله ساده برای پیشرفتت که امیدوارم بهت کمکی کرده باشم.اگر دوست داشتی لایک یادت نره ❤️منتظر بازگشت سلطان باشید ?یا علی ✋</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Wed, 30 Sep 2020 00:25:14 +0330</pubDate>
            </item>
                    <item>
                <title>دیگه معطل بَک نشو! (Don&#039;t think about Back-end) ?</title>
                <link>https://virgool.io/coderlife/%D8%AF%DB%8C%DA%AF%D9%87-%D9%85%D8%B9%D8%B7%D9%84-%D8%A8%D9%8E%DA%A9-%D9%86%D8%B4%D9%88-dont-think-about-back-end-sqquifxjf6nb</link>
                <description>خب معلومه که خیلی با تیتر مقالم حال کردی و میخوای ببینی قضیه چیه!?همون طور که خودت هم میدونی مشکل اصلی ما فرانت اند کارها این که وابسته ایم به بک اِند کارامون. حالا بیا باهم یه مقدار از این وابستگی و کم کنیم و کارمون و بدونه بک اند کار تا آخر ببریم جلو بعد که همه چی تموم شد بریم دنبال بک اِند کار بگردیم ?حالا واقعا میشه؟ چطوری آخه؟؟اول از اون که معلومه که میشه راه های مختلفی برای این کار وجود داره ولی من بهترین راه رو بهت پیشنهاد میدم که خیلی ساده می تونید کاملاً بک اِند رو شبیه سازی کنی بدون اینکه حتی یک خط کد بنویسی حالا اگه می خوای بدونی چه جوری تا آخر با من باش ?استفاده از Mockoonچه برای مان آورده‌ای سلطان؟ محصول شگفت از بلاد کُفر ? ( نرم افزار Mockoon)خب برای اینکه شروع کنیم باید برید تو این سایت و نرم افزارش رو دانلود کنید و نصب کنید تا بقیه کارا رو بگم: https://mockoon.com/بعد از این که نصبش کردین بازش کنید تا چهره زیباش رو ملاقات کنید.یه همچین چیزیه ولی من چون دیتا اضافه کردم با مال شما تفاوت دارکار این برنامه این که برای شما رو لوکال و رو پُرتی که دوست دارید یه سرور ران میکنه که توش میتونید end point هاتون رو اضافه کنید و انواع status code ها رو هم برگردونید. قدرت این برنامه اینجاست که شما میتونید یه سری شرط براش بزارید که اگر مثلا تو کوِریش پارامتر id برابر ۱ بود چی برگردونه یا اینکه اگر کلا نداشت چه جوابی بده یا هر چیز دیگه‌ای.حتی میتونی یه دیلِی برای ریسپانسش تعریف کنی! ?اصلا میتونی یه فایل عکس یا هر چیزی رو هم برای یه end point  بفرستی که دیگه نخوای تو سایت های دیگه عکس یا asset ها تو اپلود کنی. ( به به عجب چیز نابیه ? )آماده‌ای بریم یادش بگیریم؟ ?من خودم تا یه جا‌هایی ازش استفاده کردم و تا الان این قابلیت‌هاش رو کشف کردم. ۱- بعد از اینکه برنامه رو اجرا کردی باید بیای رو دکمه منو در بالا سمت چپ بزنی و بعد روی علامت مثبت تا یه پروژه جدید بسازه.علامت سه خط که بالا سمت چپ رو بزنیدروی علامت مثبت بزنیدحالا میتونید شروع کنیدشمن الان میخوام اول End point رو درست کنم.خب end point ای که میخوام بسازم دوست دارم متود Get باشه, آدرس rout اش هم api/v1/token باشه و دو تا ریسپانس دار که یکی همون statue 200 که یعنی همه چیز اوکی بود و توکن رو بهمون میده و اون یکی status هم میخوام Bad Request باشه که یه ارور مسیجی هم به فرانت برمیگردونه. برای اینکه تو این مثال یه سری قابلیت های دیگه مثل گذاشتن شرط رو هم نشونت بدم, میخوام اگر device_id رو کاربر فرستاد استتوس ۲۰۰ و اگر هم نه که استتوس ۴۰۰ رو برگردونه. (خب این شد یه تمرین خوب ?)نکته: باید بگم که آدرس سرورت همون ادرس ip لوکال سیستمت هست که میتونی با دستور ipconfig تو cmd در ویندوز و برای دوستان مک بازم هم باید بگم باید برید تو Network Preferences از ستینگتون و روی علامت wifi یا هر چیزی که الان باهاش به اینترنت کانکت هستی بزنی تا در سمت راست ip لوکال دستگاهت رو ببینید.حالا میام تو قسمت Path support regexes که بغل نوع متودم هست مینویسم v1/token که آدرس end point ام هست.متودم هم که دیفالت رو Get انتخاب شده و پورت رو هم رو 3001 گذاشتم (من ۳۰۰۱ حال کردم شما یه چیز دیگه بزار). اون قسمتی هم که نوشته prefix میتونی اون عبارت یا آدرسی که همیشه قبل از end point  و بعد از آدرس سرورت میاد رو بزاری. (من گذاشتم api که یعنی اگر بخوام به این end point  درخواست بدم باید به این آدرس درخواستم رو ارسال کنم: http://192.168.1.104:3001/api/v1/token) 192.168.1.104 این آدرس local ip دستگاه من ها. برای شما قطعا فرق دار. حالا میریم سراغ ریسپانس‌ها که اول میایم اون ریسپانس بَدَ رو تعریف میکنیم که بیشتر اتفاق میافته. (استتوس ۴۰۰ یا همون بد ریکوِست)روی دکمه Add response بزن تا یه ریسپانس جدید برات بساز. حالا بیا از قسمت پایینش 400 - Bad Request رو انتخاب کن.حالا بیا تو قسمت پایین که خیلی بزرگ, body ایش رو بنویسیم:نکته خیلی خیلی مهم: این برنامه به تو نمیگه که json اتون مشکل دار یا نه پس حتما باید تو یه json viewer چک کنی. (بیشترین اشتباهی که من میکردم این بود که بعد آخرین آبجکت یه آرایه یا آخرین پراپرتی یه آبجکت میومدم ویرگول میزاشتم که این باعث می شه که دیگه به فرمت جیسون بر نگردونه و فرمتش استرینگ میشه)خب حالا برای اینکه جواب دیفالت ما بشه این ارور ۴۰۰ باید روی قسمتی که ریسپانس هامون رو انتخاب میکنیم بزنی و اون ریسپاسی که میخوای دیفالتت بشه رو دِرگ کنی و بکشیش بالا تا یه علامت پرچم بیاد روش.حالا بیا ریسپانس ۲۰۰ یا همون ok رو بسازیم. برای این کار چون به صورت دیفالت خود برنامه بعد از ساخت یه end point جدید برات میسازتش دیگه نیازی نیست دوباره بسازیم برای همین بیا رو اون قسمتی که ریسپانس هاتو انتخاب میکردی دوباره بزن و روی ۲۰۰ کلیک کن تا مشخصاتش معلوم بشه.من اومدم ریسپانس قبولیم رو اینطوری تعریف کردم برای مثال:حالا برای اینکه بیاد چک کنه که اگر کاربر تو کوِری استرینگش (یا همون پارامترهایی که با متود Get میفرستادیم ) اون پارامتر device_id رو داره یا نه میایم تو سربرگ Rules یه قانون جدید اد میکنیم.دکمه مثبت رو که بزنید اد میکنهتموم شد! من الان تونستم خیلی راحت یه end-point بسازم که فرانت بتون بهش درخواست بده.حالا برای اینکه یه سری تنظیمات رو برای همشون یه جا ست کنم میام اون بالا سمت راست میزنم رو علامت setting که بیام توش Content-type رو که تو ریسپانس برمیگردونه رو برای همشون application/json کنم.روی علامت مثبت بزن و اون Content-type رو برابر application/json بزارحالا برای اینکه سرورم run بشه میام روی اون دکمه play که بالا سمت چپ میزنم تا سرور اجرا بشه.بالا سمت چپدیگه باید با همه جاش وَر بری تا یاد بگیری چطور end-point هاتو بسازی.البته گقته باشم این مطلب اگر لایک و کامنت زیاد بخور قسمت های دیگش رو هم تو یه مقاله دیگه دوباره یادتون میدم. ?لایک ❤️ یادت نره. اگه سوال هم داشتی برام کامنت بزار تو سوت ثانیه جوابتو میدم?اینم تلگرامم: @nodes2684منتظر بازگشت دوباره سلطان باشید?یا علی✋</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Tue, 01 Sep 2020 21:54:21 +0430</pubDate>
            </item>
                    <item>
                <title>مهم ترین نکته امنیتی که تو کدت نادیدش گرفتی ?</title>
                <link>https://virgool.io/coderlife/%D9%85%D9%87%D9%85-%D8%AA%D8%B1%DB%8C%D9%86-%D9%86%DA%A9%D8%AA%D9%87-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%DA%A9%D9%87-%D8%AA%D9%88-%DA%A9%D8%AF%D8%AA-%D9%86%D8%A7%D8%AF%DB%8C%D8%AF%D8%B4-%DA%AF%D8%B1%D9%81%D8%AA%DB%8C-knwncrhjhvyj</link>
                <description>خب یه خسته نباشید اول کار بهت میگم که خستگی کدهایی که زدی از تنت دربیاد ?خسته نباشی ?باید بهت بگم که یه نکته ریز ولی مجربه یه اشتباه خخخیلی بزرگ رو تقریبا هممون داریم میکنیم اون هم این که کلی لاگ تو قسمت‌های مختلف اپمون داریم که کاربر خیلی راحت میتونه با یه سری برنامه اون لاگ‌ها رو بخونه و با اونا بیچارت کنه!! ?راه حلش چیه پس؟؟دو تا کار میتونی بکنی.یا اینکه بیای از کتابخونه‌هایی که لاگ رو پاک میکنن استفاده کنی که من توصیه نمیکنم الکی حجم کتابخونه ها تو ببری بالا  ?یا اینکه بیای این تولز چند خطی که بهت یاد میدم رو تو پروژت استفاده کنی ??میبینم که روش دوم برات منطقی تر بوده پس بریم با هم تولز Log رو بنویسیم ?‍?آموزش Log:خب من میخوام یه چیزی بنویسم که دقیقا همون console.log خودمون باشه با این تفاوت که یه دکمه خاموش روشن داره که اگر روشن باشه همه لاگ‌ها رو نشون میده اگر هم که خاموش باشه کل لاگات مخفی میشن (خیالت راحت از داخل کدت پاک نمیشن)خب حالا بیاید تو پروژه و یه فایل به نام Log.ts درست کنید (من اسم Log رو چون هم کوتاهه هم گویا انتخاب کردم که موقع دولوپ کردن راحت باشم)حالا بیاین این چندتا خط کد رو توش اضافه کنید:خب الان خیلی راحت میتونی با true یا false کردن اون showLogs, لاگ‌‌های اپت و خاموش و روشن کنی. حتی برای اینکه خیلی راحت تر باشی میتونی از کتابخونه react-native-config برای نسخه دیباگ و ریلیزت دو تا کانفیگ جدا درست کنی و true یا false بودن showLogs رو هم از اون بگیری که هی نخوای هر دفعه بیای این فایل رو تغییر بدی.خب اینم از این?لایک ❤️ یادت نره. اگه سوال هم داشتی برام کامنت بزار تو سوت ثانیه جوابتو میدم?اینم تلگرامم: @nodes2684منتظر بازگشت دوباره سلطان باشید?یا علی✋</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Tue, 01 Sep 2020 13:18:22 +0430</pubDate>
            </item>
                    <item>
                <title>موبایل اپ یا وب اپ ( ?‍♂️ MobileApp VS WebApp ?‍♂️ )</title>
                <link>https://virgool.io/coderlife/%D8%A7%D9%BE-%DB%8C%D8%A7-%D9%88%D8%A8-%D8%A7%D9%BE-%EF%B8%8F-app-vs-webapp-%EF%B8%8F-bax6lyrur96h</link>
                <description>خب خب خب !در اینجا دو قهرمان تازه نفس رو داریم که هر کدوم طرفدار‌های خاص خودشون رو دارن و الانم دارن برای این مسابقه سر و دست مشکنن! ?اوه اوه ... چه وضعیه!! ??بریم ببینیم هر کدوم چی تو چنته دارن؟بریم سراغ Mobile Application ( یا همون MobileApp )تمام این برنامه‌هایی که شما رو گوشیاتون دارین بهش میگن اپلیکیشن یا همون موبایل اپ.اپلیکیشن های خخخیلی سرعت بالایی دارن , چون مستقیما با سخت افزار کار دارن و هیچی بین این ارتباط نیست. پس ملت میرن سمتش , ولی خبر ندارن که جلوتر , اپل بی‌صاحاب شده , یه دیگ تحریم ریخته رو سرمون و نمیزار اپ‌‌های ایرانی انتشار پیدا کنن. اینجاست که WebApplication پشت موبایل اپلیکیشن و به خاک میمال و میگه زکی!! ??حالا این وب اپلیکیشن چیه که انقدر قدرت دار ??؟هیچی بابا همون سایت خودمونه که برای گوشی هم طراحی شده و یه سری دسترسی به سخت افزار هم بهش میده ولی سرعتش به پای سرعت موبایل اپ نمیرسه چون باید یه واسطه که همون مرورگر دستگاهِ باشه.ای بابا پس ما باید چه کار کنیم الان ؟؟ ?الان میگم چه کنید ?اول از همه باید بگم که خوبی ها و برتری‌های هر کدوم چیهاول وب اپلیکیشن:ویژه ترین مزیت وب اپلیکیشن , به جرات همون حذف محدودیت استفاده از اپلیکیشن اختصاصی سیستم عامل هست. وب اپلیکیشن که اومد ,کاربرای Android و IOS دیگه محدود به اپلیکیشن‌های موجود تو گوگل پلی و اپ استور نمیشن. مثلا دیگه لازم نیست یه کاربر اندروید فقط به اپلیکیشن های مخصوص اندروید یا یک کاربر آیفون فقط به اپلیکیشن های مخصوص آیفون دسترسی داشته باشه. با هر سیستم عاملی می تونی فقط با وارد کردن آدرس وب اپلیکیشن تو مرورگرت به اپش دسترسی پیدا کنی.ولی مشکل اصلی سرعته, که به نظرم مهم ترین چیز چون اگر سرعت حتی یکم هم پایین باشه میزنه تو ذوق کاربر که من با این قضیه بشدت مخالفم و یه چیز دیگه هم که هست اینکه شما محدودیت هایی برای استفاده از قابلیت موبایل دارید که همین باعث کم شدن دسترسی شما به منابع و قابلیت های گوشی میشه.حالا موبایل اپلیکیشن:سلطان گوشی موبایل اپلیکیشنه ?سرعت بالا که دار , دسترسی نامحدودم که به همه جای گوشی دار , دیگه چی بهترین از اینا؟؟ دیگه چی میخوای؟؟??⛔️ ولی همه بدبختیا سر تحریمه دیگه (اونم فعلا فقط برای iOS) ⛔️خب پس نتیجه چی شد ؟ببین ?اگر مدنظرت پروژه‌های ایرانیه که نسخه iOS اش رو هم میخوای بنظرم برو سمت همون وب اپ ها که باید برای اون بری فریموورک React رو خوب کار کنی.اگر میخوای فقط اپ برای اندروید بسازی اولویتش (React Native یا فلاتر ) بعد کاتلین بعد جاوا (اینا با اولویت بر اساس سریع تر و راحت تر دلووپ کردنه)اگر هم کلا پروژت خارجی که به شدت توصیه میکنم با (React Native یا فلاتر) اپ بسازی. (چون خیلی راحت هر دو نسخه Android, iOS رو بهت میده)خب اینم از این?لایک ❤️  یادت نره. اگه سوال هم داشتی برام کامنت بزار تو سوت ثانیه جوابتو میدم?اینم تلگرامم: @nodes2684منتظر بازگشت دوباره سلطان باشید?یا علی✋</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Mon, 31 Aug 2020 22:58:17 +0430</pubDate>
            </item>
                    <item>
                <title>یه هوک جذاب ! (useRedux) ?</title>
                <link>https://virgool.io/iran-react-community/%DB%8C%D9%87-%D9%87%D9%88%DA%A9-%D8%AC%D8%B0%D8%A7%D8%A8-useredux-qezbd5hwxhte</link>
                <description>چی؟! useRedux؟!! ?بله.الان میخوام یه تولز خفن بهت یادم که کارهای مربوط به ریداکست رو مثل باقلوا انجام بده.فقط اول باید این چندتا چیز رو بلد باشی تا بتونی متوجه بشی که من چه کردم:هوک (Hook)ریداکس (Redux)الان نمیخوام  وارد هوک و ریداکس بشم چون پایه این مقاله بر اساس بلد بودن این دو هست.تو همین سایت ویرگول دوستان بسیاری درباره هوک کاملا توضیح دادن که پیشنهاد میکنم اول اونا رو مطالعه کنی بعد بیای ادامه راه و با هم بریم ?بریم useRedux رو بسازیم ☺️اول از همه برای اینکه این پروژتون یه مقدار سر و سامون بگیر بیاین تو روت پروژه یه فولدر hooks بسازید و تمام هوک هاتون رو توش تعریف کنید.حالا بیاین تو همون فولدری که ساختین (hooks) یه فایل به نام useRedux.ts بسازید (من برای اینکه کارتون راحت تر بشه تو استفاده کردن ازش اومدم از تایپ اسکریپت استفاده کردم که بهمون پیشنهاد بده)حالا بیاین تو فایلی که ساختین هوکتون رو درست کنید:خب بزارید درباره کانتکست این useRedux عزیزمون یه توضیحی بهتون بدم که دقیقا باید چه کاری رو برامون بکنه.کله بدبختی ما سر اضافه کردن و یا ادیت کردن استیت‌هاست که باید الان تو قالب گلوبال باشه. برای همین اومدن redux و context و ... رو تعریف کردن. (تا اینجا اوکی؟)حالا ما با نوشتن یک هوک ساده میایم سه عمل اصلی (دریافت , ذخیره , ریست) رو به راحتی هندل میکنم.پس میایم سه تا تابع به نام‌ها  Get , Save و Reset تعریف میکنم و اون ها رو تو آبجکتی که هوکمون دار return میکنه , اضافه میکنیم.خب اول از اون که باید حتما react-redux و redux پروژتون کاملا اپدیت باشه تا هوک‌های ریداکس رو شامل بشه. بعد بیاید تو App.js پروژتون و موارد زیر رو ایمپورت کنید:import {createStore} from &#039;redux&#039;;
import {Provider} from &#039;react-redux&#039;;
import React, {useState} from &#039;react&#039;;
import Reducers from &#039;فایلی که توش کامباین ردیوسرز ریتر میشه&#039;بعدش به محض اینکه تابع App تعریف شده بود توش این کد رو اضافه کنید:const App = () =&gt; {
          const [store] = useState(createStore(Reducers));
...بعدشم که مشخص باید مثل قبلانا بیاین این استور رو به Provider پاس بدین و حتما هم Provider باید تگ اصلی اپتون باشه:خب تا الان کانفیگ ریداکسمون رو یه مقدار دستکاری کردیم برای اینکه بتونیم از هوک های ریداکس استفاده کنیم. حالا برمیگردیم به فایل useRedux خودمون که ادامه کار رو بنویسیم.الان ما برای تغییر دادن استیت‌هامون به یه dispatch نیاز داریم که باید بیایم اون رو از هوک useDispatch که react-redux بهمون میده دریافت کنیم.پس اول useDispatch رو از react-redux ایمپورت کنید بعد داخل و زیر فانکشن useRedux این کد رو برای گرفتن dispatch بنویسید:const useRedux = () =&gt; {      const dispatch = useDispatch();
...حالا ما dispatch رو داریم که خیلی راحت میتونیم باهاش استیت ها رو تغییر بدیم (برای تابع Save, Reset استفاده میشه)حالی بیاین یکی یکی تابع ها رو اوکیشون کنیم:اول بریم سراغ Get:بیاین useSelector رو هم از react-redux ایمپورت کنید تا بتونیم استیت‌هامون رو ازش دریافت کنیم.import {useDispatch, useSelector} from &#039;react-redux&#039;;حالا بیاین زیر همون جایی که useDispatch رو تعریف کردیم و این کد رو بنویسید:const useRedux = () =&gt; {      const dispatch = useDispatch();
      const states = useSelector((state: ReducersStates) =&gt; state) as ReducersStates;
...آقا فوحشم ندینا ? الان میگم ReducersStates چیه. یه لحظه صبرِلَ ??بابا من اومدم یه چندتا اینترفیس قبلا تعریف کردم که توش تمام تایپ های استیت هام هست. نگاه کنید:این تایپ های استیت های user ام هستاینم تایپ‌های استیت‌های اپم هستحالا اومدم یه اینترفیس تعریف کردم که یه آبجکت که استیت های app و user رو دار که با زدن . میتونید بهش دسترسی داشته باشید.فقط من اومدم هر کدوم از این اینترفیس هارو جداگونه تو فایل های مختلف تعریف کردم که مرتب تر باشه.قابل توجه دوستانی که هنوز تایپ اسکریپت بلد نیستند (این اینترفیس ها و تایپ ها هستند که موقع دولوپ در vsCode به شما ادامه کد رو پیشنهاد میدن). پس لطف کنید و سریع سوییچ کنید رو تایپ اسکریپت تا از شر دیباگ‌های وقت گیر راحت بشیدتو تمام ide ها این پیشنهاد ها میاد براتون (پس اگر وقتت برات با ارزش سوییچ کن رو تایپ اسکریپت)حالا داخل بدنه تابع Get امون کافیه states رو return کنیم تا تمام state هامون رو بتونیم بعد از فراخونی کردن تابع Get بگیریم.const Get = () =&gt; {return states}خب تابع Get دیگه اوکی شد. از این به بعد هم هر موقع خواستین از استیت هاتون استفاده کنید کافیه این کار رو بکنید:export const CustomButton = () =&gt; {
    const states = useRedux().Get()
...حالا بریم سر اصل کاری که Save:این بدنه تابع Save امون هست:const Save = (data: UserStates | AppStates, statesType: &#039;user&#039; | &#039;app&#039;) =&gt; {      switch (statesType) {            case &#039;app&#039;:                data = data as AppStates;                dispatch(appChangeData(data));                 break;           case &#039;user&#039;:                data = data as UserStates;                dispatch(userChangeData(data));                break;           }
};بچه‌ها با تجربه سریع گرفتن که چی شد ??دوستان عزیز. ببینید من کار شاخی نکردم به خدا.. اومدم گفتم که من کلا دوتا دسته استیت دارم (app,user) که میخوام هر موقع یه استیتی رو توشون اپدیت کنم باید بیام بگم که کدوم استیت هست و تو کدوم دسته قرار داره. (همین!)یه نکته: اون کلمه as کارش این هست که تایپ ها رو تبدیل میکنه به هم پس درگیر اون نشید.و اینکه appChangeData و userChangeData هر دو اکشن های من هستند:appChangeDatauserChangeDataبزارید یکی از ردیوسرهام رو هم نشون بدم:میاد پراپرتی که تو payload یا value اکشن هست رو اسپرینگ میکنه تو استیت نهایی ردیوسرالان میخوام به عونان مثال بیام استیت connection رو تو دسته app اپدیت کنم (یه نگاه به عکس‌های اینترفیس ها بندازید استیتام هست). برای این کار کافیه بیام بنویسم:از زیبایی های تایپ اسکریپت const {Save} = useRedux()Save({connection: true}, &#039;app&#039;)و تمام!راحت تر از این مگه میشه اصلا؟!??کانفیگ اولش شاید یه مقدار زمان گیر باشه (البته بیشتر از ۱۵ دقیقه کار نمی‌بر) ولی موقع استفاده کردن خیلی راحت تر.حالا هم بریم سر اخرین تابع که همون Reset:const Reset = (statesType: &#039;app&#039; | &#039;user&#039;) =&gt; {      switch (statesType) {          case &#039;app&#039;:          dispatch(appResetData());          break;      case &#039;user&#039;:          dispatch(userResetData());          break;      }};این تابع هم که کارش ریست کردن استیت‌ها به مقدار اولیشون هست.اکشنش ایناین هم ردیوسرم هست که اکشنش USER_RESET_DATA هست که میاد همون استیت ها رو با مقدار اولیه return  میکنهتبریک میگم ? ?اقا بالاخره تموم شد و میتونید از این به بعد یه نفس راحت از دست ریداکس بکشید ?بیاین یه بار دیگه استفاده کردن ازش رو ببینیم ?:const {Get, Save, Reset} = useRedux();const states = Get() یا Get().app //گرفتن استیت ها
Save({connection: true}, &#039;app&#039;) //ذخیره یا اپدیت کردن
Reset(&#039;app&#039;) //ریست کردن استیت appدوستان ممنونم از اینکه مقاله من رو خوندین. من سعی کردم خیلی در فضای خودمونی و جذاب بهتون توضیح بدم و امیدوارم که تونست باشم کارتون رو راحت تر کرده باشم.لطف کنید حتما نظر بدین چون این اولین مقاله من در ویرگول هست و اگر بازخورد ها خوب باشه بازم هم ادامه خواهم داد.من تا میتونم دارم سعی میکنم که این useRedux رو بهینه ترش کنم. لطفا تو این کار من رو یاری کنید و اگر چیزی به ذهنتون اومد حتما تو نظرات یا به ای دی تلگرامم ارسال کنید: تلگرام: @nodes2684منتظر بازگشت سلطان باشید ??</description>
                <category>Hosein Moayedi</category>
                <author>Hosein Moayedi</author>
                <pubDate>Sun, 30 Aug 2020 16:33:30 +0430</pubDate>
            </item>
            </channel>
</rss>