<?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: Aishat Agunbiade</title>
    <description>The latest articles on DEV Community by Aishat Agunbiade (@yeeshadev).</description>
    <link>https://dev.to/yeeshadev</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%2F1119264%2Fb73c7883-bf09-4239-a171-7f72f75ab242.png</url>
      <title>DEV Community: Aishat Agunbiade</title>
      <link>https://dev.to/yeeshadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yeeshadev"/>
    <language>en</language>
    <item>
      <title>Exploratory Testing Report for Cars.ng</title>
      <dc:creator>Aishat Agunbiade</dc:creator>
      <pubDate>Thu, 06 Feb 2025 18:16:13 +0000</pubDate>
      <link>https://dev.to/yeeshadev/exploratory-testing-report-for-carsng-bop</link>
      <guid>https://dev.to/yeeshadev/exploratory-testing-report-for-carsng-bop</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Cars.ng is one of the leading platforms for buying and selling cars in Nigeria, providing users with a range of functionalities from browsing car listings to contacting sellers directly. As part of our exploratory testing, I conducted a thorough review of the website’s core user flows, with a special focus on ensuring a seamless experience across both desktop and mobile devices. This report highlights various issues discovered during testing, with an overarching observation: &lt;strong&gt;the mobile version of &lt;a href="https://cars.ng" rel="noopener noreferrer"&gt;Cars.ng&lt;/a&gt; needs to be more responsive across the entire website&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Testing Setup and Methods&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;For this task, I utilized the latest versions of Chrome and Firefox on Windows 11 Pro for desktop testing, and Safari on iOS 18 for mobile testing. I followed these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User Flow Exploration:&lt;/strong&gt; I navigated through key sections of the site such as the homepage, car details pages, and contact sections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issue Documentation:&lt;/strong&gt; Each issue was logged using a detailed bug report template in an Excel (Google Sheets) file, including steps to reproduce, expected vs. actual results, environment details, and severity ratings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Proof:&lt;/strong&gt; Screenshots and video recordings were attached for each issue to provide visual evidence of the problems encountered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on Mobile Experience:&lt;/strong&gt; Special attention was paid to how the site renders on mobile devices, which revealed several responsiveness issues.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can review the full documentation of my findings by accessing the Excel report &lt;a href="https://docs.google.com/spreadsheets/d/1yjSXptuKwQbJgpsstiiVGRri_eBBxj54Mp-RLaSONdo/edit?gid=0#gid=0" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Key Findings&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;During the testing process, I documented multiple issues affecting both desktop and mobile experiences. Here are some of the significant findings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unclickable Contact Information:&lt;/strong&gt; On the car details page, the contact information (such as WhatsApp or phone number) was not clickable, preventing users from easily reaching out to sellers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blurry Car Images:&lt;/strong&gt; Certain images, particularly in the “Similar Deals” section in the car details page, appeared blurry, which could confuse users regarding the quality and details of the cars.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Non-Functional Filters and Dead Links:&lt;/strong&gt; Some interactive elements like the price filter and dashboard navigation were not functioning as expected, leading to errors (e.g., 500 error pages).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Mobile Responsiveness Issue&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The most recurring theme throughout the testing was the lack of proper mobile responsiveness:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent Padding and Layout Issues:&lt;/strong&gt; Text and images on mobile devices often appeared too close to the screen borders or overflowed their containers, making the content hard to read.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-Responsive Car Displays:&lt;/strong&gt; Several sections, particularly the car display on the homepage, did not adjust well to smaller screens. The scroll container did not resize properly, leading to a disjointed user experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues highlight a crucial area of improvement for Cars.ng. In today’s mobile-first world, ensuring that the platform is fully responsive on all devices is not only a best practice but also essential for user retention and satisfaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Recommendations&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Based on my testing, here are my actionable recommendations for Cars.ng:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improve Mobile Responsiveness Across the Website:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Redesign layout elements using responsive design techniques (e.g., CSS media queries) to ensure that images, text, and buttons scale appropriately on all devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clickable Contact Information:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update the contact elements to ensure they are interactive and properly linked to their respective actions (i.e., opening WhatsApp or initiating a call).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Optimize Image Quality:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Re-evaluate the image compression settings and source quality to ensure that car images are sharp and clear across all sections of the website.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhance Functionality of Interactive Elements:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Address the issues with filters and navigation to ensure that every interactive component performs its intended function without errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Conduct Regular Mobile Usability Testing:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement ongoing mobile testing as part of the development cycle to catch responsiveness issues early and maintain a consistent user experience. Test, Test, and Test Again.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;The exploratory testing of Cars.ng revealed several critical issues, with mobile responsiveness emerging as a key area needing attention. By addressing these issues, &lt;a href="https://cars.ng" rel="noopener noreferrer"&gt;Cars.ng&lt;/a&gt; can significantly enhance its user experience, particularly for users accessing the site via mobile devices. Improving the responsiveness, along with the overall functionality and image quality, will likely lead to increased user satisfaction and engagement.&lt;/p&gt;

&lt;p&gt;For a detailed view of all documented issues, please refer to my complete Excel report &lt;a href="https://docs.google.com/spreadsheets/d/1yjSXptuKwQbJgpsstiiVGRri_eBBxj54Mp-RLaSONdo/edit?gid=0#gid=0" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>producttest</category>
      <category>qa</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>My journey into Mobile Development.</title>
      <dc:creator>Aishat Agunbiade</dc:creator>
      <pubDate>Thu, 04 Jul 2024 15:43:44 +0000</pubDate>
      <link>https://dev.to/yeeshadev/my-journey-into-mobile-development-3f1d</link>
      <guid>https://dev.to/yeeshadev/my-journey-into-mobile-development-3f1d</guid>
      <description>&lt;p&gt;Starting mobile development seems too surreal because I’ve always admired learning how to create amazing applications that can be downloaded into our phones, but on the other hand, it seemed quite difficult in some corner of my mind and I couldn’t do it at all. Joining tech itself was surreal as ever since I was curious; that’s why I started learning web development anyway. The first app I ever built was a calculator. I remember saying “wow! this works…see? Just click it and you will get the result.” So happy and showing my siblings and friends. As my career moved forward in web development, I felt like starting something new so why not? Mobile Development since I already had some you experience using React.js.&lt;/p&gt;

&lt;p&gt;With that, began my journey in React Native and no regrets about it yet. In anticipation of this thrilling trip through HNG Internship for me shall come one day; let me give some insights about commonly used terms in the industry interchangeably applied though. Before that, let me introduce to you why I decided to start HNG in the first place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why HNG Internship&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being an aspiring mobile passionate developer, I am excited to be a part of the HNG Internship. The reason this particular program appeals to me is because of its comprehensive curriculum and hands-on approaches to learning, which would help lay a solid base in mobile development. The HNG Internship makes available the perfect platform that is needed in gaining practical experience and networking with peers in the industry. You can learn more details about this wonderful program from their official website and explore opportunities for hiring some talented developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comparing Mobile Development Platforms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Native Development&lt;br&gt;
iOS (Swift/Objective-C):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Performance: Native apps are written in a platform-specific language and hence are optimized a lot to provide a smoother user experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access to Device Features: Access to all the features of iOS devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consistent UI: Uses Apple's Human Interface Guidelines for a consistent and intuitive user interface.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cost and Time: Separate development for iOS and Android.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learning Curve: Swift and Objective-C have a steeper learning curve when compared to some other languages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Android (Java/Kotlin):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Flexibility: It has an extended number of options concerning customization and system integration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Large Community: Many developers are working over it with loads of resources and libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;High Performance: Very high performance since it allows native compilation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fragmentation: Development is tough due to many different types of devices and versions of OSes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It requires development and testing time, with large resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. React Native (Cross-Platform Development):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Code Reusability: This means the same code works for both iOS and Android. &lt;br&gt;
Large Community: The Community is large, and there are a lot of plugins and Libraries at disposal. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Live Reloading: It allows the developer to instantly view the change. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Performance: It's not as fast as native applications particularly where heavy tasks are concerned. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Native Modules: It requires sometimes to write custom Native modules.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Flutter:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pros: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Single Codebase: A single codebase for iOS and Android. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance: It provides near-native performance because Dart compiles endenga.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rich UI: It has an exhaustive set of widgets with a rich set of pre-designed UI components.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Large Size: App size may be larger compared to native apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learning Curve: Since many developers are not much familiar with Dart, it is a bit difficult to learn.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A good development platform and architectural pattern are important for the success of any mobile application. Since each of them has strengths and trade-offs, the choice would be majorly based on the needs of a project. I look forward with this journey at HNG Internship to immersively go through these technologies, make good mentorship, and contribute to some really innovative projects.&lt;/p&gt;

&lt;p&gt;If you are interested in joining or discussing the HNG Internship should check out their &lt;a href="https://hng.tech/internship"&gt;official website&lt;/a&gt;. They also have an option for premium where you get exclusive informations about the program, job opportunities, CV Reviews, Certificate after the internship and many more.To get the full details check &lt;a href="https://hng.tech/premium"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for joining me on this little walkthrough, and I look forward to sharing other insights and experiences while learning the ropes in this exciting field.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>hng</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>ReactJs vs VueJs: A Comparison Between Frontend Technologies.</title>
      <dc:creator>Aishat Agunbiade</dc:creator>
      <pubDate>Thu, 04 Jul 2024 15:38:24 +0000</pubDate>
      <link>https://dev.to/yeeshadev/reactjs-vs-vuejs-a-comparison-between-frontend-technologies-34pi</link>
      <guid>https://dev.to/yeeshadev/reactjs-vs-vuejs-a-comparison-between-frontend-technologies-34pi</guid>
      <description>&lt;p&gt;When starting a new project, one of the difficult questions frontend developers ask is “What framework should I use for this project”?&lt;/p&gt;

&lt;p&gt;When deciding which JavaScript framework to choose for an existing project, it usually refers to Angular vs. React vs. Vue. For this blog, we are going to focus on Vue and React and make a comparison between them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ReactJS?
&lt;/h2&gt;

&lt;p&gt;React is a free and open-source front-end JavaScript library for building component based user interfaces. It is maintained by Meta (formerly Facebook) and a community of individual developers. It can be used to develop single-page mobile applications or sever rendered application using NextJS(A React Framework).&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of ReactJS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Virtual DOM:&lt;/strong&gt; It uses a 'Virtual DOM' to optimize rendering. A lightweight in-memory copy of the real 'DOM' has to be maintained while updates are being made.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component-Based Architecture:&lt;/strong&gt; React enforces the development of reusable, modular components on which the apps are based to drive modularity and reusability of code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSX:&lt;/strong&gt; React introduces JSX, a syntax extension allowing one to directly write in a fusion of HTML and JavaScript, enhancing the developer experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unidirectional Data Flow:&lt;/strong&gt; React enforces a one-way data binding pattern supporting the integrity of data and also eases debugging.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Pros of ReactJS
&lt;/h2&gt;

&lt;p&gt;Performance is maximized by the Virtual DOM, especially in dynamic apps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Community and Ecosystem:&lt;/strong&gt; With a large community and great ecosystem, one will rarely be left with libraries, tools, or support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Any library or framework will go along with React; hence it enables the developer to structure their applications the way they want to.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons of ReactJS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Learning Curve:&lt;/strong&gt; JSX and unidirectional data flow can sometimes be a problem for freshers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boilerplate Code:&lt;/strong&gt; React sometimes demands more boilerplate code than other frameworks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Vue.js: The Progressive JavaScript Framework
&lt;/h2&gt;

&lt;p&gt;Vue.js is an advanced Javascript framework to build user interfaces developed by Evan You. It has been designed to be progressively adoptable, directly implying that you could use as much or little of Vue as you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Vue.js
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reactive Data Binding:&lt;/strong&gt; The Reactivity system of Vue automatically tracks all your dependencies and, in case of any change in data, it triggers DOM updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component-Based Architecture:&lt;/strong&gt; Vue, much like React, follows the approach that enables building powerful applications using serviceable, reusable components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single-File Components:&lt;/strong&gt; Vue allows its component to be written in a single file wherein HTML, CSS, and JavaScript are combined, thereby making development easier and more straightforward.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Directives:&lt;/strong&gt; Vue has picked a few of the commonly used ones out of the box. Vance already comes with a number of prebuilt directives such as &lt;code&gt;v-bind&lt;/code&gt;, &lt;code&gt;v-model&lt;/code&gt;, etc. These give very useful, effective ways to interact with the DOM.
5.&lt;strong&gt;API Styles:&lt;/strong&gt; Vue components can be written in two different API styles; Options API and Composition API. To learn more, visit &lt;a href="https://vuejs.org/guide/introduction.html"&gt;official documentation&lt;/a&gt;.
Other advantages are;
• Easy to learn: This particular framework has rather simple and intuitive syntax. It is most favorable for beginners.
• Flexibility: Vue can be used both for small and big projects and in applications ranging from small to large, with ease of learning.
• Well-documented: On this front, the &lt;a href="https://vuejs.org/guide/introduction.html"&gt;official documentation&lt;/a&gt; in this regard seems to be faultless. It is clearly structured and full of material that developers might refer to in the course of building with it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cons of Vue.js
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smaller Community:&lt;/strong&gt; Vue is diminished when contrasted with the network of people behind React, which can constrain the quantity of third-party libraries and different advancement assets accessible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Difficulties with mobile support:&lt;/strong&gt; Older versions of iOS and Safari browsers can cause certain problems with Vue.js applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comparing ReactJS vs. Vue.js
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;ReactJS&lt;/th&gt;
&lt;th&gt;Vue.js&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Learning Curve&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;More difficult because of JSX and one-way data flow&lt;/td&gt;
&lt;td&gt;Easier with a more intuitive syntax&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High, thanks to the virtual DOM&lt;/td&gt;
&lt;td&gt;High, with efficient reactivity system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Community and Ecosystem&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Large and matured&lt;/td&gt;
&lt;td&gt;Growing but smaller than React's&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Very flexible, can use with other libraries&lt;/td&gt;
&lt;td&gt;Flexible, suitable for different scales of projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Component Architecture&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Strongly focuses on reusable components&lt;/td&gt;
&lt;td&gt;Focuses on single-file components&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Looking Ahead with HNG Internship
&lt;/h2&gt;

&lt;p&gt;HNG Internship mainly deals with ReactJS. This comes with an opportunity to master one of the powerful frontend libraries. I look forward with excitement to learning how to hone my skill in ReactJS by using its component-based architecture for building dynamic and efficient web applications. The practical experience and contributions to collaborative projects will help build my understanding and proficiency in ReactJS.&lt;/p&gt;

&lt;p&gt;This is the link to their &lt;br&gt;
&lt;a href="https://hng.tech/internship"&gt;official website&lt;/a&gt;, for anyone who wants a detailed information on the HNG Internship. A number of opportunities are also available on their &lt;a href="https://hng.tech/premium"&gt;premium services&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Learning ReactJS as part of the internship will be impactful in honing my technical skills; besides, it will also provide strong backing for subsequent projects. I'm so excited to start this learning journey, which is full of potential for making a difference with web applications using ReactJS.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Top 30 JavaScript Snippets To Boost Your Productivity</title>
      <dc:creator>Aishat Agunbiade</dc:creator>
      <pubDate>Sat, 22 Jul 2023 17:26:12 +0000</pubDate>
      <link>https://dev.to/yeeshadev/top-30-javascript-snippets-to-boost-your-productivity-3560</link>
      <guid>https://dev.to/yeeshadev/top-30-javascript-snippets-to-boost-your-productivity-3560</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;JavaScript is a versatile and powerful programming language that plays a critical role in web development. Whether you're a seasoned developer or just starting with JavaScript, using code snippets can significantly enhance your productivity and improve code readability. In this blog, we'll explore the top 30 JavaScript snippets that can make your coding life easier and more efficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Convert String to number&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 number = parseInt(string)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Get the Current Date in YYYY-MM-DD Format:&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 getCurrentDate = () =&amp;gt; new Date().toISOString().slice(0, 10);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Remove Duplicates from an Array&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 removeDuplicates = (arr) =&amp;gt; [...new Set(arr)];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Find the Largest Number in an Array:&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 findLargestNumber = (num) =&amp;gt; Math.max(...num)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Check if Element Exists in an Array:&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 elementExists =(arr,elem) =&amp;gt; arr.includes(elem)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. Generate a Random Number within a Range:&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 getRandomNumber = (min, max) =&amp;gt; Math.floor(Math.random() * (max - min + 1)) + min;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. Truncate a String:&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 truncateString = (str, maxLength) =&amp;gt; str.length &amp;gt; maxLength ? str.slice(0, maxLength) + '...' : str;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;8. Convert String to CamelCase:&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 toCamelCase = (str) =&amp;gt; str.replace(/[-_](.)/g, (_, c) =&amp;gt; c.toUpperCase());

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;9. Merge Two Arrays:&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 mergedArray = (arr1, arr2) =&amp;gt; [...arr1, ...arr2];
or
const mergedArray = (arr1, arr2) =&amp;gt; arr1.concat(arr2);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;10. Check if an Object is Empty:&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 isEmptyObject = (obj) =&amp;gt; Object.keys(obj).length === 0;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;11. Sort Array In Ascending Order:&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 sortedArray = (arr) =&amp;gt; arr.sort((a, b) =&amp;gt; a - b);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;12. Reverse an Array:&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 reversedArray = (arr) =&amp;gt; arr.reverse();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;13. Find the Difference Between Two Dates:&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 dateDifferenceInDays = (date1, date2) =&amp;gt; Math.abs(date2 - date1) / (1000 * 60 * 60 * 24);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;14. Calculate the Sum of an Array&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 sumArray = (arr) =&amp;gt; arr.reduce((total, current) =&amp;gt; total + current, 0);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;15. Format Number with Commas:&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 formatNumberWithCommas = (num) =&amp;gt; num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;16. Validate Email Address:&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 isValidEmail = (email) =&amp;gt; /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;17. Check if a String is Palindrome:&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 isPalindrome = (str) =&amp;gt; str === str.split('').reverse().join('');

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;18. Convert Degrees to Radians:&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 degreesToRadians = (degrees) =&amp;gt; degrees * (Math.PI / 180);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;19. Shuffle an Array:&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 shuffleArray = (arr) =&amp;gt; arr.sort(() =&amp;gt; Math.random() - 0.5);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;20. Convert Object to Array:&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 array =(obj) =&amp;gt; object.entries(obj);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;21. Check if an Object is Empty:&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 isEmptyObject = (obj) =&amp;gt; Object.keys(obj).length === 0;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;22. Capitalize the First Letter of a String:&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 capitalizeFirstLetter = (str) =&amp;gt; str.charAt(0).toUpperCase() + str.slice(1);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;23. Check if a Number is Even or Odd:&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 isEven = (num) =&amp;gt; num % 2 === 0;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;24.  Convert Object to JSON String:&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 objectToJson = (obj) =&amp;gt; JSON.stringify(obj);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;25. Check if a Value is an Array:&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 isArray = (value) =&amp;gt; Array.isArray(value);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;26. Find the Index of the First Occurrence of an Element in an Array:&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 findIndexOfElement = (arr, element) =&amp;gt; arr.indexOf(element);

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;27. Get current URL:&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 currentUrl = window.location.href;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;28. Set a Cookie&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;document.cookie = "name=value; expires=date; path=path; domain=domain; secure";

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;29. Copy text to Clipboard:&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 copyText = (text) =&amp;gt; navigator.clipboard.writeText(text);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;30. Check if the User is Scrolling Up or Down:&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;let lastScrollTop = 0;
window.addEventListener('scroll', () =&amp;gt; {
const scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
const direction = scrollPosition &amp;gt; lastScrollTop ? 'down' : 'up';
lastScrollTop = scrollPosition &amp;lt;= 0 ? 0 : st;
});

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

&lt;/div&gt;



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

&lt;p&gt;In this blog, we've explored 30 JavaScript snippets that cover various tasks like array manipulation, string operations, date calculations, and more. By using these snippets, you can save time, write cleaner code, and boost your productivity as a JavaScript developer. Happy Coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
