Introducción a AngularJs

¿Qué es AngularJs?

Es un framework desarrollado Adam Abrons y Misko Every (empleado en google) en el año 2009. Luego que Adam decide abandonar el proyecto, Misko decide continuar desarrollando el framework con la ayuda de dos empleados de google Igor Minár y Vojta Jín. Actualmente cuenta con miles de contribuidores y un equipo dedicado a desarrollarlo con el soporte de google.
Angular tiene una curva de aprendizaje muy sencilla al inicio, llevar a la práctica funcionalidades básicas de una aplicación es bastante fácil y divertido. Sin embargo soluciones más complejas requiere un entendimiento mayor de cómo funciona el framework por dentro.

¿Qué puedo crear con AngularJs?

Básicamente cualquier tipo de aplicación web de lado del cliente, extendiendo las etiquetas HTML con tus propios componentes, lo cual te permite desacoplar tu aplicación en pequeños módulos que pueden ser añadidos o removidos sin tener que preocuparse porque toda la aplicación falle.
Si tienes una aplicación que debe listar una cantidad de productos o mostrar los detalles de un empleado, puedes tener tu propio componente expresado como etiqueta HTML:
- * *

¿Cuándo usarlo?

Es mejor responder esta pregunta enumerando los casos en los cuales Angular no es la mejor solución:

  1. Aplicaciones que dependen fuertemente del consumo de robots externos conocidos como Google/Twitter/Facebook. Es ya muy conocido que estos bots no tienen la capacidad de leer javascript (google recién ha empezado a optimizar, pero aún en una etapa muy temprana como para considerarlo algo estable) lo cual hace que tengamos que realizar trabajo extra para poder cumplir con este tipo de aplicaciones.

  2. Juegos, normalmente este tipo de apps tienen mucha interacción con el DOM y es mejor usar una librería de más bajo nivel para este tipo de tareas.

Y eso es todo, no hay otro escenario en el cual Angular no sea una alternativa a tener en cuenta.

Ya uso jQuery ¿En qué me beneficia Angular?

jQuery es una librería muy útil, permite manejar el DOM, hacer peticiones vía XHR, etc. Angular te da todas esas funcionalidades también y muchos módulos adicionales como manejo de rutas, animación, traducción e internacionalización, cookies.
Angular viene con su propio jQuery, es una librería desarrollada por ellos, pero más ligera que llaman jqLite. Pero esto no significa que compitan, si angular detecta que en el mismo proyecto existe una versión de jQuery lo usará como reemplazo de jqLite. Si ya tienes una aplicación con mucha dependencia de jQuery tranquilamente podrás hacerlo trabajar paralelamente.

¿Puedo aplicarlo en proyectos existentes?

Sí, no importa que tecnología hayas usado en tus proyectos, la filosofía de trabajo de angular permite que puedas ir creando/migrando pequeños módulos de tu aplicación ya existente sin comprometer el resto de su funcionalidad.
Por ejemplo, si tienes una aplicación que requiere de un formulario de login que valida las credenciales de un usuario antes de ingresar a tu aplicación, puedes facilmente con angular crear un módulo myApp.login y solo esa parte de tu aplicación será hecha con angular, el resto puede mantenerse con tu antiguo stack de tecnologías.

Si deseas saber más detalles sobre Angular, inscríbete al curso de Creación de aplicaciones web con AngularJs creado por los amigos de Abakio, la información de la inscripción la puedes encontrar en su web. Aprovecha el descuento de los primeros días.