Cydia 1.1 - saurik berättar om vad han kommer att implementera i den nya versionen av applikationen

saurik och hans team har arbetat på Cydia 1.1 under en tid och det är möjligt att vi strax efter lanseringen av den obundna jailbreak-lösningen för iOS 4.3 kommer att ha den tillgänglig för nedladdning. Ryan Petrich, utvecklaren av ProSwitcher-tweaken, arbetar på utvecklingen av denna nya version och tillkännagav på sitt Twitterkonto 2 mycket intressanta nyheter för nya Cydia. Det verkar som att vi kommer att ha en ny repohanteringsmodul genom Cydia 1.1 och saurik arbetar på en metod för att lösa de fel som uppstår när information från befintliga repor laddas. Alla dessa ändringar kommer att finnas i Cydia 1.1 som jag hoppas kommer att dyka upp så snart som möjligt.

Nedan finns några förklaringar från saurik för några av de vanligaste frågorna som ställs om Cydia.

"""Multitasking är ett måste och att inte ha det är ganska patetiskt, särskilt eftersom iOS 4 har varit ute i 8 månader."""

Detta är helt enkelt inte möjligt just nu. 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.

"""Möjligheten att lämna mobilt substrat på när du använder Cydia. Jag förstår att det är för att minska installationskonflikter, men att inte ha tillgång till SBSettings är jobbigt, särskilt eftersom Cydia inte multitaskar än! BUA."""

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.

"""Jag kan inte vänta på ett snyggare gränssnitt. Och en automatisk säkerhetskopieringsfunktion skulle vara bra. Fortsätt så. Kan inte vänta med att se det"""

En säkerhetskopieringsfunktion kräver faktiskt inte att man driver 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.

"""mindre nördiga termer (till exempel varför "Ändringar" när de egentligen borde säga "nya utgåvor/uppdateringar"?)"""

Jag kanske är galen, men jag har alltid tänkt på ordet "Ändringar" som en väldigt icke-nördad slutanvändarterm för "saker som förändrades". 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, "Nya releaser/uppdateringar" kommer verkligen inte att passa på en fliketikett.

"""Förhoppningsvis kommer Cydia 1.1 att vara mycket snabbare!"

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 , som drastiskt slår ut alternativ som folk gillar att försöka ta upp som SQLite).

"""mindre laddning av data (behöver jag VERKLIGEN se alla ändringar i listan på en gång?)"""

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 uppenbart hur mycket tid som läggs på den här funktionen (som i sig själv är snabbare på 1.1).

"""Mindre minnesanvändning"""

Trots att Cydia 1.1 fortsätter att försöka jonglera med 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årdvaruuppgraderingar.

"""Jag håller med många av de andra kommentarerna ovan, men det jag tycker är viktigast är stabilitet, hastighet och mer avancerade sökmöjligheter. Till exempel, om någon skriver in ett appnamn fel eller bara vill skriva in ett nyckelord i en sökning, bör Cydia ge förslag."""

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 för "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 på ett slags hänsynslöst sätt
att överge det 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 standardförråd, och som Cydia till och med kan 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.

"""Äntligen, jag hoppas att de fixade de där hemska felen cydia ger dig allt när du öppnar den."

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).

"""Jag vill se ett avsnitt om betyg och recensioner läggs till som i appbutiken."""

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 denna mekanism: den 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 uppgifterna 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 kompromisser i vårt ekosystem.

"""Det kommer dock att vara viktigt att enheten och iOS-versionen ingår eftersom så många skillnader är kompatibilitet."""

Du predikar dock för kören här. Cydia har under ett tag innehållit många funktioner som skulle tillåta repositories att hjälpa till med detta problem.

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 köp för specifika firmwares (alla betalda produkter kan registrera sin kompatibilitet med dess arkiv, och sedan filtrerar jag den till användare som kan använda den).

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 röstöver-stöd på en enhet med en kamera som kör en armv7-processor och en retina-skä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.

"""Vill också se mycket dött innehåll dras"""

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.

"""Taggar som säger om installation av appar/tweaks etc behöver en språngbräda uppdatering eller enheten måste 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.

"""När det gäller stabilitet skulle det vara trevligt om Cydia hade en lösning för repor eller appar som inte lades till korrekt, istället för att bara få oändliga fel som dyker upp. Enbart dessa korrigeringar skulle för mig vara mer fördelaktiga än en ny omdesign av Cydias layout eller andra kosmetiska förändringar."""

När det gäller repositories som inte lades till korrekt, som Ryan Petrich säger, bör Cydia 1.1 inte längre hamna i situationer där trasiga repositories ä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 förråd med hjälp av en sida med fler källor som snart kommer att förnyas.)