Agregador de canales de noticias
Cómo renderizar gráficos y formas personalizadas usando el Canvas de Jetpack Compose
A veces, los componentes estándar de la interfaz de usuario se quedan cortos cuando necesitamos un control absoluto sobre la representación visual de nuestra aplicación. Ya sea que quieras diseñar un gráfico de estadísticas detallado, un personaje para un videojuego o simplemente una forma geométrica caprichosa, el uso de lienzos digitales es la herramienta definitiva para lograrlo.
Con la llegada de Jetpack Compose, la manera de pintar en la pantalla de Android ha dado un giro radical. Hemos pasado de un sistema tedioso y basado en clases heredadas a un modelo declarativo mucho más ágil, donde dibujar un círculo o una línea es casi tan natural como añadir un botón a la pantalla, eliminando gran parte de la complejidad técnica de antaño. Para profundizar en esto, puedes consultar la guía completa de Jetpack Compose.
Fundamentos del Dibujo en ComposePara empezar a dar color a nuestra app, lo más habitual es recurrir a los modificadores de dibujo. Entre los más destacados tenemos Modifier.drawBehind, ideal para colocar elementos bajo el contenido principal, Modifier.drawWithContent y Modifier.drawWithCache. Este último es una joya cuando trabajamos con elementos costosos de procesar, ya que permite almacenar los objetos creados y no regenerarlos a menos que el área de dibujo cambie de tamaño. Si necesitas más control, existen diversas formas de crear modificadores personalizados para optimizar la UI.
Si lo que buscas es un componente dedicado exclusivamente al dibujo, el elemento componible Canvas es la opción más directa. En realidad, es un envoltorio simplificado de drawBehind que nos permite integrar el lienzo en nuestra jerarquía de UI como cualquier otro elemento. Lo mejor de todo es que Compose se encarga de gestionar la configuración del objeto Paint, evitándonos esos dolores de cabeza sobre el rendimiento que eran tan comunes en el sistema de vistas tradicional.
Todo este proceso ocurre dentro de un entorno llamado DrawScope. Este espacio nos proporciona información vital en tiempo real, como el objeto size, que nos indica las dimensiones exactas del área de dibujo disponible, permitiéndonos adaptar nuestros gráficos al tamaño de la pantalla del dispositivo.
El Mapa de Coordenadas y PosicionamientoPara que nuestros dibujos no acaben en cualquier lugar, es fundamental entender que el origen se sitúa en el píxel superior izquierdo. A medida que el valor de X crece, nos movemos hacia la derecha, y cuando Y aumenta, bajamos por la pantalla. Es como un mapa donde cada píxel tiene su dirección exacta.
Un detalle crucial es que todas las operaciones se realizan en píxeles. Para evitar que un círculo se vea gigante en un teléfono y diminuto en una tablet, debemos convertir los valores dp usando la función .toPx() o basar nuestros cálculos en fracciones del tamaño total del lienzo, asegurando así una coherencia visual en cualquier densidad de pantalla.
Transformaciones GeométricasCompose nos permite manipular los elementos dibujados sin alterar el diseño general de la app. Podemos usar DrawScope.scale() para ampliar o reducir el tamaño de las figuras mediante un factor multiplicador. Por ejemplo, si queremos que un círculo sea diez veces más grande en el eje X, basta con aplicar esta transformación en el bloque lambda correspondiente.
Si necesitamos mover la figura, entra en juego DrawScope.translate(), que desplaza el dibujo hacia arriba, abajo, izquierda o derecha según los píxeles indicados. Para darle dinamismo, DrawScope.rotate() permite girar los elementos alrededor de un punto de pivote, lo cual es esencial para crear animaciones fluidas en Jetpack Compose o interfaces más orgánicas.
Cuando las cosas se complican y necesitamos aplicar varias de estas acciones a la vez, lo más eficiente es usar DrawScope.withTransform(). En lugar de anidar múltiples llamadas que obligarían a Compose a recalcular cada paso, esta función agrupa todas las transformaciones en una sola operación, optimizando notablemente el rendimiento del renderizado.
Operaciones de Dibujo ComunesEl catálogo de funciones es amplísimo. Para las formas más sencillas, contamos con drawCircle, drawRect y drawRoundRect. Estas funciones nos permiten definir colores, radios y tamaños de forma inmediata. Si queremos que una figura no esté rellena, simplemente aplicamos el estilo Stroke, definiendo el grosor del trazo para crear contornos elegantes.
Para crear formas más complejas, como un triángulo o una estrella, utilizamos DrawScope.drawPath(). Una ruta es básicamente una serie de instrucciones matemáticas; empezamos con moveTo() para situarnos y luego usamos lineTo() para trazar los segmentos hasta cerrar la figura. Es la herramienta perfecta para cualquier gráfico personalizado que no encaje en las formas básicas.
En cuanto al texto, aunque lo normal es usar el componente Text, a veces necesitamos dibujarlo manualmente dentro del Canvas. Para ello, empleamos rememberTextMeasurer, que nos permite calcular el tamaño exacto que ocupará la cadena de caracteres antes de renderizarla con drawText(). Esto es vital si queremos aplicar un estilizado avanzado de texto que se ajuste exactamente al tamaño de las palabras.
Si necesitamos insertar imágenes, cargamos un ImageBitmap mediante imageResource() y lo proyectamos en el lienzo usando drawImage(). Para los casos más extremos donde necesitemos acceder a la API de Android nativa, Compose ofrece drawIntoCanvas, que nos devuelve el objeto Canvas original para ejecutar comandos de bajo nivel.
El Enfoque Moderno frente al Sistema LegacyAntiguamente, crear gráficos requería extender la clase View y sobreescribir el método onDraw(Canvas canvas). Era un proceso mucho más verboso donde debíamos gestionar manualmente el objeto Paint y preocuparnos por el ciclo de vida de la vista. Aunque este método sigue funcionando, se considera «Legacy» debido a su rigidez y la complejidad de la interoperabilidad con vistas XML.
La gran diferencia es que Compose es declarativo y mucho más conciso. No hace falta crear clases externas ni gestionar estados complejos de dibujo; todo se integra naturalmente en la UI. Mientras que el sistema antiguo era ideal para gráficos estáticos simples, el Canvas de Compose brilla especialmente en la creación de componentes dinámicos y animaciones avanzadas, como barras de progreso personalizadas o indicadores de estadísticas que reaccionan en tiempo real.
Implementación de gestos complejos (swipes, arrastres y zoom) en Compose
Si te estás metiendo en el mundo de Jetpack Compose, te habrás dado cuenta de que hacer que una aplicación se sienta fluida y natural no es moco de pavo. No basta con poner un botón que cambie de color; la verdadera magia ocurre cuando el usuario puede deslizar, pellizcar o arrastrar elementos con una precisión quirúrgica. Dominar el manejo gestual es lo que diferencia a una app mediocre de una que parece sacada de la tienda de Apple o Google.
Para lograr esto, Compose nos ofrece un abanico de herramientas que van desde lo más sencillo hasta lo más técnico. No hace falta reinventar la rueda en cada pantalla, pero sí saber exactamente cuándo usar un modificador estándar y cuándo meterse en el barro de los eventos de puntero. En este artículo vamos a desglosar cada nivel de control para que tus interfaces respondan exactamente como tú quieres.
Conceptos fundamentales: Punteros, eventos y gestosAntes de tirar código, hay que tener claros los términos. Un puntero es básicamente cualquier cosa física que usamos para tocar la pantalla, ya sea el dedo, un lápiz óptico o incluso un ratón en tablets. Compose clasifica esto mediante PointerType para saber con qué estamos interactuando.
Por otro lado, un evento de puntero es la unidad mínima de interacción; es ese instante preciso en el que pones el dedo sobre el cristal. Toda la chicha de esta interacción se guarda en la PointerEvent. Ahora bien, un gesto es algo más complejo: es una serie de eventos organizados que el sistema interpreta como una acción concreta, como un toque rápido o un arrastre prolongado.
Niveles de abstracción en el manejo gestualCompose es muy inteligente y nos da tres capas para gestionar los gestos, y la regla de oro es: usa siempre la capa más alta que resuelva tu problema.
- Componentes integrados: Es el nivel más fácil. Elementos como Button o LazyColumn ya traen la lógica de clic o desplazamiento inyectada de serie.
- Modificadores de gestos: Si necesitas que un Box sea interactivo, usas modificadores como clickable o verticalScroll. Estos no solo detectan el toque, sino que añaden semántica de accesibilidad y efectos visuales.
- Modificador pointerInput: Aquí es donde ocurre la magia pesada. Si necesitas algo muy loco, como un arrastre que solo se active tras mantener presionado con tres dedos, tienes que usar este modificador para acceder a los eventos en bruto.
Cuando entramos en el terreno de pointerInput, nos encontramos con el awaitPointerEventScope. Este entorno nos permite suspender la corrutina hasta que ocurra un evento. Si quieres detectar toques y arrastres en el mismo elemento, ten cuidado: funciones como detectTapGestures bloquean la corrutina, impidiendo que otros detectores se ejecuten. La solución es simple: añade varios modificadores pointerInput independientes en lugar de uno solo con varias funciones.
Para gestionar el ciclo de vida de un gesto, lo ideal es usar awaitEachGesture. Este método reinicia la escucha cada vez que todos los dedos se levantan de la pantalla, marcando el final de la acción. Además, para interacciones multitáctiles como el zoom, Compose ofrece herramientas como calculateZoom y calculatePan, que nos ahorran tener que hacer cálculos matemáticos complejos con las coordenadas de cada dedo.
El flujo y consumo de eventosUn problema típico es cuando tienes un botón dentro de una lista y ambos quieren reaccionar al toque. Para evitar peleas, Compose usa un sistema de tres pases de propagación>:
- Pase Inicial: El evento baja desde la raíz hasta el hijo. Permite que un padre intercepte la acción antes que el hijo.
- Pase Principal: El evento sube desde el hijo hacia la raíz. Es donde ocurre la mayoría de la acción y donde se consumen los gestos.
- Pase Final: El evento vuelve a bajar. Sirve para que el padre reaccione a que el hijo ya ha consumido el evento, útil por ejemplo para quitar el efecto de rizo de un botón si la lista empezó a hacer scroll.
Es vital que, al crear gestos propios, llames a PointerInputChange.consume(). Si no lo haces, el evento seguirá propagándose y podrías terminar activando dos acciones distintas al mismo tiempo, lo cual es un desastre para la experiencia de usuario.
Estrategias de arrastre y deslizamiento (Swipes)Para mover cosas en la pantalla, tenemos dos caminos. El modificador draggable es genial para una sola dirección y te da la distancia en píxeles, pero recuerda que no mueve el elemento por sí solo; tú debes actualizar el estado y usar Modifier.offset para reflejar el movimiento.
Si buscas algo más avanzado como el clásico «deslizar para borrar», la opción es anchoredDraggable (que sustituyó al antiguo swipeable). Este sistema permite definir puntos de anclaje y umbrales de sensibilidad, haciendo que el elemento «salte» a una posición específica una vez que el usuario ha deslizado lo suficiente.
Diseño adaptable y ergonomía táctilNo podemos hablar de gestos sin hablar de dónde ponemos los dedos. En un móvil, el pulgar llega fácilmente a la parte inferior, por lo que un NavigationBar es lo ideal. Pero en una tablet, el usuario suele sujetar el dispositivo por los lados, haciendo que un Navigation Rail sea mucho más cómodo.
Utilizando la librería de Material 3 Adaptive, podemos usar el NavigationSuiteScaffold para que la navegación cambie automáticamente según el tamaño de la ventana. Para aprovechar el espacio en pantallas grandes, el patrón ListDetailPaneScaffold es la joya de la corona, permitiendo mostrar una lista y el detalle del elemento lado a lado, navegando entre paneles de forma fluida con un BackHandler bien configurado.
Tráiler de lanzamiento de Star Fox (Nintendo Switch 2)
Guía definitiva del patrón MVVM (Model-View-ViewModel) en Android
Si te dedicas a programar aplicaciones, ya sea para móviles o escritorio, seguramente te habrás topado con el caos que surge cuando el código de la interfaz y la lógica de negocio están mezclados en un solo archivo. Esa sensación de que un pequeño cambio visual rompe todo el funcionamiento es lo que impulsa la necesidad de adoptar arquitecturas sólidas que pongan orden al despliegue de software.
El patrón MVVM, o Model-View-ViewModel, surge precisamente para solucionar este problema, permitiendo que los diseñadores y los desarrolladores trabajen sin pisarse los pies. No es una novedad absoluta, ya que lleva rondando los 20 años desde sus inicios en el ecosistema de Microsoft, pero hoy en día es la piedra angular de frameworks modernos como React, Vue o Angular, además de ser fundamental en el desarrollo con Android Jetpack.
¿En qué consiste exactamente el patrón MVVM?En esencia, MVVM es una estructura diseñada para que la interfaz de usuario sea totalmente independiente de la lógica. A diferencia de otros modelos, aquí no volcamos la inteligencia del programa en el código subyacente de la vista (el famoso code-behind), sino que creamos un puente intermedio llamado ViewModel.
Este enfoque permite que la vista sea «tonta», limitándose a mostrar datos y enviar eventos, mientras que el ViewModel se encarga de preparar la información en un formato digerible para la pantalla. De esta manera, si decides cambiar un botón por un menú desplegable, no tienes que reescribir la lógica de negocio, solo ajustar el enlace visual.
Desglose de los componentes principalesPara entender cómo funciona este sistema, debemos analizar sus tres pilares fundamentales y cómo se comunican entre sí:
- El Modelo (Model): Representa la capa de datos y las reglas de negocio. Aquí encontramos los objetos de transferencia de datos (DTO), entidades de base de datos con Room o servicios externos. Su característica principal es que no tiene idea de que existe una interfaz, lo que lo hace reutilizable en cualquier contexto.
- La Vista (View): Es la capa visual, ya sea en XAML, XML de Android o HTML. Su única misión es definir la estructura y apariencia. En un flujo ideal, la vista no contiene lógica de negocio, solo instrucciones de diseño y enlaces a los datos del ViewModel.
- El Modelo de Vista (ViewModel): Es el cerebro intermedio. Expone propiedades y comandos que la vista puede consumir. Su función es transformar los datos del modelo para que la vista los muestre sin complicaciones, manteniendo siempre la ignorancia sobre cuál es la vista concreta que lo está utilizando.
La magia ocurre en la comunicación: la vista conoce al ViewModel, y el ViewModel conoce al Modelo. Sin embargo, el modelo no conoce a nadie y el ViewModel no tiene referencias directas a la vista, lo que rompe el acoplamiento y permite que cada pieza evolucione por su cuenta.
Diferencias con MVC y MVPEs común confundir MVVM con sus hermanos MVC y MVP. En el MVC tradicional, el controlador actúa como pegamento, pero en Android suele acabar muy vinculado a la Activity, lo que hace que escribir pruebas unitarias sea una pesadilla y el código se vuelva quebradizo.
Por otro lado, el MVP introduce la figura del Presenter. Este es más limpio que el controlador de MVC porque se comunica con la vista a través de una interfaz, permitiendo simular la UI en los tests. No obstante, los Presenters tienden a engordar con el tiempo, acumulando demasiada lógica de presentación que se vuelve difícil de gestionar.
MVVM lleva esto un paso más allá gracias al enlace de datos reactivo (Data Binding). Mientras que en MVP el Presenter debe decirle a la vista exactamente qué cambiar (ej. «pon este texto en el label»), en MVVM la vista se suscribe a una variable y se actualiza sola cuando el valor cambia, reduciendo drásticamente la cantidad de código repetitivo.
Implementación técnica y herramientas clavePara que MVVM funcione, necesitamos mecanismos que notifiquen los cambios. En el ecosistema .NET, esto se logra mediante la interfaz INotifyPropertyChanged, que lanza un evento cada vez que una propiedad cambia, avisando a la vista que debe refrescarse.
En Android, se utilizan herramientas de Jetpack como LiveData y ViewModel. El LiveData es un contenedor de datos observable que respeta el ciclo de vida de la aplicación, evitando que la app se cierre inesperadamente si intentamos actualizar una pantalla que ya no está visible.
Otro elemento vital son los comandos (ICommand). En lugar de usar manejadores de eventos tradicionales en la vista, el ViewModel expone comandos que encapsulan la acción a ejecutar. Así, el botón de la interfaz solo dice «ejecuta este comando», y el ViewModel decide qué ocurre detrás, independientemente de si el disparo vino de un clic o de un gesto táctil.
Ventajas y retos al adoptar MVVMImplementar este patrón trae beneficios evidentes, como una testabilidad superior, ya que puedes probar toda la lógica del ViewModel sin necesidad de lanzar un emulador o abrir una ventana de Windows. Además, facilita el trabajo en equipo, permitiendo que el diseñador de UI pula la estética mientras el programador optimiza la lógica.
Sin embargo, no todo es color de rosa. MVVM tiene una curva de aprendizaje más pronunciada para quienes vienen de programar de forma lineal. En proyectos extremadamente pequeños, puede sentirse como una sobrecarga innecesaria, ya que requiere crear más clases y archivos para una funcionalidad sencilla.
- Sugerencia de oro: Para evitar que el XML de la vista se llene de lógica compleja, intenta que los valores ya vengan calculados desde el ViewModel. No pongas condiciones complicadas en la vista; haz que el ViewModel exponga un booleano simple como «isVisible».
- Cuidado con las dependencias: Nunca referencies elementos de la UI (como un botón o un campo de texto) dentro del ViewModel. Si haces esto, destruyes la capacidad de hacer tests y vuelves al problema del acoplamiento fuerte.
Esta arquitectura logra que la gestión de datos y la representación visual sigan caminos paralelos pero coordinados. Al delegar la responsabilidad de la interfaz al Data Binding y la lógica al ViewModel, conseguimos sistemas robustos donde la escalabilidad no se convierte en un dolor de cabeza y el mantenimiento se simplifica al tener cada pieza de código en su lugar correspondiente.
Cómo implementar Inyección de Dependencias de forma sencilla usando Hilt
Si alguna vez has sentido que tu código de Android se está volviendo un caos de instanciaciones manuales, no estás solo. Gestionar las dependencias a mano es un auténtico dolor de cabeza, ya que te obliga a construir cada clase y sus requisitos uno por uno, usando contenedores que acaban siendo laberintos difíciles de mantener. Aquí es donde entra en juego Hilt, una joya de biblioteca diseñada específicamente para quitarte de encima todo ese trabajo repetitivo y aburrido.
Básicamente, Hilt se monta sobre los hombros de Dagger, aprovechando su potencia y seguridad en tiempo de compilación, pero envolviéndolo todo en una capa mucho más amigable para los desarrolladores de Android. En lugar de pelearte con la configuración compleja de Dagger, Hilt te ofrece estándares ya definidos y contenedores automáticos que se adaptan a los ciclos de vida de tu app, permitiéndote centrarte en lo que de verdad importa: hacer que tu aplicación funcione de maravilla.
Manos a la obra: Configuración inicialPara empezar a usar Hilt, lo primero es dejar el terreno listo en Gradle. No te olvides de añadir el complemento hilt-android-gradle-plugin en el archivo build.gradle raíz de tu proyecto. Una vez hecho esto, debes aplicar el plugin en el archivo de tu módulo app y añadir las dependencias necesarias, incluyendo el compilador de Hilt. Un detalle fundamental es que, para que todo ruede sin problemas con Jetpack Compose, tu proyecto debe estar configurado para Java 17, algo que debes especificar claramente en tu archivo de configuración de la app.
El corazón de la app: La clase ApplicationCualquier proyecto que quiera aprovechar Hilt debe tener una clase Application personalizada. El truco está en añadirle la anotación @HiltAndroidApp. Esta pequeña línea de código es la que activa toda la magia de la generación de código de Hilt, creando una clase base que actúa como el contenedor de dependencias maestro a nivel de aplicación. Al estar ligada al ciclo de vida del objeto Application, este componente es la raíz de todo; cualquier otro componente de la app podrá acceder a las dependencias que se definan aquí.
Cómo inyectar dependencias en los componentes de AndroidUna vez que la clase Application está lista, puedes empezar a meter mano en el resto de las clases. Para que Hilt sepa dónde debe suministrar dependencias, utilizamos la anotación @AndroidEntryPoint. Esta anotación es compatible con una gran variedad de clases, como Activities, Fragments, Views, Services y BroadcastReceivers. En el caso de Jetpack Compose, no hace falta anotar cada función componible, basta con que la Activity raíz tenga el @AndroidEntryPoint para que toda la jerarquía de la interfaz de usuario pueda acceder a los ViewModels inyectados.
Para pedirle a Hilt que nos dé una instancia concreta de algo, usamos la anotación @Inject para realizar la inyección de campo. Eso sí, ten mucho cuidado con un detalle: los campos inyectados no pueden ser privados, ya que si intentas hacer esto, el compilador te lanzará un error y no podrás generar la app.
Definiendo cómo se crean las dependenciasHilt necesita instrucciones claras sobre cómo proporcionar las instancias que solicitamos. La forma más directa es la inyección de constructor. Al añadir @Inject en el constructor de una clase, le estás diciendo a Hilt: «Mira, así es como se crea esta clase y estas son las piezas que necesita». Durante la compilación, Hilt y Dagger validan que no haya ciclos de dependencia ni piezas faltantes, asegurando que todo encaje perfectamente antes de que la app llegue al dispositivo.
Uso de Módulos: Cuando el constructor no es suficienteHabrá ocasiones en las que no puedas usar la inyección de constructor, por ejemplo, cuando trabajas con interfaces o clases de librerías externas como Retrofit u OkHttpClient. Para solucionar esto, recurrimos a los módulos de Hilt, que son clases anotadas con @Module. Estos módulos deben ir acompañados de @InstallIn para indicar en qué componente de Android estarán disponibles las dependencias.
- Uso de @Binds: Se emplea principalmente para interfaces. Creamos una función abstracta que le indica a Hilt qué implementación concreta debe usar cuando alguien pida una interfaz específica.
- Uso de @Provides: Es la solución ideal para clases que no son nuestras o que requieren una configuración compleja (como el patrón Builder). Aquí escribimos el cuerpo de la función para instanciar el objeto manualmente y devolverlo.
A veces necesitamos dos versiones del mismo tipo de objeto, como dos clientes de OkHttpClient con diferentes interceptores. Para evitar que Hilt se confunda, creamos calificadores personalizados mediante anotaciones propias marcadas con @Qualifier. De este modo, podemos etiquetar cada proveedor y pedir la versión exacta que necesitamos en el punto de inyección. Es una regla de oro aplicar el calificador en todas las rutas de suministro para evitar errores inesperados.
Además, Hilt ya nos regala algunos calificadores muy útiles para no tener que crearlos desde cero, como @ApplicationContext y @ActivityContext, que nos permiten inyectar el contexto de la aplicación o de la actividad de forma sencilla y segura.
Componentes, Ciclos de Vida y AlcancesHilt genera automáticamente componentes que viven y mueren junto con las clases de Android. Por ejemplo, el SingletonComponent vive tanto como la aplicación, mientras que el ActivityComponent se destruye al morir la actividad. Esto es vital para gestionar la memoria de la app.
Por defecto, Hilt crea una instancia nueva cada vez que se pide una dependencia. Si queremos que se mantenga la misma instancia durante todo el ciclo de vida de un componente, usamos anotaciones de alcance como @Singleton, @ActivityScoped o @ViewModelScoped. Eso sí, no abuses de esto, ya que mantener objetos en memoria puede elevar el consumo de recursos si no es estrictamente necesario.
Casos especiales: @AssistedInject y Puntos de EntradaCuando necesitamos inyectar valores que solo conocemos en tiempo de ejecución (como un ID que viene en un Intent), utilizamos @AssistedInject. Esto nos permite combinar dependencias gestionadas por Hilt con parámetros proporcionados manualmente a través de una Factory. Por otro lado, si necesitamos inyectar dependencias en clases que Hilt no soporta nativamente, como los ContentProviders, creamos un @EntryPoint. Este actúa como un puente que permite al código no administrado acceder al grafo de dependencias de Hilt mediante EntryPointAccessors.
Hilt frente a DaggerAunque Hilt se basa en Dagger, su objetivo es eliminar la verbosidad. Mientras que en Dagger tendrías que escribir manualmente los componentes y gestionar la infraestructura, Hilt automatiza la creación de componentes y ofrece vinculaciones predefinidas. Ambos pueden convivir en el mismo proyecto, pero lo ideal es dejar que Hilt tome el mando para lograr un código más limpio, legible y fácil de testear.
Al implementar esta arquitectura, conseguimos que nuestra aplicación sea modular, fácil de mantener y extremadamente flexible para realizar pruebas unitarias. El uso de contenedores automatizados, la gestión inteligente de los alcances y la capacidad de integrar dependencias externas convierten a esta herramienta en la opción predilecta para cualquier desarrollo moderno en Android.
Hace dos años que dejé de usar Safari en Mac porque me era imposible usarlo. Le he dado otra oportunidad y he durado diez minutos
No fue una decisión planificada. Simplemente abrí Safari tras actualizar a la beta macOS 27 Golden Gate y pensé: "voy a darle una oportunidad otra vez". No había mucho más que eso, solo una mezcla de nostalgia y esperanza. Diez minutos después, estaba abriendo Brave de nuevo.
He intentado querer a Safari. De verdad. En el iPhone ya lo uso y en el Mac lo veo como un navegador limpio, bonito y rápido (cuando puede). Pero usarlo en mi día a día, con las páginas que visito y las herramientas que necesito, sigue siendo una experiencia frustrante. Por muy integrado que esté con el sistema y por muy eficiente que sea en términos de batería, no me sirve.
Por qué dejé de usar Safari hace dos años {"videoId":"x883ph8","autoplay":true,"title":"Desde CHROME a VIVALDI: los 7 MEJORES NAVEGADORES a ELEGIR", "tag":"webedia-prod", "duration":"475"}Durante mucho tiempo, Safari fue mi navegador principal en Mac. Su diseño siempre me ha parecido impecable: tipografías claras, animaciones suaves, integración con el sistema. Nada de botones innecesarios ni barras recargadas. Un navegador hecho para estar ahí sin molestar. Pero al final la balanza se desequilibró cuando empecé a usar el navegador como mi principal e insustituible herramienta de trabajo.
Muchas de las webs que utilizo a diario, especialmente para trabajar, están pensadas para otros motores de navegación. WebKit, el motor de Apple que impulsa a Safari, es cada vez menos prioritario para muchos desarrolladores web. Si algo funciona en Chromium o Firefox, lo dan por bueno. Pero si rompe en Safari… ya lo arreglarán algún día. Y si ese día no llega nunca, pues ajo y agua.
Aquello me dejó fuera de juego hace dos años. Formularios que no cargaban bien, interfaces que se descolocaban, reproductores de vídeo que no respondían como debían... No eran errores críticos, pero se acumulaban y al final la experiencia era simplemente mala. Por eso decidí dar el salto.
A la caza de mi nuevo navegador BraveConsciente de que Safari no me servía y debía buscar alternativas, mi primer intento serio fue con Firefox. Siempre me ha gustado su filosofía y a efectos de nostalgia, debía ser el primero. Fue mi navegador durante los años 2000 cuando era usuario de Windows (perdóname, Steve Jobs) y creí que no iría mal en macOS en pleno 2024.
Y no, Firefox no iba mal, pero su interfaz me resultaba demasiado densa. Demasiadas opciones y demasiadas configuraciones.
Después probé Opera, más por curiosidad que por otra cosa. Me gustó su diseño, pero sentí que estaba pensado para otro tipo de usuario. Demasiadas capas, extensiones integradas que no necesitaba, una VPN que no quería usar, una IA que no me aportaba demasiado... Me cansó muy rápido.
En Applesfera El primer susto con macOS 27: una app incompatible y cómo prepararte para lo que vieneVolví entonces a lo fácil: Chrome. Es el más utilizado y sabía que funcionaría. Pero también sabía lo que implica: batería drenada, RAM por las nubes, y una sensación constante de estar usando algo funcional pero sin alma. Duré unas semanas.
Y entonces llegué a Brave. Basado en Chromium, con lo bueno de Chrome pero sin (parte de) lo malo de Chrome. Minimalista, rápido y un rendimiento más que aceptable en cualquiera de mis dos Mac (MacBook Air M1 con 8 GB y Mac mini M2 Pro con 16 GB). No tiene el mismo nivel de integración que Safari, pero cumple. Y sobre todo, no me falla.
Vuelta al ruedo de Safari con macOS 27Con la llegada de macOS 27 Golden Gate, decidí probar la beta en mi MacBook Air y pensé que era el momento perfecto para darle otra oportunidad a Safari. Al abrirlo, la primera impresión fue la de siempre: qué bien se ve y qué bien se siente. Todo está en su sitio y nada sobra. Visualmente sigue siendo, para mí, el mejor navegador que hay, sin discusión.
Además, se han añadido interesantes mejoras como la gestión de pestañas inteligente o una IA agéntica capaz de crear extensiones con lenguaje natural o avisarnos de cambios en una web. Todo pintaba de maravilla.
Safari mejora con macOS 27 Golden Gate, pero sigue siendo insuficiente para míEse MacBook lo uso como secundario o en viajes, por lo que Safari parecía tener sentido. No obstante, decidí probarlo también de nuevo en la última versión estable de macOS 26.5 Tahoe en otro Mac. De paso, podría apreciar las diferencias entre versiones. Y allí también se veía todo perfecto. O, mejor dicho, casi perfecto.
Muchas de las webs que uso para mi trabajo, redacciones online, gestores de contenido o el mismísimo Google Meet siguen sin estar optimizados para WebKit. Algunos cargan con fallos gráficos menores, otros directamente no permiten subir archivos o no funcionan bien.
En Applesfera Un programador pidió ayuda a Microsoft para activar Windows 10 y la respuesta fue invitarle a crackearlo. Apple lleva 14 años haciéndolo más fácilLa experiencia ya empezó rara, pero tampoco ayudó que muchas de las extensiones que venía usando en Brave no estuviesen disponibles para Safari. Sí, hay algunas adaptaciones y el sistema de extensiones ha mejorado, pero sigue yendo por detrás de Chromium. Y cuando dependes de ellas para ciertos flujos de trabajo, no tenerlas es algo que se siente y padece.
Lo de los diez minutos quizás no sea lo más exacto, pero no está lejos de ser literal. Apenas duré unos minutos en Safari y volví a Brave. Muy apenado, eso sí, sobre todo sabiendo que no depende ni de mí y ni siquiera de Apple.
Adiós Safari, aunque no sin resignaciónHe vuelto a Brave y no porque sea perfecto, sino porque es el que menos me estorba. En el equilibrio entre diseño, rendimiento y compatibilidad, es el que mejor encaja con lo que necesito ahora mismo. Safari me sigue pareciendo el navegador más elegante, pero eso no basta cuando falla en lo esencial. Y no imaginas la rabia que me da.
Más que un problema técnico, lo que sucede con el navegador nativo de macOS es una cuestión de prioridades. Apple cuida Safari, pero la mayoría de desarrolladores web se mueven en otra dirección y eso hace que quienes intentamos quedarnos en Safari tengamos que remar contra corriente.
Por mucha mejora que haga Apple, al final le corresponde a los desarrolladores webs optimizar sus páginas para SafariComo demuestran varias investigaciones, la inmensa mayoría de webs se optimizan en su mayoría para Chromium y luego ya muy por detrás para el resto. Y en cierto modo es entendible, ya que más de un 66% de usuarios usan Chrome como navegador de escritorio, dejando a Safari con apenas un 7%. Y aunque la estadística muestra a Brave en un 1%, la clave está en su motor, que es el mismo que el de Chrome.
Quizá algún día esa corriente cambie. O quizás Safari encuentre su hueco en otro tipo de uso. Pero en el mío, donde la optimización de mis webs de trabajo es fundamental, veo que no hay sitio para él. Y no es que sea un drama, pero me fastidia especialmente no poder nutrirme de una interfaz que me gusta infinitamente más que cualquier otra.
En Applesfera | Nuevo MacBook Pro táctil con pantalla OLED - Todo lo que creemos saber sobre el próximo portátil profesional de Apple
En Applesfera | Apple macOS: todas las versiones hasta la fecha, cómo saber la que estás usando y cómo actualizar el sistema operativo
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
Hace dos años que dejé de usar Safari en Mac porque me era imposible usarlo. Le he dado otra oportunidad y he durado diez minutos
fue publicada originalmente en
Applesfera
por
Álvaro García M.
.
Reino Unido le acaba de poner precio a las comisiones "abusivas" de la App Store: 3,4 millones de euros
3.000 millones de libras, que pasado a euros serían 3.480.165.000, es lo que deberá pagar Apple en Reino Unido por una demanda colectiva relacionada con las comisiones de la App Store. La justicia británica ha concluido que la compañía abusó de su posición dominante durante años.
{"videoId":"x96o9qy","autoplay":true,"title":"Más allá de la APP STORE- Instala MÁS TIENDAS de forma FÁCIL en tu iPhone", "tag":"", "duration":"435"}Precedentes. Apple lleva años bajo presión por su modelo de negocio de la App Store y aspectos como el de sus comisiones del 30%. Esto ha llevado a que la legislación en la Unión Europea le haya obligado a hacer cambios en su plataforma y ha levantado también investigaciones antimonopolio en países como Brasil, Japón, Estados Unidos o Reino Unido.
Precisamente es en Reino Unido donde se presentó una demanda colectiva con cientos de usuarios que sostenían que Apple había abusado de su posición dominante. Para ello, alegaban que la compañía imponía comisiones excesivas en la App Store y obligaba a pasar por su sistema de pagos, encareciendo aplicaciones y servicios digitales.
En Applesfera Las 11 mejoras de Apple Intelligence con iOS 27. Solamente hay una que no llegará a Europa (de momento)La sentencia. El Tribunal de Apelación de la Competencia británico (Competition Appeal Tribunal) ha dado ahora la razón a los demandantes. Según el tribunal, la compañía aplicó tarifas "excesivas e injustas" al mantener un sistema cerrado en el que los desarrolladores no tenían alternativas reales para llegar a los usuarios de iPhone y iPad.
La resolución considera que Apple estuvo años cobrando comisiones superiores a las que habría aplicado en un mercado competitivo. Han estimado que una comisión razonable habría sido de alrededor del 17,5% para distribución y del 10% para pagos dentro de las aplicaciones, frente al modelo habitual de hasta el 30% que aplicaba Apple durante parte del periodo analizado.
Por qué es importante. La sentencia afecta a una de las fuentes de ingresos más importantes de Apple, ya que la App Store se ha convertido en una pieza clave del ecosistema del iPhone y cualquier limitación a sus comisiones puede afectar tanto al dinero que genera la compañía como a las reglas que impone a los desarrolladores.
Además, el caso se suma a una ola de investigaciones y demandas contra las grandes tecnológicas por sus modelos de tienda digital. Para Apple, supone otro frente legal junto a las presiones regulatorias en Europa y Estados Unidos sobre si sus plataformas favorecen demasiado sus propios servicios y bloquean la competencia.
7 libras por usuario. Aunque la cifra total del caso ronda las 3.000 millones de libras, la compensación media estimada para cada usuario afectado será de alrededor de 7 libras. La cantidad exacta dependerá del resultado final del proceso y de cómo se distribuya la indemnización entre los demandantes.
Y ahora qué. Apple ha defendido que la sentencia "ofrece una visión equivocada" de cómo funciona su ecosistema de aplicaciones y ha mantiene que la App Store aporta seguridad, privacidad y herramientas para los desarrolladores.
La compañía ha intentado recurrir la decisión, aunque los tribunales británicos ya rechazaron inicialmente la idea de impugnarla por esa vía. El siguiente paso será determinar definitivamente el importe de los daños y cómo se repartirán entre los usuarios afectados.
Vía | BBC
Imagen de portada | Willfried Wende en Pexels y Applesfera
En Applesfera | Las 30 mejores aplicaciones para iPad con las que sacar el máximo rendimiento a tu tablet de Apple
En Applesfera | Nuevo iOS 27 - Todas sus novedades, iPhone compatibles y cómo probarlo antes que nadie
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
Reino Unido le acaba de poner precio a las comisiones "abusivas" de la App Store: 3,4 millones de euros
fue publicada originalmente en
Applesfera
por
Álvaro García M.
.
DRAGON BALL XENOVERSE 3 - Tráiler Bienvenidos a West City
Comunicación limpia entre Fragments usando un Shared ViewModel
Cuando nos metemos en el mundo del desarrollo de Android, uno de los quebraderos de cabeza más comunes es cómo hacer que dos pantallas, o fragmentos, se hablen entre sí sin que el código se convierta en un caos. Para que una aplicación sea escalable, lo ideal es que cada fragmento sea un componente totalmente independiente, con su propio diseño y comportamiento, evitando que dependan directamente unos de otros o de la actividad que los aloja.
Si queremos que la experiencia del usuario sea fluida, necesitamos canales de comunicación eficaces para reaccionar a eventos o compartir estados. Dependiendo de lo que busquemos, Android nos ofrece dos caminos principales: el uso de un ViewModel compartido para datos persistentes y la API de resultados de fragmentos para intercambios de información rápidos y sencillos.
Dominando el Shared ViewModelEl ViewModel es la herramienta estrella cuando necesitamos que varios fragmentos o la actividad anfitriona compartan la misma información. Básicamente, estos objetos se encargan de almacenar y gestionar los datos de la interfaz, asegurando que la información no se pierda aunque el dispositivo rote o cambie su configuración.
Para lograr que dos fragmentos utilicen la misma instancia, el truco está en definir el alcance del ViewModelProvider. Si configuramos la actividad como el dueño del alcance, ambos fragmentos recibirán el mismo objeto. Esto es fundamental porque, si por error usamos el fragmento como alcance, cada uno tendría su propia copia de los datos y la comunicación simplemente no funcionaría.
Es importante tener en cuenta que un ViewModel compartido en una arquitectura de actividad única actúa prácticamente como un singleton en memoria. Los datos persistirán hasta que la actividad sea destruida definitivamente, por lo que debemos gestionar bien el ciclo de vida de las Activity para no consumir recursos innecesariamente.
Implementación Práctica y Flujo de DatosImagina que estamos creando una app de pedidos. Necesitamos que el usuario elija la cantidad de productos en una pantalla, el sabor en otra y la fecha de entrega en una tercera. Para esto, creamos una clase OrderViewModel que extienda de ViewModel, donde guardamos las variables necesarias como el precio, la cantidad y la fecha.
Para mantener el código limpio y evitar que cualquier clase externa modifique los datos a su antojo, aplicamos una buena práctica: definimos propiedades mutables privadas con guion bajo (como _quantity) y exponemos una versión inmutable pública mediante LiveData. De este modo, solo el ViewModel puede cambiar el valor, pero cualquier fragmento puede observar el cambio.
Sincronización de la Interfaz con LiveData y Data BindingPara que la pantalla se actualice sola sin tener que escribir código repetitivo, entra en juego el Data Binding. Al vincular la variable del ViewModel directamente en el archivo XML, podemos hacer que elementos como los RadioButtons se marquen automáticamente si el valor coincide con el guardado en el modelo.
Un punto crítico aquí es la configuración del LifecycleOwner. Para que los observables de LiveData funcionen y la IU se refresque en tiempo real, debemos asignar binding.lifecycleOwner = viewLifecycleOwner. Sin este paso, aunque los datos cambien en el fondo, el usuario seguirá viendo la información antigua en su pantalla.
Cuando necesitamos procesar datos antes de mostrarlos, como convertir un número decimal en una moneda local, utilizamos Transformations.map(). Esta función nos permite transformar un LiveData<Double> en un LiveData<String> formateado, haciendo que la lógica de presentación quede separada de la lógica de negocio.
La API de Resultados de FragmentosNo siempre necesitamos un ViewModel complejo. Para casos donde solo queremos pasar un dato puntual (como un código QR escaneado) de vuelta a una pantalla anterior, la API de FragmentResult es la opción más ligera. Esta API utiliza el FragmentManager como un almacén central de resultados.
El proceso es sencillo: el fragmento que espera el dato configura un oyente con setFragmentResultListener() usando una clave específica. Mientras tanto, el fragmento que genera la información utiliza setFragmentResult() con esa misma clave. El resultado se entrega en cuanto el fragmento receptor alcanza el estado STARTED.
Si trabajamos con fragmentos secundarios, la clave es usar getChildFragmentManager() en el fragmento padre para escuchar los resultados. Esto mantiene la jerarquía organizada y evita que los datos se dispersen por toda la actividad, permitiendo una comunicación mucho más quirúrgica y eficiente.
Alternativas y enfoques tradicionalesAunque el ViewModel es la norma actual, existen métodos más antiguos que algunos desarrolladores siguen usando, como la implementación de interfaces personalizadas. En este esquema, el fragmento define una interfaz que la actividad debe implementar, actuando esta última como intermediaria entre dos fragmentos.
Otra técnica rudimentaria consiste en acceder a las vistas de un fragmento desde otro mediante el método getActivity().findViewById(). Sin embargo, este enfoque es altamente desaconsejado en aplicaciones modernas, ya que rompe totalmente la independencia de los fragmentos y provoca errores fatales si el fragmento objetivo no está visible o ha sido destruido.
La arquitectura moderna de Android prioriza que los componentes no se conozcan entre sí. Al delegar la gestión de los datos a un almacén externo como el ViewModel, logramos que el código sea más fácil de testear, mantener y escalar, evitando los típicos fallos de punteros nulos al intentar acceder a vistas que ya no existen en la jerarquía.
La clave para una navegación robusta reside en elegir la herramienta adecuada: el ViewModel compartido para estados complejos y persistentes, y la API de Fragment Result para respuestas rápidas y efímeras, asegurando siempre que el ciclo de vida de los componentes sea respetado para evitar fugas de memoria y errores de ejecución.
Introducción a Clean Architecture: Separando capas en tu aplicación Android
Cuando nos metemos de lleno en el desarrollo de aplicaciones para Android, nos damos cuenta de que mantener la escalabilidad y la legibilidad no es moco de pavo. Si no tenemos un plan arquitectónico sólido, el proyecto puede volverse un auténtico caos a medida que crece, convirtiéndose en lo que comúnmente llamamos código espagueti, donde tocar una línea en un sitio rompe algo en un lugar totalmente inesperado.
Para evitar estos dolores de cabeza, entra en juego la denominada Clean Architecture, popularizada por Robert C. Martin, más conocido como Uncle Bob. Este enfoque no es simplemente una moda, sino una filosofía de diseño que busca que el software sea modular, fácil de testear y mantenible a largo plazo, basándose en la separación estricta de responsabilidades y el respeto a los principios SOLID.
Los pilares de la Arquitectura LimpiaEn esencia, Clean Architecture organiza el código en capas concéntricas. La idea fundamental es que las dependencias siempre apunten hacia el interior; es decir, las capas externas pueden conocer a las internas, pero nunca al revés. Esto nos permite cambiar una base de datos o una librería de UI sin tener que reescribir la lógica de negocio central.
Generalmente, nos encontramos con tres bloques principales. Primero tenemos la Capa de Presentación, que es la cara visible de la app y donde se gestionan los ViewModels y la interfaz de usuario. Luego está la Capa de Dominio, que es el corazón del sistema y contiene las reglas de negocio, los modelos de entidad y los casos de uso. Por último, la Capa de Datos se encarga de la implementación concreta de los repositorios, gestionando las peticiones a APIs REST o las consultas a bases de datos locales.
Estructura y Modularización en KotlinSi queremos llevar esto a la práctica en un proyecto de Kotlin, no basta con crear carpetas. Para que la separación sea real, lo ideal es utilizar módulos de Gradle independientes. Esto evita que, por un descuido, importemos una clase de datos directamente en la vista, rompiendo así la regla de oro de la arquitectura.
Existen diversas formas de organizar estos módulos. Algunos optan por un enfoque simple de división por capas (un módulo para data, otro para domain y otro para presentation), pero esto puede quedarse corto en apps muy grandes. Una alternativa mucho más potente es la separación por características o features. En este modelo, cada funcionalidad de la app (por ejemplo, el perfil de usuario o el carrito de compras) tiene sus propias capas internas de dominio, datos y presentación.
Adoptar una estructura modularizada no solo pone orden, sino que dispara la productividad al conseguir tiempos de compilación más rápidos, ya que Gradle solo recompila los módulos que han sufrido cambios. Además, facilita enormemente el trabajo en equipo, permitiendo que distintos desarrolladores trabajen en features independientes sin pisarse los pies.
Anatomía detallada de las capasPara entrar en detalle, la capa de dominio debe ser absolutamente pura. Esto significa que no debe contener ninguna referencia a Android, ni a Room, ni a Retrofit. Aquí es donde residen los Interactors o Casos de Uso, que definen exactamente qué hace la aplicación. Por ejemplo, un caso de uso llamado «ObtenerDatosUsuario» se encargaría de coordinar la lógica necesaria para traer esa información.
La capa de datos, por su parte, es la que «ensucia“ las manos. Aquí implementamos las interfaces definidas en el dominio. Es muy común utilizar el patrón Repository para abstraer el origen de los datos. El repositorio puede decidir si sirve la información desde una caché local o si tiene que hacer una petición de red, manteniendo al resto de la aplicación totalmente ignorante sobre de dónde vienen los datos.
Finalmente, la capa de presentación se encarga de gestionar el estado de la UI. Ya sea usando MVVM con Jetpack Compose o el patrón MVP, su única misión es llamar a los casos de uso y mostrar el resultado al usuario de la forma más eficiente posible. Es vital que esta capa no interactúe directamente con la base de datos, pasando siempre por el dominio.
El secreto del éxito: La Inversión de DependenciasMuchos desarrolladores se confunden al intentar aplicar Clean Architecture porque no entienden la Inversión de Dependencias (DIP). No hay que confundirlo con la Inyección de Dependencias (DI), que es la herramienta para lograrlo. La inversión de dependencias consiste en que los módulos de alto nivel no dependan de los de bajo nivel, sino que ambos dependan de abstracciones.
Imaginemos que necesitamos guardar datos en una base de datos Room. Si la capa de datos depende directamente de la clase de Room, estamos acoplados. La solución es crear una interfaz de persistencia en el dominio. La capa de datos implementa esa interfaz y, gracias a la inyección de dependencias (usando herramientas como Koin o Hilt), el sistema le entrega al repositorio la implementación concreta en tiempo de ejecución. De este modo, si mañana decidimos cambiar Room por Realm, solo tenemos que cambiar la implementación sin tocar una sola línea de la lógica de negocio.
Consejos prácticos y buenas prácticasPara que el proyecto no se vuelva una pesadilla de archivos repetidos, es recomendable seguir ciertas pautas. En primer lugar, evita la tentación de simplificar eliminando la capa de casos de uso en proyectos medianos; aunque parezca código redundante, es ahí donde se centraliza la lógica y se facilita el cambio de hilos de ejecución (del hilo principal al background).
Otro punto clave es la gestión de los modelos. Aunque lo ideal sería tener un modelo de datos distinto para cada capa (modelos de API, modelos de dominio y modelos de UI) y usar mappers para convertirlos, en proyectos más pequeños se puede compartir la entidad de dominio para no complicar demasiado el desarrollo. No obstante, en aplicaciones empresariales, esta separación es la que permite que el código sea realmente resistente a los cambios externos.
Implementar este sistema requiere disciplina. Es fundamental separar siempre las interfaces de sus implementaciones, colocando las interfaces en el dominio y las implementaciones en la capa de datos o framework. Solo así conseguiremos un sistema donde las piezas sean como bloques de LEGO, fáciles de quitar y poner sin que todo el edificio se venga abajo.
Seis consejos fáciles para enfriar el iPhone en plena ola de calor
Cuento el tiempo que llevo usando iPhone en veranos, ya que es la época en la que más noto su presencia. Y no precisamente porque sea mi compañero en vacaciones, que también, sino porque se calienta hasta extremos en los que incluso aparece el famoso mensaje en pantalla de "el iPhone necesita enfriarse".
Lo bueno de la experiencia es que he aprendido cuáles son las mejores formas de enfriarlo. Ya te avanzo que no hay ninguna milagrosa que lo enfríe al instante (por supuesto, el refrigerador no es una opción) y que en algunos casos es tedioso porque tenemos que dejar que pase tiempo sin usarlo. Pero acaba siendo efectivo para que no nos achicharre la mano y evita que la batería y otros componentes se desgasten más rápido por el calor.
Índice de Contenidos (6)- Nada de fundas o bumpers
- Hay que apagarlo si es necesario
- Trata de usarlo lo menos posible
- Ponerlo en una superficie fría
- Nada de cargadores u otros cables
- No lo uses en el coche como GPS
Aunque normalmente suelo llevar el iPhone sin funda (es una osadía para muchos, lo sé), en ocasiones suelo llevarlo cubierto con una. Pero en verano y con una ola de calor, lo mejor es quitarle la funda, aunque sea durante unos minutos.
Al final, por muy buenos materiales que tenga la funda, estas suelen conducir el calor y provocan que tarde más en enfriarse. Así que lo mejor es quitarla por completo y dejar que el iPhone "respire desnudo" durante unos minutos.
Hay que apagarlo si es necesarioEl propio sistema del iPhone tiene un detector de temperatura que, cuando llega a su límite, ya lo apaga en cierto modo. Cuando sale ese mensaje de que el iPhone necesita enfriarse se paran todos los procesos y solamente se permite hacer uso del mismo para llamadas de emergencia.
No obstante, puede que no haya llegado a ese límite y ya lo notes demasiado caliente. En esos casos lo mejor es apagarlo por completo y mantenerlo así durante unos minutos hasta que notemos que ya se ha enfriado lo suficiente.
Trata de usarlo lo menos posibleSi no quieres apagarlo porque estás esperando una llamada o algo así, lo mejor es que mantengas el iPhone bloqueado sin hacer uso de ninguna aplicación que no sea necesaria. Contestar algún whatsapp rápido, atender una llamada y poco más. Ni qué decir que de utilizar aplicaciones exigentes como juegos, lo cual aumentará aún más la temperatura.
En Applesfera De poco sirve comprarte el mejor iPhone si no activas estos ajustes de la cámara. Los recomiendan los fotógrafos profesionales Ponerlo en una superficie fría {"videoId":"xa6iy18","autoplay":true,"title":"Estos ATAJOS para iPhone son una locura (Te cuento cómo usarlos)", "tag":"atajos", "duration":"796"}Ya decía que los refrigeradores y similares no son aconsejables porque el choque de temperatura puede ser fatal para el dispositivo. Lo que sí es aconsejable es poner el iPhone sobre una mesa u otro material frío. A veces sirve incluso el suelo si es de terrazo o algún otro material frío.
Lo que no se aconseja es ponerlo sobre superficies téxtiles como una cama, un sofá o algún suelo de madera. Básicamente porque, como comentaba con la funda, son materiales que retienen más el calor y dificultan su disipación, haciendo que el iPhone tarde más en enfriarse.
Nada de cargadores u otros cablesSalvo que sea estrictamente necesario porque no te queda batería y debes salir de casa o algo similar, ponerlo a cargar es una de las peores cosas que se pueden hacer cuando el iPhone está caliente. Lo que hará este proceso es aumentar aún más la temperatura porque la batería se calentará.
También es importante descartar la carga magnética y la rápida, ya que en esas circunstancias el iPhone también tiende a calentarse más de la cuenta.
Esto es aplicable también a procesos como la transferencia de datos por cable, ya sea con un ordenador o teniendo el iPhone conectado al coche. Y es que este proceso también carga la batería del iPhone y, aparte, le hace trabajar de más en la transferencia de datos.
No lo uses en el coche como GPSMuy al hilo de lo anterior, ya que esto se aplica tanto conectado al vehículo con CarPlay como colocado en un soporte de forma independiente, es mejor que en el coche no lo uses salvo que sea necesario. El uso del GPS consumirá más porque el iPhone estará continuamente tratando de ubicarse.
Aparte, solemos colocarlo en una posición en la que el sol le da directamente, por lo que el cóctel es perfecto para que la temperatura se dispare. Entre el esfuerzo extra que requiere la navegación y el calor que recibe desde el exterior, no es raro que termine sobrecalentándose antes de llegar al destino.
En Applesfera | Cuánta batería tiene el iPhone: modelos y cantidad de mAh en cada uno
En Applesfera | Nuevos iPhone 18 Pro y 18 Pro Max - Todo lo que creemos saber sobre ellos
-
La noticia
Seis consejos fáciles para enfriar el iPhone en plena ola de calor
fue publicada originalmente en
Applesfera
por
Álvaro García M.
.
El Prime Day tira por los suelos el precio de los AirPods 4. La diferencia entre modelos deja un ganador indiscutible
El Prime Day es una de las pocas fechas del año en las que el catálogo de Apple cae a precios difíciles de creer. Los AirPods son casi siempre de los primeros en aparecer en la lista de rebajas. Esta vez la oferta llega a los AirPods 4 en sus dos versiones, y la diferencia de precio entre una y otra deja una decisión bastante clara sobre cuál merece la pena.
Los AirPods 4 con cancelación activa de ruido bajan de 199 a 133,95 euros, mientras que la versión sin cancelación cae de 149 a 97,85 euros. Treinta y seis euros de diferencia final entre ambas. Con ese margen tan ajustado, la versión con cancelación de ruido se lleva nuestra recomendación.
{"videoId":"x95ewr8","autoplay":true,"title":"Introducing the all-new AirPods 4 Apple", "tag":"", "duration":"46"} La versión con cancelación de ruido, la que más compensaA 133,95 euros, estos AirPods 4 incluyen cancelación activa de ruido, audio adaptativo que ajusta el nivel de aislamiento según el entorno, modo de sonido ambiente para mantener la consciencia de lo que pasa alrededor, audio espacial personalizado y un estuche de carga USB-C que además admite carga inalámbrica.
Es la ficha completa de la gama, la que convierte unos auriculares de uso diario en algo mucho más versátil cuando toca viajar, trabajar en una oficina ruidosa o simplemente desconectar en el transporte público.
Hay un añadido más ahora que llega el verano: la traducción en tiempo real. Una función que aprovecha precisamente la cancelación de ruido para aislar las voces y traducir sobre la marcha. Esto ya de por sí justifica los poco más de treinta euros de diferencia con la versión básica.
La versión sin cancelación de ruido, a un precio de derriboA 97,85 euros, los AirPods 4 sin cancelación activa mantienen el chip H2, el audio espacial personalizado, la resistencia al agua y al sudor, el estuche de carga USB-C y hasta 24 horas de batería combinando auriculares y estuche.
Si buscas auriculares sobre todo para hacer deporte o moverte por la calle y prefieres escuchar lo que pasa a tu alrededor, esta es la opción. Aunque ojo, la versión con cancelación de ruido te permite activarla o desactivarla. Por eso, te recomendamos estos AirPods 4 solamente si vas muy justo de presupuesto o buscas un regalo económico. Sus 97 euros te dan toda la experiencia de Apple, con un gran sonido, a un precio que parecería propio de una marca de procedencia asiática.
Aun así, con una diferencia de apenas treinta y seis euros entre ambas versiones, la decisión depende menos del presupuesto y más de lo que busques: aislarte cuando conviene o mantenerte siempre pendiente del entorno. Para la mayoría de usos diarios, esos treinta euros extra por la cancelación de ruido y la traducción en tiempo real son más que suficientes para justificar la diferencia.
En Applesfera | Nuevo iPhone 18 - Todo lo que creemos saber sobre él
En Applesfera | Nuevos AirPods con cámaras: qué sabemos del inédito (y extraño) invento de Apple
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
El Prime Day tira por los suelos el precio de los AirPods 4. La diferencia entre modelos deja un ganador indiscutible
fue publicada originalmente en
Applesfera
por
Guille Lomener
.
Dónde comprar el iPhone más barato durante las ofertas del Prime Day de Amazon
Amazon ha dado comienzo a su Prime Day 2026, y no son pocas las que podemos encontrar ahora mismo. Algunas se mantendrán hasta el viernes y otras irán llegando poco a poco. En cualquier caso, ¿hay ofertas en iPhone? En este artículo vamos a repasar los mejores chollos que tiene tanto la propia Amazon como otras tiendas en los móviles de Apple.
Cabe mencionar que las ofertas de Amazon, en relación con los iPhone, no son exclusivas del Prime Day, por lo que cualquier persona, sea o no suscriptora de la plataforma, podrá acceder a todas ellas.
- iPhone 17e por 689 euros, el móvil más económico de la generación actual de Apple.
- iPhone 17 por 899 euros, el móvil con mejor relación calidad-precio de la marca.
- iPhone 17 Pro por 1.259 euros, un iPhone potente y compacto.
- iPhone 17 Pro Max por 1.429 euros, el móvil más completo de Apple.
- iPhone Air por 868,05 euros, el iPhone que más ha bajado de precio durante la campaña.
Si quieres comprar el iPhone 17e da igual hacerlo en Amazon (689 euros), MediaMarkt (689 euros) o El Corte Inglés (689 euros), porque en las tres tiendas tiene el mismo precio. Es el móvil más económico de Apple, pero no ha bajado de precio específicamente en el Prime Day, ya que llevamos viéndolo con el mismo descuento en estas últimas semanas.
iPhone 17Lo mismo ocurre con el iPhone 17, un móvil que ha destacado por bajar muy poco de precio desde su lanzamiento. En este caso, se puede comprar tanto en Amazon (899 euros) como en MediaMarkt (899 euros) por el mismo precio. Llevamos viéndolo a este precio desde mayo. No tiene una nueva oferta, pero su precio es el más bajo que hemos visto hasta la fecha y se trata del iPhone con mejor relación calidad-precio de esta generación.
iPhone 17 ProEl iPhone 17 Pro también se puede comprar en Amazon (1.259 euros) o en MediaMarkt (1.259 euros), porque en ambas tiendas el precio es el mismo. Es ideal si el iPhone 17 se te queda corto y buscas un móvil más potente y con mejor configuración fotográfica, pero manteniendo el diseño compacto con pantalla de 6,3 pulgadas.
iPhone 17 Pro MaxEn cambio, el iPhone 17 Pro Max es perfecto para aquellas personas que quieran lo bueno del iPhone 17 Pro, pero que tenga una pantalla más grande de 6,9 pulgadas. En este caso, casi todas las tiendas tienen precios similares, pero si buscamos la mejor oferta se puede comprar en Amazon (1.429 euros), MediaMarkt (1.429 euros) o El Corte Inglés (1.429 euros).
iPhone AirLlegamos a la última (y mejor) oferta que podemos encontrar en los móviles de Apple, y es que el iPhone Air ahora mismo protagoniza el mejor descuento durante el Prime Day. No es una oferta exclusiva de la campaña, pero Amazon (868,05 euros) lo tiene más barato que el resto de tiendas. ¿Para quién es este móvil? Para aquellas personas que busquen la potencia de los mejores iPhone, pero con una pantalla intermedia de 6,5 pulgadas y un diseño muy delgado.
Algunos de los enlaces de este artículo son afiliados y pueden reportar un beneficio económico a Applesfera. En caso de no disponibilidad, las ofertas pueden variar.
Imágenes | Pedro Aznar, Apple
En Applesfera | Qué iPhone comprar. Guía para elegir el smartphone de Apple más adecuado para ti
En Applesfera | Mejores accesorios Magsafe para tu iPhone
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
Dónde comprar el iPhone más barato durante las ofertas del Prime Day de Amazon
fue publicada originalmente en
Applesfera
por
Alberto García
.
Llevo años complicándome con el iPhone para poder enviar mi DNI con seguridad. Esta herramienta lo resuelve de un plumazo
No es extraño que se nos pida una copia del DNI en circunstancias como la de hacer el chek-in en un hotel. Lo importante es que lo enviemos de forma segura para evitar que en una filtración de datos pueda ser utilizado con fines fraudulentos. Por eso, modificar el DNI es legal en muchos de esos casos.
Hasta ahora, lo que yo hacía era añadir un texto sobre el DNI que no impidiese ver el resto de datos. En ese texto escribía algo así como "copia expedida en fecha X con el fin de X". De ese modo me aseguraba de que, incluso si llegaba a terceros, mi copia no pudiese ser utilizada para otros fines. Pero acabo de descubrir una herramienta que lo hace más rápido. ¡Aleluya!
Saferlayer, la herramienta que permite modificar el DNI de forma legal {"videoId":"x85wgv3","autoplay":true,"title":"¡NO SUBAS TU DNI A INTERNET! PELIGROS y CÓMO EVITARLOS", "tag":"", "duration":"305"}Esa modificación del DNI que yo hacía hasta ahora pasaba por usar apps como Vista Previa en iOS. No es que fuese complicado, aunque sí que reconozco que era tedioso. Por eso me alegré tanto al leer a mi compañero Pepu Ricca en Xataka Móvil hablar de una herramienta que lo facilita.
Se llama Saferlayer y se accede a través de una web. Es de origen español, existe ya desde hace un año y he podido verificar que es un sistema seguro y que no almacenará nuestras copias del DNI.
En Applesfera El DNI en el iPhone ha dejado de ser un experimento. A partir de ya tiene validez legal plena y nadie puede negarse a aceptarloHay dos opciones para usarlo, siendo una de pago y otra gratuita. En la de pago (por 4,99 dólares al mes) podemos procesar varios DNIs que podremos subir en formato PDF a la plataforma. La gratuita solo permite subir el documento en formato de foto y de forma individual.
Cómo validar el DNI en SaferlayerPersonalmente no me merece la pena la opción de pago y, creo, tampoco a la mayoría. Aunque si sueles viajar mucho o hacer varias gestiones al mes por las que tengas que adjuntar más de un documento, quizás sí te merezca la pena.
Con la opción gratis, el proceso es así de sencillo:
- Entra en la web de Saferlayer.
- Ve al apartado de Saferlayer Free y pulsa en Usar gratis.
- Selecciona desde donde vas a adjuntar la fotografía y añadela.
- Utiliza el dedo para añadir líneas negras que oculten los datos del DNI que no quieras mostrar (puedes cambiar el tamaño de la barra con las opciones que aparecen en pantalla).
- Pulsa en Continuar.
- Escribe en el cuadro de texto el motivo por el que vas a adjuntar el DNI y a quién autorizas para su uso.
- Pulsa de nuevo en Continuar.
- Elige ahora si quieres descargar la imagen modificada o la opción de compartir, la cual te permitirá también guardarla o adjuntarla por correo, WhatsApp, Mensajes, etc.
Lo que hará esta herramienta es añadir una marca de agua a toda la fotografía en la cual se refleja el motivo por el que la que se expidió. De ese modo podemos estar seguros de que no se usará de forma fraudulenta.
Mi consejo adicional es guardar esta web en favoritos para acceder cuando se necesite. Ya explicaba que en mi caso es esporádicamente y de ahí que no me compense la versión de pago, por lo que este método es al final lo mejor para hacerlo rápido cuando se necesite.
En Applesfera | Cómo llevar el DNI en el iPhone y que sea completamente legal: esto es lo que necesitas
En Applesfera | Así podemos instalar y utilizar el certificado digital de la Agencia Tributaria en nuestro iPhone, iPad o Mac mediante Safari
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
Llevo años complicándome con el iPhone para poder enviar mi DNI con seguridad. Esta herramienta lo resuelve de un plumazo
fue publicada originalmente en
Applesfera
por
Álvaro García M.
.
El iPhone plegable supera la prueba de fuego de Apple. Ya no hay marcha atrás
Llevamos meses con el mismo runrún de fondo. Cada pocas semanas aparecía un nuevo informe que ponía en duda la fecha del primer iPhone plegable: en mayo fue la bisagra. Antes habían sido los plazos de producción, y antes de eso, las dudas de si llegaría siquiera junto al iPhone 18 Pro en septiembre.
Esta semana el guion cambia de tercio. Samsung Display ha recibido de Apple la aprobación de producción de módulo para los paneles OLED del plegable, el paso que certifica que un proveedor puede fabricar en serie con la calidad exigida. Y lo ha hecho con margen: Apple pide un rendimiento mínimo del 70% y Samsung ha llegado a superar el 80%. Las líneas de la planta de Vietnam ya están en marcha para un primer pedido de tres millones de unidades.
{"videoId":"x9mvdvm","autoplay":true,"title":"Cadena de suministro de Apple", "tag":"", "duration":"54"} Samsung Display pasa el corte con notaLa aprobación de producción de módulo es el resultado de pruebas muy exigentes. Antes de llegar a este punto, un proveedor tiene que demostrar que su ensamblaje final tiene la calidad suficiente y que puede mantener la estabilidad de esa calidad a gran escala, no solo en una tirada de prueba. Apple exige un rendimiento mínimo del 70% para dar ese visto bueno y Samsung Display lo ha superado con holgura. Con rendimientos finales por encima del 80%.
Ese aprobado se traduce ya en algo físico: parte de las líneas de back-end de la planta de Samsung Display en Vietnam han empezado a operar para cubrir un primer pedido de unos tres millones de paneles que deben entregarse este mismo año. El back-end es la fase en la que se añaden los circuitos de control, las placas de circuito flexible y los componentes de protección antes de la inspección final y el envío. Así que hablamos de paneles que ya están entrando en su recta final antes de llegar a los iPhone montados.
La planta cuenta con unas 80 líneas de producción en total y unas 50 activas en este momento, así que hay margen de sobra para un pedido que, comparado con la capacidad instalada, resulta modesto.
El acuerdo entre ambas empresas es, además, de exclusividad: Samsung Display será la única proveedora de paneles OLED plegables para Apple durante tres años. Eso significa que no habrá un segundo fabricante de pantallas compitiendo por el mismo contrato, algo poco habitual en la estrategia de Apple de repartir pedidos entre varios proveedores para evitar depender de uno solo.
Una pantalla con tecnología nueva bajo el capóLos paneles emplearán tecnología Color Filter on Encapsulation, conocida como CoE, que elimina el polarizador y forma el filtro de color directamente sobre la capa de encapsulación. Quitar el polarizador era esencial en una pantalla plegable. Ese componente añade grosor y rigidez, justo lo contrario de lo que necesita un panel que tiene que doblarse miles de veces.
A esa base se suma el nuevo set de materiales M16 de Samsung Display, la generación más reciente de su tecnología OLED, que llega con mejoras en brillo, rendimiento de color, vida útil y eficiencia energética.
En Applesfera El nuevo CEO de Apple se ha marcado como prioridad lo que Tim Cook había dejado en el cajón: el diseñoSeptiembre está cada vez más cerca, y con cada semana que pasa hay menos margen para que un problema de última hora descarrile los planes. Las líneas de Vietnam ya están produciendo, los componentes ya circulan por la cadena de suministro y el calendario que Apple maneja internamente sigue intacto. Lo que quede por resolver, sea el nombre definitivo o algún ajuste de última hora en la bisagra, tendrá que decidirse en las próximas semanas.
Fuente | The Elec
En Applesfera | Nuevos iPhone 18 Pro y 18 Pro Max - Todo lo que creemos saber sobre ellos
En Applesfera | Nuevo iPhone plegable - Todo lo que creemos saber sobre él
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
El iPhone plegable supera la prueba de fuego de Apple. Ya no hay marcha atrás
fue publicada originalmente en
Applesfera
por
Guille Lomener
.
Decían poder secuestrar más de 300 millones de iPhone y pidieron un rescate a Apple. La compañía tardó poco en desmontarles
Hubo un día en el que unos hackers afirmaron poder hacer un secuestro masivo de cuentas de iCloud si Apple no cedía a sus chantajes. Las cifras que pedían a la compañía se podían incluso considerar asumibles sabiendo cuánto valen nuestros datos en el mercado negro. Sin embargo, Apple no se lo iba a poner tan fácil a los malhechores.
Los ciberdelincuentes, que se hacían llamar "La Familia Turca del Crimen" pedían 75.000 Bitcoin o 100.000 dólares en tarjetas de iTunes. Querían en cualquiera de los casos que la compañía cediese al chantaje o, según sus amenazas, se quedarían con los datos de más de 300 millones de cuentas de Apple propiedad de los usuarios.
Una amenaza con la que Apple saldría siempre perdiendo Imagen: Wikimedia CommonsHabrá quien piense que no tiene nada que ocultar y que si un ciberdelincuente quiere acceder a su cuenta de Apple, que lo haga. El problema es que los chantajistas de esta historia no solo afirmaban poder acceder a esos datos, sino que amenazaban con quedarse esas cuentas secuestradas. Y esto es problemático en tanto en cuanto perderían acceso a todas sus fotos, notas, contactos y resto de información sincronizada con iCloud.
Los hechos ocurrieron en marzo de 2017, cuando los ciberdelincuentes informaron a través de Vice de estar en posesión de más de 300 millones de cuentas de Apple. Mostraban para ello capturas de pantalla e incluso vídeos subidos a YouTube en los que, supuestamente, estaban accediendo a un montón de cuentas de usuarios a través de sus legítimas contraseñas.
En Applesfera Alerta de seguridad en Apple: descubren un fallo imposible de solucionar que afecta a estos dispositivosAfirmaban tener un listado de todas las contraseñas y tener suma facilidad para cambiarlas y apoderarse de las cuentas. Pretendían poner a la compañía californiana entre la espada y la pared ante una tesitura en la que, sobre el papel, saldrían perdiendo. O dinero o reputación. O ambas cosas en ambos casos.
Si Apple cedía al chantaje, perdería dinero, pero también prestigio al ceder a los chantajes de unos ciberdelincuentes que nadie conocía muy bien su origen. Si no aceptaba el chantaje, millones de usuarios perderían sus cuentas, llegarían demandas y la imagen de la empresa quedaría por los suelos. Para colmo, en ambos casos quedaban ya señalados por no tener barreras de seguridad suficientes.
Pues bien… nada de esto ocurrió.
Roma no paga a traidores. Y Apple tampoco {"videoId":"x90pfg8","autoplay":true,"title":"JAILBREAK: Que pasó con los hackers del iPhone", "tag":"webedia-prod", "duration":"820"}Apple se ha aprovechado muchas veces de los hackers y estos de Apple. En el buen sentido. Es habitual que compañías como Google ofrezcan recompensas por hackear sus sistemas. Lo hacen con el fin de detectar amenazas que su equipo no ha logrado detectar y, de paso, a un precio incluso inferior al que les cuesta mantener a sus equipos.
Apple llega incluso a contratar a hackers que vulneraron sus sistemas cuando creen aptos sus conocimientos y valías para formar parte de sus equipos. Sin embargo, lo han hecho con una diferencia más que sustancial con respecto a la Familia Turca del Crimen: no les hicieron chantaje.
Apple agradece y premia a quienes les muestran vulnerabilidades en sus sistemas y, en casos como estos, hace caso omiso. Sobre todo cuando saben que la amenaza no es real. Tanto es así que, según revelaron los propios ciberdelincuentes y reflejaron varios medios, un miembro de Apple les dijo lo siguiente:
"En primer lugar, les pedimos amablemente que eliminen el vídeo que han subido en su canal de YouTube, ya que solo pretenden llamar la atención. En segundo lugar, nos gustaría que sepan que no recompensamos a los delincuentes cibernéticos por violar la ley".Si bien la compañía de Cupertino nunca llegó a confirmar estos hechos, tampoco los desmintieron. El comunicado en sí, según expresaban en Vice, pudo ser visto por redactores que acreditaban que, efectivamente, la dirección web de ese comunicado acababa en @apple.com, como señal inequívoca de que fue un miembro de la compañía quien lo envió.
Y al final… nadaSi bien los ciberdelincuentes siguieron insistiendo en sus amenazas y en tratar de probar que tenían esa base de datos con más de 300 millones de contraseñas de cuentas de Apple, nunca llegaron a ejecutar su amenaza. Es esto lo que refuerza la idea de que, en realidad, nunca tuvieron semejante poder.
En Applesfera No todo es Siri AI: esta nueva función de IA de iOS 27 es lo mejor para cambiar todas las contraseñas automáticamenteApple optó por no ceder ante la presión y salió reforzada al mantener su postura firme. Mientras tanto, los usuarios tienen una oportunidad más para aprender a protegerse en un entorno digital cada vez más hostil.
Este intento fallido de chantaje sí logró dejar claro que, sean o no reales las amenazas, estas existen y no hay mejor forma de protegerse que añadir algo más que una contraseña. Es aquí donde entran factores que ya aplican las cuentas de Apple, como la autenticación de doble factor o las passkeys.
En Applesfera | Cómo saber si mi iPhone tiene un virus y qué puedo hacer para eliminarlo
En Applesfera | Qué hacer si te roban tu iPhone: paso a paso para recuperar, bloquear o borrarlo en remoto
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
Decían poder secuestrar más de 300 millones de iPhone y pidieron un rescate a Apple. La compañía tardó poco en desmontarles
fue publicada originalmente en
Applesfera
por
Álvaro García M.
.
Tráiler de anuncio de Dragon Ball Xenoverse 3
En el Apple Park ya no cabe un alfiler. Apple necesita llevarse sus proyectos fuera del anillo
El año pasado os contamos que Apple se había gastado 882 millones de dólares en poco más de un mes comprando oficinas en Silicon Valley. Pensábamos que con eso tendría suficiente para una temporada. Pues no. Apple acaba de volver a sacar la chequera y ha comprado otro edificio de oficinas en Sunnyvale por 162 millones de dólares. El Apple Park se queda pequeño, literalmente.
Lo curioso es que este edificio ya lo tenían alquilado desde el año pasado. Apple lleva tiempo convirtiendo arrendamientos en propiedades, y esta vez encima ha hecho un buen negocio: el edificio se vendió en 2022 por 222 millones, y Apple lo ha comprado ahora por 162. Un descuento del 27% sobre el precio anterior. No está mal para una empresa que compra a precio de mercado como cualquier hijo de vecino.
{"videoId":"x8y2seu","autoplay":true,"title":"Steve Jobs Theatre", "tag":"", "duration":"59"} 162 millones por un edificio que ya tenían alquilado, y encima de ofertaEl edificio está en el 684 de West Maude Avenue, en el barrio de Peery Park, a menos de un kilómetro de otros edificios que Apple ya tiene en Sunnyvale. Son cuatro plantas y casi 18.000 metros cuadrados de espacio de oficinas. Antes lo tenía alquilado LinkedIn, aunque no está claro si llegaron a mudarse. Apple firmó el subarrendamiento el año pasado y en cuanto tuvo la oportunidad lo compró.
El precio que pagó, 162 millones, queda muy por debajo de los 222 millones que costó en 2022. El mercado inmobiliario de oficinas en Silicon Valley lleva tiempo flojo, con tasas de desocupación que en algunas zonas superan el 18 o el 30 por ciento, y Apple está aprovechando ese momento para comprar a buen precio lo que ya usa o planea usar.
Apple lleva años siguiendo el mismo patrón: alquila un edificio, lo ocupa durante un tiempo, y cuando tiene la oportunidad lo compra. En diciembre pagó 216 millones por dos edificios en Cupertino que llevaba alquilando desde 2015. En junio del año pasado compró otro grupo de edificios por 167 millones. Y antes de eso, 350 millones por el Mathilda Commons y 365 millones por el Mathilda Campus, ambos en Sunnyvale y ambos ya ocupados en su mayor parte por Apple.
Apple es una de las empresas más estables del sector, no hace despidos masivos como Microsoft o Meta, y sabe que los equipos que trabajan en esos edificios van a seguir ahí durante mucho tiempo. Si vas a pagar alquiler durante décadas, en algún momento sale más a cuenta ser el propietario. Y más cuando el mercado está a la baja y puedes comprar con descuento.
¿Para qué tanto espacio?Apple tiene proyectos que necesitan instalaciones separadas del Apple Park, en parte por razones de seguridad y en parte porque algunos desarrollos requieren equipamiento muy especializado. Las gafas, por ejemplo, se desarrollan en una instalación de Santa Clara separada del campus principal precisamente para evitar filtraciones.
En total Apple tiene ahora mismo al menos 15 edificios en la zona de Sunnyvale, y eso sin contar el Apple Park, One Infinite Loop y el resto de instalaciones que tiene repartidas por Cupertino y Santa Clara.
882 millones gastados el año pasado, 162 millones más ahora. Apple juega al Monopoly con Silicon Valley y de momento no da señales de querer parar. Con todos los proyectos que tiene entre manos para los próximos años, probablemente necesite cada metro cuadrado que está comprando. Y con el mercado de oficinas como está, tampoco es el peor momento para hacerlo.
En Applesfera | Nuevas gafas de Apple - Todo lo que creemos saber sobre ellas
En Applesfera | Nuevos iPhone 18 Pro y 18 Pro Max - Todo lo que creemos saber sobre ellos
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
En el Apple Park ya no cabe un alfiler. Apple necesita llevarse sus proyectos fuera del anillo
fue publicada originalmente en
Applesfera
por
Guille Lomener
.
Tráiler oficial de gameplay de Bel's Fanfare
Auriculares, eReaders, bases de carga MagSafe y más: los cinco mejores chollos antes del Prime Day de Amazon
En las próximas horas, Amazon dará comienzo a su Prime Day 2026. Pero no hace falta esperar hasta entonces para encontrar buenas ofertas, y es que la tienda ha ido ofreciendo pequeños adelantos bastante atractivos. Hay bases de carga, lectores de libros electrónicos, auriculares y mucho más.
- Anker MagGo por 49,59 euros, una base de carga plegable que es ideal para llevarla de viaje.
- Fire TV Stick 4K Plus por 33,99 euros, un dispositivo que permite ver Apple TV y otras plataformas en casi cualquier tele.
- Soundcore Space Q45 por 69,99 euros, unos auriculares con una excelente relación calidad-precio.
- Kindle Colorsoft Signature Edition (pack) por 257,97 euros, un pack que incluye el eReader, una funda y una base de carga.
- Echo Show 11 por 154,99 euros, un altavoz con pantalla que es compatible con Alexa+.
Si ahora que se acerca el verano ya estás pensando en las vacaciones, mucho ojo al Anker MagGo. Se trata de una base de carga que destaca sobre todo porque se puede plegar, por lo que es muy cómodo de llevar en la mochila o en un bolsillo. Incorpora tres módulos para recargar un iPhone, un Apple Watch y unos AirPods y es compatible con MagSafe. Su precio es de 49,59 euros (antes 99,99 euros).
Fire TV Stick 4K PlusComo era de suponer, Amazon ha bajado el precio de los Fire TV Stick. Hay muy buenas ofertas, pero el más destacable es el Fire TV Stick 4K Plus, sobre todo si queremos un buen precio, un buen rendimiento y compatibilidad con Dolby Vision y Dolby Atmos. Es compatible con Alexa+ y permite reproducir contenido de plataformas como Apple TV o Netflix en casi cualquier tele, siempre y cuando esta cuente con un puerto HDMI. Su precio es de 33,99 euros (antes 69,99 euros).
Soundcore Space Q45Si quieres aprovechar el Prime Day para comprar unos buenos auriculares de diadema pero los AirPods Max 2 se te escapan de presupuesto, Amazon tiene los Soundcore Space Q45 por 69,99 euros (antes 149,99 euros). Se escuchan muy bien y son muy ligeros, pero destacan sobre todo por su cancelación de ruido y por lo cómodos que son. Los puedes llevar puestos durante horas sin sentir fatiga. Son los que utilizo yo mismo desde hace varios años y pocos le hacen frente por el precio que tienen ahora mismo.
Kindle Colorsoft Signature Edition (pack)De momento Amazon no ha lanzado ofertas en sus lectores, pero sí que podemos encontrarlos rebajados en algunos packs. El Kindle Colorsoft Signature Edition ahora mismo cuesta 257,97 euros (antes 322,08 euros) en un pack que incluye tanto una funda protectora como una base de carga inalámbrica. La pantalla del lector es a color y tiene una diagonal de siete pulgadas, su batería tiene una autonomía de semanas y cuenta con 32 GB de almacenamiento interno.
Echo Show 11Amazon también ha lanzado ofertas en los dispositivos Echo y el Echo Show 11 ahora mismo se encuentra a un precio de 154,99 euros (antes 239,99 euros). Se trata de un altavoz inteligente (parecido al Echo Dot), pero con una pantalla integrada de 11 pulgadas. Permite ver información relativa al tiempo, reproducir música o ver contenido en plataformas de streaming.
En Applesfera Qué AirPods comprar en 2026: los mejores auriculares de Apple y cuál elegir según tus necesidadesAlgunos de los enlaces de este artículo son afiliados y pueden reportar un beneficio económico a Applesfera. En caso de no disponibilidad, las ofertas pueden variar.
Imágenes | Amazon, Anker
En Applesfera | Qué iPhone comprar. Guía para elegir el smartphone de Apple más adecuado para ti
En Applesfera | Mejores accesorios Magsafe para tu iPhone
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); -
La noticia
Auriculares, eReaders, bases de carga MagSafe y más: los cinco mejores chollos antes del Prime Day de Amazon
fue publicada originalmente en
Applesfera
por
Alberto García
.
