<?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: Malik Chohra</title>
    <description>The latest articles on DEV Community by Malik Chohra (@malik_chohra).</description>
    <link>https://dev.to/malik_chohra</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%2F1343661%2F5a5ed7f3-f672-4bd4-b592-b57036da4c95.jpg</url>
      <title>DEV Community: Malik Chohra</title>
      <link>https://dev.to/malik_chohra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/malik_chohra"/>
    <language>en</language>
    <item>
      <title>Claude Code for beginners: what it is, how to set it up, and why people won’t shut up about it</title>
      <dc:creator>Malik Chohra</dc:creator>
      <pubDate>Fri, 20 Mar 2026 10:48:42 +0000</pubDate>
      <link>https://dev.to/malik_chohra/claude-code-for-beginners-what-it-is-how-to-set-it-up-and-why-people-wont-shut-up-about-it-2262</link>
      <guid>https://dev.to/malik_chohra/claude-code-for-beginners-what-it-is-how-to-set-it-up-and-why-people-wont-shut-up-about-it-2262</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code is Anthropic’s AI coding agent that runs in your terminal, reads your whole project, edits files, and loops until the task is done&lt;/li&gt;
&lt;li&gt;It reached $1B in six months, partly because non-technical users started using it for SEO, file organization, marketing automation, and yes, literally monitoring tomato plants&lt;/li&gt;
&lt;li&gt;Setup takes under 10 minutes: install, authenticate, run &lt;code&gt;claude&lt;/code&gt; in your project folder&lt;/li&gt;
&lt;li&gt;CLAUDE.md is the most important thing to set up — it gives Claude permanent memory about your codebase&lt;/li&gt;
&lt;li&gt;Plan Mode makes Claude think and propose a plan before touching anything — essential before any task that spans multiple files&lt;/li&gt;
&lt;li&gt;Claude Skills are installable, reusable workflows — over 25,000 exist on GitHub right now&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Before we start, a word:
&lt;/h2&gt;

&lt;p&gt;I started working on an AI native Boilerplate for Mobile Development. A solution that has a scalable and clean architecture, with the best approaches to have a great app performance. Adding more AI context and rules, to make the AI hallucinate less, and keep the clean code. You can use it either with Cursor, Antigravity, Claude Code,… and it gives the amazing results as expected. Also, it has most important features that help you launch your app fast &lt;/p&gt;

&lt;p&gt;I m now in the Beta version, where i need people to test it, and gather feedback, you will get access to the code base for free, and i m looking for feedbacks.&lt;/p&gt;

&lt;p&gt;Check it here: &lt;a href="https://aimobilelauncher.com/" rel="noopener noreferrer"&gt;https://aimobilelauncher.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, I m working on a newsletter for Tech and non tech people, on how to use AI tools for App development: &lt;a href="https://aimeetcode.substack.com/" rel="noopener noreferrer"&gt;https://aimeetcode.substack.com/&lt;/a&gt;. Subscribe here: &lt;a href="https://aimeetcode.substack.com/" rel="noopener noreferrer"&gt;https://aimeetcode.substack.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you need custom solution, or a mobile development, contact us in :&lt;a href="https://casainnov.com/" rel="noopener noreferrer"&gt;https://casainnov.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Lately, I start to see something cool: Product manager, Designer, CS teams,… and non technical roles have started to use Terminal. I was surprised to see that now most of the people have a terminal open, which at some point was only for tech people who really understand what is going on. Now, the terminal in computers has become the norm&lt;/p&gt;

&lt;p&gt;It is highly attributed that all of them started using  Claude Code to run their project and to assist them in their work, with custom skills for their specific role / organisation. The trend is getting more and more&lt;/p&gt;

&lt;p&gt;I don’t want to talk about combining it with OpenClaw, which took the internet by storm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is everyone suddenly talking about this
&lt;/h2&gt;

&lt;p&gt;I started using it at first when it was announced: as a tech person, Anthropic models are the best at coding, and I use most of their models &amp;lt; depends on the tasks in hand, of course&amp;gt;. And I wasn’t that surprised with Claude Code. It has skills and rules, but I kept the same AI architecture for coding &amp;lt; rules, context, memory bank, indexing…&amp;gt;&lt;/p&gt;

&lt;p&gt;I have been using this approach for my aimobilelauncher.com to launch my AI native boilerplate. The plan mode was really helpful, and including skills for it is my roadmap for later&lt;/p&gt;

&lt;p&gt;Then Anthropic confirmed $1 billion in annualized revenue in six months, and Fortune ran the story. I read it expecting the usual: 10x engineer productivity, enterprise contracts, vibe coding demos.&lt;/p&gt;

&lt;p&gt;The use cases they listed were: booking theatre tickets. Filing taxes. Monitoring tomato plants. Combing through museum archives. Automating Slack messages.&lt;/p&gt;

&lt;p&gt;That’s not a developer story. Something else was happening.&lt;/p&gt;

&lt;p&gt;Netflix, Spotify, Uber, and Salesforce had all adopted it. Accenture announced they’re training 30,000 staff on the platform. Not 30,000 engineers. 30,000 staff. Anthropic’s own non-technical marketing team runs it to automate Google Ads creative, App Store metadata, email workflows, and SEO.&lt;/p&gt;

&lt;p&gt;The reason it spread outside engineering is simpler than most people explain: Claude Code doesn’t need you to know how to code. It needs you to know what you want done. The terminal is just a text box. Files are organized information. Claude Code is an agent that can read, edit, and act on both. Also, the community adopted it very fast, and they started creating solutions on top of it: Open source skills is an example.&lt;/p&gt;

&lt;p&gt;## What Claude Code actually is&lt;/p&gt;

&lt;p&gt;Claude Code is a terminal-native AI agent from Anthropic. Not a plugin. Not autocomplete. It runs in your terminal with access to your actual files and your actual command line.&lt;/p&gt;

&lt;p&gt;Give it a task, and it runs this loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reads your files, searches directories, checks configs&lt;/li&gt;
&lt;li&gt;Proposes a plan&lt;/li&gt;
&lt;li&gt;Edits files, runs commands&lt;/li&gt;
&lt;li&gt;Reads the output — test results, build logs, errors&lt;/li&gt;
&lt;li&gt;Fixes what broke and runs again&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step five is what most AI coding tools skip. Copilot writes a suggestion and stops. Cursor helps you write code per session and stops. Claude Code stays in the loop until the job is done — or until it runs into something it genuinely can’t figure out and asks you.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  How to install it
&lt;/h2&gt;

&lt;p&gt;You need one of these to start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A paid Claude subscription (Pro at $20/month minimum)&lt;/li&gt;
&lt;li&gt;Or a Claude Console account with active API billing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No free tier. That’s the only real gate.&lt;/p&gt;

&lt;p&gt;`// macOS / Linux:&lt;br&gt;
curl -fsSL &lt;a href="https://claude.ai/install.sh" rel="noopener noreferrer"&gt;https://claude.ai/install.sh&lt;/a&gt; | bash&lt;/p&gt;

&lt;p&gt;// Via npm (still works, but deprecated by Anthropic):&lt;/p&gt;

&lt;p&gt;npm install -g @anthropic-ai/claude-code`&lt;/p&gt;

&lt;p&gt;After installing:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd your-project-folder&lt;br&gt;
claude&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;First run asks you to authenticate with a link. It sends a verification code back to the terminal. About 60 seconds total. Then you’re in.&lt;/p&gt;

&lt;p&gt; ## Set up your workflow: CLAUDE.md&lt;/p&gt;

&lt;p&gt;CLAUDE.md is a Markdown file you create at the root of your project. Claude Code reads it at the start of every session.&lt;/p&gt;

&lt;p&gt;Without it, every session starts from scratch. Claude doesn’t know your stack, your folder structure, your naming conventions, or the three things you told it never to do two sessions ago. It just scans what it can see and makes assumptions.&lt;/p&gt;

&lt;p&gt;That leads to weird architecture suggestions, wrong import paths, and Claude confidently using a pattern that your codebase specifically avoids.&lt;/p&gt;

&lt;p&gt;CLAUDE.md fixes this. You write down the things Claude should always know, and it reads them every time.&lt;/p&gt;

&lt;p&gt;Here’s a real example for a React Native / Expo project:&lt;/p&gt;

&lt;p&gt;`# Project: My App&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React Native with Expo SDK 54&lt;/li&gt;
&lt;li&gt;TypeScript (strict mode)&lt;/li&gt;
&lt;li&gt;NativeWind for styling&lt;/li&gt;
&lt;li&gt;Redux for state management&lt;/li&gt;
&lt;li&gt;Supabase for backend&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Coding conventions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Functional components only — no class components&lt;/li&gt;
&lt;li&gt;TypeScript with explicit return types&lt;/li&gt;
&lt;li&gt;Named exports, not default exports&lt;/li&gt;
&lt;li&gt;Folder structure: screens/, components/, hooks/, utils/, services/&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What never to do
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Do not install new libraries without asking first&lt;/li&gt;
&lt;li&gt;Do not modify .env files&lt;/li&gt;
&lt;li&gt;Do not refactor code unless explicitly asked&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Git
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Always create a branch before making changes&lt;/li&gt;
&lt;li&gt;Conventional commits: feat(), fix(), refactor()&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Expo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;always using 'npx expo install &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;You can ask Claude to generate a first draft for you:&lt;/p&gt;

&lt;p&gt;Read the project structure and generate a CLAUDE.md file for this codebase.&lt;/p&gt;

&lt;p&gt;Plan Mode — think before you touch anything&lt;/p&gt;

&lt;p&gt;Most people find out about Plan Mode by watching it not be on and regretting it.&lt;/p&gt;

&lt;p&gt;Plan Mode makes Claude read files and ask questions, but it cannot write, edit, or run anything while in this state. It has to think, plan, and explain what it intends to do before execution starts. Then you approve, modify, or cancel.&lt;/p&gt;

&lt;p&gt;To activate: press &lt;strong&gt;Shift + Tab&lt;/strong&gt; twice. The mode indicator in the bottom left of the terminal changes.&lt;/p&gt;

&lt;p&gt;The practical difference is clearest with an example.&lt;/p&gt;

&lt;p&gt;Without Plan Mode, you say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Add authentication to this React Native app”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude starts writing immediately. It picks an auth library, picks a navigation approach, picks a token storage strategy. By the time you see the output, it’s made four foundational decisions you might disagree with and they’re already in the files.&lt;/p&gt;

&lt;p&gt;With Plan Mode:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Add authentication to this React Native app”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude asks: “Which auth provider? How is your navigation structured? Where do you store tokens today? Do you want biometric support?” You answer. Claude writes a plan: specific components, a sequence, the libraries it wants to use. You read it. You push back on anything wrong. You approve. Then it executes with a clear, agreed-upon approach.&lt;/p&gt;

&lt;p&gt;I use Plan Mode for anything that touches more than two or three files. It’s not slower — the time you spend reviewing the plan is time you’d spend fixing wrong assumptions later.&lt;/p&gt;

&lt;p&gt;For non-technical users: Plan Mode is honestly the feature that makes this feel safe. Nothing happens without you seeing it first.&lt;/p&gt;

&lt;p&gt; — -&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands worth knowing
&lt;/h2&gt;

&lt;p&gt;These come up in almost every session:&lt;/p&gt;

&lt;p&gt;| Command | What it does |&lt;br&gt;
| — -| — -|&lt;br&gt;
| &lt;code&gt;/clear&lt;/code&gt; | Clears conversation history, keeps CLAUDE.md loaded |&lt;br&gt;
| &lt;code&gt;/compact&lt;/code&gt; | Clears history but keeps a summary in context |&lt;br&gt;
| &lt;code&gt;/cost&lt;/code&gt; | Shows token cost and duration of current session |&lt;br&gt;
| &lt;code&gt;/help&lt;/code&gt; | Lists all available commands |&lt;br&gt;
| &lt;code&gt;/review&lt;/code&gt; | Reviews current changes for quality issues |&lt;br&gt;
| &lt;code&gt;/init&lt;/code&gt; | Generates a CLAUDE.md for your project |&lt;/p&gt;

&lt;p&gt;A note on &lt;code&gt;/clear&lt;/code&gt;: in long sessions, Claude starts to lose track of earlier instructions. Not always &lt;/p&gt;

&lt;p&gt;&lt;code&gt;/clear&lt;/code&gt; and paste a quick summary of where you are. Claude gets back on track fast. Use &lt;code&gt;/compact&lt;/code&gt; if you want to keep a condensed memory of the session.&lt;/p&gt;

&lt;p&gt;I usually do the 10 prompt rules: after 10 prompts, compact.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;## Claude Skills&lt;/p&gt;

&lt;p&gt;This is the part most people skip when they start. That’s usually where the frustration comes from.&lt;/p&gt;

&lt;p&gt;A Claude Skill is a Markdown-defined workflow packaged as a ZIP or a GitHub repo. It tells Claude exactly how to execute a specific, repeatable task, step by step, with the rules and output format written in.&lt;/p&gt;

&lt;p&gt;Every time you want a repeatable task done without a Skill, you explain the whole process from the start. Every session. Skills replace that. Install once, type one command, and Claude runs the full process the same way every time.&lt;/p&gt;

&lt;p&gt;Think about any process you’ve explained to someone more than twice. A Skill is that explanation written down properly,  so Claude follows it without you having to be there for every run.&lt;/p&gt;

&lt;p&gt;There are over 25,000 community-built Skills on GitHub:&lt;/p&gt;

&lt;p&gt;awesome-claude-skills: &lt;a href="https://github.com/travisvn/awesome-claude-skills" rel="noopener noreferrer"&gt;https://github.com/travisvn/awesome-claude-skills&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;browsable marketplace: &lt;a href="https://github.com/anthropics/skills" rel="noopener noreferrer"&gt;https://github.com/anthropics/skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Skills cover SEO audits, React Native performance checks, documentation generation, DevOps automation, security reviews, data analysis, and a lot more. The ecosystem is growing fast, and most of it is free.&lt;/p&gt;

&lt;p&gt;Anthropic also shipped organization-level Skills deployment in December 2025. Admins can now push Skills workspace-wide with automatic updates. Teams can standardize processes the same way they standardize code.&lt;/p&gt;

&lt;p&gt;How a Skill actually works&lt;/p&gt;

&lt;p&gt;Each Skill has a &lt;code&gt;SKILL.md&lt;/code&gt; file. YAML frontmatter at the top tells Claude when and how to invoke it. The Markdown below is what Claude follows when it runs.&lt;/p&gt;

&lt;p&gt; — -&lt;br&gt;
name: rn-performance-audit&lt;br&gt;
description: Audits a React Native screen for performance issues.&lt;br&gt;
Use when reviewing a screen component or when the user asks&lt;br&gt;
about performance, re-renders, or slow UI.&lt;br&gt;
 — -&lt;br&gt;
When auditing a React Native screen for performance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check for unnecessary re-renders (missing useMemo, useCallback)&lt;/li&gt;
&lt;li&gt;Identify heavy computations inside render&lt;/li&gt;
&lt;li&gt;Check FlatList vs ScrollView usage&lt;/li&gt;
&lt;li&gt;Look for images without proper caching or resizing&lt;/li&gt;
&lt;li&gt;Flag synchronous operations on the main thread&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Output: a prioritized list of issues with code-level fix suggestions.&lt;/p&gt;

&lt;p&gt;Once installed, Claude auto-loads this Skill when you ask about performance, or you invoke it directly with &lt;code&gt;/rn-performance-audit&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt; — -&lt;/p&gt;

&lt;p&gt;Example of A skill that I use: Claude SEO skill&lt;/p&gt;

&lt;p&gt;I have started lately using seo skill:  &lt;a href="https://github.com/AgriciDaniel/claude-seo" rel="noopener noreferrer"&gt;https://github.com/AgriciDaniel/claude-seo&lt;/a&gt;. It is really helpful for website SEo audit, and then adding fixes&lt;/p&gt;

&lt;p&gt;Check how to install it there, and then you do / to call it, and do /seo  so it gives you the whole report&lt;/p&gt;

&lt;p&gt;I like after that to ask to create a fix plan, using Plan mode for that. and then i ask it to implement it&lt;/p&gt;

&lt;h2&gt;
  
  
  Things that will catch you off guard
&lt;/h2&gt;

&lt;p&gt;I learned these the hard way, so you don’t have to.&lt;/p&gt;

&lt;p&gt;Commit before every Claude session:&lt;/p&gt;

&lt;p&gt;Claude can introduce regressions. It fixes one thing and occasionally breaks something in a different file. Not often, but enough. A clean Git commit before you start means rollback is one command. I’ve needed it more than once.&lt;/p&gt;

&lt;p&gt;Auto-accept is a trap.&lt;/p&gt;

&lt;p&gt;*There’s a &lt;code&gt; — dangerously-skip-permissions&lt;/code&gt; flag that lets Claude apply all changes without asking. Don’t use it until you’ve run a task type several times and understand its output well. I let it “tidy up some type definitions” once and got 40 renamed interfaces back. All of them logical. None of them what I wanted. I rolled back with Git and never used that flag on unfamiliar tasks again.&lt;/p&gt;

&lt;p&gt;Token costs sneak up on you:&lt;/p&gt;

&lt;p&gt;Long sessions, large repos, parallel agents — these burn tokens faster than a focused single-task session. Run &lt;code&gt;/cost&lt;/code&gt; inside any session to check where you are. Monitor the Anthropic console when you’re starting out. You want to know what a typical session costs before you schedule one as a weekly routine.&lt;/p&gt;

&lt;p&gt;Messy codebases produce messy results:&lt;/p&gt;

&lt;p&gt;Claude Code’s ability to understand your project depends entirely on how coherent that project is. Scattered configs, inconsistent patterns, no CLAUDE.md — it still runs, but the suggestions start to drift in weird directions. The architecture discipline makes it more useful. Chaos amplifies chaos.&lt;/p&gt;

&lt;p&gt;Rate limits reset on a rolling 5-hour window, not daily:&lt;/p&gt;

&lt;p&gt;If you hit your limit at 2 pm, you get a fresh allocation around 7 pm. Once I understood this, I stopped fighting the limits and started working in focused sessions instead. Honestly, a better habit anyway. &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;FAQ&lt;/p&gt;

&lt;p&gt;Do I need to know how to code to use Claude Code?&lt;br&gt;
No. The VS Code extension and Claude Desktop both work without the terminal. You describe what you want in plain language and Claude Code executes. Non-technical users are currently using it for SEO, marketing workflows, file management, and data processing.&lt;/p&gt;

&lt;p&gt;What is CLAUDE.md and why does it matter?&lt;br&gt;
It’s a Markdown file in your project root that Claude Code reads at the start of every session. It stores your stack, coding conventions, and what Claude should never do. Without it, every session starts from scratch. It’s the single biggest difference between a good and a bad Claude Code experience.&lt;/p&gt;

&lt;p&gt;What is Plan Mode?&lt;br&gt;
A state where Claude can read files and ask questions, but cannot write or run anything. It proposes a full plan first. You review and approve before a single file is touched. Activate with Shift + Tab twice.&lt;/p&gt;

&lt;p&gt;What are Claude Skills?&lt;br&gt;
Reusable workflow instructions packaged as Markdown files in a ZIP or GitHub repo. Install once, run on demand. Claude follows the workflow consistently every time without re-explanation.&lt;/p&gt;

&lt;p&gt;Where do I find Skills?&lt;/p&gt;

&lt;p&gt;awesome-claude-skills on GitHub: &lt;a href="https://github.com/travisvn/awesome-claude-skills" rel="noopener noreferrer"&gt;https://github.com/travisvn/awesome-claude-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How much does Claude Code cost?&lt;br&gt;
It requires a paid Anthropic subscription. Pro is $20/month with roughly 45 messages per 5-hour window. Max 5x is $100/month. No free tier access.&lt;/p&gt;

&lt;p&gt;Can I use this for React Native development?&lt;br&gt;
Yes. Claude Code works with any file-based project. For React Native and Expo, the main thing is setting up CLAUDE.md with your stack details and conventions. Once that’s in place, Claude can refactor screens, add features, debug issues, and run Expo CLI commands the same way it does for any other project.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>ai</category>
      <category>anthropic</category>
      <category>claude</category>
    </item>
    <item>
      <title>Optimizing animations for 60 FPS with React Native Reanimated</title>
      <dc:creator>Malik Chohra</dc:creator>
      <pubDate>Thu, 19 Mar 2026 07:47:09 +0000</pubDate>
      <link>https://dev.to/malik_chohra/optimizing-animations-for-60-fps-with-react-native-reanimatedoptimizing-animations-for-60-fps-with-1beh</link>
      <guid>https://dev.to/malik_chohra/optimizing-animations-for-60-fps-with-react-native-reanimatedoptimizing-animations-for-60-fps-with-1beh</guid>
      <description>&lt;h2&gt;
  
  
  Before we start, a word:
&lt;/h2&gt;

&lt;p&gt;I started working on an AI native Boilerplate for Mobile Development. A solution that has a scalable and clean architecture, with the best approaches to have a great app performance. Adding more AI context and rules, to make the AI hallucinate less, and keep the clean code. You can use it either with Cursor, Antigravity, Claude Code,… and it gives the amazing results as expected. Also, it has most important features that help you launch your app fast &lt;br&gt;
I m now in the Beta version, where i need people to test it, and gather feedback, you will get access to the code base for free, and i m looking for feedbacks.&lt;/p&gt;

&lt;p&gt;Check it here: &lt;a href="https://aimobilelauncher.com/" rel="noopener noreferrer"&gt;https://aimobilelauncher.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, I m working on a newsletter for Tech and non tech people, on how to use AI tools for App development: &lt;a href="https://aimeetcode.substack.com/" rel="noopener noreferrer"&gt;https://aimeetcode.substack.com/&lt;/a&gt;. Subscribe here: &lt;a href="https://aimeetcode.substack.com/" rel="noopener noreferrer"&gt;https://aimeetcode.substack.com/&lt;/a&gt;&lt;br&gt;
If you need custom solution, or a mobile development, contact us in :&lt;a href="https://casainnov.com/" rel="noopener noreferrer"&gt;https://casainnov.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Smooth animations aren't a "nice-to-have." When users say "this app feels slow," they almost always mean animations are dropping frames - even if they'd never describe it that way.&lt;br&gt;
After shipping features on apps with millions of active users, I've learned that animation performance is one of the first things that breaks at scale and one of the hardest to debug if you haven't seen the failure modes before. Here's what actually holds up in production.&lt;/p&gt;

&lt;p&gt;Speaking of scale: in Mobile apps, I mean by scale is a bigger team, a lot of users who each person have a different devices, operating system, slow and old devices, or different sizes. In this part, you need to architect your app way better before&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;60 FPS means keeping animations off the JS thread&lt;br&gt;
Use shared values, not React state&lt;br&gt;
Animate transform + opacity; avoid layout properties&lt;br&gt;
Batch animations and keep logic simple&lt;br&gt;
Test on real devices, not simulators&lt;/p&gt;

&lt;p&gt;Why it matters&lt;/p&gt;

&lt;p&gt;Dropped frames make an app feel slow. Janky gestures make it feel cheap. And inconsistent motion is hard to explain to a product manager but immediately obvious to users. Beyond UX, smoother animations also mean better battery life, better behavior on low-end devices, and less competition with your business logic.&lt;br&gt;
The one rule that matters most&lt;/p&gt;

&lt;p&gt;If your animation depends on the JS thread, you've already lost.&lt;br&gt;
Reanimated runs animations on the UI thread, independent from JS. Everything else in this article is just ways to not break that.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Animate only what the native driver supports
&lt;/h3&gt;

&lt;p&gt;Safe: transform, opacity. Slow: width, height, backgroundColor, anything layout-driven.&lt;br&gt;
`&lt;br&gt;
// Good&lt;br&gt;
const style = useAnimatedStyle(() =&amp;gt; ({&lt;br&gt;
  opacity: opacity.value,&lt;br&gt;
  transform: [{ translateY: y.value }, { scale: scale.value }],&lt;br&gt;
}));&lt;/p&gt;

&lt;p&gt;// Bad&lt;br&gt;
const style = useAnimatedStyle(() =&amp;gt; ({&lt;br&gt;
  width: width.value,&lt;br&gt;
  height: height.value,&lt;br&gt;
}));`&lt;/p&gt;

&lt;p&gt;If you feel like you need to animate the layout, stop and rethink the design. The animation is probably covering for a structural problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. One shared value, not five
&lt;/h3&gt;

&lt;p&gt;I still see this in senior-level code:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Too many values&lt;br&gt;
const opacity = useSharedValue(0);&lt;br&gt;
const scale = useSharedValue(0);&lt;br&gt;
const translateY = useSharedValue(0);&lt;br&gt;
Collapse them:&lt;br&gt;
const progress = useSharedValue(0);&lt;br&gt;
const style = useAnimatedStyle(() =&amp;gt; ({&lt;br&gt;
  opacity: progress.value,&lt;br&gt;
  transform: [&lt;br&gt;
    { scale: progress.value },&lt;br&gt;
    { translateY: (1 - progress.value) * 20 },&lt;br&gt;
  ],&lt;br&gt;
}));&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;One value, fewer calculations, smoother frames. The math is trivial on the UI thread.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Batch your animations
&lt;/h3&gt;

&lt;p&gt;Starting animations at different times means the thread is doing more work than it needs to. A single withTiming can drive opacity, scale, and translation at once:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;useEffect(() =&amp;gt; {&lt;br&gt;
  progress.value = withTiming(1, { duration: 300 });&lt;br&gt;
}, []);&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Obvious in hindsight, but easy to miss when you're wiring up components quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Springs for gestures
&lt;/h3&gt;

&lt;p&gt;Timing functions work fine for entrances and exits. For gestures, springs are better - they feel more physical, and they put less pressure on the frame budget:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;translateX.value = withSpring(0, {&lt;br&gt;
  damping: 15,&lt;br&gt;
  stiffness: 150,&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This matters most for drag, swipe, and scroll interactions, where any stiffness or lag is immediately noticeable.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Keep gesture handlers dumb
&lt;/h3&gt;

&lt;p&gt;No conditionals. No calculations. No JS calls inside gesture handlers.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;onActive: (event) =&amp;gt; {&lt;br&gt;
  x.value = event.translationX;&lt;br&gt;
  y.value = event.translationY;&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The UI thread moves pixel. Anything else belongs else where.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Clean up animations
&lt;/h3&gt;

&lt;p&gt;Animations that outlive their components create memory pressure. Easy to overlook, adds up on apps with deep navigation:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;useEffect(() =&amp;gt; {&lt;br&gt;
  return () =&amp;gt; {&lt;br&gt;
    progress.value = 0;&lt;br&gt;
  };&lt;br&gt;
}, []);&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. How to test
&lt;/h3&gt;

&lt;p&gt;Simulators will lie to you. A simulator doesn't have thermal throttling, doesn't run on 3GB of RAM, and doesn't have fifteen background apps fighting for CPU. Test on low-end Android, older iPhones, and devices that have been warm for a while.&lt;br&gt;
If it holds up there, you're fine.&lt;/p&gt;

&lt;p&gt;Always go with an old device, &lt;/p&gt;

&lt;h3&gt;
  
  
  What I actually see in code reviews
&lt;/h3&gt;

&lt;p&gt;Animating every component entry - motion should mean something; overuse kills that&lt;br&gt;
Animations tied to React state - state updates and animation updates are not the same thing&lt;br&gt;
Durations over 500ms - they feel slow and block frames; tighten them&lt;br&gt;
Elaborate easing curves - usually not worth it; keep it consistent&lt;/p&gt;

&lt;h4&gt;
  
  
  Before you ship
&lt;/h4&gt;

&lt;p&gt;Ask yourself: Is this running on the UI thread? Can one shared value drive it? Did I test it on real hardware? If yes across the board, you're done.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;Does Reanimated always guarantee 60 FPS?&lt;br&gt;
 No. It gives you the right architecture. You still have to use it correctly.&lt;/p&gt;

&lt;p&gt;Should I use Reanimated for every animation?&lt;br&gt;
 Not necessarily. Simple layout animations are fine with LayoutAnimation. Reanimated earns its complexity with gestures and anything UI-thread-sensitive.&lt;/p&gt;

&lt;p&gt;Are springs always better than timing?&lt;br&gt;
 For interactions, yes. For entrances and exits, timing is usually fine and easier to control.&lt;/p&gt;

&lt;p&gt;Is performance worse with Expo?&lt;br&gt;
 No. Expo and Reanimated together are production-proven&lt;/p&gt;

&lt;h2&gt;
  
  
  Example from the AI Mobile Launcher
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fs39dcd753zkk84vs1t2v.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fs39dcd753zkk84vs1t2v.gif" alt=" " width="295" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
      <category>animation</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>Integrate DeepSeek AI into React Native app: Full guide for Generative AI in React Native</title>
      <dc:creator>Malik Chohra</dc:creator>
      <pubDate>Sat, 08 Mar 2025 10:06:35 +0000</pubDate>
      <link>https://dev.to/malik_chohra/integrate-deepseek-ai-into-react-native-app-full-guide-for-generative-ai-in-react-native-397k</link>
      <guid>https://dev.to/malik_chohra/integrate-deepseek-ai-into-react-native-app-full-guide-for-generative-ai-in-react-native-397k</guid>
      <description>&lt;p&gt;Integrate DeepSeek AI into React Native appIntegrate DeepSeek AI into React Native app: Full guide for Generative AI in React Native&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;React Native has revolutionized mobile app development by enabling developers to build native applications using JavaScript and React. Since its introduction by Facebook (now Meta) in 2015, it has become one of the most popular frameworks for cross-platform mobile development, powering thousands of apps across iOS and Android platforms.&lt;/p&gt;

&lt;p&gt;We've witnessed an unprecedented race in generative AI development in the last year. While OpenAI's GPT series and Anthropic's Claude have dominated headlines, open-source alternatives like Meta's Llama and DeepSeek are rapidly gaining traction. These open-source models are particularly interesting because they offer comparable performance while providing more flexibility and control over deployment.&lt;/p&gt;

&lt;p&gt;Companies are racing to create an AGI that can solve all the humans problems, although the road is still far for that in my opinion, but we are getting closer each time, and billions of dollars are spent on that. For example the 500 billions projects in USA and the 50 billions AI investment from UAE in France.&lt;/p&gt;

&lt;p&gt;DeepSeek, in particular, has shown impressive results in recent benchmarks. According to their technical report, DeepSeek has demonstrated superior performance in coding tasks and mathematical reasoning compared to other open-source models. Their 67B parameter model has achieved competitive results against GPT-4 in several benchmarks, making it an attractive option for developers looking for powerful AI capabilities in their applications.&lt;/p&gt;

&lt;p&gt;DeepSeek's impressive performance in benchmarks suggests a promising future for open-source AI models. As these models continue to improve, developers will have more options for implementing AI capabilities in their applications without being locked into proprietary solutions.&lt;br&gt;
The ability to self-host these models or use them through APIs provides flexibility in deployment options, which is particularly important for applications with specific privacy or regulatory requirements.&lt;/p&gt;

&lt;p&gt;In this article, I will explain to you how to use it inside a React and React Native app, although the funny part is that they use Open ai SDK package to integrate their solution, which is a clever move from the company to make the switch easy, as the price/performance quote is much better if you use Deepseek that using Open AI models&lt;/p&gt;
&lt;h2&gt;
  
  
  Integrating DeepSeek AI in React Native
&lt;/h2&gt;

&lt;p&gt;Let's walk through the process of integrating DeepSeek AI into a React Native application to create an AI chat interface.&lt;br&gt;
&lt;strong&gt;1. Setting Up the Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, ensure you have the necessary dependencies installed:&lt;br&gt;
context&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install react-native-gifted-chat axios react-native-paper react-native-safe-area-context&lt;br&gt;
// or if you are using Yarn&lt;br&gt;
yarn install react-native-gifted-chat axios react-native-paper react-native-safe-area-context&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Creating the Chat Interface&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The implementation uses react-native-gifted-chat, a popular library for building chat interfaces in React Native. Here's how to structure your component:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import React, {useState, useCallback, useEffect} from 'react';&lt;br&gt;
import {GiftedChat, IMessage} from 'react-native-gifted-chat';&lt;br&gt;
import axios from 'axios';&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;Set up your DeepSeek API credentials:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const DEEPSEEK_API_URL = 'https://api.deepseek.com/v1/chat/completions';&lt;br&gt;
const DEEPSEEK_API_KEY = 'Your_API_Key_Here';&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Implementing the Chat Logic&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core functionality revolves around two main parts:&lt;br&gt;
Message Management&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const [messages, setMessages] = useState&amp;lt;IMessage[]&amp;gt;([]);
const [loading, setIsLoading] = useState(false);

// Initialize with a welcome message
useEffect(() =&amp;gt; {
  setMessages([
    {
      _id: 0,
      text: 'Type your question or share what's on your mind…',
      createdAt: new Date(),
      user: {
        _id: 0,
        name: 'DeepSeek',
        // url for deepseek logo
        avatar: 'https://cdn.deepseek.com/platform/favicon.png', 
      },
    },
  ]);
}, []);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. API Integration&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const sendMessageToDeepSeek = async (userMessage: IMessage) =&amp;gt; {
  setIsLoading(true);
  try {
    const response = await axios.post(
      DEEPSEEK_API_URL,
      {
        model: 'deepseek-chat',
        messages: [{role: 'user', content: userMessage}],
      },
      {
        headers: {
          Authorization: `Bearer ${DEEPSEEK_API_KEY}`,
          'Content-Type': 'application/json',
        },
      },
    );
    // Process response and update chat
  } catch (error) {
    console.error('DeepSeek API Error:', error);
  } finally {
    setIsLoading(false);
  }

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. UI Customization&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const renderInputToolbar = (props: InputToolbarProps&amp;lt;IMessage&amp;gt;) =&amp;gt; (
  &amp;lt;InputToolbar {...props} containerStyle={{backgroundColor: '#f0f0f0'}} /&amp;gt;
);

const renderSend = (props: SendProps&amp;lt;IMessage&amp;gt;) =&amp;gt; (
  &amp;lt;Send {...props}&amp;gt;
    &amp;lt;View style={styles.sendButton}&amp;gt;
      &amp;lt;Icon source="send" color="blue" size={30} /&amp;gt;
    &amp;lt;/View&amp;gt;
  &amp;lt;/Send&amp;gt;
);

return (
&amp;lt;GiftedChat
        messages={messages}
        onSend={messages =&amp;gt; onSend(messages)}
        onInputTextChanged={setText}
        bottomOffset={insets.bottom}
        renderSend={renderSend}
        renderInputToolbar={renderInputToolbar}
        renderChatFooter={renderFooter}
        scrollToBottomComponent={renderScrollToBottom}
        user={{
          _id: '1',
          name: 'Malik',
          avatar: PROFILE_IMAGE,
        }}
      /&amp;gt;
)

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

&lt;/div&gt;



&lt;p&gt;The interface can be customized using custom renderers:&lt;/p&gt;

&lt;p&gt;Check the full projects &lt;a href="https://reactnativetemplates.com/screensCode/19" rel="noopener noreferrer"&gt;and code here&lt;/a&gt;: &lt;a href="https://reactnativetemplates.com/screensCode/19" rel="noopener noreferrer"&gt;https://reactnativetemplates.com/screensCode/19&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  React Native Template
&lt;/h2&gt;

&lt;p&gt;React Native Template, contains beaultifully designed, expert crafted React Native components and screens. To Help you…r&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reactnativetemplates.com/" rel="noopener noreferrer"&gt;https://reactnativetemplates.com/&lt;/a&gt; &lt;a href="https://reactnativetemplates.com/" rel="noopener noreferrer"&gt;react native links&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices and Considerations
&lt;/h2&gt;

&lt;p&gt;API Key Security: Never expose your API key in the client-side code. Use environment variables or a backend service to secure your credentials.&lt;br&gt;
Error Handling: Implement robust error handling for API calls and network issues.&lt;br&gt;
Loading States: Provide visual feedback during API calls using loading indicators.&lt;br&gt;
Message Persistence: Consider implementing local storage to persist chat history.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Integrating DeepSeek AI into a React Native application is straightforward and opens up possibilities for creating sophisticated AI-powered chat interfaces. As the AI landscape continues to evolve, having knowledge of implementing these integrations becomes increasingly valuable for modern mobile developers.&lt;br&gt;
 - -&lt;br&gt;
This article provides a comprehensive overview of integrating DeepSeek AI with React Native, from the technical implementation details to the broader industry context. You may want to add specific benchmark numbers and more recent comparisons as they become available, as well as any additional implementation details specific to your use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get the Best React Native Templates in 2025: Community work
&lt;/h2&gt;

&lt;p&gt;Jumpstart your app development with high-quality React Native templates! Discover a variety of pre-designed screens and code examples at &lt;a href="https://reactnativetemplates.com" rel="noopener noreferrer"&gt;React Native Templates&lt;/a&gt;:&lt;/p&gt;

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

&lt;p&gt;Want to contribute and showcase your React Native expertise? You can easily add your own templates to share with the community and gain valuable exposure. Browse our diverse collection of React Native screens to find the ideal foundation for your next project.&lt;br&gt;
If you need to integrate Advanced functionalities in your Mobile app, create one from scratch, or need consulting in react native. Visit the casainnov.com, and check their mobile app page, and contact them there.&lt;/p&gt;

&lt;p&gt;I share insights about React Native, React, and Typescript. Follow me on Linkedin or Medium.&lt;/p&gt;

&lt;h1&gt;
  
  
  ReactNative #WebSockets #RealTime #MobileDevelopment #AppDevelopment #TechInnovation #Coding #JavaScript #MobileApps #DevCommunity #SocketProgramming #RealTimeCommunication #TechNavy #TurboModule #nativeModule
&lt;/h1&gt;

</description>
      <category>reactnative</category>
      <category>deepseek</category>
      <category>ai</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Use Generative AI in React Native: Create Mistral AI Mobile app</title>
      <dc:creator>Malik Chohra</dc:creator>
      <pubDate>Sat, 23 Nov 2024 12:32:03 +0000</pubDate>
      <link>https://dev.to/malik_chohra/use-generative-ai-in-react-native-create-mistral-ai-mobile-app-3nkg</link>
      <guid>https://dev.to/malik_chohra/use-generative-ai-in-react-native-create-mistral-ai-mobile-app-3nkg</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Generative AI tools have been leading the headlines for quite some time now, with each new release promising to reshape the way we live, work, and interact with technology. These emerging tools have plainly caused a spark of innovation from automating creative processes to enabling human-like conversations. Every few months, we hear about a new generative AI tool that claims to be a game-changer, fueling the hype and setting expectations sky-high.&lt;/p&gt;

&lt;p&gt;While much of this development has centered around the web, recent advancements have started to shift attention to the desktop. Tools are now incorporating AI features directly into operating systems or productivity software, increasing convenience and functionality for users on the desktop. Still, one major market remains under-served: mobile applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile applications&lt;/strong&gt; are at the heart of our lifestyles today and hold a host of opportunities for integrating generative AI into them. The global mobile application market size was valued at USD 252.89 billion in 2023 and is projected to grow at a compound annual growth rate (CAGR) of 14.3%&lt;/p&gt;

&lt;p&gt;From 2024 to 2030 From AI-powered chatbots that can be embedded in messaging applications, and personalized content creators used through social media platforms, to productivity applications that can compose emails or summarize documents on the go, the potential of mobile applications to deploy generative AI is immense; a space where very few tools have dared to venture.&lt;br&gt;
**&lt;br&gt;
Read full article here: &lt;a href="https://casainnov.com/use-generative-ai-in-react-native-create-mistral-ai-mobile-app" rel="noopener noreferrer"&gt;https://casainnov.com/use-generative-ai-in-react-native-create-mistral-ai-mobile-app&lt;/a&gt;&lt;br&gt;
**&lt;br&gt;
Generative AI Tools: A Snapshot&lt;br&gt;
Generative AI is not a vertically oriented market. Several big names lead the charge in this crowded field. Quick overview:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt;, courtesy of OpenAI, perhaps is the most well-known. It has become synonymous with generative AI. From casual conversations to deep problem-solving, it is in wide usage. By leading the charge, it has smoothened the way for developers to integrate AI into their web apps via APIs.: &lt;a href="https://openai.com/" rel="noopener noreferrer"&gt;https://openai.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini by Google DeepMind&lt;/strong&gt;: This exciting new entrant in the generative AI space introduces multimodal capabilities to handle both text and image processing. Positioning itself firmly as a hard competitor to ChatGPT on both performance and versatility.: &lt;a href="https://gemini.google.com/" rel="noopener noreferrer"&gt;https://gemini.google.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude by Anthropic&lt;/strong&gt;: Designed for safety and reliability, Claude aims at helpful and less biased outputs. It’s gaining traction for applications where quality of content and ethics in AI use are a priority.: &lt;a href="https://claude.ai/" rel="noopener noreferrer"&gt;https://claude.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistral AI&lt;/strong&gt;: A European player, Mistral AI offers high-performance and scalable, developer-friendly tools. It might not have the same brand recognition in the market today as ChatGPT or Claude, but its underlying APIs have much potential in certain use cases.: &lt;a href="https://mistral.ai/" rel="noopener noreferrer"&gt;https://mistral.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ai Tools comparaison&lt;/strong&gt;&lt;br&gt;
Mistral AI: Lagging Behind in Adoption&lt;br&gt;
Despite the fact that Mistral AI has all the makings of a promising player in the generative AI ecosystem, it is still struggling to break into the mainstream. Unlike OpenAI, which enjoys great publicity and overall exposure in every big platform, Mistral AI is still carving its niche. Contributing reasons include:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insufficient Marketing&lt;/strong&gt;: Mistral AI has failed to enjoy the buzz in marketing like its other competitors, especially in non-European markets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer-Centric&lt;/strong&gt;: While this makes Mistral AI an excellent choice for more technical users, the wide consumer market has yet to be captured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Neglecting Mobile&lt;/strong&gt;: Similar to many generative AI tools out there, Mistral AI has placed most of its efforts into web-based solutions, leaving a large gap in its mobile integration and adoption.&lt;/p&gt;

&lt;p&gt;This, however, is an exciting gap. The idea is to bring Mistral AI into the mobile domain, not only realizing its potential but also showcasing the generative AI capabilities beyond traditional markets. This is what I tried to achieve in my project: using Mistral AI’s generative API within a React Native app, showing how such generative AI could add value to mobile apps and expand the effect of generative AI into everyday mobile experiences&lt;/p&gt;

&lt;h2&gt;
  
  
  React native and Generative AI tools
&lt;/h2&gt;

&lt;p&gt;The best part about React Native is the usage of Typescript, which includes the usage of Typescript API tools, the same that is used in React for example. most of the apps that have a Web presence, can be integrated into a Mobile app to offer the same service.&lt;/p&gt;

&lt;p&gt;Also, it will generate an app that works for both Android and iOS, which makes it easier to attract more users. and with the latest performance updates ( the new architecture), businesses are shipping a native feeling Apps in React native, with half the time of development and half the effort.&lt;/p&gt;

&lt;p&gt;Of course, there is a difference when it comes to that, but usually the same approach.&lt;/p&gt;

&lt;p&gt;Step by step to implement Generative AI API in React Native&lt;br&gt;
In this tutorial, I create a Mistral AI Mobile app in React native, I will walk you through the tutorial step by step in order to do that:&lt;/p&gt;

&lt;p&gt;The GitHub link: &lt;a href="https://github.com/chohra-med/mistralAIRN" rel="noopener noreferrer"&gt;https://github.com/chohra-med/mistralAIRN&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The app contains the following,&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
— The app was developed using My boilerplate: &lt;a href="https://blog.stackademic.com/architect-your-react-native-app-to-handle-millions-of-users-and-large-development-teams-cfc566ea8bf0" rel="noopener noreferrer"&gt;https://blog.stackademic.com/architect-your-react-native-app-to-handle-millions-of-users-and-large-development-teams-cfc566ea8bf0&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dark and Light Mode: &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-0224797da39b" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-0224797da39b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hide keys in React native using the config: &lt;a href="https://casainnov.com/securing-sensitive-keys-in-react-native-with-react-native-config" rel="noopener noreferrer"&gt;https://casainnov.com/securing-sensitive-keys-in-react-native-with-react-native-config&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Internalization: &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-internalization-for-react-native-6fb9f5c06dd2" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-internalization-for-react-native-6fb9f5c06dd2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Redux for state management and API calls: &lt;a href="https://casainnov.com/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native" rel="noopener noreferrer"&gt;https://casainnov.com/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E2e and Unit testing: &lt;a href="https://medium.com/@malikchohra/guide-to-testing-in-react-native-end-to-end-test-using-detox-f29fd1344180" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/guide-to-testing-in-react-native-end-to-end-test-using-detox-f29fd1344180&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Animation Handling: &lt;a href="https://casainnov.com/learn-animation-in-react-native-using-reanimated-library" rel="noopener noreferrer"&gt;https://casainnov.com/learn-animation-in-react-native-using-reanimated-library&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fastlane for CI-CD: &lt;a href="https://medium.com/@malikchohra/ci-cd-pipeline-for-react-native-apps-use-fastlane-and-github-actions-40f9ad2036d0" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/ci-cd-pipeline-for-react-native-apps-use-fastlane-and-github-actions-40f9ad2036d0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React Navigation: &lt;a href="https://medium.com/@malikchohra/build-for-scale-best-approach-on-how-to-use-react-navigation-in-react-native-d3eb7362c80e" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-best-approach-on-how-to-use-react-navigation-in-react-native-d3eb7362c80e&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It uses Gifted Chat: &lt;a href="https://github.com/FaridSafi/react-native-gifted-chat" rel="noopener noreferrer"&gt;https://github.com/FaridSafi/react-native-gifted-chat&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrating Mistral AI
&lt;/h2&gt;

&lt;p&gt;**step 1: Do as any Developer: Read the documentation&lt;br&gt;
**If you want to learn more about the API calls that they offer and how you can use them, read this first: &lt;a href="https://docs.mistral.ai/getting-started/quickstart/" rel="noopener noreferrer"&gt;https://docs.mistral.ai/getting-started/quickstart/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**step 2: Get An API Key and put it inside your config file&lt;br&gt;
**To use Mistral Ai in your app, you need to get an API key from them, just go to their portal and it is easy to get one.&lt;br&gt;
add that to your .env file, as explained in this article : &lt;a href="https://casainnov.com/securing-sensitive-keys-in-react-native-with-react-native-config" rel="noopener noreferrer"&gt;https://casainnov.com/securing-sensitive-keys-in-react-native-with-react-native-config&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;//.env&lt;br&gt;
MISTRAL_API_KEY=your_api_key_here&lt;br&gt;
MISTRAL_API_URL=https://api.mistral.ai/v1/chat/completions&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step 3: do the API call and integrate that to Redux&lt;/strong&gt;&lt;br&gt;
As explained in the Redux article, create your API call to get the answers from Mistral AI, add that to redux and create your store and reducer&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step 4&lt;/strong&gt;: create your UI&lt;br&gt;
we are using Gifted Chat to display answers. read more here in their package: &lt;a href="https://github.com/FaridSafi/react-native-gifted-chat/" rel="noopener noreferrer"&gt;https://github.com/FaridSafi/react-native-gifted-chat/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**step 5: Create Custom Input component&lt;br&gt;
**For this tutorial, to include the custom theme, and add functionalities, I created a custom Input, check the code here: &lt;a href="https://github.com/chohra-med/mistralAIRN/blob/main/src/screens/HomeScreen/components/CustomizedInputProps.tsx" rel="noopener noreferrer"&gt;https://github.com/chohra-med/mistralAIRN/blob/main/src/screens/HomeScreen/components/CustomizedInputProps.tsx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**Step 6: finalize and test&lt;br&gt;
**Do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add your navigation&lt;/li&gt;
&lt;li&gt;add your color theme&lt;/li&gt;
&lt;li&gt;add container for dark mode handling&lt;/li&gt;
&lt;li&gt;add different languages that you use&lt;/li&gt;
&lt;li&gt;add your tests: Unit and E2E&lt;/li&gt;
&lt;li&gt;add your Fastlane for CI CD&lt;/li&gt;
&lt;li&gt;The output of the app:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mistral ai app usig React Native&lt;br&gt;
**What can be added:&lt;br&gt;
**You can add the following to make the app even better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Persist conversation to save them for later&lt;/li&gt;
&lt;li&gt;Add Lazy Loading for the screens&lt;/li&gt;
&lt;li&gt;Debounce Input: Prevent rapid API calls by debouncing user inputs&lt;/li&gt;
&lt;li&gt;Error Handling: Provide user-friendly error messages for failed API calls.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Generative AI is going to change the way we interact with technology. The integration of this into mobile applications opens the world for endless possibilities. A lot of tools, like ChatGPT, Gemini, and Claude, are reigning supreme on the web and desktop spaces, but there is an untapped opportunity to bring this powerhouse into our pocket. This article demonstrated how one can harness the power of Mistral AI in a React Native app by showing exactly how to merge bleeding-edge technology with mobile platforms.&lt;/p&gt;

&lt;p&gt;By walking through a practical use case — from defining the purpose to implementing API calls and building an intuitive UI — we’ve shown that integrating generative AI into mobile apps is not only achievable but also a step toward shaping the next generation of mobile experiences. Mistral AI, despite its lower adoption compared to its competitors, provides developers with robust tools that can redefine mobile app functionality.&lt;/p&gt;

&lt;p&gt;As generative AI continues to evolve, developers have the chance to drive this technology beyond hype and into practical, everyday solutions. Whether it’s crafting personalized experiences, automating workflows, or building smarter apps, the possibilities are endless. Now, it’s your turn to experiment and innovate — because the future of AI is mobile, and it’s waiting to be built.&lt;/p&gt;

&lt;p&gt;If you need to integrate Advanced functionalities in your Mobile app, create one from scratch, or need consulting in react native. Visit the casainnov.com, and check their mobile app page, and contact them there.&lt;/p&gt;

&lt;p&gt;I share insights about React Native, React, and Typescript. Follow me on Linkedin or Medium.&lt;/p&gt;

&lt;h1&gt;
  
  
  ReactNative #WebSockets #RealTime #MobileDevelopment #AppDevelopment #TechInnovation #Coding #JavaScript #MobileApps #DevCommunity #SocketProgramming #RealTimeCommunication #TechNavy #generativeAI #mistralAI
&lt;/h1&gt;

</description>
      <category>reactnative</category>
      <category>genai</category>
      <category>mistral</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Architect Your React Native app to handle Millions of Users and Large Development Teams</title>
      <dc:creator>Malik Chohra</dc:creator>
      <pubDate>Sun, 20 Oct 2024 14:51:23 +0000</pubDate>
      <link>https://dev.to/malik_chohra/architect-your-react-native-app-to-handle-millions-of-users-and-large-development-teams-184a</link>
      <guid>https://dev.to/malik_chohra/architect-your-react-native-app-to-handle-millions-of-users-and-large-development-teams-184a</guid>
      <description>&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;When building a React Native app, poor structure and architecture can lead to significant pain points that affect the development process and user experience. Without a solid foundation, scaling your app can become a daunting task. Here are some common pain points you may encounter with a poorly structured React Native codebase:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty in Scaling&lt;/strong&gt;: Adding new features becomes increasingly complex as the codebase grows, often leading to tangled code and duplicated logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reduced Maintainability&lt;/strong&gt;: A disorganized architecture makes it harder to debug, extend, or refactor the code, resulting in higher maintenance costs over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Issues&lt;/strong&gt;: Inefficient code structures, unoptimized asset management, or excessive re-renders can degrade the app's performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer Onboarding Challenges&lt;/strong&gt;: New team members struggle to understand and contribute to the project if the folder structure and code organization lack clarity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing Complexity&lt;/strong&gt;: Without a clear separation of concerns, writing unit and integration tests becomes cumbersome, leading to low test coverage and less reliable software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Debt Accumulation&lt;/strong&gt;: As the project evolves, quick fixes and shortcuts add up, leading to a large amount of technical debt that slows down development.&lt;/p&gt;

&lt;p&gt;A well-structured codebase can prevent these issues by fostering a modular and scalable approach to organizing your app. In this article, we'll dive into best practices for architecting a React Native application that scales seamlessly as your project grows. We'll discuss a boilerplate setup with a configuration that provides a solid starting point for structuring your app, helping you avoid common pitfalls and ensuring long-term maintainability and performance. Whether you're setting up a new project or refactoring an existing one, following these guidelines will give your app the robust foundation it needs to thrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you take into account when creating your React Native app?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. Learn the Clean Code principles:
&lt;/h2&gt;

&lt;p&gt;When it comes to having a robust architecture, you need to take into account different clean code principles, a summary of that is here: &lt;a href="https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29" rel="noopener noreferrer"&gt;https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29&lt;/a&gt;&lt;br&gt;
But when it comes to using that in React or React Native app, we need to use a React approach, I wrote this article a time ago here: &lt;a href="https://medium.com/@malikchohra/structure-your-react-native-app-for-scale-part-1-patterns-and-principles-to-master-a3b24b6acf97.%C2%A0" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/structure-your-react-native-app-for-scale-part-1-patterns-and-principles-to-master-a3b24b6acf97. &lt;/a&gt;&lt;br&gt;
Where I talked about which principles and code patterns that you need to take into account when working with React or React Native.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What are the things that are specific for a React or a React Native app:
&lt;/h2&gt;

&lt;p&gt;In this section, I will talk about what needs to be taken into account when working with React or a React native app, how to solve it, and which articles or resources you can learn from. &lt;/p&gt;

&lt;h2&gt;
  
  
  Modular Code Organization:
&lt;/h2&gt;

&lt;p&gt;Structure your codebase into meaningful folders and modules (e.g., Components, Screens, API, Redux, Hooks) to ensure a clear separation of concerns, improve readability, and simplify maintenance.&lt;br&gt;
You can use different Patterns and principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SOLID principles for example): &lt;a href="https://medium.com/stackademic/use--" rel="noopener noreferrer"&gt;https://medium.com/stackademic/use--&lt;/a&gt; -solid-principles-in-react-react-native-663b8cabfa2b&lt;/li&gt;
&lt;li&gt;Facade pattern: &lt;a href="https://medium.com/@malikchohra/build-to-scale-the-facade-pattern-1f5db01226a9" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-to-scale-the-facade-pattern-1f5db01226a9&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Higher Order component in React: &lt;a href="https://medium.com/@malikchohra/build-for-scale-higher-order-component-hoc-in-react-and-react-nativethis-series-of-build-for-8b9e3dc96317" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-higher-order-component-hoc-in-react-and-react-nativethis-series-of-build-for-8b9e3dc96317&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Other principles: But when it comes to using that in React or React Native app, we need to use a React approach, I wrote this article a time ago here: &lt;a href="https://medium.com/@malikchohra/structure-your-react-native-app-for-scale-part-1-patterns-and-principles-to-master-a3b24b6acf97" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/structure-your-react-native-app-for-scale-part-1-patterns-and-principles-to-master-a3b24b6acf97&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reusable and Atomic Components:
&lt;/h2&gt;

&lt;p&gt;Build components using the atomic design principle (Atoms, Molecules, Organisms) to promote reusability, consistency, and a more structured approach to UI development.&lt;/p&gt;




&lt;h2&gt;
  
  
  Centralized State Management:
&lt;/h2&gt;

&lt;p&gt;Use a state management solution like Redux, MobX, or Context API to handle global states, making it easier to manage complex state changes and share data across the app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To learn how to use the Redux toolkit, check this: &lt;br&gt;
&lt;a href="https://medium.com/r?url=https%3A%2F%2Fcasainnov.com%2Fhow-to-use-redux-toolkit-for-your-react-and-react-native-app" rel="noopener noreferrer"&gt;https://medium.com/r?url=https%3A%2F%2Fcasainnov.com%2Fhow-to-use-redux-toolkit-for-your-react-and-react-native-app&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn different types of state management here: &lt;a href="https://medium.com/javascript-in-plain-english/build-for-scale-what-is-state-management-in-react-and-react-native-and-what-to-choose-4fc5151e233a" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/build-for-scale-what-is-state-management-in-react-and-react-native-and-what-to-choose-4fc5151e233a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Scalable API Layer:
&lt;/h2&gt;

&lt;p&gt;Consistently organize API-related code, such as using class-based API structures and separate folders for mock data, to easily manage API calls, handle data fetching, and integrate different environments. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;example of using GraphQL: &lt;a href="https://medium.com/javascript-in-plain-english/mastering-graphql-in-react-native-a-step-by-step-guide-with-typescript-and-redux-toolkit-79f3bce1dae7" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/mastering-graphql-in-react-native-a-step-by-step-guide-with-typescript-and-redux-toolkit-79f3bce1dae7&lt;/a&gt;
or &lt;/li&gt;
&lt;li&gt;using API facade approach to get data: &lt;a href="https://medium.com/@malikchohra/build-for-scale-from-api-to-ui-using-react-query-to-fetch-and-display-data-in-react-native-and-235428a1db5b" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-from-api-to-ui-using-react-query-to-fetch-and-display-data-in-react-native-and-235428a1db5b&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  CI/CD Integration:
&lt;/h2&gt;

&lt;p&gt;Automate building, testing, and deployment using tools like Fastlane for continuous integration and continuous delivery, ensuring a streamlined and error-free release process for both Android and iOS.&lt;br&gt;
You can use Fastlane in your React native app to ship faster to Apple Store and Google Play Store, integrate it with Github action: check these two resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/@malikchohra/ci-cd-pipeline-for-react-native-apps-use-fastlane-and-github-actions-40f9ad2036d0" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/ci-cd-pipeline-for-react-native-apps-use-fastlane-and-github-actions-40f9ad2036d0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@malikchohra/ci-cd-pipeline-for-react-native-apps-use-fastlane-and-github-actions-dcf101edc423" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/ci-cd-pipeline-for-react-native-apps-use-fastlane-and-github-actions-dcf101edc423&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Efficient Asset Management:
&lt;/h2&gt;

&lt;p&gt;Keep assets like images, icons, fonts, and other resources well-organized in a dedicated folder structure to avoid clutter and make asset management more straightforward.&lt;br&gt;
If you want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use a custom font, check this article: &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-custom-fonts-in-react-native-5cae05ee1a99" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-custom-fonts-in-react-native-5cae05ee1a99&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;use Fastimage for images: &lt;a href="https://medium.com/@malikchohra/build-for-scale-how-to-use-react-native-fast-image-393a647d60d5" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-how-to-use-react-native-fast-image-393a647d60d5&lt;/a&gt;
use custom svg for icons: &lt;a href="https://medium.com/@malikchohra/build-for-scale-how-to-use-svgs-in-react-native-5f49ad4a7715" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-how-to-use-svgs-in-react-native-5f49ad4a7715&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Theming and Styling:
&lt;/h2&gt;

&lt;p&gt;Use a consistent theming strategy by centralizing theme-related configurations (e.g., colors, typography, global styling) to maintain a unified look and feel across the app.&lt;br&gt;
To learn more about design systems, how to create your own in react native, and how to use it with react native paper&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What is a design system for beginners: &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-59353baec110" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-59353baec110&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create your custom Theme: &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-0224797da39b" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-0224797da39b&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-How to use React Native paper: React native paper &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-5790982cae7e" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-a-design-system-in-your-react-native-app-5790982cae7e&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Localization and Internationalization (i18n):
&lt;/h2&gt;

&lt;p&gt;Implement localization support early in development to ensure the app is prepared for multiple languages and regions without significant refactoring.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn how to use different languages in your react native app here: &lt;a href="https://medium.com/@malikchohra/build-for-scale-use-internalization-for-react-native-6fb9f5c06dd2" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-use-internalization-for-react-native-6fb9f5c06dd2&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Custom Hooks:
&lt;/h2&gt;

&lt;p&gt;Create custom hooks for encapsulating logic related to data fetching, state updates, and other reusable functionalities to avoid code duplication and promote a clean separation of logic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can check a great approach of how to use them for data fetching here: &lt;a href="https://medium.com/javascript-in-plain-english/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native-d27dab04df2a" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native-d27dab04df2a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;or the usage of React query hook: &lt;a href="https://medium.com/javascript-in-plain-english/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native-d27dab04df2a" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native-d27dab04df2a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Robust Testing Strategy:
&lt;/h2&gt;

&lt;p&gt;Set up a comprehensive testing framework (e.g., unit tests, integration tests, E2E tests) to catch bugs early, improve code quality, and ensure the app behaves as expected.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can learn more about how to use Detox for e2e testing, and Jest for testing here: &lt;a href="https://medium.com/@malikchohra/guide-to-testing-in-react-native-end-to-end-test-using-detox-f29fd1344180" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/guide-to-testing-in-react-native-end-to-end-test-using-detox-f29fd1344180&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unit Testing &lt;a href="https://medium.com/@malikchohra/guide-to-testing-in-react-native-end-to-end-test-using-detox-f29fd1344180" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/guide-to-testing-in-react-native-end-to-end-test-using-detox-f29fd1344180&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Test: &lt;a href="https://blog.stackademic.com/guide-to-testing-in-react-native-unit-and-integration-test-6cca27dfe293" rel="noopener noreferrer"&gt;https://blog.stackademic.com/guide-to-testing-in-react-native-unit-and-integration-test-6cca27dfe293&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Navigation Management:
&lt;/h2&gt;

&lt;p&gt;Structure navigation, with a dedicated folder for navigation configuration and screens, to keep the navigation flow organized and easy to manage as the app scales.&lt;br&gt;
You can read this article on what react-navigation is. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to learn how to use it in react native: &lt;a href="https://medium.com/@malikchohra/build-for-scale-best-approach-on-how-to-use-react-navigation-in-react-native-d3eb7362c80e" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/build-for-scale-best-approach-on-how-to-use-react-navigation-in-react-native-d3eb7362c80e&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Error Handling and Logging:
&lt;/h2&gt;

&lt;p&gt;Implement centralized error handling and logging solutions to manage crashes, trace errors, and monitor app behavior, which will help debug and improve the app's reliability.&lt;br&gt;
Using a class to debug, add performance tools such as Firebase, Sentry or DataDog. &lt;/p&gt;




&lt;h2&gt;
  
  
  Performance and optimization app render:
&lt;/h2&gt;

&lt;p&gt;Performance is an important subject for advanced react native development.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;check how to get rid of console .log in your code base here: &lt;a href="https://medium.com/stackademic/build-for-scale-optimize-app-size-delete-console-log-from-your-app-8fb4ae9470d8" rel="noopener noreferrer"&gt;https://medium.com/stackademic/build-for-scale-optimize-app-size-delete-console-log-from-your-app-8fb4ae9470d8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;use of Flashlit for big data rendering: &lt;a href="https://medium.com/javascript-in-plain-english/build-for-scale-improve-list-performance-using-flashlist-ec0e02804d15" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/build-for-scale-improve-list-performance-using-flashlist-ec0e02804d15&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The best approach to implementing infinite scroll: &lt;a href="https://medium.com/javascript-in-plain-english/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native-d27dab04df2a" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/build-for-scale-infinite-scroll-using-react-query-with-redux-toolkit-in-react-and-react-native-d27dab04df2a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid Memory leak: &lt;a href="https://medium.com/stackademic/build-for-scale-avoid-memory-leaks-in-react-native-dc19b84d9958" rel="noopener noreferrer"&gt;https://medium.com/stackademic/build-for-scale-avoid-memory-leaks-in-react-native-dc19b84d9958&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Data and API security:
&lt;/h2&gt;

&lt;p&gt;When creating an app, you need to hide your sensitive keys inside it so you can comply with GDPR rules.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;learn more about how to use react native config to hide your keys here: &lt;a href="https://casainnov.com/securing-sensitive-keys-in-react-native-with-react-native-config" rel="noopener noreferrer"&gt;https://casainnov.com/securing-sensitive-keys-in-react-native-with-react-native-config&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Best User Experience and Animations:
&lt;/h2&gt;

&lt;p&gt;To have an amazing app that users love, and add more live feeling to your app. a great user experience is Mandatory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;learn more about how to use react native reanimated: &lt;a href="https://casainnov.com/learn-animation-in-react-native-using-reanimated-library" rel="noopener noreferrer"&gt;https://casainnov.com/learn-animation-in-react-native-using-reanimated-library&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;you can skip a bad user experience by following this guideline: &lt;a href="https://medium.com/stackademic/anticipate-bad-user-experience-in-your-react-react-native-app-40af5d9d1334" rel="noopener noreferrer"&gt;https://medium.com/stackademic/anticipate-bad-user-experience-in-your-react-react-native-app-40af5d9d1334&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Developer Experience
&lt;/h2&gt;

&lt;p&gt;You need to take into account how the development team will use your app. You need to set standards on how to use the code base and how collaboration should be done. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;you can check the following:&lt;br&gt;
usage of an absolute path in react native: &lt;a href="https://medium.com/@malikchohra/how-to-use-absolute-path-in-the-latest-react-react-native-version-fe88142a6f7e" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/how-to-use-absolute-path-in-the-latest-react-react-native-version-fe88142a6f7e&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;implement a static code analysis in your react project: &lt;a href="https://medium.com/@malikchohra/guide-to-static-code-analysis-for-react-and-react-native-c745dfc250bd" rel="noopener noreferrer"&gt;https://medium.com/@malikchohra/guide-to-static-code-analysis-for-react-and-react-native-c745dfc250bd&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Variable naming in Javascript: &lt;a href="https://medium.com/javascript-in-plain-english/best-practices-for-variable-names-in-javascript-and-typescript-7860a84ed80a" rel="noopener noreferrer"&gt;https://medium.com/javascript-in-plain-english/best-practices-for-variable-names-in-javascript-and-typescript-7860a84ed80a&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  **The answer: How to structure your App for scaling to +2 million active users and +150 developers teams
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;1. Organize by Feature or Module&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Structure the app by organizing code into feature-based or module-based folders. This approach groups related files together, making it easier to maintain and scale the app. Each folder contains all related components, screens, hooks, and utilities.&lt;br&gt;
Example:&lt;br&gt;
Screens/&lt;br&gt;
--&amp;gt; HomeScreen/&lt;br&gt;
--&amp;gt; --&amp;gt; index.tsx&lt;br&gt;
--&amp;gt; --&amp;gt; components/&lt;br&gt;
--&amp;gt; --&amp;gt; --&amp;gt; Header.tsx&lt;br&gt;
--&amp;gt; --&amp;gt; --&amp;gt; HomeList.tsx&lt;br&gt;
--&amp;gt; --&amp;gt; hooks/&lt;br&gt;
--&amp;gt; --&amp;gt; --&amp;gt; useHomeData.ts&lt;br&gt;
--&amp;gt; --&amp;gt; tests/&lt;br&gt;
--&amp;gt; --&amp;gt; --&amp;gt; HomeScreen.test.tsx&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;2. Atomic Design for Components&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Adopt the Atomic Design principles to structure your components into different levels, which promotes reusability and keeps the codebase modular.&lt;br&gt;
Example:&lt;br&gt;
Components/&lt;br&gt;
--&amp;gt; Atoms/&lt;br&gt;
--&amp;gt; --&amp;gt; Button.tsx&lt;br&gt;
--&amp;gt; --&amp;gt; Text.tsx&lt;br&gt;
--&amp;gt; Molecules/&lt;br&gt;
--&amp;gt; --&amp;gt;Card.tsx&lt;br&gt;
--&amp;gt; --&amp;gt; ListItem.tsx&lt;br&gt;
--&amp;gt; Organisms/&lt;br&gt;
--&amp;gt;--&amp;gt; Header.tsx&lt;br&gt;
--&amp;gt;--&amp;gt; UserProfile.tsx&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;3. Centralized State Management&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Organize your global state management solution to separate concerns by business feature (actions, reducers, selectors), allowing for scalability as the app grows.&lt;br&gt;
Example:&lt;br&gt;
Redux/&lt;br&gt;
appConfig/&lt;br&gt;
--&amp;gt; --&amp;gt; appcofingReducers.ts&lt;br&gt;
--&amp;gt; --&amp;gt; appConfigModel.ts&lt;br&gt;
--&amp;gt; --&amp;gt; appConfigSelector.ts&lt;br&gt;
--&amp;gt; --&amp;gt; appConfigActions.ts&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;4. Efficient API Layer Organization&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Separate the API layer into specific folders for different modules or services, each containing its own API calls, mock data, and types.&lt;br&gt;
Example:&lt;br&gt;
API/&lt;br&gt;
customApi/&lt;br&gt;
--&amp;gt; customApi.ts&lt;br&gt;
--&amp;gt; Route.ts&lt;br&gt;
types.ts&lt;br&gt;
mockedData.ts&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;5. Asset Management&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Organize your assets (e.g., images, fonts, icons) in a clear folder structure for easy access and management.&lt;br&gt;
Example:&lt;br&gt;
Assets/&lt;br&gt;
--&amp;gt; Images/&lt;br&gt;
--&amp;gt; --&amp;gt;logo.png&lt;br&gt;
--&amp;gt; --&amp;gt; background.jpg&lt;br&gt;
--&amp;gt; Icons/&lt;br&gt;
--&amp;gt; --&amp;gt; menu.svg&lt;br&gt;
--&amp;gt; --&amp;gt; profile.svg&lt;br&gt;
--&amp;gt; Fonts/&lt;br&gt;
--&amp;gt; --&amp;gt; Roboto/&lt;br&gt;
--&amp;gt; --&amp;gt; Roboto-Bold.ttf&lt;br&gt;
--&amp;gt; --&amp;gt; Roboto-Regular.ttf&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;6. Custom Hooks for Reusability&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Create custom hooks for shared functionalities such as data fetching, state handling, or utility functions. This helps keep your components clean and focused on presentation.&lt;br&gt;
Example:&lt;br&gt;
Hooks/ &lt;br&gt;
useFetchData.ts&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;7. Maintain a Consistent Theming and Styling Strategy&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Centralize theme-related configurations to keep a unified style throughout the app. This includes colors, typography, global styles, and responsive settings.&lt;br&gt;
Example:&lt;br&gt;
Theme/&lt;br&gt;
colors.ts&lt;br&gt;
typography.ts&lt;br&gt;
globalStyling.ts&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;8. Comprehensive Testing Strategy&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Separate tests based on their type (e.g., unit, integration, E2E) and organize them within folders that mirror the structure of the app. This helps ensure that all aspects of the app are adequately covered by tests.&lt;br&gt;
Example:&lt;br&gt;
&lt;strong&gt;tests&lt;/strong&gt;/&lt;br&gt;
--&amp;gt;unit/&lt;br&gt;
--&amp;gt; --&amp;gt; Button.test.tsx&lt;br&gt;
--&amp;gt; integration/&lt;br&gt;
--&amp;gt; --&amp;gt; HomeScreen.test.tsx&lt;br&gt;
--&amp;gt; e2e/&lt;br&gt;
--&amp;gt; --&amp;gt; loginFlow.test.ts&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;9. Navigation Management&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use a dedicated folder for navigation configuration, which can be broken down by stacks and tabs to keep the navigation system organized.&lt;br&gt;
Example:&lt;br&gt;
Navigation/&lt;br&gt;
--&amp;gt; AppNavigator.tsx&lt;br&gt;
--&amp;gt; AuthStack.tsx&lt;br&gt;
--&amp;gt;MainStack.tsx&lt;br&gt;
--&amp;gt; BottomTabNavigator.tsx&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;10. Configuration and Environment Management&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Organize configurations and environment settings in a dedicated folder to manage different build environments (e.g., development, testing, production).&lt;br&gt;
Example:&lt;br&gt;
Config/&lt;br&gt;
appConfig.ts&lt;br&gt;
environment.ts&lt;br&gt;
firebaseConfig.ts&lt;br&gt;
.env&lt;/p&gt;




&lt;h2&gt;
  
  
  **Nothing Speak Better than a real implementation
&lt;/h2&gt;

&lt;p&gt;Real Example: A Boilerplate Open Source to scale your React native app:**&lt;/p&gt;

&lt;p&gt;Using the React Native boilerplate, I generated this app just to explain the best approach to scale your app, and the usage of the boilerplate&lt;/p&gt;

&lt;p&gt;Check the video here: &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%2Flzscu29afe13u1yzldjz.gif" 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%2Flzscu29afe13u1yzldjz.gif" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
usage of react native scalable architecture&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Application Functionality and Best Practices&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The architecture of this React Native application is meticulously designed to prioritize scalability and maintainability. Engineered to handle over one million active users monthly, the app delivers a seamless user experience through a modular and well-organized codebase. Adhering to software architecture best practices, the application embraces clean code principles, ensuring each component, service, and utility is well-defined and easily navigable.&lt;br&gt;
The architecture adheres to SOLID principles, emphasizing single responsibility and open/closed design. This approach allows components to be easily modified and extended without impacting existing functionality. For instance, the Redux Toolkit is utilized for efficient state management, providing a clear structure for actions, reducers, and selectors, which simplifies the management of application state across the codebase.&lt;br&gt;
The app is structured to enhance code reusability and readability. React Navigation is employed to facilitate intuitive navigation patterns, enabling users to move seamlessly between different sections of the application. Components are categorized using atomic design principles, fostering a hierarchy that separates atoms, molecules, and organisms for better organization and scalability.&lt;br&gt;
Testing is crucial for ensuring the reliability of the app. Tools like Jest and Detox are integrated to facilitate both unit and end-to-end testing. This rigorous testing approach helps maintain code quality and catch issues early in the development cycle.&lt;br&gt;
Moreover, the application incorporates Fastlane for CI/CD, automating the build and deployment process to streamline updates and feature releases. Utilizing Axios for API interactions and Luxon for date and time management further enhances the app's robustness and efficiency&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  CODE FOR THE BOILERPLATE
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;You find the GitHub code here: &lt;a href="https://github.com/chohra-med/scalableReactNativeBoilerplate" rel="noopener noreferrer"&gt;https://github.com/chohra-med/scalableReactNativeBoilerplate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;In summary, this article has explored the architectural strategies and best practices employed in building a high-performance React Native application capable of supporting over one million active users and a team of 100 developers. By emphasizing clean code, SOLID principles, and modular design, we create a codebase that is not only scalable but also maintainable and efficient.&lt;br&gt;
As you reflect on the insights shared in this article, consider how you can apply these principles to elevate your own development practices. Embrace the opportunity to learn from these architectural strategies, refine your coding skills, and take your React Native applications to the next level. Remember, the key to successful software development lies in crafting a well-structured and thoughtfully architected application that can adapt and grow alongside your user base.&lt;/p&gt;

&lt;p&gt;If you need to integrate Advanced functionalities in your Mobile app, create one from scratch, or need consulting in react native. Visit the casainnov.com[ &lt;a href="http://casainnov.com/" rel="noopener noreferrer"&gt;http://casainnov.com/&lt;/a&gt;] , check their mobile app page, and contact them there.&lt;/p&gt;

&lt;p&gt;I share insights about React Native, React, and Typescript. Follow me on Linkedin [ &lt;a href="https://www.linkedin.com/in/malik-chohra/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/malik-chohra/&lt;/a&gt;] or Medium.&lt;/p&gt;

&lt;h1&gt;
  
  
  ReactNative #WebSockets #RealTime #MobileDevelopment #AppDevelopment #TechInnovation #Coding #JavaScript #MobileApps #DevCommunity #SocketProgramming #RealTimeCommunication #TechNavy #cleancode
&lt;/h1&gt;

</description>
      <category>reactnative</category>
      <category>react</category>
      <category>cleancode</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Optimizing React Native Performance for a Seamless User Experience</title>
      <dc:creator>Malik Chohra</dc:creator>
      <pubDate>Thu, 10 Oct 2024 15:14:11 +0000</pubDate>
      <link>https://dev.to/malik_chohra/optimizing-react-native-performance-for-a-seamless-user-experience-4d35</link>
      <guid>https://dev.to/malik_chohra/optimizing-react-native-performance-for-a-seamless-user-experience-4d35</guid>
      <description>&lt;p&gt;In the competitive world of mobile app development, delivering a smooth and responsive user experience is paramount. React Native, a powerful framework for building cross-platform apps offers a robust foundation but requires careful optimization to ensure peak performance. This article explores effective strategies to enhance your React Native app's speed and responsiveness.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Image Optimization: A Visual Foundation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Choose the Right Format:&lt;/strong&gt; Select appropriate image formats based on content. JPEGs are ideal for photographs, while PNGs excel in preserving transparency. Consider WebP for superior compression without compromising quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compress Images&lt;/strong&gt;: Utilize tools like ImageOptim or TinyPNG to reduce image file sizes without sacrificing visual fidelity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lazy Loading&lt;/strong&gt;: Defer loading images until they're about to appear on the screen. Libraries like react-native-fast-image facilitate this technique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Effective Caching&lt;/strong&gt;: Implement caching to prevent redundant image downloads and improve load times.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Minimizing Re-renders: A Performance Boost
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;PureComponent and React.memo&lt;/strong&gt;: If a component's output remains unchanged for identical props, employ PureComponent or React.memo to avoid unnecessary re-renders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;useCallback and useMemo&lt;/strong&gt;: Memoize functions and values using these hooks to prevent unnecessary recalculations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FlatList and SectionList&lt;/strong&gt;: For large lists, opt for FlatList or SectionList over ScrollView. These components render only visible items, improving performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Inline Function Optimization: Avoiding Pitfalls
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Avoid Inline Functions&lt;/strong&gt;: Defining functions within JSX can lead to excessive re-renders. Move function definitions outside the render method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memoization&lt;/strong&gt;: Use useCallback to memoize functions and prevent unnecessary re-creations.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
// Inefficient Inline Function &lt;/p&gt;

&lt;p&gt; handlePress(item.id)} /&amp;gt;&lt;/p&gt;

&lt;p&gt;// Optimal Function Definition with Memoization &lt;/p&gt;

&lt;p&gt;const handlePress = useCallback((id) =&amp;gt; { // Handle press logic here }, []); &lt;/p&gt;

&lt;p&gt;`&lt;/p&gt;

&lt;h2&gt;
  
  
  4. JavaScript Bundle Optimization: Streamlining Startup
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Code-Splitting&lt;/strong&gt;: Divide your code into smaller bundles to load only essential parts initially. Dynamic imports enable code-splitting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leverage babel-preset-env&lt;/strong&gt;: Target specific environments or browsers to reduce polyfill and helper code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimize Third-Party Libraries&lt;/strong&gt;: Import only the necessary components from libraries. For example, use lodash-es and import individual functions:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import debounce from 'lodash-es/debounce';&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Native Modules for Performance Gains
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Custom Native Modules&lt;/strong&gt;: Write native modules in Swift, Objective-C, Java, or Kotlin for performance-critical tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-Built Native Modules&lt;/strong&gt;: Utilize existing modules like react-native-reanimated for animations or react-native-fast-image for image handling.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Memory Management: A Crucial Aspect
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prevent Memory Leaks&lt;/strong&gt;: Clean up listeners and subscriptions in componentWillUnmount or useEffect cleanup functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimize Re-renders&lt;/strong&gt;: Use shouldComponentUpdate or React.memo to minimize unnecessary updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handle Large Data Efficiently&lt;/strong&gt;: Process large datasets in smaller chunks or leverage native modules for performance-intensive operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Performance Profiling and Monitoring
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;React Native's Built-in Tools&lt;/strong&gt;: Use React Native's performance monitor and console.time/console.timeEnd to measure code execution times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third-Party Tools&lt;/strong&gt;: Explore Flipper and React Native Debugger for in-depth performance analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Navigation Optimization: A Smooth Journey
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;React Navigation's createNativeStackNavigator&lt;/strong&gt;: Utilize this navigator for optimized navigation performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimize Off-Screen Rendering&lt;/strong&gt;: Avoid rendering screens that are not visible to the user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cautious Use of Optimizations&lt;/strong&gt;: Be mindful of using shouldComponentUpdate or React.memo in navigation, as they might introduce unexpected behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Animations: A Visual Delight
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;React Native Reanimated&lt;/strong&gt;: Employ this library for native-thread-based animations, ensuring smoothness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LayoutAnimation API&lt;/strong&gt;: Animate layout changes using this API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimize JavaScript-Driven Animations&lt;/strong&gt;: Prioritize native-driven animations for better performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Hermes for Android: A Performance Boost
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Enable Hermes&lt;/strong&gt;: Add enableHermes: true to your Android/app/build.gradle file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;: Hermes can reduce startup time, and memory usage, and improve overall performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By implementing these strategies, you can significantly enhance your React Native app's performance and deliver a superior user experience. Remember, continuous optimization is essential for staying ahead in the competitive mobile app landscape.&lt;/p&gt;

&lt;p&gt;check here how Casainnov helped a &lt;a href="https://casainnov.com/success-story-casainnovs-mobile-app-optimization-with-react-native" rel="noopener noreferrer"&gt;leading property listing in KSA to optimize their app and what the output&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can check one of our blogs here:&lt;/p&gt;

&lt;p&gt;Learn Animation in React Native: &lt;a href="https://casainnov.com/learn-animation-in-react-native-using-reanimated-library" rel="noopener noreferrer"&gt;https://casainnov.com/learn-animation-in-react-native-using-reanimated-library&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From API to UI: Using React-query to Fetch and Display Data in React Native and React: &lt;a href="https://casainnov.com/from-api-to-ui-using-react-query-to-fetch-and-display-data-in-react-native-and-react" rel="noopener noreferrer"&gt;https://casainnov.com/from-api-to-ui-using-react-query-to-fetch-and-display-data-in-react-native-and-react&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React Native 0.75 is Out. What is new?: &lt;a href="https://casainnov.com/react-native-075-is-out-what-is-new" rel="noopener noreferrer"&gt;https://casainnov.com/react-native-075-is-out-what-is-new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How to a React Native agency for your project: &lt;a href="https://casainnov.com/comprehensive-guide-to-react-native-development-agencies" rel="noopener noreferrer"&gt;https://casainnov.com/comprehensive-guide-to-react-native-development-agencies&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mastering GraphQL in React Native: A Step-by-Step Guide with TypeScript and Redux Toolkit: &lt;a href="https://casainnov.com/mastering-graphql-in-react-native-a-step-by-step-guide-with-typescript-and-redux-toolkit" rel="noopener noreferrer"&gt;https://casainnov.com/mastering-graphql-in-react-native-a-step-by-step-guide-with-typescript-and-redux-toolkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step-by-Step Guide: Using MirageJS to Mock API Calls in a React Native App: &lt;a href="https://casainnov.com/step-by-step-guide-using-miragejs-to-mock-api-calls-in-a-react-native-app" rel="noopener noreferrer"&gt;https://casainnov.com/step-by-step-guide-using-miragejs-to-mock-api-calls-in-a-react-native-app&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ReactNative #WebSockets #RealTime #MobileDevelopment #AppDevelopment #TechInnovation #Coding #JavaScript #MobileApps #DevCommunity #SocketProgramming #RealTimeCommunication #TechNavy
&lt;/h1&gt;

</description>
      <category>reactnative</category>
      <category>javascript</category>
      <category>performance</category>
      <category>android</category>
    </item>
  </channel>
</rss>
