Silicon Valley es el lugar donde tienen su sede las principales empresas de tecnología, y que son líderes a nivel mundial: Google, Apple, Cisco, Adobe, entre otros…  En esta región de California el campo del desarrollo de software es uno de los que tiene mayor demanda. En esta ocasión te presentamos cuales son los salarios que tienen los developers en esta zona: Los rangos de salarios han sido calculados mediante un promedio que sacan en la misma web de Glassdoor, en ella, de acuerdo a los datos que tienen en sus bases de datos pueden dar un estimado aproximado de cuales son… Continuar leyendo


En Stack Overflow se ha publicado su encuesta anual que realiza a sus usuarios, de los que sabemos la mayoría son desarrolladores. Dentro de dicha encuentra se encuentra una sección (Desktop Operating System) que describe el sistema operativo que prefieren para programar. Han recopilado la opinión de 56.033 desarrolladores y los resultados son, sin duda, sorprendentes. El 26.2% de los programadores encuestados usan OS X para desarrollar sus proyectos. El 22.5% lo hace en Windows 7. Aunque Linux se mantiene en un buen porcentaje, con el 21.7% de los votos, ha bajado una posición:   Sistemas Operativos Preferidos por los Developers  Mac… Continuar leyendo


En muchas ocasiones necesitamos probar diferentes algoritmos para una misma aplicación o reutilizar el código para hacer una app parecida. Muchas soluciones consistente en crear un proyecto nuevo, ir cambiando las llamadas a las diferentes funciones para cada versión y modificar las variables de entorno cada vez (application id, content provider, assets, etc). Utilizando estos metodos el código se vuelve dificil de mantener, de entender y de actualizar. Cada versión de nuestra aplicación puede tener diferentes características o requerimientos para diferentes dispositivos. Además los flavors se pueden combinar con diferentes tipos compilación (build types). Cada combinación de productFlavor y buildType constituyen una variante de compilación. En función… Continuar leyendo


Antes de comenzar me gustaría darles la defición de JSON: Es un formato de intercambio de información que está basado en estructuras de pares clave-valor. Puede darse la situación de que en nuestra aplicación Android, necesitemos atender peticiones representadas en JSON, transformarlas a Java, tratar los datos y devolver una respuesta en JSON. Los WebServices REST son un buen ejemplo de esto. Para resolver este problema podemos implementar de forma manual la lógica de negocio para serializar y deserializar nuestro JSON, lo que supodrá un esfuerzo considerable. O bien podríamos hacer uso de alguna libería diseñada para este propósito como puede ser… Continuar leyendo


Butter Knife es una librería que nos facilitará la tarea de relacionar los elementos de las vistas con el código en nuestras aplicaciones Android. Nos evitará tener que utilizar findViewById y simplificará el código. Lo vemos más fácil con un ejemplo. Tenemos un layout llamado activity.xml con la siguiente estructura: <?xml version=»1.0″ encoding=»utf-8″?> <LinearLayout xmlns:android=»http://schemas.android.com/apk/res/android» android:layout_width=»match_parent» android:layout_height=»match_parent» android:orientation=»vertical»> <TextView android:id=»@+id/textview» android:layout_width=»wrap_content» android:layout_height=»wrap_content» /> </LinearLayout> En nuestro código, podremos utilizar la librería Butter Knife de esta forma para inyectar el TextView: public class MainActivity extends Activity{ @BindView(R.id.textview) TextView myTextview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); ButterKnife.bind(this); myTextview.setText(«Hello»); } }… Continuar leyendo


Para poder utilizar un servidor a través de HTPPS, el certificado digital SSL del servidor debe ser reconocido como un certificado “de confianza” por Android. Podemos comprobar los certificados reconocidos en una instalación de Android en las opciones de seguridad del dispositivo. Si intentamos conectarnos a un servidor mediante https y Android no reconoce el certificado como confiable obtendremos la siguiente excepción: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. Para solucionar este problema y realizar la conexión tenemos tres alternativas: Instalar “manualmente” el certificado en Android. Obligar al usuario a realizar esta instalación no parece una buena idea. Aceptar cualquier… Continuar leyendo


React es una librería para crear aplicaciones web, con Javascript del lado del cliente y del lado del servidor. Esa definición hace hincapié en una dualidad (cliente + servidor) que resulta una de las principales características de la librería, de las que ya hemos hablado anteriormente, en el artículo de Qué es React. Aunque volveremos sobre ese punto, ahora vamos a conocer otros datos de interés. Composición de componentes Así como en programación funcional se pasan funciones como parámetros para resolver problemas más complejos, creando lo que se conoce como composición funcional, en ReactJS podemos aplicar este mismo patrón mediante… Continuar leyendo


¿Qué es React? React es una librería Javascript focalizada en el desarrollo de interfaces de usuario. Esa es su principal área de trabajo, pero lo cierto es que con todo el ecosistema de aplicaciones y herramientas y componentes, con React encontramos un excelente aliado para hacer todo tipo de aplicaciones web, SPA (Single Page Application) o incluso aplicaciones para móviles. Es por tanto una base sobre la cual se puede construir casi cualquier cosa con Javascript y que nos facilita mucho el desarrollo, ya que nos ofrece muchas cosas ya listas, en las que no necesitamos invertir tiempo para desarrollar.… Continuar leyendo


¿Qué es un certificado SSL? Un certificado SSL sirve para brindar seguridad al visitante de su página web, una manera de decirles a sus clientes que el sitio es auténtico, real y confiable para ingresar datos personales. Las siglas SSL responden a los términos en inglés (Secure Socket Layer), el cual es un protocolo de seguridad que hace que sus datos viajen de manera íntegra y segura, es decir, la transmisión de los datos entre un servidor y usuario web, y en retroalimentación, es totalmente cifrada o encriptada. El que los datos viajen cifrados, nos referimos a que se emplean… Continuar leyendo


Una aplicación web progresiva o PWA (Progressive Web Apps ) usa capacidades web modernas para ofrecer una experiencias para usuario similar a la de una aplicación móvil. La idea que transmite esta definición es que los objetivos que debemos buscar al crear una PWA son: Que tenga el mayor rendimiento posible en móviles y que cargue de manera casi instantánea Una buena interfaz que se parezca lo máximo posible a una nativa La posibilidad de trabajar sin conexión Poder enviar notificaciones a los usuarios, como una app nativa Tecnologías que aprovechan las PWA Las PWAs se basan en unos conceptos bastante simples: Responsive… Continuar leyendo