Cydia 1.1.29 y 1.1.30 han sido liberados

Anoche se lanzaron las versiones 1.1.29 y 1.1.30 de Cydia para todos los usuarios de iPhone, iPad y iPod Touch que tengan jailbreak en iOS 10. Inicialmente se lanzó la versión 1.1.29 de Cydia con muchos cambios, y luego se dio la versión 1.1.30. a nosotros para solucionar un problema de la actualización anterior.

En la versión 1.1.29 de Cydia, el creador de esta aplicación solucionó algunos problemas importantes que impedían la actualización de fuentes de ajustes, complementos y aplicaciones. Además, en la actualización para Cydia se han solucionado los problemas relacionados con la instalación de todos estos paquetes en iDevices con iOS 10 y con jailbreak.

A parte de solucionar los problemas, la actualización de la aplicación Cydia mejora notablemente el rendimiento de la aplicación, por lo que instalaremos todos los paquetes mucho más rápido. La mejora no es colosal, pero experimentarás una disminución sustancial en el tiempo dedicado a actualizar fuentes e instalar paquetes en tus terminales.

De momento sólo puedes instalar la versión 1.1.30 de la aplicación Cydia, pero contiene todos los cambios que tenemos disponibles en la 1.1.29 también. La actualización de la aplicación Cydia también se puede realizar desde la aplicación Cydia instalada en nuestros iPhone, iPad y iPod Touch, y a continuación podéis ver todas las novedades que trae.

Cydia 1.1.29 es una versión de rendimiento


Evite descargar traducciones que 404

Si bien actualmente creo que no hay un solo repositorio disponible que use esta característica (lo que me entristece, pero como: tampoco es que mi repositorio haga esto actualmente :/), Cydia admite nombres y descripciones de paquetes para ser traducido a diferentes idiomas.

Como algunas personas notaron, las nuevas versiones de 64 bits de Cydia hacían todo esto aún más "correctamente" e intentaban descargar muchos archivos de traducción, lo que hacía que las actualizaciones fueran más lentas. Como era de esperar, alguien dijo "¿por qué no eliminar esa característica?", lo cual parecía algo realmente incorrecto :/.

En su lugar, he solucionado una función de APT que se supone que filtra archivos "opcionales" para que no se descarguen para trabajar con repositorios que no tienen la lista de archivos que normalmente estarían en el archivo de lanzamiento (el comportamiento en este caso es no los descarga: si tiene un repositorio de este tipo y desea traducciones, arregle su archivo de versión).

Carga correcta del catálogo de paquetes.

¿Sabías que, a diferencia de std::vector o NSMutableArray, cuando CFMutableArray dice "capacidad" no quiere decir "esto es cuánto se puede almacenar antes de la siguiente asignación" sino "esto es cuánto se puede almacenar en este matriz: nunca se hará más grande"? Bueno, no lo hice :(. Aparentemente, Microsoft tampoco ;P. Mientras trabajaba en el siguiente número, descubrí este y quedé bastante sorprendido.

Esto podría explicar algunas de las cosas más raras que la gente ha reportado recientemente mientras usaba Cydia: casos en los que algunos paquetes aparecen, pero otros no, que nadie pudo replicar y que parecen simplemente desaparecer: cuando Cydia comienza sin un catálogo, establezca su capacidad en 16k paquetes, y luego aumente en 1024 cada actualización... pero hay muchas decenas de miles de paquetes solo en los repositorios predeterminados, por lo que Cydia podría tardar algún tiempo en "calentarse" y ver todos. ellos, después de lo cual simplemente funcionaría :/.

Por otra parte, puede que no... este es un comportamiento muy extraño para una matriz... incluso afirma que agregarlo al final de una matriz con capacidad limitada da como resultado un "comportamiento indefinido". ¿Algunas personas informan que la matriz se hace más grande? Honestamente: no lo he probado, ya que encontré esto mientras determiné que necesitaba pasar a algo más parecido a std::vector de todos modos. Sin embargo, creo que es una trivia realmente interesante para aquellos de nosotros que nos molestamos en leer las notas avanzadas de la versión de rendimiento de Cydia; P.

Mejorar el rendimiento de clasificación del catálogo de paquetes

Cydia tiene el loco desafío de tener que hacer localmente en su dispositivo lo que una solución centralizada, seleccionada y filosóficamente molesta (¡te agito el puño, Apple!) haría en un servidor: actualizar una lista de muchas decenas de miles de paquetes. , ordenando el resultado no sólo alfabéticamente, sino también según la configuración regional que esperan los usuarios.

Diseñé para Cydia lo que creo que es una solución bastante épica a este problema, que implica adaptar el ordenamiento por base para trabajar en cadenas usando transformaciones locas, haciendo múltiples pasadas seguidas de un ordenamiento por inserción de "reparación". Es el tipo de algoritmo que realmente demuestra por qué todos los desarrolladores deberían tener una sólida experiencia en algoritmos, ya que algún día necesitarás uno de estos. Doy charlas sobre este algoritmo de clasificación en clases de informática a nivel universitario; P.

Sin embargo, ha requerido cierta "calibración" a lo largo de los años, y aparentemente no estuvo a la altura del desafío de clasificar el chino (tradicional) en "orden de trazos"; este orden era una característica muy solicitada por los usuarios chinos y se agregó a Cydia a partir de iOS 8, pero provocó que los pases de clasificación por base de mi algoritmo requirieran demasiadas correcciones posteriores mediante la clasificación por inserción. Todavía quedan algunas mejoras por hacer aquí en el pase de radix, pero cuando ayer se informó este problema de rendimiento, tuve una mejor solución.

De hecho, ya había diseñado el orden de clasificación de Cydia para que fuera capaz de aprovechar un "caché de clasificación", reutilizando los resultados de ejecuciones anteriores de Cydia para estar "lo suficientemente cerca" en lugar de usar clasificaciones de base. Esto, combinado con algunas mejoras algorítmicas en los pases de clasificación por inserción, combinado con mover más algoritmo a C++ (lamento profundamente cuánto Objective-C e incluso CoreFoundation hay en Cydia...), ha mejorado drásticamente el rendimiento de carga de Cydia. , al menos para los chinos.