<?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" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Yomna Yasser on Medium]]></title>
        <description><![CDATA[Stories by Yomna Yasser on Medium]]></description>
        <link>https://medium.com/@yomnayasser_?source=rss-09d92fe46d57------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*k7oPHsCDfu3jkExtq_FkIA.png</url>
            <title>Stories by Yomna Yasser on Medium</title>
            <link>https://medium.com/@yomnayasser_?source=rss-09d92fe46d57------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 24 May 2026 02:25:41 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@yomnayasser_/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Atomic Design in React Native]]></title>
            <link>https://medium.com/deloitte-uk-cloud-blog/atomic-design-in-react-native-9d2942d24129?source=rss-09d92fe46d57------2</link>
            <guid isPermaLink="false">https://medium.com/p/9d2942d24129</guid>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[atomic-design]]></category>
            <category><![CDATA[mobile-and-front-end]]></category>
            <dc:creator><![CDATA[Yomna Yasser]]></dc:creator>
            <pubDate>Wed, 29 Apr 2026 08:59:36 GMT</pubDate>
            <atom:updated>2026-04-29T08:59:36.111Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*35vJYCoznT-MgUlmygCuyA.png" /><figcaption>Atomic Design — AI-Generated Visual by Gemini</figcaption></figure><p>Have you ever started developing a React Native app and faced challenges in code maintenance and its structure? Especially when the app keeps growing and then you start noticing that there are many duplicate components that differ only slightly in styling, and it becomes more challenging for new developers to grasp and understand the UI structure.</p><p>In my opinion, the main challenge is not just the application’s logic but how to keep it consistent, scalable, and maintainable over time. This can raise some important questions, such as: How do large applications maintain consistent interfaces? How can UI elements be reused without duplicating code across screens? Why is the same UI component rewritten repeatedly? How can new developers quickly grasp the UI structure?</p><p>These challenges can be solved and adapted by a design called <strong>Atomic Design</strong>, which mainly helps in creating a scalable and maintainable UI by breaking down the interface into fundamental building blocks that can be reused and combined consistently.</p><p><strong><em>Table of Contents<br></em></strong>• <a href="#bcd4">Atoms</a><br>• <a href="#aaac">Molecules</a><br>• <a href="#beb2">Organisms</a><br>• <a href="#c255">Templates</a><br>• <a href="#0a68">Pages/Screens</a><br>• <a href="#f16e">Grocery App Example</a><br>• <a href="#8dfa">Folder Structure before &amp; after Atomic Design</a></p><p>So let me introduce you to <strong>Atomic Design</strong>.<br><strong>Atomic Design </strong>can be broken down into <strong>5 hierarchical levels </strong>which are Atoms, Molecules, Organisms, Templates, and Pages/Screens.</p><p>Let’s talk about each of these hierarchies.</p><h4>1- Atoms:</h4><p>If you remember back then in school, when we were introduced to the chemical elements, and we were told about atoms and how they’re the smallest, fundamental unit of ordinary matter that retains the chemical properties of an element. In the Atomic design, it’s pretty much the same definition. Atoms in Atomic Design are the smallest building blocks of the app, which cannot be broken down any further, and they have a single responsibility. And they are highly reusable across the app, and they do not contain any business logic.</p><p>For example, in React Native, the atoms can be:</p><pre>&lt;AppText/&gt;<br>&lt;AppInput/&gt;<br>&lt;AppCheckbox/&gt;<br>&lt;AppSwitch/&gt;<br>&lt;PrimaryButtons/&gt;<br>&lt;SecondaryButtons/&gt;<br>&lt;AppIcon/&gt;</pre><h4>2- Molecules:</h4><p>And if we go back to our chemistry class, A molecule is the smallest unit of a chemical compound, consisting of two or more atoms held together. So, from the definition, we can understand that molecules are a combination of more than one atom, and they can start having some logic and responsibility within them.For example: FormField (Label + Input + Error message) , Search bar (Input + Icon) , Avatar (Avatar Image + Username Text) , Cards (Image + Card Name Text) .</p><p>For example, in React Native:</p><pre>const SettingsItem = ({item}) =&gt; { <br>  return ( <br>    &lt;View style={styles.container}&gt; <br>      &lt;AppText text={item.label} /&gt; <br>      &lt;AppSwitch <br>        value={item.value} <br>        onValueChange={(value) =&gt; item.onToggle(value)}  <br>      /&gt; <br>    &lt;/View&gt; <br>  ); <br>}; </pre><h4>3- Organisms:</h4><p>If you can already see the pattern, organisms are a combination of both molecules and atoms to form a UI section of a screen, and here, mapping and small presentation logic may start to exist, such as PostCard, CommentSection, ProductCardList, ProfileHeader</p><p>For example, in React Native:</p><pre>const SettingsGroup = ({ title, items}) =&gt; { <br>  return ( <br>    &lt;View style={styles.container}&gt; <br>      &lt;AppText text={title} style={styles.customTextStyle} /&gt; <br>      {items.map(item =&gt; ( <br>        &lt;SettingsItem key={item.key} item={item} /&gt; <br>      ))} <br>    &lt;/View&gt; <br>  ); <br>}; </pre><h4>4- Templates:</h4><p>They simply define the overall layout structure of the screen and its organisation, and they do not contain any real data. They play an important role when multiple pages share the same layout.</p><p>For example, in React Native:</p><pre>const SettingsTemplate = ({title, user, settingsGroups, onLogout }) =&gt; { <br>  return ( <br>    &lt;ScrollView&gt; <br>      &lt;ScreenHeader title={title} /&gt; <br>      &lt;ProfileSection user={user} /&gt; <br>      {settingsGroups} <br>     {onLogout &amp;&amp; &lt;LogoutButton onPress={onLogout} /&gt; } <br>    &lt;/ScrollView&gt; <br>  ); <br>}; <br></pre><h4>5- Pages/Screens:</h4><p>A screen represents the full view that the user can navigate to, and it contains data fetching (API calls), state management, and business logic. So, basically: Template + Data + Logic = Screen</p><p>For example, in React Native:</p><pre>const SettingsScreen = () =&gt; { <br>  const {user, appSettings, logout} = useSettingsScreen();<br><br>const groups= appSettings.map(group=&gt;( <br>    &lt;SettingsGroup <br>      key={group.id} <br>      title={group.title} <br>      items={group.items} <br>     /&gt; <br>   )); <br><br>  return ( <br>    &lt;SettingsTemplate <br>     title=”Settings” <br>     user={user} <br>     settingsGroups={groups} <br>     onLogout={logout} <br>    /&gt; <br>  ); <br>}; </pre><p>Now, let’s practice how we can break down the components, so if we have a simple home page for the grocery app.</p><h4>Grocery App Example:</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/815/1*3VCYJTKTeDnIJ94usGI_vA.png" /><figcaption>Grocery Home Page App Example-AI-Generated Visual by Gemini</figcaption></figure><p>The components we can see are :<br>1-Text<br>2-Input<br>3-Icon<br>4-Button<br>5-WelcomeTitle<br>6-Search bar<br>7-CategoryItem<br>8-CategoriesSection</p><p>Before reading on, I encourage you to try breaking down these components into atoms, molecules, and organisms.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rPA4LrnzXQDaRZR2Ze7cHg.png" /><figcaption>Atomic Design breakdown for Grocery app- AI-Generated Visual by Gemini</figcaption></figure><h4>Components Folder Structure</h4><p>Before introducing the Atomic Design, the project might have been organised in a simpler way where all components lived inside one folder without a clear hierarchy.</p><pre>/src<br>  /components<br>    /AppText<br>      AppText.ts<br>      AppText.styles.ts<br>    /AppInput<br>        AppInput.ts<br>        AppInput.styles.ts<br>    /AppIcon<br>        AppIcon.ts<br>        AppIcon.styles.ts<br>    /SearchBar<br>        SearchBar.ts<br>        SearchBar.styles.ts<br>    /WelcomeTitle<br>        WelcomeTitle.ts<br>        WelcomeTitle.styles.ts<br>     /CategoryItem<br>        CategoryItem.ts<br>        CategoryItem.styles.ts<br>    /CategoriesSection<br>        CategoriesSection.ts<br>        CategoriesSection.styles.ts</pre><p>At first glance, placing all components inside a single folder might seem sufficient. For smaller applications, this approach works perfectly well. However, as the number of components grows, it becomes harder to understand the relationships between them. Small reusable building blocks, larger UI sections, and screen-level components all end up living in the same place. This is where Atomic Design becomes useful, as it introduces a hierarchy that helps clarify how components relate to one another.</p><p>With Atomic Design:</p><pre>/src<br>  /components<br>    /atoms<br>      /AppText<br>        AppText.ts<br>        AppText.styles.ts<br>      /AppInput<br>        AppInput.ts<br>        AppInput.styles.ts<br>      /AppIcon<br>        AppIcon.ts<br>        AppIcon.styles.ts<br>      index.ts<br>    /molecules<br>      /SearchBar<br>        SearchBar.ts<br>        SearchBar.styles.ts<br>      /WelcomeTitle<br>        WelcomeTitle.ts<br>        WelcomeTitle.styles.ts<br>      /CategoryItem<br>        CategoryItem.ts<br>        CategoryItem.styles.ts<br>      index.ts<br>    /organisms<br>      /CategoriesSection<br>        CategoriesSection.ts<br>        CategoriesSection.styles.ts<br>      index.ts</pre><p>In my opinion, Atomic Design is not just about organising folders or following a methodology; it’s more about how you can shift your brain to think that you can build your project block by block, and instead of building the entire screen at once, you start to think in small, reusable pieces atoms form molecules, molecules form organisms, those organisms come together to form the screen. and it helped me personally during my development, made it easier and more organised, and more importantly, more enjoyable.</p><p>So, the next time you start a new feature or build a new screen, ask yourself: Is this component an atom, molecule, or organism? How can I structure my UI so that it remains consistent as the application grows?</p><p>What are your thoughts on whether Atomic Design works better for design systems than for regular applications? How do you strike the right balance between Atomic Design and feature-based architecture in your projects? Please Share your experiences and insights :)</p><p><em>Note: This article speaks only to my personal views / experiences and is not published on behalf of Deloitte LLP and associated firms and does not constitute professional or legal advice.</em></p><p><em>All product names, logos, and brands are property of their respective owners. All companies, product and service names used on this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9d2942d24129" width="1" height="1" alt=""><hr><p><a href="https://medium.com/deloitte-uk-cloud-blog/atomic-design-in-react-native-9d2942d24129">Atomic Design in React Native</a> was originally published in <a href="https://medium.com/deloitte-uk-cloud-blog">Deloitte UK Engineering Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>