<?xml version="1.0" encoding="UTF-8"?><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[React Engineer]]></title><description><![CDATA[React notes]]></description><link>https://react-eng.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 14:54:26 GMT</lastBuildDate><atom:link href="https://react-eng.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Android development is painful]]></title><description><![CDATA[Android development, while offering a vast and open ecosystem, presents several challenges that can make the process less than ideal for developers. One of the most significant hurdles is fragmentation. Unlike the relatively uniform iOS environment, ...]]></description><link>https://react-eng.hashnode.dev/android-development-is-painful</link><guid isPermaLink="true">https://react-eng.hashnode.dev/android-development-is-painful</guid><dc:creator><![CDATA[Jonathan Santorini]]></dc:creator><pubDate>Sat, 17 May 2025 07:37:11 GMT</pubDate><content:encoded><![CDATA[<p>Android development, while offering a vast and open ecosystem, presents several challenges that can make the process less than ideal for developers. One of the most significant hurdles is <strong>fragmentation</strong>. Unlike the relatively uniform iOS environment, Android runs on a multitude of devices from various manufacturers, each with different screen sizes, resolutions, hardware specifications, and Android versions. This necessitates extensive testing and adaptation to ensure an app functions correctly across the board, significantly increasing development time and complexity.</p>
<p>Another major issue is the <strong>complexity of the Android SDK</strong>. While powerful, the Software Development Kit can be overwhelming, especially for beginners. The sheer number of classes, methods, and architectural patterns can lead to confusion and a steep learning curve. Furthermore, the documentation, while generally improving, can sometimes be inconsistent or lack clear, concise examples, forcing developers to rely heavily on community resources like Stack Overflow.</p>
<p><strong>Build times</strong> in Android development can also be a significant pain point. As projects grow in size and complexity, the time it takes to compile and build an app can become excessively long, hindering productivity and making the development process feel sluggish. <a target="_blank" href="https://androidauthority.dev/major-painpoints-of-android-development-as-a-side-activity-part-1-gradle">This is often attributed to the Gradle build system, which, while flexible, can be notoriously slow and difficult to configure.</a></p>
<p><strong>Emulator performance</strong> is another common complaint. While emulators are essential for testing, they can often be slow and resource-intensive, especially on older or less powerful machines. This can make the development and debugging process cumbersome, forcing developers to rely on physical devices, which adds to the cost and logistical challenges.</p>
<p>The <strong>ever-evolving nature of Android</strong> itself can be a double-edged sword. While new features and improvements are constantly being introduced, this also means that developers must keep up with the latest APIs, deprecations, and best practices. This can feel like a constant race to stay relevant, and older code may require significant refactoring to remain compatible with newer Android versions.</p>
<p><strong>Memory management</strong> in Android can also be challenging. Android devices often have limited resources compared to desktop computers, so developers must be mindful of memory usage to prevent performance issues and crashes. This requires careful coding practices, such as properly managing object lifecycles and avoiding memory leaks, which can add complexity to the development process.</p>
<p><strong>UI fragmentation</strong> is a specific challenge. Creating user interfaces that look and function consistently across different screen sizes and densities can be a design and development nightmare. While Android provides tools and guidelines for handling this, it still requires significant effort and attention to detail.</p>
<p><strong>Debugging</strong> Android applications can also be more complex than in some other development environments. Issues related to device-specific behavior, OS version compatibility, or background processes can be difficult to track down and resolve, often requiring developers to spend significant time and effort on troubleshooting.</p>
<p>Finally, while not a technical issue, the perception that <strong>Android users are less likely to pay for apps</strong> compared to iOS users can be a disincentive for some developers, particularly indie developers or small teams who rely on app sales for revenue. While this perception is debated, it can influence development priorities and monetization strategies.</p>
]]></content:encoded></item><item><title><![CDATA[Aria-Haspopup]]></title><description><![CDATA[he aria-haspopup attribute is used in web development to enhance the accessibility of user interfaces for individuals with disabilities, particularly those who rely on screen readers or other assistive technologies to navigate and interact with web c...]]></description><link>https://react-eng.hashnode.dev/aria-haspopup</link><guid isPermaLink="true">https://react-eng.hashnode.dev/aria-haspopup</guid><dc:creator><![CDATA[Jonathan Santorini]]></dc:creator><pubDate>Wed, 27 Sep 2023 11:05:11 GMT</pubDate><content:encoded><![CDATA[<p>he <code>aria-haspopup</code> attribute is used in web development to enhance the accessibility of user interfaces for individuals with disabilities, particularly those who rely on screen readers or other assistive technologies to navigate and interact with web content. This attribute is part of the Accessible Rich Internet Applications (ARIA) specification, which provides a set of attributes that can be added to HTML elements to convey additional information to assistive technologies.</p>
<p><code>aria-haspopup</code> is specifically used to indicate that an interactive element, such as a button or a link, triggers a pop-up menu, submenu, or other interactive component when activated. This attribute helps users with disabilities understand the relationship between the trigger element and the content it opens.</p>
<p>See more <a target="_blank" href="https://www.frontendeng.dev/blog/15-announcing-changes-for-screen-readers-accessibility">ARIA and Accessibility tips</a>.</p>
]]></content:encoded></item><item><title><![CDATA[The most common React interview question everyone MUST know !]]></title><description><![CDATA[If you are a front-end engineer appearing for an interview there is a very simple question you should know like the back of your hand. If you do not know the answer to this question it is very simple for the interviewer to realize that you are not a ...]]></description><link>https://react-eng.hashnode.dev/the-most-common-react-interview-question-everyone-must-know</link><guid isPermaLink="true">https://react-eng.hashnode.dev/the-most-common-react-interview-question-everyone-must-know</guid><category><![CDATA[React]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[interview questions]]></category><dc:creator><![CDATA[Jonathan Santorini]]></dc:creator><pubDate>Fri, 15 Sep 2023 05:46:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1694756753821/9d380f90-16b7-4159-bb2c-be29dec139fa.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you are a front-end engineer appearing for an interview there is a very simple question you should know like the back of your hand. If you do not know the answer to this question it is very simple for the interviewer to realize that you are not a serious candidate.</p>
<h2 id="heading-what-are-the-different-ways-to-achieve-inter-component-communication">What are the different ways to achieve inter-component communication?</h2>
<p>There are three different types of communication and message passing between react.</p>
<ul>
<li><p>From parent to child</p>
</li>
<li><p>From child to parent</p>
</li>
<li><p>From one component to another component that is neither child nor parent.</p>
</li>
</ul>
<p>Out of these first are the simplest and also most common.</p>
<p>Parent-to-child message passing is achieved through what is called "prop drilling".</p>
<p>Child-to-parent message passing happens through the concept of custom events and callbacks.</p>
<p>The third type of communication requires a combination of both. A child component will keep passing messages to the parent until a common parent is found and then the common parent will drill that value down to the other child.</p>
<p>This tutorial gives an <a target="_blank" href="https://www.frontendeng.dev/blog/5-tutorial-how-to-communicate-between-two-components-in-react">in-depth overview of how inter-component communication works in react with examples</a>.</p>
<h2 id="heading-other-alternatives">Other alternatives</h2>
<p>Every react engineer must also know that there is a drastically different way that relies on other libraries like Redux which is also fairly common.</p>
<p>Read this <a target="_blank" href="https://www.tanvi.dev/blog/3-a-comprehensive-guide-to-redux-for-beginners">Redux tutorial</a> that gives more context.</p>
]]></content:encoded></item></channel></rss>