<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Gautu Pinkyar on Medium]]></title>
        <description><![CDATA[Stories by Gautu Pinkyar on Medium]]></description>
        <link>https://medium.com/@gautu.pinkyar?source=rss-e5950872bc22------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*82_2U1-SeBxm929G.jpg</url>
            <title>Stories by Gautu Pinkyar on Medium</title>
            <link>https://medium.com/@gautu.pinkyar?source=rss-e5950872bc22------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 00:48:21 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@gautu.pinkyar/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Phase 2 -High Level Design(HLD) and API Design for Ecommerce Platform]]></title>
            <link>https://medium.com/@gautu.pinkyar/phase-2-high-level-design-hld-and-api-design-for-ecommerce-platform-a81ccbcc2aab?source=rss-e5950872bc22------2</link>
            <guid isPermaLink="false">https://medium.com/p/a81ccbcc2aab</guid>
            <dc:creator><![CDATA[Gautu Pinkyar]]></dc:creator>
            <pubDate>Sun, 13 Jul 2025 12:37:48 GMT</pubDate>
            <atom:updated>2025-07-13T12:37:48.549Z</atom:updated>
            <content:encoded><![CDATA[<p>In the previous article we discussed about the business requirements, functional and non-functional requirements, architecture decision, tech stack decision. In this article we would be covering the High level, and API design in detail</p><h3>1️⃣ High Level Design</h3><p>It is a blueprint of system architecture. Here it would describe how components/modules would interact and how the system is built without using the code details</p><p>There are 2 interfaces that would be used <br>- Customer Portal <br>- Admin Portal</p><ol><li><strong>Core modules — <br></strong>✅Auth — Login, SSO, JWT, Role based access<br>✅Product and Catalog — Search product, inventory <br>✅Cart — Add/Remove/View products from the cart <br>✅Order — Order placement, tracking, generating invoices<br>✅Refund — Approve/reject refunds, automation of refund process for low/mid priced products <br>✅Notification — Email/SMS/Push alerts <br>✅Analytics — User activity, sales report<br>✅User — View/Edit Profile, Manage Shipping Address, View preferences</li><li><strong>High Level Architecture design having the high level components to be used</strong></li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*094mO5kHm8bTqzvTjglOVA.png" /><figcaption>High level component based diagram</figcaption></figure><p>3. Backend API Component based Architecture Diagram</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YxZsneY7f84nQLd5TBVUjA.png" /></figure><p>4. Scalable &amp; Event-Driven Architecture Diagram</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d0tiRy90YWn3hKqKSphfoQ.png" /></figure><p>Adding to above —</p><p><strong>Infra Level Scaling Up </strong><br>- Since we are not having multiple instances, we can keep use of Kubernetes Service configuration with type: NodePort or type: LoadBalancer<br>- With the help of Kubernetes + Modular Monolithic, we can scale horizontally without big refactoring <br>- Automatic Scaling using <strong>Horizontal Pod Autoscaler (HPA): </strong>Kubernetes automatically increases or decreases the <strong>number of pods</strong> based on <strong>resource usage</strong> (like CPU or memory)<br>To define the target metric and min and max pods <br>- With <strong>HPA</strong>, Kubernetes auto-scales up and down <strong>without your intervention</strong>, keeping the system responsive and cost-efficient.<br>- Set <strong>CPU and Memory Requests/Limits</strong> to ensure pod does not overcome resources preventing crashing.</p><p><strong>Database Level Scaling Up<br>- </strong>Use a Managed Database with <strong>Auto-Backups</strong> (MySQL, MongoDB)<br>- Enable <strong>Backup, Automatic Failover, Performance monitoring </strong><br>- Maintain <strong>Read replicas</strong> for primary database that can only serve read queries in order to reduce load on primary DB. Improves performance and scalability for heavy applications <br>- <strong>Connection pooling</strong> in order to handle many concurrent connections by reusing the old connections and avoid to create too many new connections that can result in the crash. Improves latency and reduces DB Load <br>- <strong>Indexing</strong> : Optimizing <strong>query performance</strong> — especially on large tables.Makes <strong>searches, joins, filters</strong> much faster.<br>- <strong>Caching</strong> — Using Redis cache to avoid calls to DB and optimize performance</p><p><strong>Application Level Scaling Up<br>- </strong>Async Job Queue — Use BullMQ offloading slow/background tasks (e.g., email, invoice gen)<br>- Rate limiting / throttling- Prevent spammy clients from overwhelming the server<br>- Service Decomposition (later)- Gradually based on the increased user base, breaking modules from monolith into microservices</p><h3>2️⃣️ API Design Overview</h3><p>As mentioned above the major modules that would be used, based on the same and the backend architecture diagram, a proper RESTful API design approach is been followed. Each core domain module defines the well structured endpoints with standard HTTP methods</p><ol><li>Auth <br>POST /api/register<br>POST /api/login <br>GET /api/logout</li><li>Product<br>GET /api/products <br>GET /api/products/:id <br>GET /api/products-catalog/search</li><li>Cart <br>GET /api/cart <br>POST /api/cart/items<br>PUT /api/cart/items/:id<br>DELETE /api/cart/items/:id</li><li>Order <br>POST /api/orders <br>GET /api/orders/:id<br>GET /api/orders/:id/invoice</li><li>Refund <br>POST /api/refunds<br>ADMIN PUT /api/refunds/:id/review (status either approved or rejected )</li><li>User <br>GET /api/profile<br>PUT /api/profile (Update the name, phone number )<br>GET /api/address (get users address )<br>POST /api/address (add new address )<br>PUT /api/address/:id (update users address )<br>DELETE /api/address/:id (remove saved address )</li><li>Notification<br>POST /api/notifications/send (for admin ops)<br>Trigger internally via queue (order placed and user flow )</li><li>Analytics (For ADMIN role based access not for users)<br>GET /api/analytics/overview (Providing the sales)<br>GET /api/analytics/orders (Order trends )<br>GET /api/analytics/users (Active users, signups and visited users )<br>GET /api/analytics/user-activity/:userId (User Activity )</li><li>Recommendations (can be taken later for personalized or trending products )<br>GET /api/recommendations/ (based on user activity )<br>GET /api/recommendations/similar/:productId (similar items)</li></ol><h3>Summary</h3><p>In this phase, we outlined the High-Level Design (HLD) and RESTful API contracts for our e-commerce platform. The system is designed with scalability, performance, and modularity in mind — leveraging Kubernetes for horizontal scaling, Redis for caching, async queues for background processing, and structured APIs for clean communication across the frontend and backend.</p><p>We covered:<br>Interfaces &amp; core business modules<br>High-level system architecture and components<br>Infrastructure and database scaling strategies<br>API design endpoints across all major modules</p><p>This forms the foundation of our backend system, ensuring it can scale efficiently as our user base grows.</p><p>🔜 What’s Next?<br>In the next phase, we’ll dive into:</p><p>📊 <strong>Low-Level Design (LLD) of key modules</strong><br>🔄 <strong>Entity-Relationship (ER) diagrams</strong><br>🧩 <strong>Database schema design</strong><br>⚙️ <strong>Service &amp; controller logic</strong><br>🧪 <strong>Error handling, validation, and middleware flow</strong></p><h3>About the Author</h3><p>Hi, I’m <strong>Gautami Pinkyar</strong> — a Full Stack Lead Engineer and passionate tech enthusiast. I thrive on building scalable solutions, learning continuously, and sharing knowledge with the community. With a keen interest in system design, modern architectures, and full-stack development, I enjoy simplifying complex tech for others through content and collaboration.</p><p>💬 Always open to exchanging ideas, exploring innovations, and connecting with like-minded professionals.<br> 🔗 Let’s connect: <a href="https://www.linkedin.com/in/gautami-pinkyar-904701110/">https://www.linkedin.com/in/gautami-pinkyar-904701110/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a81ccbcc2aab" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Phase 1: System Design Thinking — A lead engineer’s Approach before Coding (Tech Doc)]]></title>
            <link>https://medium.com/@gautu.pinkyar/phase-1-system-design-thinking-a-lead-engineers-approach-before-coding-tech-doc-c62a6a4b5bc9?source=rss-e5950872bc22------2</link>
            <guid isPermaLink="false">https://medium.com/p/c62a6a4b5bc9</guid>
            <dc:creator><![CDATA[Gautu Pinkyar]]></dc:creator>
            <pubDate>Sun, 23 Mar 2025 13:03:18 GMT</pubDate>
            <atom:updated>2025-03-23T13:26:21.936Z</atom:updated>
            <content:encoded><![CDATA[<h3>Phase 1: System Design Thinking — A lead engineer’s Approach before Coding (Tech Doc)</h3><p>Imagine you have been given a project say — an e-commerce platform. As a lead engineer where do you start? How do you start? What are the prerequisites you need to ask the stakeholders? Do you jump into coding directly? No! Before you write any code, the foundation must be set: business requirements, architecture, scalability. Let’s dive deeper to understand how we should approach this.</p><h3>1️⃣ Business Requirements</h3><p><strong>What is the app?<br></strong>✅ E-commerce Online business store for selling products</p><p><strong>What is the purpose of the app?<br></strong>✅<strong>Wide Product Availability </strong>— An online business that reaches customers across different time zones 24/7 Availability<br>✅<strong>Cost Effective — </strong>Minimizing the need for physical storefronts and manual processes<br>✅<strong>Quality Assurance &amp; Reviews — </strong>Access to ratings and reviews helps customers make informed decisions<br>✅<strong>Seamless Shopping Experience — </strong>Personalized recommendations, secure payments, and fast checkouts enhance user satisfaction</p><p><strong>Who will be using the app?<br></strong>✅<strong>Customers </strong>(End Users), <strong>Sellers</strong>(Store Owners) , <strong>Admin </strong>(Platform Owners)</p><p><strong>What type of business?<br></strong>✅<strong>B2C (Business-to-Consumer) — </strong>Businesses selling directly to customers</p><p>✅<strong>B2B (Business-to-Business) — </strong>Business selling directly to business (the bulk of products)</p><p><strong>What type of products?<br></strong>✅Fashion Products, Home and Living, Beauty Products</p><h3>2️⃣️Functional Requirements</h3><p>What the system exactly should do ???</p><p><strong>1. User Authentication &amp; Authorization</strong></p><ul><li>Users should be able to register using email, phone, social login</li><li>Users can log in securely using SSO</li><li>Admin can manage roles and permissions</li></ul><p><strong>2. Product Management</strong></p><ul><li>Users can browse, search, filter, and view products by category, price, and rating.</li><li>Admin can add, edit, or delete products with images and details (in case if product is out of stock, then admin can delete products)</li><li>Admin can manage roles and permissions.</li></ul><p><strong>3. Shopping Cart &amp; Checkout</strong></p><ul><li>Users can add/remove items from the cart</li><li>The cart should show the total price, taxes, and discounts</li><li>Users can apply promo codes and see discounts</li><li>Checkout should support payment methods</li></ul><p><strong>4. Order Management &amp; Tracking</strong></p><ul><li>Users can place orders and receive confirmation emails/SMS</li><li>Users can track order status (Processing → Shipped →Delivered)</li><li>The system should generate invoices for purchase</li></ul><p><strong>5. Refund</strong></p><ul><li>Users can request for refund</li><li>Admin to accept/reject in case of unusual behavior, if no image proof given, and in case of a product which is of high value</li><li>Refund automation process if low-value product, images are given and proof with proper description</li></ul><p><strong>6. Reviews and Ratings</strong></p><ul><li>Users can rate products and leave reviews</li></ul><p><strong>7. Notifications and Alert</strong></p><ul><li>The system should send email/SMS/push notifications for orders</li><li>Users can customize notification preferences</li></ul><p>8. <strong>Role-Based Access Control (RBAC)</strong></p><ul><li>Customers — Browse, buy, and track orders</li><li>Admin — Manage users, products, orders and analytics</li><li>Vendors — Manage their inventory, orders, and pricing</li></ul><p><strong>9. Reporting and Analytics</strong></p><ul><li>Sales revenue, profit tracking</li><li>User behavior tracking</li></ul><h3>3️⃣Non-Functional Requirements</h3><ol><li><strong>Scalability — <br></strong>✅Handle increased traffic<br>✅Handle peak loads</li><li><strong>Security — <br></strong>✅Secured payment processing<br>✅Data encryption<br>✅Protection against cyber attacks</li><li><strong>Performance — <br></strong>✅Fast Page Loading <br>✅Low Latency <br>✅High Throughput<br>✅Async Processing <br>✅Efficient Data Fetching</li><li><strong>Availability &amp; Reliability—</strong> <strong><br></strong>✅99% Uptime<strong><br></strong>✅Failover Mechanism<br>✅Smooth Shopping Experience<br>✅No Data Loss<br>✅Order processing gurantee</li><li><strong>Maintainability — <br></strong>✅Clean Architecture for easier maintenance.<br>✅Readable and well documented code<br>✅Version control for managing code and ensuring smooth rollbacks<br>✅Automated deployment &amp; CI/CD<br>✅Monitoring &amp; Logging <br>✅Modular and Scalable Infrastructure</li><li><strong>SEO Optimization<br></strong>✅Easier access to customers to find the products</li></ol><h3>4️⃣Architecture Decision</h3><p>Before getting into tech-stack decision, the main decision is to decide the right architecture based on the business needs, scalability, and future growth in terms of large-scale</p><p>What would be impacted if we don’t follow the right architecture -</p><p>❌Slow down development</p><p>❌Scaling issues</p><p>❌Maintenance cost</p><p>Hence for our e-commerce app, since at the start we don’t have a large user base or complex workflows, starting with microservices might be overkill</p><p>Why overkill?</p><p>- Complexity in development and deployment</p><p>- Operational overhead- When there is less user base and no need of multiple databases per service leading to data inconsistency and complex migrations</p><p>- High Infrastructure costs</p><p>So what’s the better approach?</p><p>🔹Start with a <strong>Modular Monolithic </strong>ensuring each module is loosely coupled and can be later extracted into a <strong>Microservice</strong></p><p>🔹Once the platform scales to a certain extent in terms of user base, in cases of high traffic, slower API responses, also in terms of different teams managing different features, extract the modules into separate <strong>Microservices</strong> and scale them separately</p><p>🔹Make use of <strong>Feature flags</strong> to ensure</p><p>✅Gradual Rollout- Deploying new feature to a small % of users and monitoring performance</p><p>✅Easy Rollback- If a feature has any bugs, turn it off instantly</p><p>✅Easy and Safe migration to microservices — Move a feature to a separate service and enable it for internal users before full migration and make it live</p><p>🔹Apply the <strong>Domain-driven design</strong>-</p><p>✅Modular codebase</p><p>✅Separates business logic from the infrastructure</p><p>✅Encapsulates each feature into its domain</p><h3>5️⃣Tech Stack Decision</h3><p>Let’s list down the goals based on the above requirements —</p><p>✅Business Requirements — B2C/B2B, product, user load, payment, checkout</p><p>✅Scalability &amp; Performance — Handle peak traffic, fast response time</p><p>✅Security &amp; Compliance — Payment Security, Data protection</p><p>✅Development &amp; Maintainability — Modular architecture, developer-friendly</p><p>Below is how we decided on the right tech stack for every application layer</p><p><strong>1️⃣Frontend (Customer facing Product)</strong></p><p><strong>Framework — </strong>React.js (Next.js) — for SSR(Server-Side Rendering) and SEO optimization</p><p><strong>State Management — </strong>Zustand (Global state management within the application)and React Query (efficient for handling API calls)</p><p><strong>Styling</strong> — TailwindCSS for responsive and scalable UI</p><p><strong>Authentication</strong> — NextAuth.js — for secure login SSO</p><p><strong>Performance Optimization</strong> — Lazy Loading, Code splitting, CDN for assets</p><p>2️⃣<strong>Backend (API Layer consisting of business logic and data handling )</strong></p><p><strong>Framework — </strong>Node.js (Next.js/Express.js) — for highly scalable event-driven backend</p><p><strong>Database —</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*W-t9Zio7iB8owk-JnS8bMA.png" /></figure><p><strong>Caching</strong> — Redis for reducing DB load and improving response time</p><p><strong>Authentication</strong> — NextAuth.js — handles authentication logic in the API route</p><p><strong>Payments — </strong>RazorPay/Stripe for handling secure transactions</p><p>3️⃣<strong>Infrastructure &amp; Deployment</strong></p><p><strong>Cloud Provider — </strong>AWS</p><p><strong>Containerization — </strong>Docker + Kubernetes</p><p><strong>CI/CD</strong> — Github Actions</p><p><strong>Monitoring </strong>— Graphana</p><p><strong>Logging </strong>— Cloudwatch</p><p>4️⃣<strong>Security &amp; Performance Enhancements</strong></p><p><strong>Web Security — </strong>HTTPs, rate limiting</p><p><strong>Load Balancing — </strong>AWS ELB</p><p><strong>CDN — </strong>AWS Cloudfront</p><h3>Summary</h3><p>In conclusion, this article highlights the importance of system design thinking before jumping into coding. Clearly defining the business requirements, functional and non-functional needs, and selecting the right architecture ensures a scalable, maintainable, and efficient e-commerce platform.</p><p>With the right tech stack and architectural choices, we can build a high-performance, secure, and seamless e-commerce experience for users.</p><p>In the next phase, I’ll be diving into designing HLD and LLD, API design. Stay tuned for more insights on building a scalable e-commerce platform!</p><h3>About the Author</h3><p>Hi, I am Gautami Pinkyar, a full stack lead engineer and a tech enthusiast. I am always eager to learn and create content that helps others in the tech world. Passionate about continuous growth, I enjoy sharing my knowledge and exploring new technologies. If you’d like to connect or discuss ideas, feel free to reach out to me on <a href="https://www.linkedin.com/in/gautami-pinkyar-904701110/">https://www.linkedin.com/in/gautami-pinkyar-904701110/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c62a6a4b5bc9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Web vs Native vs Hybrid Apps]]></title>
            <link>https://medium.com/@gautu.pinkyar/web-vs-native-vs-hybrid-apps-fd93589de213?source=rss-e5950872bc22------2</link>
            <guid isPermaLink="false">https://medium.com/p/fd93589de213</guid>
            <dc:creator><![CDATA[Gautu Pinkyar]]></dc:creator>
            <pubDate>Sat, 22 Feb 2025 13:30:57 GMT</pubDate>
            <atom:updated>2025-02-22T13:30:57.414Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mOxxWf_UIxAzy7QRGR5Mpg.png" /></figure><p>Here we are going to discuss web, native and hybrid apps. Before that, let’s get on to the basics</p><p>What exactly web apps is, and where does it come from ???<br>Web apps are directly evolved from <strong><em>Websites</em></strong>. <br>A website is nothing but a collection of web pages accessible over the Internet. They usually contain static and used to provide information or content to users. They are just simple pages with text and images. Blogs, Portals are examples of the website.</p><p>But what about interactions ? Do website provide solid interactions ?<br>No, websites provide very basic interactions like clicking on links, navigation through pages, submitting forms.</p><p>Due to these limitations, <strong><em>Web Apps</em></strong> came into picture since the need and expectations of the internet users evolved over time. Web Apps provide interactive experiences where users could perform tasks, manage data, access real time updates. Example like a <strong><em>Google doc</em></strong> where users can not only view but also edit and collaborate in real-time, also <strong><em>Amazon</em></strong> an ecommerce site where customers can make purchases, order items, and track orders</p><p>Now that we understood and got context about Web Apps, let’s deep dive further into -<br>In order to use web apps, it could be accessed from any device (phone, tablet, desktop) but with a modern web browser and an Internet connection. <strong><em>The main advantage for the web apps was its cross-platform (software could work on multiple OS and devices with minimal configurations) along with only one code base developed that could be run on different platforms (Windows, macOS, Android, iOS). This thereby reduced the cost as well.</em></strong></p><p>But what about the performance and if the user needs to explore device features ?</p><p>To answer, Web apps run within a browser and dependent on internet speed. Therefore, any complex tasks (animation, heavy media processing) would be slower and sluggish leading to not so good user experience. Answering to the second question, these apps cannot utilize full device features like (advanced camera features, limited file system access..)due to lesser accessibility.</p><p>Adding to the above issues that users face while using web apps, these apps also need a stable and strong internet connection. If we talk in terms of Security which is utmost important, they are more vulnerable to web-based attacks (cross-site scripting, man-in-the-middle attack) unless proper encryption, authentication and patch updates are not done.</p><p>Then what can be a better option or alternative so that users could get full device access, great accessibility and user experience ?</p><p>There comes <strong><em>Native Apps </em></strong>which are specifically designed for a specific operating system (Android, iOS). Native Apps provide full access to device features that includes hardware and system. For example, user can tap face ID or touch ID to access the apps. Apart from this, they also provide better performance by giving a fast speed. But how ?? They can actually leverage the OS resources better and directly work with the device resources to manage the memory. The OS keeps track of what’s happening in RAM, how much memory has been used, and ensures no app consumes more memory than it should.</p><p>One question why web apps can’t leverage browser resources and render fast speed then ??<br>Web apps are basically dependent on browser’s JS engine. The browser’s memory management system is not as optimized as OS’s memory management system. Browsers do not have direct access to memory</p><p>But we have the garbage collection that takes care of cleaning up memory, right ?<br>Yes, absolutely right, but this process is not as efficient as compared to native memory management. It can also lead to delays or memory leak if there is some complex task like video rendering, whereas a native app uses Hardware acceleration (offload certain tasks from the main processor (CPU) to these dedicated devices) which makes the application run at a faster speed.</p><p>Now let’s take a look at the challenges that Native apps had and how Hybrid Apps came into picture</p><p>Performance, Security, Speed, Good User Experience all of these factors led to the high use of native apps but however there are some challenges faced by them</p><ol><li>Development time and Cost — Developers need to write distinct code for each OS (Android, iOS etc.) [Swift or C for iOS, Java or Kotlin for Android]</li><li>Maintenance and Updates — Each platform having separate code base, which would result in complex maintenance. Any bug or minor update or say any feature needs to be separately developed or fixed for each version, making it cumbersome for developers</li><li>Complex development — Each OS works differently and the code base being different. iOS devices may have certain API’s or features that Android does not have. This would lead to developing custom features for each platform</li><li>App Store — There is a separate approval process, guidelines and mechanisms making it more complex to release and time-consuming especially if an app needs to be submitted for multiple platforms.</li></ol><p>Given that the challenges related to the Native Apps, hybrid apps comes into picture.</p><p>Hybrid Apps are a type of mobile applications that combines elements of both native apps and web apps. Hybrid apps are typically installed and accessed the same way as native apps. The process is the same. <br>The difference is that these apps make use of only a single code base using HTML5, CSS and JavaScript. Developers write code once and deploy across multiple platforms. Unlike native where separate code bases were there, hybrid is of great advantage here</p><p>One question — If hybrid runs same as a native on mobile, why web came into the picture ? How internally hybrid is using web and why ???</p><p>Hybrid app is a mix of 2 things -<br>1. Native Code — Part of the app that makes the app run smoothly in your phone. This part is specifically made for the phone (Android, iOS). This will allow your app to get access to the camera, GPS, phone storage.</p><p>2. Web Technologies — The content of the app can be made with these web tools (text, images, buttons)</p><p>Hybrid Apps uses <strong><em>WebView — Container within the app allows developers to display HTML, CSS, and JavaScript content inside a native application. It’s a Native wrapper where the user can use native features (device specific)through this wrapper and can also view the content. There is a Web Code that runs in this WebView. Using WebView, app can leverage features like accessing the native device APIs (camera, location) via plugins or bridges</em></strong></p><p>How hybrid apps can be useful for providing speed and reusability ?</p><p>2 main parts of Hybrid App: <br> 1. Core logic includes HTML, CSS and JavaScript to handle content, layout, behavior which is faster to develop than the native.</p><p>2. Framework like React-Native allows developers to reuse existing code in JavaScript and directly interact with native components (button, text)</p><p>Since there is only one code base, when there is need for any updates or bug fixes, they can be implemented faster and deployed resulting simultaneous updates on all platforms. <br>The main integration is with the native components, which makes the hybrid apps faster and providing a better performance since it uses the native features. This means hybrid apps can provide <strong><em>native-like performance</em></strong><em> </em>while benefiting from the speed of <strong><em>web-based development</em></strong>.</p><p>Overall, hybrid apps provide good performance but with some tradeoffs. Tradeoffs here mean that though it uses WebView, its speed and responsiveness won’t be as fast as native since internally the content produced by the WebView is processed by a browser engine which is not as efficient as the native UI system. There is an extra layer that interprets HTML, CSS and JavaScript, then renders it in WebView and translates user interactions like touch events, gestures into actions inside the WebView.</p><p>Therefore, this causes a higher latency and slow response time as compared to native</p><p>Though there are some considerations why using the hybrid apps, there are also advantages that are mentioned why to use hybrid apps. Depending on the business requirement and technical specification, the appropriate type of apps can be used.</p><p>Below are certain factors depending on which type of app can be chosen -</p><ol><li>Target Audience</li><li>Performance and Resource</li><li>User Experience</li><li>Market and Cost</li><li>Device Accessibility</li><li>Offline Capabilities</li><li>Scalability</li></ol><h3>Summary</h3><p>In Conclusion, this article is designed to help understand the key differences between web vs native vs hybrid apps and how to choose the right type of app based on the requirement and factors. Whether you prioritize cross-platform compatibility, high performance, offline capabilities or cost-effectiveness, understanding these concepts will guide to what approach to be taken for the app development.</p><p>If you found this article helpful or have any questions, feel free to reach out. Would love to hear thoughts or any suggestions and discuss any insights you may have.</p><h3>About the Author</h3><p>Hi, I am Gautami Pinkyar, a senior software developer and a tech enthusiast. I am always eager to learn and create content that helps others in the tech world. Passionate about continuous growth, I enjoy sharing my knowledge and exploring new technologies. If you’d like to connect or discuss ideas, feel free to reach out to me on <a href="https://www.linkedin.com/in/gautami-pinkyar-904701110/">https://www.linkedin.com/in/gautami-pinkyar-904701110/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fd93589de213" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>