Enable javascript in your browser for better experience. Need to know to enable it? Go here.

Lenguajes & Frameworks

Adoptar ?

  • En una maniobra que imita a la presentación por parte de Apple de SwiftUI, Google ha presentado Jetpack Compose como un enfoque nuevo y poco diferente al desarrollo de interfaces para aplicaciones Android modernas. Compose ofrece herramientas más poderosas y una intuitiva API de Kotlin. En la mayoría de los casos es necesario menos código, y se ha vuelto más fácil crear interfaces de usuario en tiempo de ejecución en lugar de definir una UI estática que pueda rellenarse con datos. Con Compose Multiplatform y Kotlin Multiplatform los desarrolladores cuentan con un set de herramientas unificado para construir aplicaciones de escritorio, web y nativas Android. También se incluye Wear OS 3.0+, y con el soporte para iOS ya presente en Kotlin Multiplatform Mobile, es probable que IOS sea soportado por Compose en el futuro.

  • React Hooks ha introducido un nuevo enfoque en la gestión de la lógica de los estados, dado que los componentes de React siempre han estado más cerca de ser funciones que clases, los Hooks han adoptado esto y han llevado el estado a las funciones, en vez de usar clases para llevar funciones al estado con métodos. Otro elemento básico de la gestión del estado en las aplicaciones React es Redux, y ya hemos notado que ha sido objeto de escrutinio, lo que sugiere que a veces la complejidad de Redux no vale la pena y, en tales casos, es preferible un enfoque simple usando Hooks. Hacer esto completamente solo puede volverse complicado rápidamente; por lo tanto, recomendamos considerar una combinación de React Context y los hooks useContext y useReducer, explicadas en este blog post.

Probar ?

  • Arium es un framework de pruebas automatizadas para aplicaciones en 3D escrito en Unity. Las pruebas funcionales son una parte importante de la pirámide de pruebas saludables. Arium, el cual es construido como un wrapper en el framework de pruebas de Unity, permite escribir pruebas funcionales para apps en 3D en múltiples plataformas. Lo hemos utilizado exitosamente en algunos de nuestros proyectos.

  • Chakra UI es una biblioteca de componentes de interfaz de usuario para React.js que está diseñada para la accesibilidad. Nos gusta, especialmente por sus características de accesibilidad, incluyendo el modo oscuro y la compatibilidad con las directrices de la Iniciativa de Accesibilidad Web – Aplicaciones nriquecidas de Internet Accesibles (WAI-ARIA). Es más, es fácil de probar y personalizar lo que contribuye a una buena experiencia de desarrollo, acelerando el proceso de desarrollo de soluciones UI en ambientes de producción.

  • DoWhy es una biblioteca de Python para realizar inferencia causal y análisis de punta a punta. Aunque los modelos de machine learning pueden hacer predicciones basados en datos fácticos aprovechando la correlación entre variables que estuviesen presente en ese momento, son insuficientes en escenarios en los que tenemos que hacer preguntas del tipo y si y por qué: ¿Y si cambiase una variable? ¿Cuál sería el impacto en el resultado? La inferencia causal es un enfoque para responder a estas preguntas. La inferencia causal estima el efecto causal, es decir, la magnitud en la que un resultado cambiaría si cambiáramos una de sus variables. Este enfoque se utiliza cuando no podemos obtener una respuesta mediante observaciones y recopilando datos mediante pruebas A/B - debido al costo de los experimentos o limitaciones. La biblioteca DoWhy estima el efecto causal basado en un proceso que usa los hechos y datos recopilados con anterioridad, así como las suposiciones que se pueden hacer al conocer el dominio. Utiliza un proceso de cuatro pasos para modelar el gráfico de relaciones causales basado en supuestos, identificando la causa de un resultado, estimando el efecto causal y finalmente desafiando esos supuestos refutando el resultado. Hemos utilizado esta biblioteca con éxito en producción y es una de las bibliotecas más utilizadas en casos de uso de estimación causal.

  • A pesar de que muchos frameworks prometen la misma facilidad en el desarrollo y escalabilidad típica en los generadores de sitio estático (SSR), continuamos teniendo buenas experiencias con Gatsby.js. En particular, lo hemos usado para construir y desplegar sitios web que escalan a gran cantidad de usuarios sin tener que preocuparnos por planificar la capacidad o infraestructura de despliegue. Nuestros desarrolladores también se han impresionado por el enfoque en la accesibilidad y soporte a navegadores antiguos, y a que pueden reutilizar su experiencia en React.js. En definitiva, sentimos que Gatsby ha madurado bien y es una opción sólida en este espacio.

  • Jetpack Hilt recientemente llegó a su versión 1.0, y podemos reportar que hemos tenido buenas experiencias. Jetpack Hilt ofrece extensiones para integrar Hilt con varias otras librerías de AndroidX tales como: WorkManager y Navigation. Expande aún más el alcance de Hilt para proveer a los desarrolladores con una manera estándar de incorporar inyecciones de dependencias con Dagger en las aplicaciones de Android. Hemos presentado a Koin como a una librería nativa en Kotlin para inyecciones de dependencias en el Radar anteriormente, y no aconsejamos reemplazar a Koin en grandes bases de codigo ya existentes. Sin embargo, al iniciar un nuevo proyecto, Hilt al parecer, es la herramienta a utilizar.

  • Para muchas organizaciones, el desarrollo móvil multiplataforma se está convirtiendo en una opción fuerte, especialmente porque la experiencia de construir aplicaciones móviles multiplataforma se vuelve más agradable y eficiente. Kotlin Multiplatform Mobile (KMM) es un SDK proporcionado por JetBrains que aprovecha las capacidades multiplataforma de Kotlin e incluye herramientas y características diseñadas para agilizar la experiencia del desarrollador. Con KMM se escribe el código una sola vez para la lógica de negocio y el núcleo de la aplicación en Kotlin y luego se comparte con las aplicaciones de Android e iOS. Sólo escribes el código específico de la plataforma cuando es necesario, por ejemplo, para aprovechar los elementos nativos de la interfaz de usuario; y el código específico se mantiene en vistas diferentes para cada plataforma. Estamos trasladando KMM a Trial, ya que está evolucionando rápidamente y estamos viendo que algunas organizaciones lo utilizan por defecto.

  • lifelines es una librería para análisis de supervivencia en Python. Originalmente desarrollada para eventos de nacimiento y muerte, ha evolucionado en una librería completa de análisis de supervivencia para predecir cualquier duración de tiempo. Más allá de los casos de uso en medicina (como responder a, ¿Cuanto tiempo vive esta población?), la hemos utilizado en retail y fabricación para contestar a preguntas como ¿Cuánto tiempo están los usuarios suscritos a un servicio? o ¿Cuando deberíamos realizar el próximo mantenimiento preventivo?

  • Las aplicaciones web, especialmente las de uso interno en las empresas, suelen estar escritas en dos partes. La interfaz de usuario y parte de la lógica de negocio se ejecutan en el navegador, mientras que la lógica de negocio, la autorización y la persistencia se ejecutan en un servidor. Estas dos partes se comunican normalmente a través de JSON sobre HTTP. Los endpoints no deben confundirse con una API real; son simplemente un detalle de implementación de una aplicación que se divide en dos entornos de ejecución. Al mismo tiempo, proporcionan una unión válida para probar las piezas individualmente. Al probar la parte de JavaScript, el lado del servidor puede ser simulado a nivel de red por una herramienta como Mountebank. Mock Service Worker ofrece un enfoque alternativo para interceptar las peticiones en el navegador. Esto también simplifica las pruebas manuales. Al igual que Mountebank, Mock Service Worker se ejecuta fuera del navegador como un proceso Node.js para probar las interacciones de red. Además de interacciones REST, simula las APIs GraphQL - una ventaja porque GraphQL puede ser complejo de simular manualmente a nivel de red.

  • La gestión de los estados en Aplicaciones React ha sido un tema recurrente en el Radar, y recientemente hemos clarificado nuestra posición sobre Redux, un framework popular en este espacio. NgRx es, en esencia, Redux para Angular. Este es un framework para construir aplicaciones reactivas con Angular, aportando maneras de gestionar estados y aislar efectos secundarios. Nuestros equipos reportan que entender NgRx fue sencillo, sobre todo porque está construido con RxJS, ellos destacan un beneficio similar a la que conocemos de Redux: agregar gestión de estado reactivo viene con una complejidad adicional que solo tiene sentido en aplicaciones grandes. La experiencia del desarrollador se ve reforzada por esquemas, una librería de scaffolding, así como también por un conjunto de herramientas que permiten el seguimiento visual del estado y la depuración time-travel.

  • Originalmente, se agregaron las anotaciones de tipo a Python para apoyar el análisis estático. Sin embargo, teniendo en cuenta la amplitud con la que se utilizan las anotaciones de tipo, y las anotaciones en general, usadas en otros lenguajes de programación, era sólo cuestión de tiempo que los desarrolladores comenzaran a utilizar las anotaciones de tipo de Python para otros fines. pydantic entra en esta categoría. Permite utilizar anotaciones de tipo para la validación de datos y la gestión de configuraciones en tiempo de ejecución. Cuando los datos llegan como, por ejemplo, un documento JSON y necesitan ser analizados en una estructura compleja de Python, pydantic asegura que los datos entrantes coinciden con los tipos esperados o informa de un error si no es así. Aunque puedes utilizar pydantic directamente, muchos desarrolladores lo han utilizado como parte de FastAPI, uno de los frameworks web más populares de Python. De hecho, el uso de pydantic en FastAPI se considera tan indispensable que un cambio propuesto recientemente en Python, destinado a reducir el coste de la carga de código anotado en memoria, fue reconsiderado porque habría roto el uso de anotaciones de tipo en tiempo de ejecución.

  • Evaluamos Quarkus hace dos años, y ahora nuestros equipos tienen más experiencia con él. Quarkus es una pila Java nativa de Kubernetes diseñada para OpenJDK HotSpot y GraalVM. En los últimos dos años, Quarkus ha conectado las mejores bibliotecas del mundo Java y simplificado la configuración del código, lo que ha proporcionado a nuestros equipos una buena experiencia de desarrollo. Quarkus tiene un tiempo de arranque muy rápido (decenas de milisegundos) y tiene una baja huella de memoria RSS; esto se debe a su enfoque de construcción container-first: utiliza técnicas de compilación anticipada para hacer la inyección de dependencias en tiempo de compilación y, por lo tanto, evita los costes de ejecución de la reflexión. Nuestro equipo también ha tenido que hacer concesiones: Quarkus tarda casi 10 minutos en construirse en nuestro pipeline; algunas características que dependen de anotaciones y reflexión (como el ORM y el serializador) también están limitadas. Parte de estas concesiones son el resultado de usar GraalVM. Así que si tu aplicación no se ejecuta como FaaS, el uso de Quarkus con HotSpot es también una buena opción.

  • Si queremos animaciones en aplicaciones React Native, React Native Reanimated 2.0 es el camino. Previamente teníamos Reanimated 1.x, pero tenía problemas relacionados con la complejidad del lenguaje declarativo de Reanimated y también tenía algunos costos de rendimiento adicionales relacionados con la inicialización y comunicación entre el hilo de JavaScript de React Native y el hilo de UI. Reanimated 2.0 es un intento de reimaginar cómo ejecutar animaciones en el hilo de UI; esto nos permitirá programar animaciones en JavaScript y ejecutarlas en el hilo de UI utilizando un nuevo API llamado animation worklets. Para esto se genera un contexto secundario de JavaScript en el hilo de UI que puede entonces ejecutar las funciones de JavaScript. Nosotros estamos utilizando esto en nuestros proyectos de React Native que necesitan animaciones y nos gusta mucho.

  • React Query se describe a menudo como la biblioteca de recuperación de datos que faltaba para React. Obtener, almacenar en caché, sincronizar y actualizar el estado de un servidor son requerimientos comunes en muchas de las aplicaciones de React y, aunque los requisitos están claros, lograr la implementación correcta es considerablemente más difícil. React Query proporciona una solución sencilla utilizando hooks (ganchos). Como desarrollador de aplicaciones, simplemente pase una función que resuelva sus datos y deje todo lo demás al framework (marco de trabajo). Nos gusta que funcione por sí solo, pero que siga ofreciendo opciones de configuración cuando se necesiten. Las herramientas para el desarrollador, desafortunadamente no están disponibles todavía para React Native, sí que ayudan a entender cómo funciona el framework, lo que beneficia a los desarrolladores que son nuevos en ello. En nuestra experiencia, la versión 3 del framework trae la estabilidad necesaria para que sea utilizado en producción con nuestros clientes.

  • Nuestros desarrolladores continúan su productividad con Tailwind CSS y están impresionados con su capacidad para escalar tanto con grandes equipos como con código base. Tailwind CSS ofrece un enfoque alternativo a las herramientas y marcos CSS que reducen la complejidad mediante clases CSS de utilidad de nivel inferior. Las clases CSS de Tailwind pueden personalizarse fácilmente para adaptarse a la identidad visual de cualquier cliente. También hemos comprobado que combina muy bien con Headless UI. Tailwind CSS evita que tengas que escribir cualquier clase o CSS por tu cuenta, lo que conduce a una base de código más fácil de mantener a largo plazo. Parece que Tailwind CSS ofrece el equilibrio adecuado entre reutilización y personalización para crear componentes visuales

  • Desde que hablamos por primera vez de TensorFlow Lite en el Radar de 2018, lo hemos usado en varios productos y estamos contentos de confirmar que funciona cómo prometía. El caso de uso más común es para integrar modelos pre-entrenados en aplicaciones móviles, pero TensorFlow Lite también soporta el proceso de aprendizaje en el propio dispositivo, lo que permite más áreas de aplicación. En el sitio web hay numerosos ejemplos que muestran áreas comunes de aplicación, como clasificación de imágenes y detección de objetos, pero también da indicios de nuevas formas de interacción, utilizando, por ejemplo, la estimación de poses y el reconocimiento de gestos.

  • En 2017 mencionamos Three.js en el Radar de Assess. Desde entonces, esta biblioteca de renderizado 3D para la web ha evolucionado y mejorado rápidamente. Las API estándar de WebGL han mejorado y Three.js ha agregado soporte para WebXR, convirtiéndolo en una herramienta viable para crear experiencias inmersivas. Al mismo tiempo, ha mejorado la compatibilidad del navegador con la representación 3D y las API de dispositivos WebXR, lo que convierte a la web en una plataforma cada vez más atractiva para el contenido 3D. Aunque existen otras bibliotecas de renderizado 3D, nuestros equipos han llegado a preferir Three.js, especialmente cuando se combina con React Three Fiber para abstraer algunos de los detalles de bajo nivel. Descubrimos que los desarrolladores aún deben ser conscientes de los problemas de rendimiento y, a veces, necesitarán reestructurar los datos para optimizar la velocidad de renderizado.

  • Cuando se crea una interfaz de usuario con SwiftUI, la idea es construir un modelo de vistas que puedan ser fácilmente relacionadas con los elementos de la interfaz de usuario. En estos casos, la mayor parte de las comprobaciones se pueden realizar en el propio modelo, usando frameworks estándar de pruebas unitarias que hacen estos tests fáciles de escribir y muy rápidos de ejecutar. Para probar la relación entre el modelo y las vistas, los desarrolladores normalmente se decantan por XCUITest, un framework para construir tests automatizados que ejecuta toda la aplicación y controla la interfaz de usuario de forma remota. Funciona, los tests son razonablemente estables, pero requieren mucho tiempo de ejecución.

    Para una alternativa más rápida de pruebas unitarias con SwiftUI, prueba ViewInspector, un framework de código abierto que usa la API pública de reflection de SwiftUI para acceder a las definiciones de las vistas creadas por SwiftUI. Con ViewInspector, un test simplemente crea una instancia de una vista de SwiftUI, localiza los elementos de la interfaz de usuario que se quieren probar y realiza las comprobaciones necesarias contra los mismos. Las interacciones básicas como una pulsación táctil también se pueden comprobar. Como muchos otros frameworks de test para interfaces de usuario, proporciona una API para localizar elementos de la interfaz, ya sea mediante el uso de una ruta específica a través de la jerarquía visual o usando un conjunto de funciones de búsqueda. Este tipo de pruebas son normalmente más sencillas que las realizadas con XCUITests y se ejecutan mucho más rápido. Cabe tener en cuenta, sin embargo, que debido a la facilidad que ViewInspector ofrece para escribir este tipo de tests, podrías caer en la tentación de sobrepasarte probando la interfaz de usuario. Comprobar cada una de las relaciones una a una implica el doble de código a mantener. Aunque ViewInspector hace más sencillo probar el código de SwiftUI, recuerda mantener la mayor parte de la lógica en el modelo.

  • Vowpal Wabbit es una biblioteca de machine-learning de propósito general. Aunque fue creada originalmente en Yahoo! Research hace más de una década, queremos mencionarla para resaltar que sigue siendo el lugar donde se añaden primero muchas de las técnicas más nuevas de machine-learning. Si te interesa machine-learning, quizá quieras echar un vistazo a las innovaciones de Vowpal Wabbit. Ten en cuenta también que Microsoft ha mostrado un mayor interés en Vowpal Wabbit en los últimos años, contratando características principales e integrándolo en sus ofertas de Azure, por ejemplo en su machine-learning designer y en Personalizer.

  • Zap es una librería de registro estructurado de alto rendimiento para GoLang que es más rápida que las implementaciones de registro estándar y que otras bibliotecas de registrado. Zap tiene un registrador "bonito", que proporciona una interfaz estructurada y de estilo printf, así como una implementación (aún) más rápida con solo la interfaz estructurada. Nuestros equipos lo han utilizado ampliamente a la escala necesaria y están felices de recomendarlo como su solución preferida.

Evaluar ?

  • Headless UI es una biblioteca de componentes sin estilo para React.js o Vue.js de la misma gente que creó Tailwind CSS. A nuestros desarrolladores les gusta no tener que personalizar o trabajar con los estilos por defecto que traen otras bibliotecas de componentes. La gran funcionalidad de los componentes y su total accesibilidad, combinada con el estilo sin fricciones, permite a los desarrolladores enfocarse de forma más productiva en el problema del negocio y en la experiencia del usuario. Como es de esperar, Headless UI también se combina muy bien con las clases CSS de Tailwind.

  • InsightFace es un conjunto de herramientas de código abierto para análisis profundo de rostros en 2D y 3D, principalmente basado en PyTorch y MXNet. InsightFace usa algunos de los más recientes y precisos métodos para detección, reconocimiento y ajuste de rostros. Nos interesa especialmente porque tiene una de las mejores implementaciones para ArcFace, un modelo de machine learning de vanguardia que detecta las similitudes entre dos imágenes. InsightFace con ArcFace obtuvieron una puntuación del 99.83% de precisión en el conjunto de datos Labeled Faces in the Wild (LFW). Estamos experimentando con ella en el contexto de la de-duplicación facial y hemos visto resultados prometedores.

  • Kats es un framework ligero para realizar análisis de series temporales, recientemente lanzado por Facebook Research. Las series temporales son una importante área en la ciencia de datos; abarca los ámbitos de problema de previsión, detección (incluyendo detección de estacionalidades, valores atípicos y puntos de cambio), extracción de características y análisis multivariable. Típicamente solemos tener diferentes librerías para diferentes técnicas en un análisis de series temporales. Kats, en cambio, pretende ser una solución única para los análisis de series temporales y proporciona un conjunto de algoritmos y modelos para todos los dominios de problemas de análisis de series temporales. Previamente mencionamos Prophet, también de Facebook Research, el cual es uno de los modelos que implementa Kats para la previsión. Esperamos probar Kats en problemas que involucran análisis de series temporales

  • Si estás usando Apache Kafka y construyendo aplicaciones de procesamiento de stream, ksqlDB es un gran framework para escribir aplicaciones simples utilizando sentencias similares a SQL. ksqlDB no es una base de datos tradicional SQL. Sin embargo, permite utilizar sentencias ligeras similares a sentencias SQL para construir nuevos streams de Kafka o tablas en adición a los topicos Kafka existentes. Las sentencias pueden obtener datos, similar a leer de una base de datos tradicional, o enviar resultados a la aplicación cuando ocurren cambios incrementales. Puedes escoger ejectuarlo como un servidor independiente nativamente como parte de tu instalación Apache Kafka existente, o como un servicio totalmente administrado en Confluent Cloud. Sugerimos utilizar ksqlDB en casos de uso de procesamiento de datos simples. Para casos de uso más complejos, cuando una aplicación requiere código de programación más allá de sentencias SQL algebraicas, nosotros seguimos utilizando frameworks de procesamiento de datos como Apache Spark o Apache Flink además de Kafka. Recomendamos experimentar con ksqlDB en escenarios donde la simplicidad de la aplicación lo permite.

  • Polars es una biblioteca de marcos de datos en memoria implementada en Rust. A diferencia de otros marcos de datos (como Pandas), Polars es multihilo y seguro para operaciones paralelas. Los datos en memoria están organizados en el formato Apache Arrow para realizar operaciones analíticas eficientes y permitir la interoperabilidad con otras herramientas. Si estás familiarizado con Pandas, puedes empezar rápidamente con los enlaces de Python para Polars. Creemos que Polars, con la implementación de Rust y los enlaces de Python, es un marco de datos en memoria de alto rendimiento para evaluar sus necesidades analíticas.

  • PyTorch Geometric Es una biblioteca de extensión de aprendizaje profundo geométrico para PyTorch. El deep learning geométrico tiene como objetivo construir redes neuronales que puedan aprender de datos no euclidianos como los gráficos. Los enfoques de Graph network-based machine-learning han sido de creciente interés en el modelo de redes sociales y en los campos biomédicos, específicamente en el descubrimiento de fármacos. PyTorch Geometric proporciona una biblioteca fácil de usar para diseñar complicados problemas de gráficos como la representación de estructuras de proteínas. Tiene soporte para GPU y CPU e incluye una buena colección de algoritmos de graph-based machine-learning y en investigaciones recientes.

  • Los micro frontends han ido haciéndose cada vez más populares desde que se introdujeron por primera vez. Sin embargo, es sencillo caer en la anarquía de micro frontends si los equipos fallan en mantener la consistencia en toda la aplicación, desde las técnicas de estilo a la gestión de estados. Qiankun, que significa cielo y tierra en Chino, es una biblioteca de JavaScript construida para proveer una solución out-of-the-box para este problema. Qiankun está basado en single-spa, de manera que permite que diferentes marcos de trabajo coexistan en una única aplicación. También provee aislación de estilos y un entorno de pruebas de Javascript para asegurar que el estilo o estado de las microaplicaciones no interfieren con los de otras. Qiankun ha recibido cierta atención en la comunidad; nuestros equipos también lo están probando, con la esperanza de que pueda soportar una depuración más amigable.

  • Con el creciente interés — y viabilidad — de las aplicaciones 3D y de realidad extendida (XR) en los navegadores web, nuestros equipos han estado experimentando con React Three Fiber para desarrollar experiencias 3D en la web. React Three Fiber es una biblioteca que toma el modelo de componentes y estados de React.js y lo traduce a objetos 3D renderizados con la biblioteca Three.js. Este enfoque abre la programación web en 3D a un grupo más amplio de desarrolladores que ya están familiarizados con React.js y el abundante ecosistema de herramientas y bibliotecas que lo rodean. Sin embargo, al desarrollar aplicaciones con React Three Fiber, nuestros equipos a menudo tienen que manipular la escena 3D imperativamente. Esto no combina bien con el paradigma de componentes que proporciona React. No hay forma de escapar a la necesidad de entender los mecanismos básicos de renderizado 3D. El comité aún no ha decidido si React Three Fiber ofrece suficiente abstracción para justificar su aprendizaje o si es mejor trabajar con Three.js directamente.

  • Tauri es una alternativa de Electron para construir aplicaciones de escritorio utilizando una combinación de herramientas de Rust y HTML, CSS y JavaScript renderizados en el System's WebView. A diferencia de Electron, que incluye Chromium, las aplicaciones construidas con Tauri aprovechan el WebView subyacente, es decir, WebKit en macOS, WebView2 en Windows y WebKitGTK en Linux. Este enfoque tiene interesantes ventajas y desventajas: por un lado, obtiene binarios de aplicación pequeños y rápidos; por otro, es necesario verificar las peculiaridades de compatibilidad entre los WebViews de diferentes sistemas.

  • Transloco es una librería para Angular para construir aplicaciones multilingües. Puede ser usada en plantillas y ofrece una función para cubrir casos de uso más complejos. Debido a que las traducciones se cargan a demanda en tiempo de ejecución, Transloco facilita la implementación del cambio de idioma en el navegador web. También cubre localización de números, fechas, y más usando pipes de plantilla.

Resistir ?

 
Nuevo
Modificado
Ningún cambio

¿No encontraste algo que esperabas ver?

 

Cada edición del Radar presenta noticias que reflejan lo que hemos encontrado durante los seis meses anteriores. Es posible que ya hayamos cubierto lo que busca en un Radar anterior. A veces seleccionamos cosas simplemente porque hay demasiadas de las que hablar. También es posible que falte algún dato porque el Radar refleja nuestra experiencia, no se basa en un análisis exhaustivo del mercado.

¿No encontraste algo que esperabas ver?

 

Cada edición del Radar presenta noticias que reflejan lo que hemos encontrado durante los seis meses anteriores. Es posible que ya hayamos cubierto lo que busca en un Radar anterior. A veces seleccionamos cosas simplemente porque hay demasiadas de las que hablar. También es posible que falte algún dato porque el Radar refleja nuestra experiencia, no se basa en un análisis exhaustivo del mercado.

Radar

Descargar el Radar Tecnológico Volumen 25

 

English | Español | Português | 中文

Radar

Mantente informada sobre tecnología

 

Suscríbete ahora

Visita nuestro archivo para leer los volúmenes anteriores