<?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: Carlos Villegas</title>
    <description>The latest articles on DEV Community by Carlos Villegas (@cadavi33).</description>
    <link>https://dev.to/cadavi33</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%2F484000%2F5f891ec9-3979-41ab-b56c-6e77b3e9a4bd.jpg</url>
      <title>DEV Community: Carlos Villegas</title>
      <link>https://dev.to/cadavi33</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cadavi33"/>
    <language>en</language>
    <item>
      <title>entrevista</title>
      <dc:creator>Carlos Villegas</dc:creator>
      <pubDate>Wed, 10 Nov 2021 03:37:07 +0000</pubDate>
      <link>https://dev.to/cadavi33/entrevista-gki</link>
      <guid>https://dev.to/cadavi33/entrevista-gki</guid>
      <description>&lt;p&gt;Principio solid&lt;/p&gt;

&lt;p&gt;Assert&lt;br&gt;
Coverge&lt;br&gt;
Assert&lt;br&gt;
Front&lt;br&gt;
    Single page aplication&lt;br&gt;
    Estructura de una promesaasincrona o sincrona.&lt;br&gt;
    La promesa se puede ejecutar&lt;br&gt;
    Callback&lt;br&gt;
    Funcion anonima&lt;br&gt;
    Typescript&lt;br&gt;
        Decorador&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Angular.
    Modulo en angular
    Si quiero un componente en 2 modulos
        No andarlo al app.module
    End point.
        Una url consumida por un apo rest
        Microservicio que se comunican entre si

    Clase abstracta
    Data base fews

    String es nativo de java
    Herencia

    Java soporta la ultiherencia

    Infraestructra como cidgo

    Comandos git
    Comando para branch
    Git flow
    Product backlok
    Spring backlog

    Se extiende a 2 semanas
        Verificar, las entrevistas y seleccionar quien pasa y quien no pasa.

    COSAS QUE NECESITO APRENDER SI O SI
        Backend
            Lengujae, typescript, con nodejs
            Go
            Python

        Frontend
            Angular y react
            Migrar todo a reactJS
            Microfrontedn coo estrategias en el front

        Servicios en la nube
            Stack servless de AWS
            El mas conocido es lambda funtion, para el corazon de microservicios
        Marcos de trabjao
            Spotify framework
            Scrum

        Servicios de AWS, enfocados a servless
        Depende de la estrategia de la compaia que cada quien quiera seguir. 5 años aplicandola, linea base.

        Aprender sobre AWS, lineas generales, entender cmo funciona, servicios en la nube, esquema de servicios (azure, gcp)
        En gartner, es aws es mas antigua y es lider por la cantidad de servicios de ofrece.
        Lengujaes de programacion modernos y eficientes para la construccion de lambda ()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Go, python, nodeJs con typescript.&lt;br&gt;
[6/23, 11:26 AM] Tony Espe: como tal lo que hacemos infraestructura como código utilizamos serverless framework&lt;br&gt;
utilizamos programación reactiva (rxjs)&lt;br&gt;
en el back lo que se maneja es nodejs, manejamos typado estricto (typescript)&lt;br&gt;
y nos guiamos por la metodlogia TDD Test driven development que en resumen es realizar las pruebas antes del código&lt;br&gt;
lo que usamos de framework para realizar nuestras pruebas unitarias es mocha shinon chai&lt;br&gt;
eso por el lado del back por el front es react y de framework para las pruebas usamos jest&lt;br&gt;
también hay grupos que manejan android/ios swift4/php para las librerias e integraciones con ecommerce&lt;br&gt;
también hay otros grupos que manejan go&lt;br&gt;
a veces muy poco python para hacer uno que otro script&lt;br&gt;
y scala para los ETL&lt;br&gt;
hmm de ahí saber scrum no te haría daño seguramente si sabes es fácil entenderlo y git&lt;br&gt;
el 95% de nuestros servicios en la nube esta en aws y el 5% en gcp&lt;br&gt;
eso en general, hmmm de ahi te pueden hacer preguntas de lo que tienes en tu hoja de vida&lt;br&gt;
ah y bases de datos te pueden preguntar, no se si estan preguntado sobre SQL y NOSQL pero ahi revisale por si acaso&lt;br&gt;
Eso si revisate aws, java desde lo más básico&lt;br&gt;
Conceptos.... y todo lo que pongas en tu cv te pregunta&lt;br&gt;
Así q pondrás cosas q saben bien jajja&lt;br&gt;
Metodologia TDD, SCRUM, aws microservicios lambda&lt;br&gt;
Comandos git habidos y por haber&lt;br&gt;
Programación orientada a objetos .. sus 4 o 5 principios&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Configuración inicial de Ionic 6 y Android Studio (Arctic Fox)</title>
      <dc:creator>Carlos Villegas</dc:creator>
      <pubDate>Wed, 22 Sep 2021 02:06:00 +0000</pubDate>
      <link>https://dev.to/cadavi33/configuracion-inicial-de-ionic-6-y-android-studio-arctic-fox-16en</link>
      <guid>https://dev.to/cadavi33/configuracion-inicial-de-ionic-6-y-android-studio-arctic-fox-16en</guid>
      <description>&lt;p&gt;Para empezar con este articulo quisiera dar un concepto de lo que es Ionic:&lt;/p&gt;

&lt;h2&gt;
  
  
  Que es Ionic framework?
&lt;/h2&gt;

&lt;p&gt;Un kit de herramientas móviles de código abierto para crear experiencias de aplicaciones web y nativas multiplataforma de alta calidad. Muévase más rápido con una única base de código, que se ejecuta en todas partes con JavaScript y la Web.&lt;br&gt;
He tomado la definición del sitio oficial: &lt;a href="https://ionicframework.com/" rel="noopener noreferrer"&gt;Ionic framework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Existen algunos frameworks multiplataforma que permiten el desarrollo de aplicaciones móviles como: React Native, Flutter, NativeScript y por supuesto Ionic.&lt;/p&gt;

&lt;p&gt;En el mismo sitio de &lt;a href="https://ionicframework.com/" rel="noopener noreferrer"&gt;Ionic framework&lt;/a&gt; nos proporsiona un documento que habla de aplicaciones Hibridas y Nativas, voy a mencionar los puntos más importante:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Utilizar React Native permite reutilizar tu conocimiento de la librería React para el desarrollo web pero eso no quiere decir que podamos reutilizar los componentes web en una aplicación móvil, pero por supuesto el rendimiento se acerca a una aplicación nativa desarrollada en Java o Kotlin.&lt;/li&gt;
&lt;li&gt;Es complicado personalizar la vista en React Native y en ocasiones debemos saber lenguaje nativo de la plataforma.&lt;/li&gt;
&lt;li&gt;Por otro lado tenemos Flutter que tiene un rendimiento excelente sin perdida de frames, pero en este se debe aprender Dart como lenguaje.&lt;/li&gt;
&lt;li&gt;Para finalizar, Ionic permite reutilizar todo su conocimiento web, puede utilizar Angular, React, Vue para el desarrollo de una aplicación movil, además puede utilizar CSS, Sass, Less para personalizar su aplicación, pero el rendimiento no se puede comparar con React native o Flutter por lo que es más que suficiente si nuestra aplicación no utiliza procesamiento gráfico excesivo, con esto no quiero decir que Ionic es superior.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Como todo buen ingeniero debes seleccionar las tecnologías que se ajusten a los requerimientos y realidades del equipo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si nuestro equipo de desarrollo web conoce typescript, css3 y html5 también puede reutilizar el conocimiento de Angular, React y Vue, además no tiene dinero suficiente para contratar un equipo de desarrollo de android y otro de swift, pude elegir Ionic para el desarrollo si su aplicación no se necesita uso intensivo de gráficas, Ionic seria una magnifica elección por lo que la curva de aprendizaje es poco empinada.&lt;/li&gt;
&lt;li&gt;Si el rendimiento es su prioridad y tiene conocimiento en React su mejor elección seria React Native, pero tenga en cuenta que en algún momento deberá manipular código de java o swift para personalizar sus componentes dentro de la aplicación móvil.&lt;/li&gt;
&lt;li&gt;Por ultimo tenemos a Flutter, este framework hace todo de forma diferente, así que si quiere un excelente rendimiento y tiene el tiempo necesario para capacitar a su equipo puede decidirse por este framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No entrare más en detalle en la arquitectura dentro de Ionic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pasos para la configuración inicial:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Instalar Visual Code: en esta guía se utiliza visual code para el desarrollo de la aplicación móvil con Ionic y Angular. El sistema operativo que se utiliza es Ubuntu 20.04 LTS &lt;a href="https://media.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%2Fwf5c1zxf53pnlijfjefd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fwf5c1zxf53pnlijfjefd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instalamos nodejs: Existen 3 formas para instalar NodeJs pero en este caso se utiliza instalar Node.js con Apt usando un PPA de NodeSource &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04" rel="noopener noreferrer"&gt;https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04&lt;/a&gt; ```&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;sudo apt-get install curl&lt;br&gt;
   cd ~&lt;br&gt;
   curl -sL &lt;a href="https://deb.nodesource.com/setup_14.x" rel="noopener noreferrer"&gt;https://deb.nodesource.com/setup_14.x&lt;/a&gt; -o nodesource_setup.sh&lt;br&gt;
   sudo bash nodesource_setup.sh&lt;br&gt;
   sudo apt install nodejs&lt;br&gt;
   node -v&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
2. Instalar Angular 12: https://angular.io/guide/setup-local ```


   npm install -g @angular/cli


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

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Instalar Ionic framework: &lt;a href="https://ionicframework.com/docs/cli" rel="noopener noreferrer"&gt;https://ionicframework.com/docs/cli&lt;/a&gt; ```bash
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;npm install -g @ionic/cli&lt;br&gt;
   ionic start&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
4. Instalar Android Studio (Arctic Fox): En este enlace nos da todos los pasos [Android Studio downloads](https://developer.android.com/studio?gclsrc=aw.ds&amp;amp;gclid=CjwKCAjwhaaKBhBcEiwA8acsHJq7EBH8F0C0T5HFryYrQgvVI5EeK8p7iRjZFzrhX8EWYMf_-ND6-xoCXUAQAvD_BwE#downloads) también podemos usar [JetBrains Toolbox ](https://www.jetbrains.com/toolbox-app/) o descargar desde Snap: [paquete snap de Android Studio](https://snapcraft.io/android-studio). Considerar la mejor alternativa de las 3. ```


   sudo snap install android-studio --classic


``` Si su equipo soporta la aceleración de emulación por hardware, verifique https://developer.android.com/studio/run/emulator-acceleration#vm-linux, instale los siguientes paquetes ```


   sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils


``` **Nota:** copiar la ruta o path donde se va instalar Android Studio, es importante para los pasos posteriores de esta guia.

5. Crear un dispositivo AVDs: Los AVD se gestionan con AVD Manager. En la pantalla de bienvenida de Android Studio, haga clic en Configurar » AVD Manager . El AVD Manager también se puede abrir dentro de los proyectos de Android en el menú Herramientas » AVD Manager. ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1uhkbpd4cs7249h5bsei.png) **Nota:** https://ionicframework.com/docs/developing/android

6. Setear las variables de entorno: si no se configura las variables entornos correctamente al cerrar la terminal las variables se eliminan por eso consultar https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-linux ```bash


cadavi@asusrog:~$ export ANDROID_SDK_ROOT="/home/cadavi/Android/Sdk"
cadavi@asusrog:~$ export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin
cadavi@asusrog:~$ export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
cadavi@asusrog:~$ export PATH=$PATH:$ANDROID_SDK_ROOT/emulator
cadavi@asusrog:~$ export CAPACITOR_ANDROID_STUDIO_PATH="/home/cadavi/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7678000/bin/studio.sh"


``` **Nota:** La variable ANDROID_SDK_ROOT y CAPACITOR_ANDROID_STUDIO_PATH deben asignarse la ruta la instalación de nuestro equipo del SDK y el path de Android Studio respectivamente.
 https://ionicframework.com/docs/developing/android

7. Construir nuestra aplicación móvil: ```bash


   cadavi@asusrog:~$ ng build


``` También puede ejecutar el comando desde la interfaz gráfica de Visual Code ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o7j7rbu0hwq0o2r4vrai.png)

8. Añadir la plataforma Android a nuestra aplicación movil: ```bash


   cadavi@asusrog:~$ ionic capacitor add android


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

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Enlazar nuestra aplicación con el emulador: ```bash
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;cadavi@asusrog:~$ ionic capacitor run android -l --external&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
10. Verificar el correcto funcionamiento: Podemos hacer el cambio en nuestra vista, guardar los cambios y esos cambios serán reflejados en nuestro emulador https://ionicframework.com/docs/cli/livereload ![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z7tsb75kaahsnc37vo0m.png) Guardo y los cambios se reflejan de inmediato: ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a3yyqsjb66ez22bb8kgj.png)


11. Si desea abrir el proyecto Ionic en Android Studio: debemos agregar el path de Android Studio en el archivo *capacitor.config.json* la propiedad *linuxAndroidStudioPath* dentro del proyecto Ionic ```json


   {
       "appId": "io.ionic.starter",
       "appName": "my-ionic",
       "webDir": "www",
       "bundledWebRuntime": false,
       "linuxAndroidStudioPath": "/home/cadavi/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7678000/bin/studio.sh"
}


``` Por ultimo ejecutamos el siguiente comando: ```bash


   cadavi@asusrog:~$ ionic capacitor open android


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

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;La utilización del emulador nos permite probar funcionalidades nativas de Android como GPS, cámara, sistema de archivos a través de los plugins nativos proporcionados por Capacitor.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tomar en cuenta la variable de entorno de android: &lt;a href="https://stackoverflow.com/questions/55481190/how-to-run-ionic-app-on-android-studio-with-capacitor-on-ubuntu" rel="noopener noreferrer"&gt;https://stackoverflow.com/questions/55481190/how-to-run-ionic-app-on-android-studio-with-capacitor-on-ubuntu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>android</category>
      <category>linux</category>
      <category>angular</category>
    </item>
  </channel>
</rss>
