Introducción
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Es curioso que constantemente sobreestimemos o subestimemos el impacto de ciertos acontecimientos y proyectos en nuestras vidas. Yo creía seriamente que el último proyecto en el que trabajé en Google, Google Feedback, acabaría cambiando por completo la forma en que la empresa interactuaba con sus clientes. Y creía que Angular (AngularJS en aquel momento) no sería más que otro marco de trabajo que no sobreviviría a la interfaz de administración del proyecto Feedback.
Y en retrospectiva, fue exactamente al revés. Aunque Feedback sigue existiendo y está integrado en muchos productos de Google, es Angular el que ha pasado de ser un proyecto minúsculo utilizado por un equipo interno de Angular a ser utilizado ahora por miles de desarrolladores y empresas de todo el mundo. Y gran parte de ello se debe a Misko, Igor y todo el equipo que lo rodea, y a su infalible dedicación a mejorar la forma en que desarrollamos aplicaciones web.
Lo que empezó como un proyecto de dos miembros es ahora una de las mayores comunidades de código abierto de la web, y el framework ha impactado y formado parte de miles de proyectos en todo el mundo. Hay docenas de libros, cientos de tutoriales y miles de artículos sobre Angular, y la adopción y el apoyo a Angular siguen creciendo cada día.
Algunos de los principales conceptos que se adelantaron a su tiempo durante la primera versión de Angular (como el enlace de datos, la separación de preocupaciones, la inyección de dependencias, etc.) son ahora características comunes de los nuevos frameworks.
El mayor cambio en el ecosistema AngularJS ha sido el lanzamiento de la nueva versión de Angular (inicialmente llamada Angular 2.0, ahora simplemente Angular). Fue un cambio drástico, no compatible con versiones anteriores, que casi dividió a toda una comunidad. Pero con el compromiso de la comunidad y un equipo abierto e integrador, lo que podría haber sido un paso desastroso se convirtió en una revisión muy necesaria de Angular para llevarlo a la nueva era del desarrollo web.
En realidad, lo que hace que Angular sea una gran tecnología y un gran marco de trabajo es la comunidad que lo rodea: los que contribuyen al núcleo del marco de trabajo o desarrollan complementos para él, así como los que lo utilizan a diario.
Como parte de la comunidad, me hace mucha ilusión presentar este libro y contribuir a mi manera a lo que hace grande a esta comunidad.
Quién debería leer este libro
Este libro está dirigido a cualquiera que desee iniciarse en Angular (2.0 y posteriores), ya sea como proyecto paralelo, como herramienta adicional o para su trabajo principal. Se espera que los lectores se sientan cómodos con JavaScript y HTML antes de empezar este libro, pero un conocimiento básico de JavaScript debería ser suficiente para aprender Angular. No se necesitan ni se esperan conocimientos de AngularJS 1.0.
También utilizaremos TypeScript, que es la forma recomendada de desarrollar en Angular, pero un conocimiento preliminar es suficiente para leer este libro.
Iremos paso a paso, así que relájate y diviértete aprendiendo conmigo.
Por qué escribí este libro
Angular como framework ha crecido enormemente, y viene con un gran conjunto de características y capacidades. Con una gran comunidad detrás, también viene con una afluencia de contenido útil. Pero el contenido de ayuda, los tutoriales y las guías se centran sólo en temas concretos, o son esporádicos y no necesariamente útiles para alguien que se inicia.
El objetivo de este libro es proporcionar una guía paso a paso para iniciarse en Angular. Cada concepto se proporciona de forma lógica y organizada, construyendo sobre el anterior. Con tantas partes móviles y una comunidad tan activa, este libro no pretende cubrir todos y cada uno de los aspectos, sino que se centra en los elementos básicos de forma detallada, dejando que los lectores descubran el resto por su cuenta.
Al final del libro, deberías estar familiarizado con la mayor parte del framework Angular, y ser capaz de utilizar Angular para desarrollar tus propias aplicaciones web y utilizarlo en tus propios proyectos.
Unas palabras sobre el desarrollo de aplicaciones web en la actualidad
JavaScript ha recorrido un largo camino, hasta el punto de ser uno de los lenguajes de programación más utilizados y adoptados. Hoy en día, es raro que los desarrolladores web tengan que preocuparse por las incoherencias de los navegadores y similares, que era la razón principal de que existieran frameworks como jQuery.
Los frameworks (como Angular y React) son ahora una opción muy común para desarrollar experiencias frontales, y hoy en día es raro que alguien decida crear una aplicación frontal sin aprovechar uno de ellos.
Las ventajas de utilizar frameworks son múltiples, desde reducir el código repetitivo hasta proporcionar una estructura y diseño coherentes para desarrollar una aplicación, pasando por muchas más. La intención principal es siempre reducir el tiempo dedicado a las tonterías y centrarnos más en la funcionalidad principal que queremos ofrecer. Y si funciona en todos los navegadores (y plataformas, como Android e iOS, además del escritorio), pues mejor que mejor.
Angular (al igual que otros frameworks) proporciona esto, principalmente a través de algunos fundamentos básicos que están en el corazón del framework, incluyendo:
-
Potente sintaxis de plantillas basada en la programación declarativa
-
Modularidad y separación de intereses
-
Vinculación de datos y, a través de ella, programación basada en datos
-
Testabilidad y soporte de pruebas impresionante
-
Enrutamiento y navegación
-
Y muchas otras funciones, desde la renderización del lado del servidor hasta la posibilidad de escribir aplicaciones móviles nativas, ¡y mucho más!
Con la ayuda de Angular, podemos centrarnos en construir experiencias asombrosas, a la vez que gestionamos la complejidad y la mantenibilidad de forma fluida.
Navegar por este libro
Este libro pretende guiar a un desarrollador a través de cada parte de Angular, paso a paso. Cada capítulo que introduzca un nuevo concepto irá inmediatamente seguido de un capítulo sobre cómo podemos probarlo unitariamente. A grandes rasgos, el libro está organizado como sigue:
-
El Capítulo 1, Introducción a Angular, es una introducción a Angular y a los conceptos que lo sustentan. También cubre lo que se necesita para empezar a escribir una aplicación Angular.
-
El Capítulo 2, "Hola Angular", te guía a través de la creación de una aplicación Angular muy sencilla, y te explica cómo funcionan las piezas juntas. También introduce la CLI de Angular.
-
El capítulo 3, Directivas incorporadas útiles de Angular, profundiza en las directivas incorporadas básicas de Angular (incluyendo
ngFor
,ngIf
, etc.) y cuándo y cómo utilizarlas. -
El Capítulo 4, Comprender y utilizar los componentes de Angular, cubre los componentes de Angular con más detalle, así como las distintas opciones disponibles al crearlos. También cubre los ganchos básicos del ciclo de vida disponibles con los componentes.
-
El capítulo 5, Pruebas de componentes angulares, presenta cómo realizar pruebas unitarias de componentes angulares utilizando Karma y Jasmine, junto con el marco de pruebas de Angular.
-
El capítulo 6, Trabajar con formularios basados en plantillas, trata sobre la creación y el trabajo con formularios en Angular, concretamente con formularios basados en plantillas.
-
El capítulo 7, Trabajar con formularios reactivos, trata de la otra forma de definir y trabajar con formularios, que es cómo crear y desarrollar formularios reactivos.
-
El Capítulo 8, Servicios de Angular, trata de los servicios de Angular, que incluyen cómo utilizar los servicios de Angular incorporados, así como cómo y cuándo definir nuestros propios servicios de Angular.
-
El capítulo 9, Hacer llamadas HTTP en Angular, se adentra en el aspecto de la comunicación con el servidor de Angular, y profundiza en la realización de llamadas HTTP, así como en algunos temas avanzados como los interceptores y similares.
-
El Capítulo 10, Servicios de pruebas unitarias, da un paso atrás y vuelve a cubrir las pruebas unitarias, pero esta vez centrándose en los servicios de pruebas unitarias. Esto incluye probar servicios sencillos y casos un poco más difíciles, como flujos asíncronos, así como servicios y componentes que realizan llamadas HTTP.
-
El capítulo 11, Enrutamiento en Angular, profundiza en cómo podemos realizar el enrutamiento en una aplicación Angular y cubre en detalle el módulo de enrutamiento de Angular, así como la mayoría de sus funciones.
-
El Capítulo 12, Productionizing an Angular App, reúne finalmente todos los conceptos y cubre el paso de la aplicación Angular desarrollada a producción y las diversas preocupaciones y técnicas implicadas en ello.
Todo el repositorio de código está alojado en GitHub, así que si no quieres teclear los ejemplos de código de este libro, o quieres asegurarte de que estás viendo los últimos y mejores ejemplos de código, visita el repositorio y hazte con el contenido.
Este libro utiliza la versión 5.0.0 de AngularJS para todos sus ejemplos de código.
Recursos en línea
Los siguientes recursos son un gran punto de partida para cualquier desarrollador AngularJS, y deberían estar siempre a tu alcance:
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
Puedes descargarte material complementario de (ejemplos de código, ejercicios, etc.) en https://github.com/shyamseshadri/angular-up-and-running.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir un CD-ROM de ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Angular: Up and Running por Shyam Seshadri (O'Reilly). Copyright 2018 Shyam Seshadri, 978-1-491-99983-7".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Safari O'Reilly
Nota
Safari (antes Safari Books Online) es una plataforma de formación y referencia basada en membresías para empresas, administraciones públicas, educadores y particulares.
Los miembros tienen acceso a miles de libros, vídeos de formación, rutas de aprendizaje, tutoriales interactivos y listas de reproducción de más de 250 editoriales, como O'Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, Jones & Bartlett y Course Technology, entre otras. Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett y Course Technology, entre otras.
Para más información, visita http://oreilly.com/safari.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en http://bit.ly/angularUR.
Para hacer comentarios o preguntas técnicas sobre este libro, envía un correo electrónico a bookquestions@oreilly.com.
Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://www.youtube.com/oreillymedia
Agradecimientos
Este libro está dedicado a mi mujer, Sanchita, y a mis padres y mi abuela, que fueron mi roca, así como mi motivación para escribir este libro de la mejor manera que pude, todo ello mientras equilibraba mi propia startup incipiente en su momento más precario (¡el principio!).
También me gustaría dar las gracias a mis revisores, Yakov Fain y Víctor Mejía, que tuvieron que leer y revisar mis divagaciones sin editar y asegurarse de que transmitía mi punto de vista de la forma más sucinta y comprensible.
Por supuesto, este libro no sería posible sin la fe y los esfuerzos del impresionante equipo de O'Reilly, ¡especialmente de Angela y Kristen!
Y por último, gracias a la increíble comunidad de Angular por todas sus contribuciones, comentarios y apoyo, y por enseñarnos a utilizarlo y mejorarlo.
Get Angular: En marcha now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.