Cydia 1.1 tillgänglig för nedladdning

För några minuter sedan släppte saurik version 1.1 av Cydia, en version som många av oss väntar på och som saurik har lovat länge. Den nya versionen av applikationen bör medföra en hel del prestandaförbättringar men också vissa förändringar angående applikationens funktionalitet. Du kan installera Cydia 1.1 genom att öppna Cydia-applikationen på din terminal och göra en uppdatering i menyn Ändringar.

Saurik sa på sitt Twitter-konto att den nya versionen av Cydia är:

  • möjligheten att köra och använda Activator, libstatusbar och SimulatedKeyEvents medan Cydia körs
  • en övergripande hastighetsförbättring, inklusive dialogrutan "Ladda ändringar".
  • "mycket mindre" minnesanvändning
  • en mer avancerad sökmekanism med en ny relevansalgoritm
  • bättre hantering av trasiga förvar

Multitasking

"Det här är helt enkelt inte möjligt i nuläget. Jag inser att alla vill ha det, och fan: jag vill det också; men alla som säger att det är viktigt gör det inte möjligt. Anledningen till att Cydia inte har iOS 4-kompatibel multitasking är att för att göra ändringarna i systemet körs det som "root", en användare som har fler behörigheter på systemet än något annat, vilket innebär att SpringBoard , en låg process som körs som "mobil", kan inte avbryta/återuppta den.

Nu är detta något som /kan/ kan åtgärdas, och är något som jag har tänkt på hur man gör länge, men alla de uppenbara sätten som folk gillar att ta upp för att få Cydias GUI att köras som mobilt med bara små delar som körs som root skulle få Cydia att köra långsammare, och hastighet är något som är primärt i allas sinnen när de använder Cydia. Lyckligtvis finns det saker jag har kommit på som kan göra detta mer rimligt möjligt, men absolut inte för den här utgåvan."

Lämna mobilt substrat på när Cydia är öppet

"Om du gjorde detta skulle du upptäcka att ditt system plötsligt skulle bli oanvändbart. Jag inser att det låter trevligt och flummigt att Mobile Substrate ska modifiera alla applikationer på systemet, inklusive Cydia, men återigen: Cydia körs som root. Nästan alla tillägg i ekosystemet är INTE utformade med detta i åtanke, och när du plötsligt ges root-åtkomst börjar du förstöra behörigheterna för dina konfigurationsfiler och mediamappar, vilket gör att alla vanliga applikationer inte kan använda dem.

Därför, med den här versionen av Cydia, har jag gått igenom de "stora biljettobjekten" - som verkar komma ner till Activator (det som startar SBSettings), libstatusbar (lägger till meddelandeobjekt i statusfältet) och SimulatedKeyEvents (injektion av nyckel händelser från Veency) – för att verifiera med sina utvecklare att de kommer att fungera korrekt i en miljö som körs som root. Dessa tillägg (plus WinterBoard, som inte fungerar på root på 4.x men är ofarligt, och kommer att fixas i en framtida version) är vad som är tillgängliga inifrån Cydia tills Cydia modifieras för att köras som mobil."

Bättre gränssnitt och alternativ för säkerhetskopiering

"En säkerhetskopieringsfunktion kräver faktiskt inte en ny version av Cydia, men det kräver tid att ta reda på hur man skalar användarna för att stödja den typ av belastning Cydia har. Cydia körs med många storleksordningar fler användare än någon av sina konkurrenter har, vilket gör att många saker som folk tycker om att "borde vara enkelt, X gjorde det" faktiskt är mycket svårare att implementera. Jag håller också integritet i främsta rummet när jag bygger funktioner som denna, och vill vara 100% säker på att ingen annan än du kan få tillgång till din lista över installerade produkter.

När det gäller ett "bättre gränssnitt" försöker jag hårt behålla något som konkurrerar med Apples produkter. Några saker ruttnade på 4.x (positionerna och storlekarna på vissa knappar), och de olika "svarta" gränssnitten (det svarta fältet och den svarta skärmen) får blandade rapporter, men annars är inte Cydia det största problemet som användare har med Cydia : det är med förråd. Varje gång jag har fått verklig feedback "den här specifika saken är dålig", där den saken inte är något som Apple själva gör i sina iTunes- eller App Store-applikationer (som bör tas som den "intuitiva modellen"), är det i områden i gränssnittet som jag helt enkelt inte har någon kontroll över: innehållet som visas för ett paket av förvaret."

Förvirring med termen "ändringar"

"Kanske jag är galen, men jag har alltid trott att ordet "förändringar" var väldigt icke-nördigt slutanvändaren term för "saker som förändras". Det är verkligen inte en teknisk term: den valdes inte på grund av någon nördig önskan att få kodbasen att matcha användargränssnittet, och den valdes inte heller för att den hade någon esoterisk betydelse på latin eller grekiska. Det valdes istället eftersom det var ett enstaka ord som direkt betydde för det största antalet personer jag pratade med exakt vad den sidan gjorde: visade dig vad som förändrades. Oavsett vilket, "Nya utgåvor/uppdateringar" passar verkligen inte på en fliketikett."

Fart

"Som med /varje/ utgåva av Cydia är Cydia 1.1 snabbare än tidigare utgåvor. Specifikt är den snabbare än 1.0.3366 med god marginal, vilket i sig var snabbare än 1.0.3222 med en ännu större avgrund. I denna anmärkning är det dock viktigt att notera att Cydia tar itu med ett svårt problem: ingen annan applikation jag har sett på iPhone, från Apple eller någon tredje part, försöker söka indexera och hantera tiotusentals dataobjekt, på klienten, i realtid, aggregerad från användarvalda källor.

Däremot har Cydia en del av den snabbaste tekniken som finns när det gäller att hantera denna data, oavsett om det är anpassade algoritmer (Cydia inkluderar en lokal-medveten strängjämförelse radix sort, vilken AFAIK är den snabbaste sorteringsalgoritmen i alla iOS-applikationer) eller speciell datastrukturer på disk (ny i 1.1 är "Cytore", ett nytt sätt att lagra lokal metadata på paket som kan laddas nästan omedelbart från flash; för de där ute som är tekniskt sinnade är det en minnesmappad hashtabell på disken , vilket drastiskt slår ut alternativ som folk gillar att försöka ta upp som SQLite).

Laddningstider

"Trots myter om motsatsen påverkar mängden data som visas i listan Ändringar inte drastiskt hur snabbt den laddas. Det /var/ en bugg i många versioner av Cydia 1.0 som gjorde att det blev åtminstone en liten fördröjning relaterad till antalet objekt på listan, men denna bugg var redan fixad från och med 1.0.3366. Kostnaden för beräkningen är att bestämma vilka poster som ska finnas på listan överhuvudtaget (och specifikt vilka som faktiskt är uppdateringar kontra nya utgåvor), inte att visa alla på en gång. Som sagt, Cydia 1.0.3366 flyttar laddningen av ändringar tills du klickar på fliken, vilket gör det mer bevis på hur mycket tid som spenderas på den här funktionen (som i sig är snabbare på 1.1)."

Minnesanvändning

"Trots Cydia 1.1 fortsätter att försöka jonglera tiotusentals objekt i minnet, tack vare Cytore, använder den mycket mindre minne än någonsin tidigare. Andra optimeringar har gjorts, som med alla versioner av Cydia, för att minska minnesanvändningen för appen som helhet. Dessutom, och i synnerhet, är Cydia 1.1 mycket mer noggrann med minnesvarningar och försöker kasta ut så mycket tillstånd som möjligt under dessa händelser.

Som sagt, mängden minne på till och med någorlunda moderna enheter (allt tidigare än iPhone 3G) som är tillgängligt för att köra applikationer (inte totalt, men tillgängligt efter att Apples systemapplikationer fått sin del), är en storleksordning större: medan det på en iPhone 3G arbetade du med kanske 20 MB tillgängligt minne, på en iPhone 3G[S] har du 150 MB och på en iPhone 4 har du 400 MB tillgängligt. Så trots att Cydia 1.1 faktiskt behöver mindre minne för att fungera än Cydia 1.0, är ​​trycket på minnet i stort sett borta och kommer inte att påverka framtida användare tack vare hårdvaran uppgraderingar. "

Avancerad Sökning

"Tyvärr är den här enheten helt enkelt för långsam för att tillhandahålla "avancerade sökfunktioner", och absolut inte förslag, med tanke på begränsningarna "från användarvalda arkiv" "i något som liknar realtid". Som sagt, Cydia 1.1 har en mycket bättre sökmekanism, inklusive en heltalsaritmetisk radixsorterad relevansalgoritm som jag lyckades implementera.

Det som verkligen skulle behövas för att få en verkligt fantastisk sökupplevelse är att inte söka på klienten: att istället hantera det på mina servrar. Så här fungerar produkter som App Store, Kindle eller Netflix: det är inte alls vanligt att tjänster som användare är vana vid försöker hantera hela databasen /på enheten/, gör lokal sökning, snarare än att ha data och beräkning för det som finns i offline-indexerade sökstrukturer på en massiv server i molnet.

Tyvärr är anledningen till att människor använder Cydia varierande, och många människor använder Cydia med arkiv som de ärligt talat inte borde vara: om arkivet innehåller programvara som är farlig (en nischgemenskap med tweaks som får minimal testning, eller använder dåliga metoder som på -diskfilpatchning) eller helt olagligt (det finns saker du får göra i ditt land som jag inte kan göra i mitt), kommer jag verkligen inte att fungera som den centraliserade lagrings- och indexeringsgatewayen för människor att hitta och hantera detta innehåll .

Det som i stället får folk att komma tillbaka till Cydia är det faktum att det fungerar som det grundläggande alternativet: att istället gå till Apple, med deras noggrant kurerade uppsättning centraliserade upplevelser, går du till Cydia, "mjukvarans vilda västern", där programvara modifierar annan programvara i ett slags hänsynslöst övergivande som kommer att leda till smärta även i de bästa möjliga scenarierna, och i de värsta möjliga världarna kommer att leda till saker som du inte kommer att kunna lista på ett standardlager, och som Cydia kan till och med varna dig om att installera, men som du fortfarande borde kunna komma åt och till och med söka efter med hjälp av Cydias sökmekanismer."

Felmeddelanden

"Fel från Cydia kommer inte från Cydia. Om du skriver in en URL i Cydia för ett trasigt arkiv, kommer det arkivet att vara av låg kvalitet och kommer att orsaka problem för dig. Om den är offline kommer Cydia att berätta att den är offline, och om den är felaktig kommer Cydia att bli arg över det. Cydia kommer helt enkelt att sitta sysslolös medan det finns massor av trasiga och offline-förråd i din lista: den kommer att berätta för dig alla fel som är involverade i hopp om att du ska ta bort de trasiga förråden och fortsätta med ditt liv (vilket är en mycket passande metafor, eftersom de flesta tredjepartsförvar är mycket långsamma och gör att din uppdateringsupplevelse tar väldigt mycket lång tid)."

Avsnitten "Betygsätt" och "Granska".

"Vi försökte faktiskt detta, och det var ett eländigt misslyckande: mer tid behövde ägnas åt att moderera recensionerna, av vilka de flesta var vilseledande, inflammatoriska eller direkt olämpliga, än någon fick värde av den här mekanismen: det var ännu värre än på App Store, som är ökänt för dåliga recensioner (folk betygsätter ofta ett paket av sinnessjuka skäl, vilket gör data fruktansvärt ogiltiga).

Med tanke på dessa problem försökte jag sätta ihop en vision om hur kommentarer och betyg kunde fungera i Cydia, och gjorde till och med en testimplementering (skärmdumpar delades till och med ut vid vissa tillfällen, och jag gjorde demos på några konferenser), men när ordet kom på att jag till och med övervägde att släppa den, jag fick en stark pushback från några av de bästa utvecklarna i ekosystemet – de människor som du med största sannolikhet vill ge megabra recensioner till – att om jag fortsatte med det skulle de ge upp på ekosystemet, på grund av problemen från tidigare.

Och för att vara ärlig är jag inte säker på att jag skulle ha löst de problemen och gett efterföljande erfarenheter från alternativa produkter, och titta på hur folk använde betygen, vad folk sa i kommentarerna och hur saker och ting till slut fick betyg, tror inte längre att jag skulle ha: Jag tror att konceptet med "kommentarer och betyg" från hyllan är ett fundamentalt felaktigt system som i sig leder till missbruk.

Nu behöver inte alla klassificeringssystem vara "off-the-shelf", så något verkligt innovativt och "faktiskt lösa problemet" är vad jag hoppas att en dag ska ge Cydia. Under tiden gör jag dock alltid mitt bästa för att undvika att injicera allvarligt suboptimala avvägningar i vårt ekosystem."

Förbättrade kompatibilitetslistor

"Cydia har under ett tag innehållit många funktioner som skulle tillåta förråd att hjälpa till med det här problemet.

  1. en mekanism för att specificera firmware-kompatibilitet på paket (paket kan bero: specifika firmware-revisioner).
  2. Cydia Store låter leverantörer blockera inköp för specifika firmware (alla betalda produkter kan registrera sin kompatibilitet med dess arkiv, och sedan kommer jag att filtrera det till användare som kan använda det).
  3. Firmwareversionen skickas som en del av användaragenten till webbsidorna för varje produkt, vilket gör att utvecklare kan visa sina egna varningar.
  4. kompatibilitet kan i ännu högre grad göras genom funktionsdetektering, vilket gör att paketen kan säga "Jag behöver voiceover-stöd på en enhet med en kamera som kör en armv7 CPU och en näthinnaskärm".

I huvudsak finns det väldigt få ursäkter för att paket, förråd, produkter eller något annat i Cydias ekosystem ska vara dåligt specificerade när det gäller firmware-kompatibilitet. Som sagt, nästan inga förpackningar i ekosystemet, och till och med väldigt få produkter (där man skulle kunna tro att detta är det viktigaste), har denna information inkluderad på någon av dessa nivåer, vilket är ganska nedslående.

Så Cydia 1.1 kommer inte att försöka förbättra någon av dessa mekanismer, eftersom Cydia 1.0 redan har mer än tillräckligt av dem: det verkliga ansvaret ligger nu på utvecklarna och artisterna av specifika föremål."

Borttagning av dött innehåll

"Jag har ingen kontroll över vilket innehåll som är tillgängligt i Cydia. Jag menar, jag kan vägra att personligen ta emot pengar för det, men jag har nästan ingen introspektion över saker som antingen är gratis eller säljs på utvecklarens webbplats. I flera år har jag försökt få förråd att dra föråldrade paket: de vägrar. Istället för att lobba mig, som håller med dig och som är maktlös, måste du skicka dessa klagomål till standardförråden: BigBoss, ModMyi och ZodTTD."

Förtydligade installationskrav

(Taggar som säger om Installationen av appar/tweaks etc. behöver en språngbräda uppdatering eller om enheten behöver starta om)

"Även om detta ofta anges, är det helt enkelt inte så den här mekanismen fungerar: paket beräknar om de behöver en omstart eller omladdning när de installerar, vilket tillåter paket att göra optimeringar som "Jag behöver bara starta om om användaren använder den här firmwareversionen och har detta andra paket installerat med denna inställning specificerad". Faktum är att alla mina paket som behöver funktioner som denna försöker dessa optimeringar, och ofta behöver du inte så många omstarter eller omladdningar på grund av det.

Att ange detta som statiska taggar på ett paket skulle därför öka antalet omstarter som en användare måste utföra i onödan. Som sagt, för paket där det inte är uppenbart (tillägg kommer att kräva en omladdning och MobileSubstrate kommer att kräva en omstart), såsom fall av MMS-klienter som kräver en omstart, borde det verkligen vara bästa praxis för utvecklaren att placera denna information på deras paketinformationsskärm. Detta är ännu enklare för utvecklaren/leverantören än att modifiera paketet, och även då är det mycket ovanligt specificerat: att lägga till taggen kommer därför inte ens att ändra hur ofta den rapporteras."

Repohantering

"När det gäller förråd som inte lades till korrekt, som Ryan Petrich säger, bör Cydia 1.1 inte längre hamna i situationer där trasiga förråd är så oanvändbara att de också går att ta bort. Som sagt, många användare klagar på förråd installerade via ett paket: för att ta bort dessa förråd måste du ta bort paketet som representerar dem.

(På grund av vissa av dessa komplexiteter är det Cydias policy framöver att inga förråd kommer att kunna installeras från standardförråd via paket, och de befintliga under Fler källor kommer att övergå till en ny mekanism för att hantera dessa som har lagts till som kommer att möjliggöra mer direkt, enklare och säkrare manipulation av arkiv med hjälp av en sida med fler källor som snart kommer att omarbetas.)"