<?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: Kensy Josabeth Ayala</title>
    <description>The latest articles on DEV Community by Kensy Josabeth Ayala (@kjosaayala).</description>
    <link>https://dev.to/kjosaayala</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%2F623631%2F14995cb6-dd68-485f-ba1e-1407fb1e9310.jpg</url>
      <title>DEV Community: Kensy Josabeth Ayala</title>
      <link>https://dev.to/kjosaayala</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kjosaayala"/>
    <language>en</language>
    <item>
      <title>Cómo obtener el fingerprint (SHA1) para usar servicios de Google en una app de Unity</title>
      <dc:creator>Kensy Josabeth Ayala</dc:creator>
      <pubDate>Thu, 30 Nov 2023 04:16:35 +0000</pubDate>
      <link>https://dev.to/kjosaayala/como-obtener-el-fingerprint-sha1-para-usar-firebase-auth-en-unity-para-aplicaciones-android-7gc</link>
      <guid>https://dev.to/kjosaayala/como-obtener-el-fingerprint-sha1-para-usar-firebase-auth-en-unity-para-aplicaciones-android-7gc</guid>
      <description>&lt;p&gt;La primera vez que tuve que hacer este paso, fue un día caótico, y pensando en eso, es que hago este post para que te sea de utilidad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerrequisitos
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Tener instalado Unity&lt;/li&gt;
&lt;li&gt;Tener cuenta de Firebase&lt;/li&gt;
&lt;li&gt;Tener instalado el JDK&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para este tutorial requiero que tengas un nivel de experiencia al menos básico para poder entender las opciones de Unity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Crear la keystore de tu proyecto de Unity
&lt;/h3&gt;

&lt;p&gt;Es importante para una aplicación de Android generar el SHA1 ya que se convierte en su identificador único para los servicios de Google.&lt;/p&gt;

&lt;p&gt;Como se muestra en las siguientes imágenes, procede a crear la keystore de tu proyecto:&lt;/p&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%2Fn6u0lm0v6rtx9hhh9h1x.png" 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%2Fn6u0lm0v6rtx9hhh9h1x.png" alt="Image description" width="390" height="480"&gt;&lt;/a&gt;&lt;/p&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%2Fij47z1mvzyjg7o8z9tuk.png" 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%2Fij47z1mvzyjg7o8z9tuk.png" alt="Image description" width="800" height="761"&gt;&lt;/a&gt;&lt;/p&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%2F0qgb5lip08qh5qelw8wa.png" 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%2F0qgb5lip08qh5qelw8wa.png" alt="Image description" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&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%2F3ilkp45tk95s1xu9sd0e.png" 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%2F3ilkp45tk95s1xu9sd0e.png" alt="Image description" width="637" height="625"&gt;&lt;/a&gt;&lt;/p&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%2Ffhhfq9x7zwcndrpsvnyi.png" 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%2Ffhhfq9x7zwcndrpsvnyi.png" alt="Image description" width="643" height="628"&gt;&lt;/a&gt;&lt;/p&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%2F34abh8h2yhe7mns9idub.png" 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%2F34abh8h2yhe7mns9idub.png" alt="Image description" width="635" height="623"&gt;&lt;/a&gt;&lt;/p&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%2F686di18uvxf49k41prmp.png" 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%2F686di18uvxf49k41prmp.png" alt="Image description" width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A generar el fingerprint
&lt;/h3&gt;

&lt;p&gt;Para este paso tenemos que ir a la ubicación del JDK de la versión de Unity instalada en nuestra PC, por ejemplo:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;C:\Program Files\Unity\Hub\Editor\2021.3.8f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\jre\bin&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Das click en la casilla de la URL y escribes &lt;strong&gt;cmd&lt;/strong&gt; y aparecerá la ventana del símbolo del sistema:&lt;/p&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%2Fg4c5bw0i3omt3devfet1.png" 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%2Fg4c5bw0i3omt3devfet1.png" alt="Image description" width="800" height="233"&gt;&lt;/a&gt;&lt;/p&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%2Fdfte70fzy6o0c1q1dmb9.png" 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%2Fdfte70fzy6o0c1q1dmb9.png" alt="Image description" width="800" height="223"&gt;&lt;/a&gt;&lt;/p&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%2Fl8ys85p4ow6feeyio6yt.png" 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%2Fl8ys85p4ow6feeyio6yt.png" alt="Image description" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos a escribir la siguiente línea de código con el alias de nuestro keystore y la ubicación exacta en el proyecto:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;keytool -list -v -alias &lt;strong&gt;alias-de-tu-keystore&lt;/strong&gt; -keystore "C:\Users\tu-usuario\ubicacion-del-proyecto\ &lt;strong&gt;[nombre de tu keystore].keystore&lt;/strong&gt;"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Consulta la documentación de Google para Android Certificate: &lt;a href="https://developers.google.com/android/guides/client-auth" rel="noopener noreferrer"&gt;Authenticating Your Client&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al dar enter, te pedirá la clave que le pusiste a tu keystore en Unity, no se vera lo que escribes, deberás dar enter después de colocar la contraseña, y te deberá aparecer un detalle como este:&lt;/p&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%2F7lkwm7ovtz1ajvra16iu.png" 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%2F7lkwm7ovtz1ajvra16iu.png" alt="Image description" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahí está el SHA1 y solo debes copiarlo para donde lo requieras utilizar en la configuración de tu proyecto en Firebase.&lt;/p&gt;

&lt;p&gt;Eso es todo y espero que te haya sido de utilidad este post!!!&lt;/p&gt;

&lt;p&gt;Mis redes sociales:&lt;br&gt;
&lt;a href="https://x.com/kjosaayala" rel="noopener noreferrer"&gt;Twitter - X&lt;/a&gt; &lt;a href="https://www.linkedin.com/in/kensy-ayala/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>firebase</category>
      <category>android</category>
      <category>authentication</category>
    </item>
    <item>
      <title>Mis primeros pasos en React JS</title>
      <dc:creator>Kensy Josabeth Ayala</dc:creator>
      <pubDate>Fri, 24 Sep 2021 03:10:03 +0000</pubDate>
      <link>https://dev.to/kjosaayala/mis-primeros-pasos-en-react-js-2b9j</link>
      <guid>https://dev.to/kjosaayala/mis-primeros-pasos-en-react-js-2b9j</guid>
      <description>&lt;h2&gt;
  
  
  Introducción teórica, práctica realizada en la sesión en vivo de Google Developer Students UNAH HN
&lt;/h2&gt;

&lt;p&gt;Si quieres aprender react, aquí te dejo los primeros pasos para que te emociones y quieras desarrollar tus proyectos con esta librería.&lt;/p&gt;

&lt;h3&gt;
  
  
  Requisitos
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Conocer conceptos básicos de javascript&lt;/li&gt;
&lt;li&gt;Conocer un poco sobre HTML&lt;/li&gt;
&lt;li&gt;Un Editor de código de tu preferencia&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Documentación oficial y de ayuda
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://es.reactjs.org/" rel="noopener noreferrer"&gt;React - reactjs.org&lt;/a&gt;&lt;br&gt;
&lt;a href="https://create-react-app.dev/" rel="noopener noreferrer"&gt;Create React App&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Palabras clave
&lt;/h3&gt;

&lt;p&gt;DOM (Document Object Model), componentes, estado, render, props &lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es React?
&lt;/h2&gt;

&lt;p&gt;Es una librería de Javascript para construir interfaces de usuario. Para una mejor comprensión, react nos ayuda en el lado del &lt;strong&gt;frontend&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Características de React
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Declarativo&lt;/li&gt;
&lt;li&gt;Basado en componentes&lt;/li&gt;
&lt;li&gt;Es amigable de aprender&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  React es Declarativo
&lt;/h3&gt;

&lt;p&gt;Puedes crear SPA(Single Page Application), de forma sencilla, React se encargará de actualizar y renderizar de manera eficiente los componentes correctos cuando los datos tambien.&lt;/p&gt;

&lt;p&gt;En este punto es requerido entender sobre el estado de un componente en react, dependiendo de si usas un class component o un functional component, la renderización dependerá meramente de un cambio en el estado por lo que hará más óptima y ligera nuestra aplicación. React tiene un ciclo de vida: Montaje, Actualización y Desmontaje (No vamos a profundizar pero daremos una breve explicación para tus primeros pasos).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Montaje: Se ejecuta una sola vez cuando accedes a un componente, esto es mejor conocido como el constructor de una clase.&lt;/li&gt;
&lt;li&gt;Actualización: Se ejecuta cuando un cambio en el estado del componente por medio de las &lt;strong&gt;props&lt;/strong&gt; o eventos (una variable paso de estar &lt;strong&gt;""&lt;/strong&gt; a &lt;strong&gt;"Hola Mundo"&lt;/strong&gt;, se presionó un botón que desencadena una serie de eventos que afecta la interfaz como cambiar un color o desaparecer algun control).&lt;/li&gt;
&lt;li&gt;Desmontaje: Sucede una vez te sales del componente, en otras palabras, destrucción del componente en el DOM de la aplicación.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Basado en componentes
&lt;/h3&gt;

&lt;p&gt;Imaginemos un carro, el que más te guste. Ahora veamos el carro como un todo, pero para ser un carro necesita sus componentes (ruedas, puertas, asientos, motor, caja de cambios).&lt;/p&gt;

&lt;p&gt;Ahora veamos uno de los componentes del carro que se repite, &lt;strong&gt;"ruedas"&lt;/strong&gt;. Estas tienen que ser iguales, mismo tamaño de rines, misma llanta, sino el carro no se movería de forma uniforme al conducir.&lt;/p&gt;

&lt;p&gt;React nos permite reutilizar mucho los componentes aquellos que los requiera otra pantalla dentro de la misma aplicación (tenemos un componente rueda que lo tengo en la pantalla X, pero resulta que me funciona bien en la pantalla Y, y tambien en la pantalla Z).&lt;/p&gt;

&lt;h3&gt;
  
  
  React es amigable de aprender (Vamos a programar!!!)
&lt;/h3&gt;

&lt;p&gt;Haremos una pequeña demo, aplicando los conceptos vistos.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Selecciona una ruta y abre la consola para generar los archivos correspondientes a la aplicación de react.&lt;/li&gt;
&lt;li&gt;En la consola coloca el siguiente comando, presionando enter(En mi caso uso npm):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app primeros-pasos-react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;esperaremos al que proceso termine (Odio esta parte, porque a veces tarda mucho, dependera de los recursos de tu laptop y la velocidad de tu internet).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Abres el proyecto con VS Code y ya podemos empezar a codear con react.&lt;/li&gt;
&lt;/ol&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%2F5h1eytolbfdlzen4rw44.PNG" 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%2F5h1eytolbfdlzen4rw44.PNG" alt="Img1" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Aquí te dejo el repositorio &lt;a href="https://github.com/JosaAyala/pininos-react" rel="noopener noreferrer"&gt;pininos-react&lt;/a&gt;, y mira la charla en la comunidad de &lt;a href="https://www.youtube.com/watch?v=MXJW7rVrOec" rel="noopener noreferrer"&gt;Google Developer Students UNAH VS&lt;/a&gt; para la parte del desarrollo.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Saludos!!!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Styled Component - Reactjs (ES)</title>
      <dc:creator>Kensy Josabeth Ayala</dc:creator>
      <pubDate>Wed, 21 Jul 2021 02:50:17 +0000</pubDate>
      <link>https://dev.to/kjosaayala/styled-component-reactjs-es-1302</link>
      <guid>https://dev.to/kjosaayala/styled-component-reactjs-es-1302</guid>
      <description>&lt;h3&gt;
  
  
  Documentación oficial
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://styled-components.com/" rel="noopener noreferrer"&gt;Styled Components&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerrequisitos&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conocimientos básicos en Reactjs&lt;/li&gt;
&lt;li&gt;Conocimientos en CSS&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conceptos Básicos
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es styled-components?&lt;/strong&gt;&lt;br&gt;
Es una librería que nos permite estilizar nuestros componentes de React.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué se puede hacer con styled-components?&lt;/strong&gt;&lt;br&gt;
Se puede estilizar cualquier componente de react, aplicar animaciones, estilizado avanzado, paso de propiedades para condicionar estilos, agregar configuración de media queries para las distintas resoluciones y más.&lt;/p&gt;
&lt;h3&gt;
  
  
  Contenido
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Crear una aplicación de reactjs&lt;/li&gt;
&lt;li&gt;Agregar la liberia styled-component&lt;/li&gt;
&lt;li&gt;Crear un componente de vista para el ejemplo&lt;/li&gt;
&lt;li&gt;Crear el StyledComponent&lt;/li&gt;
&lt;li&gt;Agregar el StyledComponent al componente de vista&lt;/li&gt;
&lt;li&gt;Estilicemos con styled-components&lt;/li&gt;
&lt;li&gt;Conclusiones&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Empecemos&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  1. Crear una aplicación de reactjs
&lt;/h4&gt;

&lt;p&gt;Documentación para crear una aplicación reactjs&lt;br&gt;
&lt;a href="https://create-react-app.dev/docs/getting-started" rel="noopener noreferrer"&gt;create-react-app&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app example-styled-component-react 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Agregar la libería styled-component
&lt;/h4&gt;

&lt;p&gt;Una vez finalizada la creación del proyecto de react, procedemos a agregar la librería de styled-component por medio de la consola con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --save styled-components
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Crear un componente de vista para el ejemplo
&lt;/h4&gt;

&lt;p&gt;En este paso puedes hacer lo siguiente:&lt;br&gt;
    a. Crear un nuevo componente para trabajar en una nueva vista&lt;br&gt;
    b. Modificar directamente el AppComponent principal&lt;/p&gt;

&lt;p&gt;En mi caso, prefiero crear un nuevo componente, y dejar el AppComponent solo para agregar configuraciones especiales que tendría nuestra aplicación (Importar el componente inicial que vería el usuario, configuración de ruteo, etc.).&lt;/p&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%2Fsqka941wupvrblgoo7z3.PNG" 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%2Fsqka941wupvrblgoo7z3.PNG" alt="Creación de componente" width="356" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agregamos el contenido de código básico para importarlo en el AppComponent&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from "react";

const MainScreenComponent = (props) =&amp;gt; {
  return &amp;lt;div&amp;gt;Hola Mundo!!!!&amp;lt;/div&amp;gt;;
};

export default MainScreenComponent;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quitamos el contenido interno en el div principal para agregar nuestro componente.&lt;/p&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%2F55wqsx2qk60nw6evkb5q.PNG" 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%2F55wqsx2qk60nw6evkb5q.PNG" alt="Initial App Component" width="597" height="485"&gt;&lt;/a&gt;&lt;/p&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%2Fyv0fefvpeqyikazsgrjd.PNG" 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%2Fyv0fefvpeqyikazsgrjd.PNG" alt="Imported MainComponent" width="603" height="357"&gt;&lt;/a&gt;&lt;/p&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%2Fzj7bi5p1ajbo26n3gu2t.PNG" 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%2Fzj7bi5p1ajbo26n3gu2t.PNG" alt="Hello World" width="748" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Crear el StyledComponent
&lt;/h4&gt;

&lt;p&gt;Vamos a agregar un nuevo archivo con la misma extensión de nuestro componente &lt;strong&gt;(.jsx ó .js)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Lo nombraremos como &lt;strong&gt;StyledMainScreenComponent.jsx&lt;/strong&gt;&lt;/p&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%2Fptg8t02phnjii51w6oa9.PNG" 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%2Fptg8t02phnjii51w6oa9.PNG" alt="Created Styled Component" width="443" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agregaremos la configuración básica que tiene un styled-component, en este caso es configurando un div en donde está contenido normalmente el código HTML. Se importa el paquete correspondiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import styled from "styled-components";

export const StyledMainScreenComponent = styled.div``;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Agregar el StyledComponent al componente de vista
&lt;/h4&gt;

&lt;p&gt;Para agregar el StyledComponent a nuestro componente, lo hacemos por medio de un tag como que fuera una etiqueta HTML, se debe importar también a nuestro componente padre, en este caso &lt;strong&gt;MainScreenComponent&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;import { StyledMainScreenComponent } from "./StyledMainScreenComponent";

const MainScreenComponent = (props) =&amp;gt; {
  return &amp;lt;StyledMainScreenComponent&amp;gt;Hola Mundo!!!!&amp;lt;/StyledMainScreenComponent&amp;gt;;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  6. Estilicemos con styled-components
&lt;/h4&gt;

&lt;p&gt;Como primer paso, vamos a agregar una estilizacion de márgenes a nuestro componente y le pondremos la estilización de flexbox para que todos los componente se vayan alineando por fila dentro de un container principal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const StyledMainScreenComponent = styled.div`
  width: 90%;
  margin: auto;
  padding-top: 20px;

  .ContainerDefault {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    row-gap: 10px;
  }
`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cada uno de los elementos contenedores que declares deben estar interno en un className.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;StyledMainScreenComponent&amp;gt;
      &amp;lt;div className="ContainerDefault"&amp;gt;Hola Mundo!!!!&amp;lt;/div&amp;gt;
    &amp;lt;/StyledMainScreenComponent&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fkc434jcxn7jfpm4itjco.PNG" 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%2Fkc434jcxn7jfpm4itjco.PNG" alt="Applied Styled" width="741" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora vamos a agregar estilos más personalizados para que estos se puedan integrar a cualquier componente en caso que se puedan reutilizar, ya que react se basa mucho en aprovechar los componentes para ser reutilizados.&lt;/p&gt;

&lt;p&gt;Crearemos un styled para un título con el elemento label, uno para un botón de tipo cancel, y uno de tipo success.&lt;/p&gt;

&lt;p&gt;Como lo hicimos inicialmente, se agregará un nuevo archivo de tipo &lt;strong&gt;.jsx&lt;/strong&gt; y le agregaremos lo siguiente, en cada archivo:&lt;/p&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%2Fy83qs4hmfdshtslisiz6.PNG" 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%2Fy83qs4hmfdshtslisiz6.PNG" alt="Common styled" width="381" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TitleStyled.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import styled from "styled-components";

export const TitleStyled = styled.label``;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CancelButtonStyled.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import styled from "styled-components";

export const CancelButtonStyled = styled.button``;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SuccessStyled.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import styled from "styled-components";

export const SuccessButtonStyled = styled.button``;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Con el TitleStyled, le agregaremos un font-size correspondiente a un título, un weight para ponerlo en negrita y un color por defecto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const TitleStyled = styled.label`
  font-size: 18pt;
  font-weight: 600;
  color: black;
  padding-top: 5px;
  padding-top: 5px;
`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lo importamos en nuestro componente padre con el que estemos trabajando y lo agregamos con su tag correspondiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;StyledMainScreenComponent&amp;gt;
      &amp;lt;div className="ContainerDefault"&amp;gt;
        &amp;lt;TitleStyled&amp;gt;Hola Mundo!!!!&amp;lt;/TitleStyled&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/StyledMainScreenComponent&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado:&lt;br&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%2Fwxec9gjjbzbyiv60z4wp.PNG" 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%2Fwxec9gjjbzbyiv60z4wp.PNG" alt="Applied Title Styled" width="502" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;¿Y si queremos otro color u otro tamaño de letra?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Es aquí, en donde styled-component nos provee poder condicionar estilos a través de propiedades.&lt;/p&gt;

&lt;p&gt;Vamos a mandarle la propiedad colorTitle y la fontSizeTitle desde el componente padre.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;StyledMainScreenComponent&amp;gt;
      &amp;lt;div className="ContainerDefault"&amp;gt;
        &amp;lt;TitleStyled colorTitle="#004e8c" fontSizeTitle="30pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;TitleStyled colorTitle="#881798" fontSizeTitle="25pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;TitleStyled colorTitle="#00ad56" fontSizeTitle="20pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;TitleStyled colorTitle="#ffaa44" fontSizeTitle="16pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/StyledMainScreenComponent&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En nuestro TitleStyled.jsx agregaremos lo siguiente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const TitleStyled = styled.label`
  font-size: ${(props) =&amp;gt; (props.fontSizeTitle ? props.fontSizeTitle : "18pt")};
  font-weight: 600;
  color: ${(props) =&amp;gt; (props.colorTitle ? props.colorTitle : 
"black")};
  padding-top: 5px;
  padding-top: 5px;
`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado:&lt;br&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%2Fj4dbvgyndn3k7cmwawln.PNG" 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%2Fj4dbvgyndn3k7cmwawln.PNG" alt="Props Title Styled" width="494" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora agregaremos los estilos para los botones cancel y success, por defecto un success es color verde y el cancel lo pondremos rojo, agregaremos en nuestros styled las siguientes líneas:&lt;/p&gt;

&lt;p&gt;CancelButtonStyled&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const CancelButtonStyled = styled.button`
  background: #d13438;
  width: min-content;
  padding: 10px 10px 10px 10px;
  border: none;
  border-radius: 6px;
  font-size: 10pt;
  text-align: center;
  color: white;

  :hover {
    color: #c8c6c4;
    border: #750b1c 1px solid;
  }
`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SuccessButtonStyled&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const SuccessButtonStyled = styled.button`
  background: #00ad56;
  width: min-content;
  padding: 10px 10px 10px 10px;
  border: none;
  border-radius: 6px;
  font-size: 10pt;
  text-align: center;
  color: white;

  :hover {
    color: #c8c6c4;
    border: #0b6a0b 1px solid;
  }
`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Los importamos en nuestro componente padre:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;StyledMainScreenComponent&amp;gt;
      &amp;lt;div className="ContainerDefault"&amp;gt;
        &amp;lt;TitleStyled colorTitle="#004e8c" fontSizeTitle="30pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;TitleStyled colorTitle="#881798" fontSizeTitle="25pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;TitleStyled colorTitle="#00ad56" fontSizeTitle="20pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;TitleStyled colorTitle="#ffaa44" fontSizeTitle="16pt"&amp;gt;
          Hola Mundo!!!!
        &amp;lt;/TitleStyled&amp;gt;
        &amp;lt;CancelButtonStyled&amp;gt;Cancel&amp;lt;/CancelButtonStyled&amp;gt;
        &amp;lt;SuccessButtonStyled&amp;gt;Success&amp;lt;/SuccessButtonStyled&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/StyledMainScreenComponent&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado&lt;br&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%2Fhie5b4xvlukpusn7zj83.PNG" 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%2Fhie5b4xvlukpusn7zj83.PNG" alt="Finished result" width="501" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  7. Conclusiones
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Styled-component es más intuituvo para poder jerarquizar nuestros estilos en un componente.&lt;/li&gt;
&lt;li&gt;Es fácil de aprender a usar.&lt;/li&gt;
&lt;li&gt;Nos permite armar nuestros propios estilos para evitar el uso de múltiples librerías gráficas.&lt;/li&gt;
&lt;li&gt;Practicas tus habilidades en CSS.&lt;/li&gt;
&lt;/ol&gt;

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