<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/asayer/best-of/2022/05" -->

---
title: Best asayer posts — May 2022 | daily.dev
description: The most upvoted asayer posts from May 2022, curated by the daily.dev community.
canonical: https://daily.dev/sources/asayer/best-of/2022/05
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/asayer/best-of/2022/05
og:type: website
og:site_name: daily.dev
og:title: Best asayer posts — May 2022 | daily.dev
og:description: The most upvoted asayer posts from May 2022, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of asayer — May 2022

1. 1  
[](https://daily.dev/posts/building-a-mobile-app-using-html-css-and-javascript-pzlivqz4c "Building a Mobile App using HTML, CSS, and JavaScript")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 4y  
Building a Mobile App using HTML, CSS, and JavaScript  
In this article, we will learn how to leverage the power of HTML, CSS, and Javascript to build a simple mobile app. We will not be using frameworks like Ionic or React Native. This tutorial focuses on showing how a basic web app can be made to feel and behave like a native mobile application that can be installed and run on mobile devices.  
80  
5
2. 2  
[](https://daily.dev/posts/authentication-in-react-18-using-firebase-v9-71kkshdg5 "Authentication in React 18 using Firebase v9")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 4y  
Authentication in React 18 using Firebase v9  
In this tutorial, we will implement an authentication flow in React 18 using Firebase v9 Web SDK. We’ll enhance a starter React application to practice the following security concepts: Adding user login and logout (using email/password and with Google), Retrieving user information, using the Context API for managing the Auth state, and Protecting application routes from unauthorized users using React Router v6.  
47  
3
3. 3  
[](https://daily.dev/posts/usetransition-vs-usedeferredvalue-in-react-18-m9ao12rrx "UseTransition() Vs UseDeferredValue() In React 18")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 4y  
UseTransition() Vs UseDeferredValue() In React 18  
React 18 has introduced a key new concept known as “concurrency” Concurrency involves the simultaneous execution of multiple state updates. Along with concurrency, there are two new hooks introduced by React 18 known as the UseTransition() and the UseDeferredValue() Hooks both help with de-prioritizing state updates, but the question is when should they be used?  
37  
2
4. 4  
[](https://daily.dev/posts/improving-code-quality-in-typescript-with-compiler-options-fi2x1m3hg "Improving code quality in Typescript with compiler options")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 4y  
Improving code quality in Typescript with compiler options  
Typescript is a programming language developed by Microsoft to bring about security in terms of strict type-checking and type safety. It is a superset of Javascript that also compiles to Javascript. TypeScript provides several compiler options that change the way it operates. These options have various important uses, like removing comments or adding a base URL for resolving module names. In this article, we will look at options for improving code quality by appropriately setting some options.  
34  
1
5. 5  
[](https://daily.dev/posts/building-command-line-apps-using-react-ink-6jd77aatw "Building Command-Line Apps Using React Ink")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 4y  
Building Command-Line Apps Using React Ink  
Command Line Apps (CLIs) are programs you can interact with through your terminal. Modern CLIs are already replacing some GUIs (graphical user interfaces) In this article, you will learn how to build and implement command-line apps using React Ink. You should have Node.Js installed on your device to follow this article.  
33  
2
6. 6  
[](https://daily.dev/posts/usereducer-is-a-better-option-than-usestate-0z3ivx06o "useReducer Is A Better Option Than useState")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 4y  
useReducer Is A Better Option Than useState  
The useReducer hook is a better option for managing complex states in React than the useState hook. This tutorial is beginner-friendly, and you need to have Node.js and React installed. Let’s create an app that can increment and decrement numbers using that hook.  
27  
2

[See all asayer archives](/sources/asayer/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/asayer/best-of/2022/05#page","url":"https://daily.dev/sources/asayer/best-of/2022/05","name":"Best asayer Posts — May 2022","description":"The most upvoted asayer posts from May 2022, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/asayer/best-of/2022/05#items","numberOfItems":6,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/building-a-mobile-app-using-html-css-and-javascript-pzlivqz4c","name":"Building a Mobile App using HTML, CSS, and JavaScript"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/authentication-in-react-18-using-firebase-v9-71kkshdg5","name":"Authentication in React 18 using Firebase v9"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/usetransition-vs-usedeferredvalue-in-react-18-m9ao12rrx","name":"UseTransition() Vs UseDeferredValue() In React 18"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/improving-code-quality-in-typescript-with-compiler-options-fi2x1m3hg","name":"Improving code quality in Typescript with compiler options"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/building-command-line-apps-using-react-ink-6jd77aatw","name":"Building Command-Line Apps Using React Ink"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/usereducer-is-a-better-option-than-usestate-0z3ivx06o","name":"useReducer Is A Better Option Than useState"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"asayer","item":"https://daily.dev/sources/asayer"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/asayer/best-of"},{"@type":"ListItem","position":5,"name":"May 2022"}]}]}
```

