<?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: Bikram Singh Patel</title>
    <description>The latest articles on DEV Community by Bikram Singh Patel (@bkrmsp).</description>
    <link>https://dev.to/bkrmsp</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%2F356192%2F8b7b9a27-38d1-4499-93bf-3596d6d77d68.png</url>
      <title>DEV Community: Bikram Singh Patel</title>
      <link>https://dev.to/bkrmsp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bkrmsp"/>
    <language>en</language>
    <item>
      <title>Web application features</title>
      <dc:creator>Bikram Singh Patel</dc:creator>
      <pubDate>Wed, 09 Jun 2021 16:38:34 +0000</pubDate>
      <link>https://dev.to/bkrmsp/web-application-features-1261</link>
      <guid>https://dev.to/bkrmsp/web-application-features-1261</guid>
      <description>&lt;p&gt;This post is meant for beginners, who are building their career in Web (UI/Front-end) development. &lt;/p&gt;

&lt;p&gt;As developers, we not only think about implementing the functional flows but also the unsaid/unasked features that are expected from a web application. These features are listed below as:&lt;/p&gt;

&lt;h3&gt;
  
  
  Web accessibility
&lt;/h3&gt;

&lt;p&gt;Always build an application with the motto of &lt;strong&gt;serve to all&lt;/strong&gt;. That means your application should not just perfectly work on desktops, phones, tablets but also on devices like &lt;strong&gt;screen readers&lt;/strong&gt; etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Good User experience
&lt;/h3&gt;

&lt;p&gt;User experience or UX covers multiple aspects such as &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Easy to use&lt;/strong&gt; flows.&lt;/li&gt;
&lt;li&gt;Color theme that is soothing to eyes.&lt;/li&gt;
&lt;li&gt;Error messages that are meaningful and that suggests alternative routes instead of blocking the users.&lt;/li&gt;
&lt;li&gt;Rule based Typography that highlights headings etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;Security is a critical feature and to be concerned about. Few of the security measures to be followed are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cookies must be &lt;code&gt;secure&lt;/code&gt; and &lt;code&gt;httponly&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Sanitization of HTML to prevent XSS/CSS attacks.&lt;/li&gt;
&lt;li&gt;Add content security policies (CSP) to prevent XSS/CSS and other attacks.&lt;/li&gt;
&lt;li&gt;Pass unique token/guid in request headers to make every request unique in order to avoid CSRF/XSRF attacks.&lt;/li&gt;
&lt;li&gt;Use SSL certificates to host app over https and avoid using http for securing your network requests.&lt;/li&gt;
&lt;li&gt;Avoid passing confidential data over query params. &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Performance
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Minify/Obfuscate your Javascript/CSS Bundles using bundlers like webpack, rollup etc. I prefer Webpack.&lt;/li&gt;
&lt;li&gt;Use file compressors like gzip, brotli etc.&lt;/li&gt;
&lt;li&gt;Use CDN based libraries instead of packing these libraries with your bundle.&lt;/li&gt;
&lt;li&gt;Avoid using Loops as much as possible where time complexity is not optimal.&lt;/li&gt;
&lt;li&gt;Make code reusable wherever applicable.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Responsiveness
&lt;/h3&gt;

&lt;p&gt;This is expected since the applications are mostly used in small to medium screen range devices. Use &lt;code&gt;display: flex&lt;/code&gt; (easy &amp;amp; effective) and media queries (&lt;code&gt;@media&lt;/code&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Progressive Web App
&lt;/h3&gt;

&lt;p&gt;A good and in-demand feature these days. This feature allows the web app to give a native-app experience to the user.&lt;/p&gt;

</description>
      <category>html</category>
      <category>javascript</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>React Routers! Which one should you choose?</title>
      <dc:creator>Bikram Singh Patel</dc:creator>
      <pubDate>Thu, 20 Aug 2020 09:15:13 +0000</pubDate>
      <link>https://dev.to/bkrmsp/react-routers-which-one-should-you-choose-4fm7</link>
      <guid>https://dev.to/bkrmsp/react-routers-which-one-should-you-choose-4fm7</guid>
      <description>&lt;p&gt;While working with React routers (&lt;strong&gt;Router&lt;/strong&gt;, &lt;strong&gt;BrowserRouter&lt;/strong&gt;, &lt;strong&gt;HashRouter&lt;/strong&gt;, &lt;strong&gt;MemoryRouter&lt;/strong&gt;), you ask yourself this question, which one should you select for your application.&lt;/p&gt;

&lt;p&gt;I have a good share of experience with routers and i follow below simple rules to choose:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you want to implement scenario based navigation on button click, then go with programmatic navigation by writing &lt;br&gt;
&lt;code&gt;history.push('/path')&lt;/code&gt;. For this purpose, &lt;strong&gt;Router&lt;/strong&gt; tag is suitable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you don't have programmatic navigation and want URL to change in Browser's URL bar/Search bar then go with &lt;strong&gt;BrowserRouter&lt;/strong&gt;, for ex- &lt;em&gt;abc.com/home&lt;/em&gt;, &lt;em&gt;abc.com/dashboard&lt;/em&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you want the URL to be static and not change then go with &lt;strong&gt;MemoryRouter&lt;/strong&gt;. This way, you are not exposing URLs to outside world. Plus, &lt;strong&gt;MemoryRouter&lt;/strong&gt; is meant for non-browser environments like Web apps that open in Mobile Webview.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Probably, you have observed that many websites' URL have &lt;strong&gt;#&lt;/strong&gt; after domain name and then the remaining URL. The reason is that if you are working with a static application and don't want your app to make a server side request for navigation and navigating within the HTML content. Well, if you want to implement the same, use a &lt;strong&gt;HashRouter&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>react</category>
    </item>
  </channel>
</rss>
