Cydia 1.1 beschikbaar om te downloaden

Een paar minuten geleden heeft saurik versie 1.1 van Cydia uitgebracht, een versie waar velen van ons op wachten en die saurik al lang belooft. De nieuwe versie van de applicatie zou veel prestatieverbeteringen moeten opleveren, maar ook enkele veranderingen met betrekking tot de functionaliteit van de applicatie. U kunt Cydia 1.1 installeren door de Cydia-applicatie op uw terminal te openen en het menu Wijzigingen te vernieuwen.

Saurik zei op zijn Twitter-account dat de nieuwe versie van Cydia is:

  • de mogelijkheid om Activator, libstatusbar en SimulatedKeyEvents uit te voeren en te bedienen terwijl Cydia actief is
  • een algehele snelheidsverbetering, inclusief het dialoogvenster "Wijzigingen laden".
  • "veel minder" geheugengebruik
  • een geavanceerder zoekmechanisme met een nieuw relevantie-algoritme
  • beter beheer van kapotte opslagplaatsen

multitasking

‘Dit is op dit moment simpelweg niet mogelijk. Ik besef dat iedereen het wil, en verdomd: ik wil het ook; maar iedereen die zegt dat het belangrijk is, maakt het niet mogelijk. De reden dat Cydia geen iOS 4-compatibele multi-tasking heeft, is dat het, om de wijzigingen aan te brengen die het aan het systeem aanbrengt, als "root" draait, een gebruiker die meer rechten op het systeem heeft dan wat dan ook, wat betekent dat SpringBoard , een eenvoudig proces dat als "mobiel" wordt uitgevoerd, kan het niet onderbreken/hervatten.

Dit is iets dat /kan/ verholpen kan worden, en het is iets waar ik al heel lang over nadenk hoe het te doen, maar alle voor de hand liggende manieren waarop mensen graag naar voren brengen om Cydia's GUI zo mobiel te laten werken met slechts kleine onderdelen die als root draaien, zouden ervoor zorgen dat Cydia langzamer werkt, en snelheid is iets waar iedereen het meest aan denkt als ze Cydia gebruiken. Gelukkig zijn er dingen die ik heb ontdekt die dit redelijkerwijs mogelijk maken, maar zeker niet voor deze release."

Mobiel substraat ingeschakeld laten als Cydia open is

"Als je dit zou doen, zou je merken dat je systeem plotseling onbruikbaar zou worden. Ik realiseer me dat het allemaal leuk en vaag klinkt dat Mobile Substrate alle applicaties op het systeem zou moeten aanpassen, inclusief Cydia, maar nogmaals: Cydia draait als root. Bijna alle extensies in het ecosysteem zijn NIET met dit in gedachten ontworpen, en wanneer ze plotseling root-toegang krijgen, beginnen de machtigingen van uw configuratiebestanden en mediamappen te vernietigen, waardoor alle normale applicaties deze niet meer kunnen gebruiken.

Daarom heb ik met deze release van Cydia de "grote ticketitems" doorgenomen - die lijken neer te komen op Activator (wat SBSettings start), libstatusbar (voegt meldingsitems toe aan de statusbalk) en SimulatedKeyEvents (injectie van sleutel events van Veency) – om bij hun ontwikkelaars te verifiëren dat ze correct zullen werken in een omgeving die als root draait. Deze extensies (plus WinterBoard, die niet werkt op root op 4.x maar onschadelijk is en in een toekomstige release opgelost zal worden) zijn beschikbaar vanuit Cydia totdat Cydia aangepast is om als mobiel te draaien."

Beter uitziende interface en back-upoptie

"Een back-upfunctie vereist eigenlijk geen nieuwe build van Cydia, maar het kost tijd om erachter te komen hoe de gebruikers kunnen worden geschaald om het soort belasting dat Cydia heeft te ondersteunen. Cydia heeft vele ordes van grootte meer gebruikers dan al zijn concurrenten, wat betekent dat veel dingen waarvan mensen graag denken "zou eenvoudig moeten zijn, X heeft het gedaan" in werkelijkheid veel moeilijker te implementeren zijn. Ik houd ook privacy voorop bij het bouwen van dit soort functies, en ik wil er 100% zeker van zijn dat niemand anders dan jij toegang kan krijgen tot je lijst met geïnstalleerde producten.

Wat betreft een "mooiere interface", ik doe mijn best om iets te behouden dat concurreert met de producten van Apple. Een paar dingen rotten op 4.x (de posities en afmetingen van sommige knoppen), en de verschillende "zwarte" interfaces (de zwarte balk en het zwarte scherm) krijgen gemengde rapporten, maar verder is het grootste probleem dat gebruikers hebben met Cydia niet Cydia : het is met opslagplaatsen. Elke keer dat ik daadwerkelijke feedback krijg "dit specifieke ding is slecht", terwijl dat niet iets is dat Apple zelf doet in hun iTunes- of App Store-applicaties (wat moet worden opgevat als het "intuïtieve model"), is het in gebieden van de interface waar ik eenvoudigweg geen controle over heb: de inhoud die door de repository voor een pakket wordt weergegeven.

Verwarring met de term ‘veranderingen’

"Misschien ben ik gek, maar ik vond het woord 'Veranderingen' altijd erg non-nerdy eindgebruiker term voor ‘dingen die veranderen’. Het is zeker geen technische term: het is niet gekozen vanwege een nerdachtige wens om de codebase te laten matchen met de gebruikersinterface, en ook niet omdat het een esoterische betekenis had in het Latijn of Grieks. Er werd in plaats daarvan voor gekozen omdat het één enkel woord was dat voor het grootste aantal mensen met wie ik sprak onmiddellijk precies betekende wat die pagina deed: laten zien wat er veranderde. Hoe dan ook, "Nieuwe releases/updates" passen zeker niet op een tabbladlabel."

Speed

"Net als bij /elke/ release van Cydia is Cydia 1.1 sneller dan eerdere releases. Concreet is het sneller dan 1.0.3366 met een goede marge, wat zelf sneller was dan 1.0.3222 met een nog grotere kloof. In dit verband is het echter belangrijk op te merken dat Cydia een lastig probleem aanpakt: geen enkele andere applicatie die ik op de iPhone heb gezien, van Apple of een derde partij, probeert tienduizenden gegevensitems te indexeren en te beheren. op de client, in realtime, samengesteld uit door de gebruiker geselecteerde bronnen.

Daarentegen beschikt Cydia over een van de snelste technologie die er bestaat met betrekking tot het verwerken van deze gegevens, of het nu gaat om aangepaste algoritmen (Cydia bevat een locale-bewuste radix-sortering voor stringvergelijking, wat AFAIK het snelste sorteeralgoritme is in elke iOS-applicatie) of speciale datastructuren op schijf (nieuw in 1.1 is "Cytore", een nieuwe manier om lokale metagegevens op te slaan op pakketten die vrijwel onmiddellijk vanuit flash kunnen worden geladen; voor degenen die technisch ingesteld zijn, is het een hashtabel met geheugen op schijf , dat alternatieven die mensen graag proberen ter sprake te brengen, zoals SQLite, drastisch verslaat).

Laadtijden

"Ondanks mythen die het tegendeel beweren, heeft de hoeveelheid gegevens die wordt weergegeven in de lijst met wijzigingen geen drastische invloed op hoe snel deze wordt geladen. Er was/was een bug in veel versies van Cydia 1.0 die ervoor zorgde dat er op zijn minst een kleine vertraging optrad met betrekking tot het aantal items op de lijst, maar deze bug was al opgelost vanaf 1.0.3366. De kosten van de berekening bestaan ​​uit het bepalen welke items überhaupt op de lijst moeten staan ​​(en specifiek welke updates daadwerkelijk zijn versus nieuwe releases), en niet door ze allemaal tegelijk weer te geven. Dat gezegd hebbende, verplaatst Cydia 1.0.3366 het laden van wijzigingen tot nadat je op het tabblad hebt geklikt, wat het een beter bewijs maakt hoeveel tijd er aan deze functie wordt besteed (die op zichzelf weer sneller is in 1.1).

Geheugengebruik

"Ondanks dat Cydia 1.1 blijft proberen tienduizenden items in het geheugen te jongleren, gebruikt het dankzij Cytore veel minder geheugen dan ooit tevoren. Er zijn, zoals bij elke versie van Cydia, nog andere optimalisaties doorgevoerd om het geheugengebruik van de app als geheel te verminderen. Bovendien, en in het bijzonder, is Cydia 1.1 veel gewetensvoller als het om geheugenwaarschuwingen gaat, en probeert het tijdens deze gebeurtenissen zoveel mogelijk status weg te gooien.

Dat gezegd hebbende, is de hoeveelheid geheugen die op zelfs redelijk moderne apparaten (alles behalve de iPhone 3G) beschikbaar is voor het uitvoeren van applicaties (niet in totaal, maar beschikbaar nadat de systeemapplicaties van Apple hun aandeel hebben gekregen) een orde van grootte groter: terwijl op een iPhone Met 3G werkte je met misschien 20 MB beschikbaar geheugen, op een iPhone 3G[S] heb je 150 MB en op een iPhone 4 heb je 400 MB beschikbaar. Dus ondanks dat Cydia 1.1 eigenlijk minder geheugen nodig heeft om te werken dan Cydia 1.0, is de druk op het geheugen vrijwel verdwenen en zal dit dankzij de hardware geen gevolgen hebben voor toekomstige gebruikers. upgrades. '

Uitgebreid Zoeken

"Helaas is dit apparaat simpelweg te traag om 'geavanceerde zoekmogelijkheden' te bieden, en zeker geen suggesties, gezien de beperkingen van 'uit door de gebruiker geselecteerde opslagplaatsen' 'in iets dat lijkt op realtime'. Dat gezegd hebbende, heeft Cydia 1.1 een veel beter zoekmechanisme, inclusief een geheel-berekenbaar radix-gesorteerd relevantie-algoritme dat ik heb kunnen implementeren.

Wat echt nodig zou zijn om een ​​werkelijk verbazingwekkende zoekervaring te hebben, is niet zoeken op de client, maar het in plaats daarvan op mijn servers afhandelen. Dit is hoe producten als de App Store, Kindle of Netflix werken: het is helemaal niet gebruikelijk dat diensten die gebruikers gewend zijn, proberen de hele database/op het apparaat/ te beheren, door lokaal te zoeken, in plaats van de gegevens te hebben en berekening voor die bestaande in offline-geïndexeerde zoekstructuren op een enorme server in de cloud.

Helaas zijn de redenen waarom mensen Cydia gebruiken gevarieerd, en veel mensen gebruiken Cydia met repositories die ze eerlijk gezegd niet zouden moeten gebruiken: of de repository software bevat die gevaarlijk is (een nichegemeenschap met aanpassingen die minimaal wordt getest, of die slechte praktijken gebruikt zoals op -disk file patching) of ronduit illegaal (er zijn dingen die jij in jouw land mag doen en ik niet in het mijne), ik ga zeker niet optreden als de gecentraliseerde opslag- en indexeringsgateway voor mensen om deze inhoud te vinden en te beheren .

Wat ervoor zorgt dat mensen bij Cydia blijven terugkomen, is het feit dat het fungeert als het fundamentele alternatief: als je liever naar Apple gaat, met hun zorgvuldig samengestelde reeks gecentraliseerde ervaringen, ga je naar Cydia, ‘het wilde westen van software’, waar software andere software aanpast in een soort roekeloze overgave die zelfs in de best mogelijke scenario’s tot pijn zal leiden, en die in de slechtst mogelijke werelden zal leiden tot dingen die je niet in een standaardrepository kunt opnemen, en die Cydia kan je zelfs waarschuwen voor de installatie, maar waar je nog steeds toegang toe zou moeten hebben en waar je zelfs naar zou moeten kunnen zoeken met behulp van de zoekmechanismen van Cydia."

Foutberichten

"Fouten van Cydia komen niet van Cydia. Als u een URL in Cydia typt voor een kapotte repository, zal die repository van lage kwaliteit zijn en voor problemen zorgen. Als het offline is, zal Cydia je vertellen dat het offline is, en als het misvormd is, zal Cydia daar boos over worden. Cydia blijft daar gewoon werkeloos zitten terwijl er een heleboel kapotte en offline repository's in je lijst staan: het zal je alle fouten vertellen in de hoop dat je de kapotte repository's verwijdert en doorgaat met je leven (wat is een zeer toepasselijke metafoor, aangezien de meeste repository's van derden erg traag zijn en ervoor zorgen dat je vernieuwingservaring heel erg lang duurt).

De secties 'Beoordeel' en 'Beoordeling'

‘We hebben dit daadwerkelijk geprobeerd, en het was een jammerlijke mislukking: er moest meer tijd worden besteed aan het modereren van de beoordelingen, waarvan de meeste misleidend, opruiend of ronduit ongepast waren, dan iemand waarde uit dit mechanisme kon halen: het was zelfs erger dan op de App Store, die berucht is om zijn slechte recensies (mensen beoordelen een pakket vaak om onzinnige redenen, waardoor de gegevens vreselijk ongeldig worden).

Gezien deze problemen heb ik geprobeerd een visie op te stellen over hoe opmerkingen en beoordelingen in Cydia zouden kunnen werken, en heb ik zelfs een proefimplementatie gemaakt (op sommige punten werden zelfs schermafbeeldingen uitgedeeld, en ik deed demo's op een paar conferenties), maar toen kwam dat ik zelfs overwoog om het uit te brengen, kreeg ik sterke kritiek van enkele van de beste ontwikkelaars in het ecosysteem – de mensen aan wie je waarschijnlijk mega-goede recensies wilt geven – dat ze het zouden opgeven als ik daarmee doorging op het ecosysteem, vanwege de problemen van vroeger.

En eerlijk gezegd ben ik er niet zeker van dat ik die problemen zou hebben opgelost, en gezien de daaropvolgende ervaringen met alternatieve producten, en kijkend naar hoe mensen de beoordelingen gebruikten, wat mensen in de commentaren zeiden en hoe dingen uiteindelijk werden beoordeeld, kon ik Ik geloof niet langer dat ik dat zou hebben gedaan: ik geloof dat het concept van kant-en-klare 'opmerkingen en beoordelingen' een fundamenteel gebrekkig systeem is dat inherent tot misbruik leidt.

Nu hoeven niet alle beoordelingssystemen 'kant-en-klaar' te zijn, dus iets echt innovatiefs en 'het probleem daadwerkelijk oplossen' hoop ik op een dag voor Cydia te kunnen bieden. In de tussentijd doe ik echter altijd mijn best om te voorkomen dat er ernstig suboptimale afwegingen in ons ecosysteem worden geïnjecteerd."

Verbeterde compatibiliteitslijsten

"Cydia bevat al een tijdje talloze functies waarmee repositories dit probleem kunnen helpen oplossen.

  1. een mechanisme om firmwarecompatibiliteit op pakketten te specificeren (pakketten kunnen afhankelijk zijn van: specifieke firmwarerevisies).
  2. Met de Cydia Store kunnen leveranciers aankopen voor specifieke firmwares blokkeren (elk betaald product kan de compatibiliteit ervan in zijn repository registreren, en dan zal ik het filteren voor gebruikers die het kunnen gebruiken).
  3. de firmwareversie wordt als onderdeel van de user-agent naar de webpagina's van elk product verzonden, waardoor ontwikkelaars hun eigen waarschuwingen kunnen weergeven.
  4. Compatibiliteit kan zelfs nog meer worden bereikt door functiedetectie, waardoor pakketten kunnen zeggen: "Ik heb voice-overondersteuning nodig op een apparaat met een camera met een armv7 CPU en een retinascherm".

In wezen is er weinig excuus voor het feit dat pakketten, opslagplaatsen, producten of iets anders in het Cydia-ecosysteem slecht zijn gespecificeerd in termen van firmware-compatibiliteit. Dat gezegd hebbende, bevatten bijna geen pakketten in het ecosysteem, en zelfs maar heel weinig producten (waarvan je zou denken dat dit het belangrijkste is), deze informatie op een van deze niveaus, wat nogal teleurstellend is.

Cydia 1.1 gaat dus niet proberen deze mechanismen te verbeteren, aangezien Cydia 1.0 er al meer dan genoeg van heeft: de echte verantwoordelijkheid ligt nu bij de ontwikkelaars en artiesten van specifieke items."

Verwijdering van dode inhoud

"Ik heb geen enkele controle over welke inhoud beschikbaar is in Cydia. Ik bedoel, ik kan weigeren er persoonlijk geld voor te accepteren, maar ik heb bijna geen introspectie over dingen die gratis zijn of worden verkocht op de website van de ontwikkelaar. Jarenlang heb ik geprobeerd om repositories verouderde pakketten te laten ophalen: ze weigeren. In plaats van te lobbyen bij mij, die het met je eens is en machteloos is, moet je deze klachten naar de standaardrepository's sturen: BigBoss, ModMyi en ZodTTD."

Verduidelijkte installatievereisten

(Tags zeggen als installatie van apps/tweaks, enz. een springplankvernieuwing nodig heeft of als het apparaat opnieuw moet opstarten)

"Hoewel dit vaak wordt gezegd, is dit eenvoudigweg niet hoe dit mechanisme werkt: pakketten berekenen of ze opnieuw moeten worden opgestart of opnieuw moeten worden geladen tijdens de installatie, waardoor pakketten optimalisaties kunnen doorvoeren zoals: "Ik hoef alleen opnieuw op te starten als de gebruiker deze firmwareversie gebruikt en heeft dit andere pakket geïnstalleerd met deze instelling gespecificeerd". In feite proberen al mijn pakketten die functies zoals deze nodig hebben deze optimalisaties, en vaak zul je daardoor niet zoveel reboots of herlaadbeurten nodig hebben.

Daarom zou het opgeven van dit als statische tags op een pakket het aantal herstarts dat een gebruiker onnodig moet uitvoeren vergroten. Dat gezegd hebbende, voor pakketten waarbij dit niet voor de hand ligt (extensies zullen opnieuw moeten worden geladen en MobileSubstrate zal opnieuw moeten worden opgestart), zoals gevallen van MMS-clients die opnieuw moeten worden opgestart, zou het voor de ontwikkelaar zeker de beste praktijk moeten zijn om plaats deze informatie op hun pakketinformatiescherm. Dit is zelfs eenvoudiger voor de ontwikkelaar/leverancier dan het aanpassen van het pakket, en zelfs dan wordt het zeer ongebruikelijk gespecificeerd: het toevoegen van de tag zal daarom niet eens veranderen hoe vaak het wordt gerapporteerd."

Repo-beheer

"Wat betreft repository's die niet correct zijn toegevoegd, zou Cydia 1.1, zoals aangegeven door Ryan Petrich, niet langer in situaties moeten eindigen waarin kapotte repository's zo onbruikbaar zijn dat ze ook niet meer kunnen worden verwijderd. Dat gezegd hebbende, klagen veel gebruikers over repository's die via een pakket zijn geïnstalleerd: om deze repository's te verwijderen moet je het pakket verwijderen dat ze vertegenwoordigt.

(Vanwege sommige van deze complexiteiten is het in de toekomst het beleid van Cydia dat er geen repository's installeerbaar zullen zijn vanuit standaard repository's via pakketten, en de bestaande onder Meer bronnen zullen worden overgezet naar een nieuw mechanisme voor het verwerken hiervan dat is toegevoegd dat het mogelijk maakt directere, eenvoudigere en veiligere manipulatie van repositories met behulp van een binnenkort vernieuwde pagina Meer bronnen.)"