Cydia 1.1 disponible en téléchargement

Il y a quelques minutes, Saurik a sorti la version 1.1 de Cydia, une version que beaucoup d'entre nous attendent et que Saurik promet depuis longtemps. La nouvelle version de l'application devrait apporter de nombreuses améliorations de performances mais également quelques changements concernant les fonctionnalités de l'application. Vous pouvez installer Cydia 1.1 en ouvrant l'application Cydia sur votre terminal et en effectuant une actualisation dans le menu Modifications.

Saurik a déclaré sur son compte Twitter que la nouvelle version de Cydia est :

  • la possibilité d'exécuter et de faire fonctionner Activator, libstatusbar et SimulatedKeyEvents pendant que Cydia est en cours d'exécution
  • une amélioration globale de la vitesse, y compris la boîte de dialogue "Chargement des modifications"
  • "beaucoup moins" d'utilisation de la mémoire
  • un mécanisme de recherche plus avancé avec un nouvel algorithme de pertinence
  • meilleure gestion des référentiels cassés

Le multitâche

"Ce n'est tout simplement pas possible pour le moment. Je me rends compte que tout le monde le veut, et bon sang : je le veux aussi ; mais tous ceux qui disent que c'est important ne rendent pas cela possible. La raison pour laquelle Cydia ne dispose pas du multitâche compatible iOS 4 est que, pour apporter les modifications qu'il apporte au système, il s'exécute en tant que "root", un utilisateur qui a plus d'autorisations sur le système que toute autre chose, ce qui signifie que SpringBoard , un processus modeste exécuté en tant que "mobile", ne peut pas le suspendre/le reprendre.

Maintenant, c'est quelque chose auquel /peut/ être résolu, et c'est quelque chose que je réfléchis à comment faire depuis longtemps, mais toutes les façons évidentes que les gens aiment évoquer pour faire fonctionner l'interface graphique de Cydia comme mobile avec seulement de petits les pièces exécutées en tant que root rendraient Cydia plus lent, et la vitesse est une priorité dans l'esprit de chacun lorsqu'il utilise Cydia. Heureusement, j'ai découvert certaines choses qui pourraient rendre cela plus raisonnablement possible, mais certainement pas pour cette version. »

Laisser le substrat mobile activé lorsque Cydia est ouvert

"Si vous faisiez cela, vous découvririez que votre système deviendrait soudainement inutilisable. Je me rends compte que cela semble tout à fait flou que Mobile Substrate doive modifier toutes les applications du système, y compris Cydia, mais encore une fois : Cydia s'exécute en tant que root. Presque toutes les extensions de l'écosystème ne sont PAS conçues dans cet esprit, et lorsqu'un accès root leur est soudainement accordé, elles commencent à détruire les autorisations de vos fichiers de configuration et de vos dossiers multimédias, rendant toutes les applications normales incapables de les utiliser.

Par conséquent, avec cette version de Cydia, j'ai passé en revue les « éléments importants » – qui semblent se résumer à Activator (ce qui démarre SBSettings), libstatusbar (ajoute des éléments de notification à la barre d'état) et SimulatedKeyEvents (injection de clé événements de Veency) – pour vérifier auprès de leurs développeurs qu’ils fonctionneront correctement dans un environnement exécuté en tant que root. Ces extensions (plus WinterBoard, qui ne fonctionne pas sous root sur 4.x mais est inoffensif et sera corrigé dans une prochaine version) sont disponibles depuis Cydia jusqu'à ce que Cydia soit modifié pour fonctionner en tant que mobile.

Interface et option de sauvegarde plus esthétiques

"En réalité, une fonction de sauvegarde ne nécessite pas de déployer une nouvelle version de Cydia, mais elle nécessite du temps pour comprendre comment faire évoluer les utilisateurs pour prendre en charge le type de charge dont dispose Cydia. Cydia compte beaucoup plus d'utilisateurs que n'importe lequel de ses concurrents, ce qui signifie que beaucoup de choses que les gens aiment penser "devraient être simples, X l'a fait" sont en réalité beaucoup plus difficiles à mettre en œuvre. Je garde également la confidentialité au premier plan de mon esprit lors de la création de fonctionnalités comme celle-ci, et je veux être sûr à 100 % que personne d'autre que vous ne peut accéder à votre liste de produits installés.

Quant à une "interface plus esthétique", je m'efforce de maintenir quelque chose qui rivalise avec les produits Apple. Quelques choses pourries sur 4.x (les positions et tailles de certains boutons), et les différentes interfaces "noires" (la barre noire et l'écran noir) obtiennent des rapports mitigés, mais sinon le principal problème des utilisateurs avec Cydia n'est pas Cydia : c'est avec les référentiels. Chaque fois que j'ai reçu des commentaires réels "cette chose spécifique est mauvaise", alors que cette chose n'est pas quelque chose qu'Apple fait lui-même dans ses applications iTunes ou App Store (qui devrait être considérée comme le "modèle intuitif"), c'est dans zones de l'interface sur lesquelles je n'ai tout simplement aucun contrôle : le contenu affiché pour un package par le référentiel.

Confusion avec le terme « changements »

"Peut-être que je suis fou, mais j'ai toujours pensé que le mot "Changements" n'était pas du tout geek. l'utilisateur final terme désignant « des choses qui changent ». Ce n'est certainement pas un terme technique : il n'a pas été choisi en raison d'un désir geek de faire correspondre la base de code à l'interface utilisateur, ni parce qu'il avait une signification ésotérique en latin ou en grec. Il a plutôt été choisi car il s'agissait d'un seul mot qui signifiait immédiatement pour le plus grand nombre de personnes à qui j'ai parlé exactement ce que cette page faisait : vous montrer ce qui avait changé. Quoi qu'il en soit, les « Nouvelles versions/mises à jour » ne tiendront certainement pas sur une étiquette d'onglet. »

Vitesse

"Comme pour /chaque/ version de Cydia, Cydia 1.1 est plus rapide que les versions précédentes. Plus précisément, il est bien plus rapide que 1.0.3366, qui lui-même était plus rapide que 1.0.3222 par un gouffre encore plus grand. Sur cette note, cependant, il est important de noter que Cydia s'attaque à un problème difficile : aucune autre application que j'ai vue sur l'iPhone, d'Apple ou de tout autre tiers, ne tente de rechercher dans un index et de gérer des dizaines de milliers d'éléments de données. sur le client, en temps réel, agrégés à partir de sources sélectionnées par l'utilisateur.

En revanche, Cydia dispose d'une technologie parmi les plus rapides qui existent en ce qui concerne le traitement de ces données, qu'il s'agisse d'algorithmes personnalisés (Cydia inclut un tri par base de comparaison de chaînes prenant en compte les paramètres régionaux, qui, autant que je sache, est l'algorithme de tri le plus rapide de toute application iOS) ou spécial. structures de données sur disque (la nouveauté de la version 1.1 est "Cytore", une nouvelle façon de stocker des métadonnées locales sur des packages qui peuvent être chargés presque instantanément à partir de Flash ; pour ceux qui ont un esprit technique, il s'agit d'une table de hachage mappée en mémoire sur disque , ce qui surpasse considérablement les alternatives que les gens aiment essayer de proposer, comme SQLite).

Temps de chargement

"Contrairement aux mythes, la quantité de données affichées dans la liste des modifications n'affecte pas radicalement la rapidité de son chargement. Il y avait /y avait/ un bug dans de nombreuses versions de Cydia 1.0 qui provoquait au moins un petit retard lié au nombre d'éléments sur la liste, mais ce bug a déjà été corrigé à partir de la version 1.0.3366. Le coût du calcul consiste à décider quelles entrées doivent figurer sur la liste (et en particulier lesquelles sont en réalité des mises à jour par rapport aux nouvelles versions), et non à les afficher toutes en même temps. Cela dit, Cydia 1.0.3366 déplace le chargement des modifications jusqu'à ce que vous ayez cliqué sur l'onglet, ce qui montre davantage le temps passé sur cette fonctionnalité (qui elle-même est, encore une fois, plus rapide sur 1.1).

Utilisation de la mémoire

"Même si Cydia 1.1 continue de tenter de jongler avec des dizaines de milliers d'éléments en mémoire, grâce à Cytore, il utilise beaucoup moins de mémoire que jamais. D'autres optimisations ont été apportées, comme pour chaque version de Cydia, afin de réduire l'utilisation de la mémoire de l'application dans son ensemble. De plus, et en particulier, Cydia 1.1 est beaucoup plus attentif aux avertissements de mémoire et tente de supprimer autant d'état que possible lors de ces événements.

Cela dit, la quantité de mémoire, même sur les appareils raisonnablement modernes (tout ce qui est supérieur à l'iPhone 3G) disponible pour exécuter des applications (pas au total, mais disponible une fois que les applications système d'Apple ont obtenu leur part), est d'un ordre de grandeur supérieur : alors que sur un iPhone Sur la 3G, vous travailliez avec peut-être 20 Mo de mémoire disponible, sur un iPhone 3G[S], vous disposez de 150 Mo et sur un iPhone 4, vous disposez de 400 Mo disponibles. Ainsi, bien que Cydia 1.1 ait besoin de moins de mémoire pour fonctionner que Cydia 1.0, la pression sur la mémoire a pratiquement disparu et n'affectera pas les futurs utilisateurs grâce au matériel. mises à jour. »

Recherche Avancée

"Malheureusement, cet appareil est tout simplement trop lent pour fournir des "capacités de recherche avancées", et certainement pas des suggestions, étant donné les contraintes "à partir de référentiels sélectionnés par l'utilisateur" "dans quelque chose qui ressemble à du temps réel". Cela dit, Cydia 1.1 dispose d'un bien meilleur mécanisme de recherche, y compris un algorithme de pertinence trié par base arithmétique entière que j'ai réussi à implémenter.

Ce qui serait vraiment nécessaire pour avoir une expérience de recherche vraiment étonnante, ce n'est pas d'effectuer une recherche sur le client : mais de la gérer sur mes serveurs. C'est ainsi que fonctionnent des produits comme l'App Store, le Kindle ou Netflix : il n'est pas du tout courant que les services auxquels les utilisateurs sont habitués tentent de gérer l'intégralité de la base de données /sur l'appareil/, en effectuant des recherches locales, plutôt que d'avoir les données et calcul pour celui existant dans les structures de recherche indexées hors ligne sur un serveur massif dans le cloud.

Malheureusement, les raisons pour lesquelles les gens utilisent Cydia sont variées, et beaucoup de gens utilisent Cydia avec des référentiels qu'ils ne devraient franchement pas : si le référentiel contient des logiciels dangereux (une communauté de niche avec des ajustements soumis à des tests minimes, ou utilisant de mauvaises pratiques comme sur -correctifs de fichiers disque) ou carrément illégales (il y a des choses que vous êtes autorisé à faire dans votre pays que je ne peux pas faire dans le mien), je ne vais certainement pas agir comme une passerelle de stockage et d'indexation centralisée permettant aux gens de trouver et de gérer ce contenu. .

Au lieu de cela, ce qui incite les gens à revenir vers Cydia, c'est le fait qu'il agit comme une alternative fondamentale : plutôt que d'aller chez Apple, avec son ensemble d'expériences centralisées soigneusement organisées, vous allez vers Cydia, "le Far West du logiciel", où les logiciels modifie d'autres logiciels dans une sorte d'abandon inconsidéré qui va conduire à des souffrances même dans les meilleurs scénarios possibles, et dans les pires mondes possibles, cela va conduire à des choses que vous ne pourrez pas lister sur un référentiel par défaut, et qui Cydia peut même vous avertir de l'installation, mais auquel vous devriez toujours pouvoir accéder et même rechercher à l'aide des mécanismes de recherche de Cydia.

Messages d'erreur

"Les erreurs de Cydia ne proviennent pas de Cydia. Si vous tapez une URL dans Cydia pour un référentiel défectueux, ce référentiel sera de mauvaise qualité et vous posera des problèmes. S'il est hors ligne, Cydia vous le dira, et s'il est mal formé, Cydia va s'en mettre en colère. Cydia va simplement rester les bras croisés pendant qu'il y a une tonne de référentiels cassés et hors ligne dans votre liste : il vous indiquera toutes les erreurs impliquées dans l'espoir que vous supprimerez les référentiels cassés et que vous continuerez votre vie (ce qui est une métaphore très appropriée, car la plupart des référentiels tiers sont très lents et font que votre expérience d'actualisation prend un temps très très long)."

Sections « Tarif » et « Révision »

"Nous avons effectivement essayé cela, et ce fut un échec lamentable : il a fallu passer plus de temps à modérer les critiques, dont la plupart étaient trompeuses, incendiaires ou carrément inappropriées, que quiconque n'a tiré profit de ce mécanisme : c'était encore pire que sur l'App Store, connu pour ses mauvaises critiques (les gens évaluent souvent un package pour des raisons insensées, ce qui rend les données horriblement invalides).

Compte tenu de ces problèmes, j'ai tenté d'élaborer une vision de la façon dont les commentaires et les évaluations pourraient fonctionner dans Cydia, et j'ai même fait une mise en œuvre d'essai (des captures d'écran ont même été distribuées à certains moments, et j'ai fait des démonstrations lors de quelques conférences), mais lorsque le mot est venu que j'envisageais même de le publier, j'ai reçu de fortes réticences de la part de certains des meilleurs développeurs de l'écosystème - les personnes à qui vous êtes le plus susceptible de vouloir donner de très bonnes critiques - que si je continuais ainsi, ils abandonneraient sur l'écosystème, en raison des problèmes d'avant.

Et, pour être honnête, je ne suis pas certain d'avoir résolu ces problèmes, et compte tenu des expériences ultérieures avec des produits alternatifs, et en regardant comment les gens ont utilisé les notes, ce qu'ils ont dit dans les commentaires et comment les choses ont finalement été notées, je je ne crois plus que je l'aurais fait : je crois que le concept de "commentaires et notes" disponibles dans le commerce est un système fondamentalement défectueux qui conduit intrinsèquement à des abus.

Maintenant, tous les systèmes de notation n'ont pas besoin d'être "prêts à l'emploi", donc quelque chose de vraiment innovant et "résolvant réellement le problème" est ce que j'espère offrir un jour à Cydia. En attendant, cependant, je fais toujours de mon mieux pour éviter d’injecter des compromis sérieusement sous-optimaux dans notre écosystème. »

Listes de compatibilité améliorées

"Cydia contient depuis un certain temps de nombreuses fonctionnalités qui permettraient aux référentiels de résoudre ce problème.

  1. un mécanisme pour spécifier la compatibilité du firmware sur les packages (les packages peuvent dépendre : des révisions spécifiques du firmware).
  2. le Cydia Store permet aux fournisseurs de bloquer les achats de firmwares spécifiques (tout produit payant peut enregistrer sa compatibilité avec son référentiel, puis je le filtrerai pour les utilisateurs qui peuvent l'utiliser).
  3. la version du micrologiciel est envoyée dans le cadre de l'agent utilisateur aux pages Web de chaque produit, permettant aux développeurs d'afficher leurs propres avertissements.
  4. la compatibilité est encore plus particulièrement possible grâce à la détection de fonctionnalités, permettant aux packages de dire "J'ai besoin de la prise en charge de la voix off sur un appareil doté d'une caméra exécutant un processeur armv7 et un écran Retina".

Essentiellement, il y a très peu d'excuses pour que les packages, référentiels, produits ou quoi que ce soit d'autre dans l'écosystème Cydia soient mal spécifiés en termes de compatibilité du micrologiciel. Cela dit, presque aucun package dans l'écosystème, et même très peu de produits (là où on pourrait imaginer que ce soit le plus important), n'incluent cette information à aucun de ces niveaux, ce qui est plutôt décevant.

Ainsi, Cydia 1.1 ne tentera pas d'améliorer aucun de ces mécanismes, car Cydia 1.0 en possède déjà plus qu'assez : la véritable responsabilité repose désormais sur les développeurs et les artistes d'éléments spécifiques. "

Suppression du contenu mort

"Je n'ai aucun contrôle sur le contenu disponible dans Cydia. Je veux dire, je peux refuser personnellement d'accepter de l'argent pour cela, mais je n'ai presque aucune introspection sur les choses qui sont gratuites ou vendues sur le site Web du développeur. Pendant des années, j'ai tenté de faire en sorte que les référentiels extraient les packages obsolètes : ils refusent. Au lieu de faire pression sur moi, qui suis d'accord avec vous et qui est impuissant, vous devez envoyer ces plaintes aux référentiels par défaut : BigBoss, ModMyi et ZodTTD.

Exigences d'installation clarifiées

(Balises disant si installation d'applications/tweaks, etc. besoin d'une actualisation du tremplin ou si l'appareil doit redémarrer)

"Bien que cela soit souvent dit, ce n'est tout simplement pas ainsi que ce mécanisme fonctionne : les packages calculent s'ils ont besoin d'un redémarrage ou d'un rechargement lors de leur installation, permettant aux packages d'effectuer des optimisations telles que "Je n'ai besoin de redémarrer que si l'utilisateur utilise cette version du firmware et cet autre package est-il installé avec ce paramètre spécifié ». En fait, tous mes packages qui ont besoin de fonctionnalités comme celle-ci tentent ces optimisations, et souvent vous n'aurez pas besoin d'autant de redémarrages ou de rechargements à cause de cela.

Par conséquent, le spécifier en tant que balises statiques sur un package augmenterait le nombre de redémarrages qu'un utilisateur doit effectuer inutilement. Cela dit, pour les packages pour lesquels cela n'est pas évident (les extensions vont nécessiter un rechargement et MobileSubstrate va nécessiter un redémarrage), comme les cas de clients MMS qui nécessitent un redémarrage, il devrait certainement être une bonne pratique pour le développeur de mettre ces informations sur l’écran d’informations de leur colis. C'est encore plus facile pour le développeur/fournisseur que de modifier le package, et même dans ce cas, c'est très rarement spécifié : l'ajout de la balise ne changera donc même pas la fréquence à laquelle elle est signalée.

Gestion des pensions

"En ce qui concerne les référentiels qui ne se sont pas ajoutés correctement, comme l'a déclaré Ryan Petrich, Cydia 1.1 ne devrait plus se retrouver dans des situations où les référentiels défectueux sont si inutilisables qu'ils ne peuvent pas non plus être supprimés. Cela dit, de nombreux utilisateurs se plaignent des dépôts installés via un package : pour supprimer ces dépôts il faudra supprimer le package qui les représente.

(En raison de certaines de ces complexités, la politique de Cydia est qu'aucun référentiel ne puisse être installé à partir des référentiels par défaut via des packages, et ceux existants sous Plus de sources seront transférés vers un nouveau mécanisme de gestion de ceux-ci qui a été ajouté et qui permettra manipulation plus directe, plus simple et plus sûre des référentiels à l'aide d'une page Plus de sources qui sera bientôt réorganisée.)"