<![CDATA[Vladimir Vovk]]> http://github.com/dylang/node-rss RSS for Node Wed, 24 Dec 2025 20:36:32 GMT <![CDATA[Exposing Methods from React Functional Components]]> https://vladimir.vovk.in/blog/exposing-methods-from-react-functional-components https://vladimir.vovk.in/blog/exposing-methods-from-react-functional-components Wed, 24 Dec 2025 00:00:00 GMT <![CDATA[Starting React Native Project in 2026]]> https://vladimir.vovk.in/blog/starting-react-native-project-in-2026 https://vladimir.vovk.in/blog/starting-react-native-project-in-2026 Mon, 24 Nov 2025 00:00:00 GMT <![CDATA[Better Image Placeholders with ThumbHash]]> https://vladimir.vovk.in/blog/better-image-placeholders-with-thumbhash https://vladimir.vovk.in/blog/better-image-placeholders-with-thumbhash Mon, 14 Apr 2025 00:00:00 GMT <![CDATA[Absolute Path Imports with Typescript and Node.js]]> https://vladimir.vovk.in/blog/absolute-path-imports-with-typescript-and-nodejs https://vladimir.vovk.in/blog/absolute-path-imports-with-typescript-and-nodejs Mon, 31 Mar 2025 00:00:00 GMT <![CDATA[Fastify API with Postgres and Drizzle ORM]]> https://vladimir.vovk.in/blog/fastify-api-with-postgres-and-drizzle-orm https://vladimir.vovk.in/blog/fastify-api-with-postgres-and-drizzle-orm Sun, 30 Mar 2025 00:00:00 GMT <![CDATA[Split Keyboard Adventure]]> https://vladimir.vovk.in/blog/split-keyboard-adventure https://vladimir.vovk.in/blog/split-keyboard-adventure Mon, 03 Mar 2025 00:00:00 GMT <![CDATA[Automate Your Dev Environment Setup]]> https://vladimir.vovk.in/blog/automate-your-dev-environment-setup https://vladimir.vovk.in/blog/automate-your-dev-environment-setup Fri, 21 Feb 2025 00:00:00 GMT <![CDATA[Terminal Animations with Node.js]]> https://vladimir.vovk.in/blog/terminal-animations-with-nodejs https://vladimir.vovk.in/blog/terminal-animations-with-nodejs Thu, 26 Dec 2024 00:00:00 GMT <![CDATA[How to Change iOS Push Notifications Permission Dialog with Expo]]> https://vladimir.vovk.in/blog/how-to-change-ios-push-notifications-permission-dialog-with-expo https://vladimir.vovk.in/blog/how-to-change-ios-push-notifications-permission-dialog-with-expo Fri, 13 Sep 2024 00:00:00 GMT <![CDATA[Compress, Convert and Trim Videos with Command Line]]> https://vladimir.vovk.in/blog/compress-convert-and-trim-videos-with-command-line https://vladimir.vovk.in/blog/compress-convert-and-trim-videos-with-command-line Sun, 14 Jul 2024 00:00:00 GMT <![CDATA[Learning Flexbox Details by Building a Button in React Native]]> https://vladimir.vovk.in/blog/learning-flexbox-details-by-building-a-button-in-react-native https://vladimir.vovk.in/blog/learning-flexbox-details-by-building-a-button-in-react-native Mon, 05 Jun 2023 00:00:00 GMT <![CDATA[Default Exports vs Named Exports]]> https://vladimir.vovk.in/blog/default-exports-vs-named-exports https://vladimir.vovk.in/blog/default-exports-vs-named-exports Wed, 15 Jun 2022 00:00:00 GMT <![CDATA[React Native Conditional Rendering]]> https://vladimir.vovk.in/blog/react-native-conditional-rendering https://vladimir.vovk.in/blog/react-native-conditional-rendering Tue, 29 Mar 2022 00:00:00 GMT <![CDATA[When to use React.memo and React.useCallback for Performance Optimisation]]> https://vladimir.vovk.in/blog/when-to-use-react-memo-and-react-usecallback-for-performance-optimisation https://vladimir.vovk.in/blog/when-to-use-react-memo-and-react-usecallback-for-performance-optimisation Sun, 30 Jan 2022 00:00:00 GMT
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>
<![CDATA[ Vladimir Vovk ]]>
</title>
<description>
<![CDATA[ I usually write about mobile and web development. React Native, React and anything else I'm interested in. ]]>
</description>
<link>http://github.com/dylang/node-rss</link>
<generator>RSS for Node</generator>
<lastBuildDate>Wed, 24 Dec 2025 20:36:32 GMT</lastBuildDate>
<item>
<title>
<![CDATA[ Exposing Methods from React Functional Components ]]>
</title>
<description>
<![CDATA[ In React we are using `props` to control our components. But sometimes we need more... ]]>
</description>
<link>https://vladimir.vovk.in/blog/exposing-methods-from-react-functional-components</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/exposing-methods-from-react-functional-components</guid>
<pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Starting React Native Project in 2026 ]]>
</title>
<description>
<![CDATA[ We will use Expo's `create-expo-app` command recommended by the [docs](https://reactnative.dev/docs/environment-setup#start-a-new-react-native-project-with-expo). Also, we will add ESLint, Prettier, and some custom configurations that will make our development process better. ]]>
</description>
<link>https://vladimir.vovk.in/blog/starting-react-native-project-in-2026</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/starting-react-native-project-in-2026</guid>
<pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Better Image Placeholders with ThumbHash ]]>
</title>
<description>
<![CDATA[ ThumbHash is a very compact representation of a placeholder for an image. Store it inline with your data and show it while the real image is loading for a smoother loading experience. ]]>
</description>
<link>https://vladimir.vovk.in/blog/better-image-placeholders-with-thumbhash</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/better-image-placeholders-with-thumbhash</guid>
<pubDate>Mon, 14 Apr 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Absolute Path Imports with Typescript and Node.js ]]>
</title>
<description>
<![CDATA[ With absolute path imports, we can do `import { functionA } from 'src/modules/moduleA'`. Notice that the path starts with `src` instead of `../../..` dots when we use relative paths. ]]>
</description>
<link>https://vladimir.vovk.in/blog/absolute-path-imports-with-typescript-and-nodejs</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/absolute-path-imports-with-typescript-and-nodejs</guid>
<pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Fastify API with Postgres and Drizzle ORM ]]>
</title>
<description>
<![CDATA[ Fastify is a fast and low overhead web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture. ]]>
</description>
<link>https://vladimir.vovk.in/blog/fastify-api-with-postgres-and-drizzle-orm</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/fastify-api-with-postgres-and-drizzle-orm</guid>
<pubDate>Sun, 30 Mar 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Split Keyboard Adventure ]]>
</title>
<description>
<![CDATA[ Recently, I decided to give a try to a split keyboard. You can find a lot of people saying that spit keyboards improve their productivity, and posture, remove hand pain, etc. Sounds interesting, right? ]]>
</description>
<link>https://vladimir.vovk.in/blog/split-keyboard-adventure</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/split-keyboard-adventure</guid>
<pubDate>Mon, 03 Mar 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Automate Your Dev Environment Setup ]]>
</title>
<description>
<![CDATA[ How many hours do you need to set up all your favorite tools on a new machine? What if your colleague or friend wants the same setup and asks you for help? Or maybe you want to change something, but you set it up a long time ago and have no idea what you need to change... ]]>
</description>
<link>https://vladimir.vovk.in/blog/automate-your-dev-environment-setup</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/automate-your-dev-environment-setup</guid>
<pubDate>Fri, 21 Feb 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Terminal Animations with Node.js ]]>
</title>
<description>
<![CDATA[ Node.js has the [process](https://nodejs.org/api/process.html) object with [stdout](https://nodejs.org/api/tty.html) property which is a stream connected to `stdout`. Using the `process.stdout` property, we can access several useful properties and methods: `columns`, `rows`, `cursorTo`, and `write`. These are essentials to start "animate" something in the terminal. ]]>
</description>
<link>https://vladimir.vovk.in/blog/terminal-animations-with-nodejs</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/terminal-animations-with-nodejs</guid>
<pubDate>Thu, 26 Dec 2024 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ How to Change iOS Push Notifications Permission Dialog with Expo ]]>
</title>
<description>
<![CDATA[ To receive push notifications we need to ask the user permission first. The [requestPermissionsAsync](https://docs.expo.dev/versions/latest/sdk/notifications/#requestpermissionsasyncpermissions) function will show the user standard dialog asking to allow displaying alerts, setting badge count, and playing sounds. Unfortunately, the docs have no information on how to change the dialog's text and make it more personal for our app. ]]>
</description>
<link>https://vladimir.vovk.in/blog/how-to-change-ios-push-notifications-permission-dialog-with-expo</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/how-to-change-ios-push-notifications-permission-dialog-with-expo</guid>
<pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Compress, Convert and Trim Videos with Command Line ]]>
</title>
<description>
<![CDATA[ Often, we have videos of different formats and resolutions from our phones and cameras, and also from our friends and family. Sometimes, these videos are uncompressed, so they take up a lot of space. There are many methods how we can solve this problem. But here, I would like to tell you about [FFmpeg](https://ffmpeg.org/). ]]>
</description>
<link>https://vladimir.vovk.in/blog/compress-convert-and-trim-videos-with-command-line</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/compress-convert-and-trim-videos-with-command-line</guid>
<pubDate>Sun, 14 Jul 2024 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Learning Flexbox Details by Building a Button in React Native ]]>
</title>
<description>
<![CDATA[ Imaging we need to build a simple UI for an article preview with a button. Let's start building it from the button. Why not? 🙃 ]]>
</description>
<link>https://vladimir.vovk.in/blog/learning-flexbox-details-by-building-a-button-in-react-native</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/learning-flexbox-details-by-building-a-button-in-react-native</guid>
<pubDate>Mon, 05 Jun 2023 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ Default Exports vs Named Exports ]]>
</title>
<description>
<![CDATA[ When comparing default exports with named exports, I think that both methods are good. But I can see some advantages of named exports. ]]>
</description>
<link>https://vladimir.vovk.in/blog/default-exports-vs-named-exports</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/default-exports-vs-named-exports</guid>
<pubDate>Wed, 15 Jun 2022 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ React Native Conditional Rendering ]]>
</title>
<description>
<![CDATA[ In general, conditional rendering in React Native is the same as in React. But be aware, that in React Native we can render strings only inside the Text component. So, for example, if we will try to put a string inside a View we will get an error. ]]>
</description>
<link>https://vladimir.vovk.in/blog/react-native-conditional-rendering</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/react-native-conditional-rendering</guid>
<pubDate>Tue, 29 Mar 2022 00:00:00 GMT</pubDate>
</item>
<item>
<title>
<![CDATA[ When to use React.memo and React.useCallback for Performance Optimisation ]]>
</title>
<description>
<![CDATA[ Sometimes we can see that people tend to wrap every callback function into useCallback hook and use memo for every component in their app (even for really simple components like buttons). And if you will ask why do they do that, the answer probably will be "to make the app faster". But is it really true? ]]>
</description>
<link>https://vladimir.vovk.in/blog/when-to-use-react-memo-and-react-usecallback-for-performance-optimisation</link>
<guid isPermaLink="true">https://vladimir.vovk.in/blog/when-to-use-react-memo-and-react-usecallback-for-performance-optimisation</guid>
<pubDate>Sun, 30 Jan 2022 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>