<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nomanoff</title>
    <description>The latest articles on DEV Community by Nomanoff (@nomanoff_tech).</description>
    <link>https://dev.to/nomanoff_tech</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F547287%2Fd5d5722c-f27a-422d-b062-f3e22ca6d025.jpg</url>
      <title>DEV Community: Nomanoff</title>
      <link>https://dev.to/nomanoff_tech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nomanoff_tech"/>
    <language>en</language>
    <item>
      <title>How to create a SplashScreen in React Native (iOS/Android)</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Fri, 13 Oct 2023 08:45:35 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/how-to-create-a-splashscreen-in-react-native-iosandroid-5g0e</link>
      <guid>https://dev.to/nomanoff_tech/how-to-create-a-splashscreen-in-react-native-iosandroid-5g0e</guid>
      <description>&lt;p&gt;For this tutorial I am going to be using a third-party library called &lt;a href="https://github.com/zoontek/react-native-bootsplash"&gt;react-native-bootsplash&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install the library:
&lt;code&gt;yarn add react-native-bootsplash&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;1.1. for iOS installation go to &lt;code&gt;ios/&lt;/code&gt; directory and run &lt;code&gt;pod install&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2.You can use the following command to generate the splash screen with the specified options:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx react-native generate-bootsplash app/assets/my_app_logo.png \
  --background=#FFFFFF \
  --logo-width=150 \
  --assets-output=app/assets \
  --platforms=android,ios,web \
  --flavor=main

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;app/assets/my_app_logo.png&lt;/code&gt; is the path to your logo file.&lt;br&gt;
&lt;code&gt;--background=#FFFFFF&lt;/code&gt; sets the background color to white (&lt;code&gt;#FFFFFF&lt;/code&gt;).&lt;br&gt;
&lt;code&gt;--logo-width=150&lt;/code&gt; specifies the logo width as &lt;code&gt;150&lt;/code&gt; pixels.&lt;br&gt;
&lt;code&gt;--assets-output=app/assets&lt;/code&gt; specifies the output directory for generated assets.&lt;br&gt;
&lt;code&gt;--platforms=android,ios,web&lt;/code&gt; generates assets for Android, iOS, and web.&lt;br&gt;
&lt;code&gt;--flavor=main&lt;/code&gt; is the Android flavor build variant (where your resource directory is).&lt;/p&gt;

&lt;p&gt;After running this command, the "react-native-bootsplash" tool will generate the necessary assets and configurations for your splash screen. Make sure to verify that the generated assets are placed in the appropriate folders within your project, especially in the Android and iOS directories.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;iOS further installation:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;iOS Integration for React Native Splash Screen&lt;/p&gt;

&lt;p&gt;3.1 Open the &lt;code&gt;AppDelegate.mm&lt;/code&gt; file in your iOS project located in the &lt;code&gt;ios/YourProjectName&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;3.2 Import the "RNBootSplash" header at the top of the &lt;code&gt;AppDelegate.mm&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   #import "RNBootSplash.h"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.3 Add the following code before the &lt;code&gt;@end&lt;/code&gt; of the &lt;code&gt;AppDelegate.mm&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- (UIView *)createRootViewWithBridge:(RCTBridge *)bridge
                          moduleName:(NSString *)moduleName
                           initProps:(NSDictionary *)initProps {
  UIView *rootView = [super createRootViewWithBridge:bridge
                                          moduleName:moduleName
                                           initProps:initProps];

  [RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView]; // Initialize the splash screen

  return rootView;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;now after that there will be a file generated called: &lt;code&gt;Bootsplash.storyboard&lt;/code&gt; find it in your finder and drag and drop it in your xcode projects right where the AppDelegate.mm file &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q6aY96ol--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8y8seoi3rh9hbx81d60f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q6aY96ol--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8y8seoi3rh9hbx81d60f.png" alt="drag-drop the file" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create folder references:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---5NXPdTP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g818jvswdhb9z7u01umf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---5NXPdTP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g818jvswdhb9z7u01umf.png" alt="folder reference" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Set BootSplash.storyboard as Launch Screen File:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B357pCHo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t0df9v9zwz841ewxum1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B357pCHo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t0df9v9zwz841ewxum1g.png" alt="set the file as launch screen file" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Android:
follow these instructions: &lt;a href="https://github.com/zoontek/react-native-bootsplash#android-1"&gt;Android installation guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once it is done, you can import &lt;code&gt;BootSplash&lt;/code&gt; from &lt;code&gt;react-native-bootsplash&lt;/code&gt; and use it like bolow if you are using React Navigation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;NavigationContainer
      onReady={() =&amp;gt; {
        BootSplash.hide();
      }}&amp;gt;
      &amp;lt;AuthNavigator /&amp;gt;
    &amp;lt;/NavigationContainer&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I hope it was useful!&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>reactnative</category>
      <category>splashscreen</category>
    </item>
    <item>
      <title>Recovering a Lost Keystore File for Android App Signing</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Mon, 06 Feb 2023 02:17:17 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/recovering-a-lost-keystore-file-for-android-app-signing-18h6</link>
      <guid>https://dev.to/nomanoff_tech/recovering-a-lost-keystore-file-for-android-app-signing-18h6</guid>
      <description>&lt;p&gt;Losing your keystore file can be a nightmare for any mobile developer. That's exactly what happened to me when I deleted my React Native project from my Mac and cloned it back from GitHub. To my horror, the &lt;code&gt;my-upload-key.keystore&lt;/code&gt; file, which I used to sign and publish my app on the play store, was missing. I tried generating a new one, but the play store rejected it, saying it didn't match the previous build key. I was stuck and didn't know what to do next.&lt;/p&gt;

&lt;p&gt;I had a few options to consider, but I couldn't create a new &lt;code&gt;.keystore&lt;/code&gt; file as that would take too much time and I didn't have a backup 🤦‍♂️. My last option was to find a way to restore my &lt;code&gt;.keystore&lt;/code&gt; file. After a lot of searching and grinding, I discovered that I had been keeping a &lt;code&gt;.jks&lt;/code&gt; file somewhere in my mac 😅, and I found out that it could be used to restore the &lt;code&gt;.keystore&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;Converting a &lt;code&gt;.jks&lt;/code&gt; file to &lt;code&gt;.keystore&lt;/code&gt; is a straightforward process that can be done using the &lt;code&gt;keytool&lt;/code&gt; command in the terminal or command line. First, navigate to the folder where the &lt;code&gt;.jks&lt;/code&gt; file is located using the &lt;code&gt;cd&lt;/code&gt; command. Then, run the keytool command with the necessary arguments to convert the &lt;code&gt;.jks&lt;/code&gt; file to a &lt;code&gt;.keystore&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;keytool -importkeystore -srckeystore upload-keystore.jks -destkeystore my-upload-key.keystore -srcstoretype JKS -deststoretype PKCS12

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that, in this command, you need to replace "upload-keystore.jks" with the name of your &lt;code&gt;.jks&lt;/code&gt; file, and "my-upload-key.keystore" with the desired name of your new &lt;code&gt;.keystore file&lt;/code&gt;. The command will prompt you to enter the password for the &lt;code&gt;.jks&lt;/code&gt; file, and then it will generate the new &lt;code&gt;.keystore&lt;/code&gt; file. If you don't know the password and the name you can view it from your &lt;code&gt;android/gradle.properties&lt;/code&gt; file. This is because when you first set up your React Native project you must have generated it. It will look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After generating the new &lt;code&gt;.keystore&lt;/code&gt; file, I was able to successfully build my app and publish it on the Google Play Store 🎉.&lt;/p&gt;

&lt;p&gt;In conclusion, if you ever face a similar situation, don't panic. Instead, check if you have any &lt;code&gt;.jks&lt;/code&gt; files that could be used to restore your &lt;code&gt;.keystore&lt;/code&gt; file. This simple solution saved me a lot of time and hassle, and I hope it helps you too!&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>mysql</category>
      <category>redis</category>
      <category>pubsub</category>
    </item>
    <item>
      <title>how to udpate iTerm theme</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Fri, 03 Feb 2023 08:52:08 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/how-to-udpate-iterm-theme-95o</link>
      <guid>https://dev.to/nomanoff_tech/how-to-udpate-iterm-theme-95o</guid>
      <description>&lt;p&gt;First dowload iterm2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install --cask iterm2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://iterm2.com/index.html" rel="noopener noreferrer"&gt;https://iterm2.com/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oh My Zsh&lt;/p&gt;

&lt;p&gt;install with curl&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Powerlevel9k / Powerlevel10k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/kevin-smets/8568070" rel="noopener noreferrer"&gt;https://gist.github.com/kevin-smets/8568070&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and then edit &lt;code&gt;~/.zshrc&lt;/code&gt; and set &lt;code&gt;ZSH_THEME="powerlevel10k/powerlevel10k"&lt;/code&gt;. To open the the &lt;code&gt;~/.zshrc&lt;/code&gt; write &lt;code&gt;nano ~/.zshrc&lt;/code&gt; it should open it and edit and save the file and open a new tabe and it will start the wizard&lt;/p&gt;

&lt;p&gt;and can use one of these colors there like I use dracula&lt;/p&gt;

&lt;p&gt;&lt;a href="https://iterm2colorschemes.com/" rel="noopener noreferrer"&gt;https://iterm2colorschemes.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it didn't work then follow this link &lt;a href="https://gist.github.com/kevin-smets/8568070" rel="noopener noreferrer"&gt;https://gist.github.com/kevin-smets/8568070&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Open the React Native debugger on Android without shaking.</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Wed, 07 Dec 2022 04:07:14 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/open-the-react-native-debugger-on-android-without-shaking-c6p</link>
      <guid>https://dev.to/nomanoff_tech/open-the-react-native-debugger-on-android-without-shaking-c6p</guid>
      <description>&lt;p&gt;So, I am sitting in a class with a bunch of students and I wanna try to code my app. However, every time I want to debug I have to shake the phone which is weird during class time so I had to research how to open the debugger without shaking. &lt;/p&gt;

&lt;p&gt;Here is how:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First, make sure you have the adb tool installed on your computer. If you don't have it, you can download and install it as part of the Android SDK (see &lt;a href="https://developer.android.com/studio/command-line/adb" rel="noopener noreferrer"&gt;https://developer.android.com/studio/command-line/adb&lt;/a&gt; for more information).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect your Android device to your computer using a USB cable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open a terminal or command prompt on your computer, and navigate to the directory where the adb tool is installed (usually something like C:\Users\username\AppData\Local\Android\Sdk\platform-tools on Windows, or ~/Library/Android/sdk/platform-tools on macOS).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the terminal or command prompt, run the following command to list the connected devices:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adb devices

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command should output a list of the connected devices, including your Android device. The output should look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;List of devices attached
emulator-5554   device
5e51b22d    device

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;In the terminal or command prompt, run the following command to open the debugger on your device:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adb -s 5e51b22d shell input keyevent 82

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;5e51b22d&lt;/code&gt; with the actual device ID of your Android device from the output of the &lt;code&gt;adb devices&lt;/code&gt; command. This command will send a key event to the device with the code &lt;code&gt;82&lt;/code&gt;, which is the code for the "menu" key. On most Android devices, this will open the debugger tool.&lt;/p&gt;

&lt;p&gt;Alternatively, instead of using the &lt;code&gt;adb&lt;/code&gt; tool, you can also use the React Native Debugger app (&lt;a href="https://github.com/jhen0409/react-native-debugger" rel="noopener noreferrer"&gt;https://github.com/jhen0409/react-native-debugger&lt;/a&gt;) to open the debugger on your device. This app provides a button that you can press to open the debugger, so you don't have to use the adb tool or shake the phone.&lt;/p&gt;

&lt;p&gt;I hope this helps! Thanks!&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
    <item>
      <title>Bye, bye 10FastFingers! Hello, Monkeytype!</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Tue, 15 Nov 2022 14:07:35 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/bye-bye-10fastfingers-hello-monkeytype-2bhc</link>
      <guid>https://dev.to/nomanoff_tech/bye-bye-10fastfingers-hello-monkeytype-2bhc</guid>
      <description>&lt;p&gt;As a developer, I have a special passion for &lt;strong&gt;touch-typing&lt;/strong&gt;(- the practice or skill of typing using all one's fingers and without looking at the keys). I believe that being able to type faster improves one's productivity, especially if you write code a lot. I have been practicing touch-typing since &lt;strong&gt;2019&lt;/strong&gt;. When I saw students at my university typing so fast without looking at their keyboards I was amazed and really wanted to be able to do it myself. Initially, I started with &lt;a href="https://www.keybr.com/" rel="noopener noreferrer"&gt;keybr.com&lt;/a&gt; which helped me learn to type without looking at my keyboard. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tltoa2bdoorrkv6xrzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tltoa2bdoorrkv6xrzw.png" alt="photo of keybr.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learning to type fast is such a slow process. You need to be patient and consistent. It took me a lot of practice just to memorize the locations of letters on the keyboard. But I tried to be consistent and practiced whenever I could. &lt;/p&gt;

&lt;p&gt;And then, I found out about &lt;a href="https://10fastfingers.com/" rel="noopener noreferrer"&gt;10fastfingers.com&lt;/a&gt; which defines itself as a website for testing &amp;amp; improving one's typing speed through free typing games. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff83jn482r9d56g2jn9tr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff83jn482r9d56g2jn9tr.png" alt="photo of 10fastfigners"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I stayed at 10fastfingers longer. I used to practice almost every day so much that my roommate used to complain about the keyboard noise I was making (Because I used to practice on a cheap and loud keyboard). After getting so many complaints from my roommate, I convinced myself to buy Magic Keyboard by dear Apple so that I wouldn't make too much noise. Plus, it was my dream keyboard too. &lt;/p&gt;

&lt;p&gt;I was(still am) a member of 10fastfingers for more than two years. During this time I have taken 2,550 tests while typing almost 135,000 words. I wasn't very consistent but when I was, boy, I was spending hours and hours taking typing tests. My highest score was 81 WPM (words per minute) which is not that impressive but for me, it really is. Below are some of my stats:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3fkpc40dyyp2crfmdsa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3fkpc40dyyp2crfmdsa.png" alt="photo of my stats"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I really loved 10fastfingers and will continue using it (occasionally). However, it is time to change. &lt;/p&gt;

&lt;p&gt;For the past 3 months, I have been using &lt;strong&gt;Monkeytype&lt;/strong&gt; which is also a touch-typing website featuring many test modes but much much better. It is really fun. The website is clean and fast. The UI is also very pleasant to look at. It gives more flexibility for users than &lt;strong&gt;10fastfingers&lt;/strong&gt;. Possible to set 15, 30, and 60 (also 120) seconds for a test. Customizable word types and characters. Surprisingly, it is &lt;strong&gt;open-source&lt;/strong&gt;. I highly recommend it ✅.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffw19ygbobebt6fs8pwn3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffw19ygbobebt6fs8pwn3.png" alt="photo of monkey type"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So far I have taken more than 500 tests spending 5 hours on the website. I am almost addicted to it. Here are some of my stats so far:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3734ar1wvmz5ua0lwijj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3734ar1wvmz5ua0lwijj.png" alt="photo of my monkey type stats"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In conclusion, I will continue to improve my typing skills and waste more and more time on &lt;strong&gt;Monkeytype&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Thanks for reading thus far. Since you made it here have a joke: "Dear Math, grow up and solve your own problems." See you on the next one 😎.&lt;/p&gt;

</description>
      <category>typing</category>
      <category>10fastfingers</category>
      <category>monkeytype</category>
    </item>
    <item>
      <title>TikTok foydalanuvchilari uchun ogohlantirish ⚠️</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Wed, 24 Aug 2022 13:19:00 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/tiktok-foydalanuvchilari-uchun-ogohlantirish-41lg</link>
      <guid>https://dev.to/nomanoff_tech/tiktok-foydalanuvchilari-uchun-ogohlantirish-41lg</guid>
      <description>&lt;p&gt;TikTok-ning ilova ichidagi brauzeri parollar va kredit kartalarni o'z ichiga olishi mumkin bo'lgan barcha tugmalar va klaviatura kiritishlarini kuzatish uchun kodni kiritadi. Bu nima degani? Ya'ni siz TikTokning o'zini "in-app" brauzeridan foydalangan holda amalga oshirgan barcha harakatlaringizni TikTok o'ziga saqlab qoladi. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0amu6qKL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ck5ig9e9rteuca1oztbr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0amu6qKL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ck5ig9e9rteuca1oztbr.png" alt="data image for tiktok" width="880" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TikTok&lt;/strong&gt; iOS ilovasida istalgan havolani ochganingizda, u ularning ilova ichidagi brauzerida ochiladi. Veb-sayt bilan o'zaro aloqada bo'lganingizda, TikTok barcha klaviatura yozuvlariga (jumladan, parollar, kredit karta ma'lumotlari va h.k.) va ekrandagi har bir teginishga, masalan, qaysi tugmalar va havolalarni bosishingizga obuna, ya'ni, &lt;strong&gt;kuzatib&lt;/strong&gt; boradi.&lt;/p&gt;

&lt;p&gt;Quyida, TikTok app tomonidan bajariladigan barcha JavaScript buyruqlar ro'yxati:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V5KWYJQc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z53upgx58ql5setdv50x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V5KWYJQc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z53upgx58ql5setdv50x.png" alt="js commands in TikTok" width="880" height="822"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ushbu topilmalar inappbrowser.com yordamida aniqlangan va bir necha OTMlarda rossa aylangan. Forbes.com xabariga ko'ra, TikTok rasmiyi ushbu topilmalarga izoh qoldirgan. Ya'ni, ular bu JavaScript codelarini foydalanuvchilarning foydasi uchun yozishgan va ular ushbu malumotlarni hech qanday yomon maqsadda ishlatishmasligi ni aytgan. &lt;/p&gt;

&lt;p&gt;Shaxsan men bunga ishonmayman va bu bayonot rost bo'lganda ham kelajakda bu malumotlar ishlatilmasligiga hech kim kafolat bera olmaydi deb o'ylayman.&lt;/p&gt;

&lt;p&gt;inappbrowser.com asoschisi nafaqat TikTok balki boshqa mashxur ilovalar haqida ham ajoyib maqolalar yozgan. Masalan Instagram, Facebook va hk. Ingliz tilini biladigan qiziqsa o'qib ko'rishingiz mumkin: &lt;/p&gt;

&lt;p&gt;Link: &lt;br&gt;
&lt;a href="https://krausefx.com/blog/ios-privacy-instagram-and-facebook-can-track-anything-you-do-on-any-website-in-their-in-app-browser"&gt;iOS Privacy: Instagram and Facebook can track anything you do on any website in their in-app browser&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
    </item>
    <item>
      <title>How to add Redux Toolkit into React Native</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Wed, 27 Jul 2022 05:04:18 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/how-to-add-redux-toolkit-into-react-native-5aki</link>
      <guid>https://dev.to/nomanoff_tech/how-to-add-redux-toolkit-into-react-native-5aki</guid>
      <description>&lt;p&gt;In this post I wanna share how to add Redux Toolkit into an existing React Native project.&lt;/p&gt;

&lt;p&gt;Redux Toolkit is available as a package. Just open your project folder with terminal and use below commands:&lt;/p&gt;

&lt;p&gt;If you are using NPM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# NPM
npm install @reduxjs/toolkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or YARN:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Yarn
yarn add @reduxjs/toolkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, inside your project folder create a folder named &lt;strong&gt;redux&lt;/strong&gt; which will have a file called &lt;strong&gt;store.js&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5r1fu6p7ssgg23y12jr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5r1fu6p7ssgg23y12jr.png" alt="store folder structure"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;This is how I created the folder structure. This isn't a convention or anything. It is just my preference.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Inside &lt;strong&gt;store.js&lt;/strong&gt; write the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;configureStore&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@reduxjs/toolkit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;store&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;configureStore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;reducer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We also need to create a folder for our redux slices. &lt;strong&gt;slices&lt;/strong&gt; folder will hold your redux toolkit reducers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6k0vy2fwlisatsap7p1a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6k0vy2fwlisatsap7p1a.png" alt="slices folder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the sake of this post I created a sample userSlice reducer which sets an &lt;strong&gt;id&lt;/strong&gt; of a user.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;createSlice&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@reduxjs/toolkit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;initialState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// Setting up user slice (redux-toolkit)&lt;/span&gt;
&lt;span class="c1"&gt;// All the magic happens here, lol.&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userSlice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createSlice&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// The `reducers` field lets us define reducers and generate associated actions&lt;/span&gt;
  &lt;span class="na"&gt;reducers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;setUserId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;setUserId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;userSlice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// The function below is called a selector and allows us to select a value from&lt;/span&gt;
&lt;span class="c1"&gt;// the stateSelectors can also be defined inline where they're used instead of&lt;/span&gt;
&lt;span class="c1"&gt;// in the slice file. For example: `useSelector((state: RootState) =&amp;gt; state.counter./// value)`&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;selectUser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;userSlice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reducer&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we need to import and add the &lt;strong&gt;userSlice&lt;/strong&gt; to the redux store which is inside &lt;strong&gt;store.js&lt;/strong&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;configureStore&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@reduxjs/toolkit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;userSlice&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./slices/userSlice&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;store&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;configureStore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;reducer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userSlice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Redux store is done ✅. Let's add this store to our app, shall we? But before that we need to add &lt;strong&gt;react-redux&lt;/strong&gt; library to be able to use redux inside our React Native app.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# If you use npm:
npm install react-redux

# Or if you use Yarn:
yarn add react-redux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installing &lt;strong&gt;react-redux&lt;/strong&gt;, we need to link our redux store to our React Native. For that you have to add the following code to your &lt;strong&gt;App.js&lt;/strong&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;SafeAreaView&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Provider&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-redux&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./utils/redux/store&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Provider&lt;/span&gt; &lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;SafeAreaView&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Hello&lt;/span&gt; &lt;span class="nx"&gt;World&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Text&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/SafeAreaView&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Provider&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations 👏! You have successfully linked the redux store to your React Native app 🔥.&lt;/p&gt;

&lt;p&gt;Now, you can read more about how to use your reducer (or slice in redux-toolkit) at the Redux Toolkit docs which I will leave a link.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://redux-toolkit.js.org/tutorials/quick-start" rel="noopener noreferrer"&gt;Redux Toolkit Quick Start link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! If you have any questions leave in the comments.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>redux</category>
      <category>reduxtoolkit</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How to change React Native app name (iOS / Android)</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Tue, 26 Jul 2022 10:03:00 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/how-to-change-react-native-app-name-ios-android-5fnf</link>
      <guid>https://dev.to/nomanoff_tech/how-to-change-react-native-app-name-ios-android-5fnf</guid>
      <description>&lt;p&gt;In the example below I have a sample app that I named &lt;strong&gt;owler_franchise&lt;/strong&gt; in the setup process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknb8qm7qq4e99gphyohn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknb8qm7qq4e99gphyohn.png" alt="Initial app name ios"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now I want to change that to Owler Franchise.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;iOS&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For &lt;strong&gt;iOS&lt;/strong&gt;, go to &lt;strong&gt;ios&lt;/strong&gt; folder and find the folder named after your project name. &lt;br&gt;
In my case I called it &lt;strong&gt;owler_franchise&lt;/strong&gt;. Inside that folder find the &lt;strong&gt;Info.plist&lt;/strong&gt; file. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kibti77s22fbfgpt4fx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kibti77s22fbfgpt4fx.png" alt="Find ios folder for Info.plist"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inside &lt;strong&gt;Info.plist&lt;/strong&gt; file replace the value after &lt;code&gt;&amp;lt;key&amp;gt;CFBundleDisplayName&amp;lt;/key&amp;gt;&lt;/code&gt; to your app name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1655dr5cadeyfzkzn6z5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1655dr5cadeyfzkzn6z5.png" alt="iOS before update"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For my example, I changed it to &lt;strong&gt;Owler Franchise&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywppz7v6yjnypy85fj9v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywppz7v6yjnypy85fj9v.png" alt="iOS after update"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it for &lt;strong&gt;iOS&lt;/strong&gt; 👍.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6h4wkm20q5aoevvckxsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6h4wkm20q5aoevvckxsj.png" alt="iOS ready"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Android&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For &lt;strong&gt;Android&lt;/strong&gt;: Go to the following folder in order: &lt;em&gt;android &amp;gt; app &amp;gt; src &amp;gt; main &amp;gt; res &amp;gt; values&lt;/em&gt; and open &lt;strong&gt;strings.xml&lt;/strong&gt; file, replace the &lt;code&gt;&amp;lt;string name="app_name"&amp;gt;&lt;/code&gt; tag's value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feezi1fhf4xwv80hfew6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feezi1fhf4xwv80hfew6f.png" alt="Path to strings.xml file"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcztxf36qfqulki46hdjt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcztxf36qfqulki46hdjt.png" alt="before update android"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again, in my example, I changed it to &lt;strong&gt;Owler Franchise&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd59h7i4kqxlk9nss3ogv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd59h7i4kqxlk9nss3ogv.png" alt="after updated android"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it for &lt;strong&gt;Android&lt;/strong&gt; too ✅.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvlp1qn95hb49u8k2isx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvlp1qn95hb49u8k2isx.png" alt="android done"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! &lt;/p&gt;

&lt;p&gt;If you like this post, then follow me on twitter. You will be bombarded with coding memes 😁.&lt;/p&gt;

&lt;p&gt;My twitter page 👉 &lt;a href="https://twitter.com/nmnjnv" rel="noopener noreferrer"&gt;@nmnjnv&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>mobile</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>Web Dasturlashda Matematika (Part 2)</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Sat, 28 May 2022 09:27:24 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-2-19c8</link>
      <guid>https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-2-19c8</guid>
      <description>&lt;p&gt;Birinchi postimiz &lt;a href="https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-1-2080"&gt;Arifmetika&lt;/a&gt; 🧮, ya'ni, Web dasturlashda arifmetikaning qaysi mavzularini o'rganish haqida bo'lgan edi &lt;a href="https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-1-2080"&gt;👉 link&lt;/a&gt;. Ushbu post esa Geometriya haqida. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geometriya&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Geometriya&lt;/em&gt; - matematikaning nuqtalar, chiziqlar, sirtlar, qattiq jismlar va yuqori o'lchamli analoglarning xossalari va munosabatlari bilan bog'liq bo'lgan bo'limi.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Muhim bo'lgan mavzular 📌:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✧ 2-D shakllar ✧&lt;/strong&gt;&lt;br&gt;
❍ To'g'ri chiziq&lt;br&gt;
❍ uchburchak&lt;br&gt;
❍ To'rtburchak&lt;br&gt;
❍ kvadrat&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;❍ Doira&lt;br&gt;
❍ ellips&lt;br&gt;
❍ Egri chiziq&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✧ 3D shakllar ✧&lt;/strong&gt;&lt;br&gt;
❍ kuboid&lt;br&gt;
❍ Sfera&lt;br&gt;
❍ Silindr&lt;br&gt;
❍ Konus&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✧ Transformatsiya ✧&lt;/strong&gt;&lt;br&gt;
❍ Masshtab&lt;br&gt;
❍ Aylantirish&lt;br&gt;
❍ Egrilik&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Asosan nima uchun kerak bo'ladi 🤔&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;➀ Shakllar grafik dizaynlarda va &lt;strong&gt;UI&lt;/strong&gt;larda qo'llaniladi. ✅&lt;/p&gt;

&lt;p&gt;➁ Shaklni o'zgartirish juda tez loyihalashda muhim ahamiyatga ega. &lt;strong&gt;Bu animatsiyada ham juda muhim.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;➂ &lt;strong&gt;CSS&lt;/strong&gt; yozishda geometriya juda ham muhim hisoblanadi. Geometriyada olgan bilimingiz Websaytda joylashgan shakillarni boshqara olishingiz va ularni istalgan ko'rinishda ifodalashingizda juda kerakli bo'ladi.&lt;/p&gt;

&lt;p&gt;Geometriya, ayniqsa, &lt;em&gt;frontend&lt;/em&gt; dasturchilari uchun foydali. Shuning uchun agarda siz frontda(frontend dasturchi) yoki UIda (dizayner) da ishlamoqchi bo'lsangiz Geometriyaga befarq bo'lmang. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Web Dasturlashda Matematika (Part 1)</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Sat, 21 May 2022 04:54:34 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-1-2080</link>
      <guid>https://dev.to/nomanoff_tech/web-dasturlashda-matematika-part-1-2080</guid>
      <description>&lt;p&gt;&lt;em&gt;"Dasturchi bo'lish uchun qay darajada matematikani bilishim kerak?"&lt;/em&gt; - savoliga javob tariqasida ushbu post(lar)ni yozishni istadim. Bu postlar &lt;strong&gt;matematika&lt;/strong&gt;dagi qaysi mavzular &lt;strong&gt;Web dasturlash&lt;/strong&gt; yo'nalishida ko'proq kerak bo'lishiga oydinlik kiritib berish maqsadida yozib boriladi.&lt;/p&gt;

&lt;p&gt;Birinchi postimiz &lt;strong&gt;Arifmetika&lt;/strong&gt; 🧮, ya'ni, Web dasturlashda arifmetikaning qaysi mavzularini o'rganish haqida bo'ladi ✅&lt;/p&gt;

&lt;p&gt;Arifmetika o'zi nima? Arifmetika - bu matematikaning &lt;em&gt;"sonlarni o'rganish"&lt;/em&gt; bilan shug'ullanadigan bo'limi.&lt;/p&gt;

&lt;p&gt;Arifmetikaning barcha dasturlash yo'nalishlarida &lt;strong&gt;o'ta&lt;/strong&gt; muhim mavzulari:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qo'shish&lt;/li&gt;
&lt;li&gt;Ayirish&lt;/li&gt;
&lt;li&gt;Ko'paytirish&lt;/li&gt;
&lt;li&gt;Bo'lish&lt;/li&gt;
&lt;li&gt;Modul&lt;/li&gt;
&lt;li&gt;Eksponentsiya&lt;/li&gt;
&lt;li&gt;Logarifm&lt;/li&gt;
&lt;li&gt;&amp;gt;, &amp;lt;, =&amp;gt;, &amp;lt;=, = &lt;em&gt;va hk.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bular, shubhasiz, kodning aksariyat qismida talab qilinadigan eng asosiy operatsiyalardir. Bularni bilish nafaqat Web dasturchi uchun balki barcha dasturchilar uchun muhimdir.&lt;/p&gt;

&lt;p&gt;Arifmetikadagi yana qaysi mavzular kerakli deb o'ylaysiz? Izohlardi yozib qoldiring!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; Keyingi postlarda matematikaning boshqa mavzularini web dasturlashdagi o'rni haqida yozib boraman &lt;strong&gt;إن شاء الل&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>"Programs are meant to be read by humans and for computers to execute,  right?"</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Sun, 13 Feb 2022 02:00:36 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/programs-are-meant-to-be-read-by-humans-and-for-computers-to-execute-right-30ln</link>
      <guid>https://dev.to/nomanoff_tech/programs-are-meant-to-be-read-by-humans-and-for-computers-to-execute-right-30ln</guid>
      <description>&lt;p&gt;So I am on &lt;a href="https://www.codewars.com/dashboard"&gt;codewars&lt;/a&gt; (a coding practice site for programmers) solving coding challenges for fun and then I come across a question that is a little bit harder than usual 🤨. &lt;/p&gt;

&lt;p&gt;I tried multiple solutions, ate some snacks 🍿, had a bathroom break 🚽 (which played a significant role in solving the question later), read some blogs 💻, googled (totally normal 😅),  but the tests were still failing 😬. &lt;/p&gt;

&lt;p&gt;Eventually, maybe 30 mins later, I finally solved the problem 💪. I submitted my answer which was around 10 lines (lines don't matter but still). Then, I saw the best answer from the community that solved the problem in just one line 👀. ONE LINE 😳. With pure math 🧮. I was mind-blown 🤯.&lt;/p&gt;

&lt;p&gt;Even though it was a correct answer and had many upvotes, many people (me included) have pointed it out that it was hard to read and understand for mainstream developers. For me, this is normal. I don't feel bad about my skills in cases like this, however, for beginners it might be a little upsetting that they couldn't come up with such solutions. To those who are feeling like that, I would say, don't feel frustrated. This is totally normal. One line or 10 lines, it does not matter. What matters is that the code you wrote works, readable and  understandable. This is my opinion.&lt;/p&gt;

&lt;p&gt;What is your take in this case? At the end of the day, programs are meant to be read by humans and only for computers to execute, right? &lt;/p&gt;

&lt;p&gt;Anyway, to give you an idea how insane the answer was just read the comments 😅:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DMtfQkKj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/932bygelqcctk4ca0yeh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DMtfQkKj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/932bygelqcctk4ca0yeh.png" alt="Comments from codewars community" width="880" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>discuss</category>
      <category>codenewbie</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Emoji Inside Markdown?</title>
      <dc:creator>Nomanoff</dc:creator>
      <pubDate>Sat, 26 Dec 2020 05:01:27 +0000</pubDate>
      <link>https://dev.to/nomanoff_tech/emoji-inside-markdown-4ne6</link>
      <guid>https://dev.to/nomanoff_tech/emoji-inside-markdown-4ne6</guid>
      <description>&lt;p&gt;When I was looking for emoji short-codes for markdown e.g. smiley 😃 , I found some emoji cheat-sheets that were not searchable and easy to use. You would have to scroll through an entire page, select the code text with the cursor and then copy to use it inside markdowns. Too much work, right?. &lt;/p&gt;

&lt;p&gt;Why can't I have a single-page website just to search and copy emojis? So, a brother of mine suggested: Why don't you yourself make a small website just for these shortcodes which should be simple, searchable, and easy to copy-paste anywhere?&lt;/p&gt;

&lt;p&gt;I took his advice seriously and built this open-source website called &lt;a href="https://emojis.ninja/"&gt;emojis.ninja&lt;/a&gt; with React.js which got a lot of upvotes on &lt;a href="https://www.reddit.com/r/reactjs/comments/kjrdj4/a_new_react_open_source_project_is_open_to/"&gt;react.js community&lt;/a&gt;. Here you can &lt;strong&gt;Search&lt;/strong&gt; and &lt;strong&gt;Copy&lt;/strong&gt; any emoji short-code with just &lt;strong&gt;One CLICK&lt;/strong&gt; and use anywhere inside Markdown environments.&lt;/p&gt;

&lt;p&gt;Bookmark it and feel free to contribute here: &lt;a href="https://github.com/aliabdulazeez/emoji-shortcodes-for-markdown"&gt;Project repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>emoji</category>
      <category>markdown</category>
      <category>opensource</category>
      <category>react</category>
    </item>
  </channel>
</rss>
