Cydia 1.1 dostępna do pobrania

Kilka minut temu saurik wypuścił wersję 1.1 Cydii, wersję, na którą wielu z nas czekało i którą saurik obiecał od dawna. Nowa wersja aplikacji powinna przynieść sporo usprawnień wydajnościowych, ale także pewne zmiany dotyczące funkcjonalności aplikacji. Możesz zainstalować Cydię 1.1, otwierając aplikację Cydia na swoim terminalu i wykonując odświeżenie w menu Zmiany.

Saurik powiedział na swoim koncie na Twitterze, że nowa wersja Cydii to:

  • możliwość uruchamiania i obsługi Activatora, libstatusbar i SimulatedKeyEvents podczas działania Cydii
  • ogólna poprawa szybkości, w tym okno dialogowe „Ładowanie zmian”.
  • „znacznie mniejsze” zużycie pamięci
  • bardziej zaawansowany mechanizm wyszukiwania z nowym algorytmem trafności
  • lepsze zarządzanie uszkodzonymi repozytoriami

wielozadaniowość

„W tej chwili jest to po prostu niemożliwe. Zdaję sobie sprawę, że wszyscy tego chcą i do cholery: ja też tego chcę; ale wszyscy, którzy mówią, że to ważne, nie sprawiają, że jest to możliwe. Powodem, dla którego Cydia nie ma wielozadaniowości zgodnej z iOS 4, jest to, że aby wprowadzić modyfikacje w systemie, działa jako „root”, czyli użytkownik mający więcej uprawnień w systemie niż cokolwiek innego, co oznacza, że ​​SpringBoard , skromny proces działający jako „mobilny”, nie może go zawiesić/wznowić.

Jest to coś, czemu /można/ zaradzić i zastanawiałem się, jak to zrobić od dłuższego czasu, ale wszystkie oczywiste sposoby, o których ludzie lubią wspominać, aby interfejs GUI Cydii działał jako mobilny z tylko małymi części działające jako root spowodują, że Cydia będzie działać wolniej, a szybkość jest czymś, na czym najbardziej skupia się każdy, kto korzysta z Cydii. Na szczęście odkryłem pewne rzeczy, które mogą sprawić, że będzie to bardziej możliwe, ale z pewnością nie w przypadku tego wydania.

Pozostawianie włączonego podłoża mobilnego, gdy Cydia jest otwarta

„Gdybyś to zrobił, okazałoby się, że Twój system nagle stałby się bezużyteczny. Zdaję sobie sprawę, że brzmi to wszystko ładnie i niewyraźnie, że Mobile Substrate powinien modyfikować wszystkie aplikacje w systemie, w tym Cydię, ale powtórzę: Cydia działa jako root. Prawie wszystkie rozszerzenia w ekosystemie NIE są zaprojektowane z myślą o tym, a gdy nagle przyznane zostaną uprawnienia roota, zaczynają niszczyć uprawnienia plików konfiguracyjnych i folderów Media, uniemożliwiając korzystanie z nich wszystkim normalnym aplikacjom.

Dlatego w tej wersji Cydii przejrzałem „duże elementy zgłoszenia” – które wydają się sprowadzać do Aktywatora (który uruchamia SBSettings), libstatusbar (dodaje elementy powiadomień do paska stanu) i SimulatedKeyEvents (wstrzyknięcie klucza wydarzenia od Veency) – aby sprawdzić u swoich programistów, czy będą one poprawnie działać w środowisku działającym jako root. Te rozszerzenia (plus WinterBoard, który nie działa na root w wersji 4.x, ale jest nieszkodliwy i zostanie naprawiony w przyszłej wersji) są dostępne z poziomu Cydii, dopóki Cydia nie zostanie zmodyfikowana tak, aby działała jako mobilna.

Lepiej wyglądający interfejs i opcja tworzenia kopii zapasowych

„Funkcja tworzenia kopii zapasowych w rzeczywistości nie wymaga wypychania nowej wersji Cydii, ale wymaga czasu, aby dowiedzieć się, jak skalować użytkowników, aby obsługiwali rodzaj obciążenia Cydii. Cydia ma o wiele rzędy wielkości więcej użytkowników niż którakolwiek z jej konkurencji, co oznacza, że ​​wiele rzeczy, o których ludzie lubią myśleć „powinno być proste, X to zrobił”, w rzeczywistości jest znacznie trudniejszych do wdrożenia. Tworząc takie funkcje, stawiam także na prywatność i chcę mieć 100% pewności, że nikt inny niż Ty nie będzie mógł uzyskać dostępu do listy zainstalowanych przez Ciebie produktów.

Jeśli chodzi o „lepiej wyglądający interfejs”, staram się zachować coś, co konkuruje z produktami Apple. Kilka rzeczy zepsuło się w wersji 4.x (położenie i rozmiar niektórych przycisków), a różne „czarne” interfejsy (czarny pasek i czarny ekran) otrzymują mieszane raporty, ale poza tym głównym problemem, jaki użytkownicy mają z Cydią, nie jest Cydia : dotyczy repozytoriów. Za każdym razem, gdy otrzymuję informację zwrotną „ta konkretna rzecz jest zła”, jeśli nie jest to coś, co Apple robi samodzielnie w swoich aplikacjach iTunes lub App Store (co należy traktować jako „model intuicyjny”), jest to obszary interfejsu, nad którymi po prostu nie mam żadnej kontroli: zawartość wyświetlana dla pakietu przez repozytorium.”

Zamieszanie z terminem „zmiany”

„Może zwariowałem, ale zawsze myślałem, że słowo „Zmiany” nie jest geekowskie end-user termin określający „rzeczy, które się zmieniają”. Z pewnością nie jest to termin techniczny: nie został wybrany ze względu na jakieś maniackie pragnienie, aby baza kodu odpowiadała interfejsowi użytkownika, ani nie została wybrana dlatego, że miała jakieś ezoteryczne znaczenie w języku łacińskim lub greckim. Zamiast tego wybrano to słowo, ponieważ było to pojedyncze słowo, które dla największej liczby osób, z którymi rozmawiałem, od razu oznaczało dokładnie to, co robiła ta strona: pokazało, co się zmieniło. Niezależnie od tego, „Nowe wydania/aktualizacje” z pewnością nie zmieszczą się na etykiecie karty.”

Prędkość

„Podobnie jak w przypadku /każdego/ wydania Cydii, Cydia 1.1 jest szybsza niż poprzednie wydania. W szczególności jest szybszy niż 1.0.3366 z dużym marginesem, który sam w sobie był szybszy niż 1.0.3222 o jeszcze większą przepaść. W tym miejscu należy jednak zauważyć, że Cydia mierzy się z trudnym problemem: żadna inna aplikacja, którą widziałem na iPhonie, ani firmy Apple, ani żadnej innej firmy, nie próbuje przeszukiwać indeksów i zarządzać dziesiątkami tysięcy elementów danych, na kliencie, w czasie rzeczywistym, zagregowane z wybranych przez użytkownika źródeł.

Dla kontrastu, Cydia dysponuje najszybszą istniejącą technologią w zakresie obsługi tych danych, niezależnie od tego, czy są to algorytmy niestandardowe (Cydia zawiera sortowanie oparte na porównywaniu ciągów uwzględniające ustawienia regionalne, które według AFAIK jest najszybszym algorytmem sortowania w dowolnej aplikacji na iOS), czy też specjalne struktury danych na dysku (nowość w wersji 1.1 to „Cytore”, nowy sposób przechowywania lokalnych metadanych w pakietach, które można załadować niemal natychmiast z pamięci flash; dla tych, którzy mają zdolności techniczne, jest to tablica mieszająca mapowana na pamięć na dysku , co drastycznie przewyższa alternatywy, które ludzie lubią próbować przywoływać, takie jak SQLite).”

Czasy ładowania

„Wbrew mitom, ilość danych wyświetlanych na liście zmian nie wpływa drastycznie na szybkość jej ładowania. /Wystąpił/ błąd w wielu wersjach Cydii 1.0, który powodował przynajmniej niewielkie opóźnienie związane z liczbą pozycji na liście, ale ten błąd został już naprawiony w wersji 1.0.3366. Koszt kalkulacji polega na tym, jakie wpisy w ogóle powinny znaleźć się na liście (a konkretnie, które z nich są w rzeczywistości aktualizacjami, a które nowościami), a nie na wyświetlaniu ich wszystkich na raz. To powiedziawszy, Cydia 1.0.3366 przesuwa ładowanie zmian do momentu kliknięcia karty, co stanowi kolejny dowód, ile czasu spędza się na tej funkcji (która sama w sobie jest szybsza w wersji 1.1).”

Użycie pamięci

„Mimo że Cydia 1.1 nadal próbuje żonglować dziesiątkami tysięcy elementów w pamięci, dzięki Cytore zużywa znacznie mniej pamięci niż kiedykolwiek wcześniej. Podobnie jak w przypadku każdej wersji Cydii, wprowadzono inne optymalizacje, aby zmniejszyć zużycie pamięci przez aplikację jako całość. Dodatkowo, w szczególności, Cydia 1.1 jest znacznie bardziej świadoma ostrzeżeń dotyczących pamięci i stara się podczas tych zdarzeń wyrzucać jak najwięcej stanu.

To powiedziawszy, ilość pamięci nawet w miarę nowoczesnych urządzeń (wszystko, co jest starsze niż iPhone 3G) dostępnej do uruchamiania aplikacji (nie w całości, ale dostępna po uwzględnieniu udziału aplikacji systemowych Apple) jest o rząd wielkości większa: podczas gdy na iPhonie W przypadku 3G pracowałeś z może 20MB dostępnej pamięci, w iPhonie 3G[S] masz 150MB, a w iPhonie 4 masz dostępne 400MB. Tak więc, mimo że Cydia 1.1 faktycznie potrzebuje mniej pamięci do działania niż Cydia 1.0, obciążenie pamięci praktycznie zniknęło i nie będzie miało to wpływu na przyszłych użytkowników dzięki sprzętowi Uaktualnienia".

Wiecej opcji

„Niestety, to urządzenie jest po prostu zbyt wolne, aby zapewnić „zaawansowane możliwości wyszukiwania”, a już na pewno nie sugestie, biorąc pod uwagę ograniczenia związane z „z wybranych przez użytkownika repozytoriów” „w czasie przypominającym czas rzeczywisty”. To powiedziawszy, Cydia 1.1 ma znacznie lepszy mechanizm wyszukiwania, w tym algorytm trafności sortowany na podstawie liczb całkowitych i arytmetycznych, który udało mi się zaimplementować.

Aby zapewnić naprawdę niesamowite możliwości wyszukiwania, naprawdę potrzebne byłoby nie wyszukiwanie na kliencie, lecz obsługa tego na moich serwerach. Tak działają produkty takie jak App Store, Kindle czy Netflix: nie jest powszechne, że użytkownicy usług są przyzwyczajeni do prób zarządzania całą bazą danych /na urządzeniu/, przeprowadzania wyszukiwania lokalnego, zamiast posiadania danych i obliczenia dla istniejących struktur wyszukiwania indeksowanych offline na ogromnym serwerze w chmurze.

Niestety, powody, dla których ludzie korzystają z Cydii są różne, a wiele osób korzysta z Cydii z repozytoriami, którymi, szczerze mówiąc, nie powinno być: czy repozytorium zawiera niebezpieczne oprogramowanie (niszowa społeczność z poprawkami poddawana minimalnym testom lub stosująca złe praktyki, takie jak na - łatanie plików dyskowych) lub wręcz nielegalne (są rzeczy, które możesz robić w swoim kraju, a których ja nie mogę w moim), z pewnością nie będę działać jako scentralizowana brama do przechowywania i indeksowania, dzięki której ludzie będą mogli znajdować te treści i zarządzać nimi .

Zamiast tego tym, co sprawia, że ​​ludzie wracają do Cydii, jest fakt, że stanowi ona podstawową alternatywę: zamiast iść do Apple z ich starannie dobranym zestawem scentralizowanych doświadczeń, idziesz do Cydii, „dzikiego zachodu oprogramowania”, gdzie oprogramowanie modyfikuje inne oprogramowanie w sposób lekkomyślny, który doprowadzi do bólu nawet w najlepszych możliwych scenariuszach, a w najgorszych możliwych światach doprowadzi do rzeczy, których nie będziesz mógł umieścić na liście w domyślnym repozytorium, a które Cydia może nawet ostrzec Cię o instalacji, ale nadal powinieneś mieć dostęp do niej, a nawet wyszukiwać ją za pomocą mechanizmów wyszukiwania Cydii.

Komunikaty o błędach

„Błędy z Cydii nie pochodzą z Cydii. Jeśli wpiszesz adres URL uszkodzonego repozytorium w Cydii, repozytorium to będzie niskiej jakości i spowoduje problemy. Jeśli jest offline, Cydia poinformuje Cię, że jest offline, a jeśli jest zniekształcony, Cydia będzie się z tego powodu złościć. Cydia po prostu będzie siedzieć bezczynnie, podczas gdy na twojej liście znajduje się mnóstwo uszkodzonych i offline repozytoriów: poinformuje Cię o wszystkich błędach w nadziei, że usuniesz uszkodzone repozytoria i będziesz mógł żyć dalej (co jest bardzo trafna metafora, ponieważ większość repozytoriów stron trzecich działa bardzo wolno i powoduje, że odświeżanie zajmuje bardzo, bardzo dużo czasu).”

Sekcje „Ocena” i „Recenzja”.

„Właściwie tego próbowaliśmy i była to żałosna porażka: więcej czasu trzeba było poświęcić na moderowanie recenzji, z których większość wprowadzała w błąd, podburzała lub była wręcz nieodpowiednia, niż komukolwiek udało się wyciągnąć wartość z tego mechanizmu: było jeszcze gorzej niż w przypadku App Store, który słynie ze złych recenzji (ludzie często oceniają pakiet z błahych powodów, przez co dane są strasznie nieważne).

Biorąc pod uwagę te problemy, próbowałem stworzyć wizję działania komentarzy i ocen w Cydii, a nawet przeprowadziłem próbną implementację (w niektórych momentach rozdawano nawet zrzuty ekranu i robiłem demonstracje na kilku konferencjach), ale kiedy Word wyszło, że nawet rozważałem jego wypuszczenie, spotkałem się z mocnym sprzeciwem ze strony najlepszych programistów w ekosystemie – osób, którym najprawdopodobniej będziesz chciał wystawić mega dobre recenzje – że jeśli będę to kontynuował, poddadzą się na ekosystem ze względu na wcześniejsze problemy.

I szczerze mówiąc, nie jestem pewien, czy rozwiązałbym te problemy, ale biorąc pod uwagę późniejsze doświadczenia z alternatywnymi produktami, patrząc na to, jak ludzie korzystali z ocen, co ludzie mówili w komentarzach i jak ostatecznie wszystko zostało ocenione, nie jestem pewien, czy nie wierzę już, że tak bym zrobił: uważam, że koncepcja gotowych „komentarzy i ocen” to system z gruntu wadliwy, który z natury prowadzi do nadużyć.

Nie wszystkie systemy oceniania muszą być „z półki”, więc mam nadzieję, że pewnego dnia Cydia zapewni coś naprawdę innowacyjnego i „faktycznie rozwiązującego problem”. W międzyczasie jednak zawsze dokładam wszelkich starań, aby uniknąć wprowadzania do naszego ekosystemu suboptymalnych kompromisów”.

Ulepszone wykazy zgodności

„Od jakiegoś czasu Cydia zawiera wiele funkcji, które pozwalają repozytoriam pomóc w rozwiązaniu tego problemu.

  1. mechanizm określania zgodności oprogramowania sprzętowego w pakietach (pakiety mogą zależeć: określone wersje oprogramowania sprzętowego).
  2. Sklep Cydia pozwala sprzedawcom blokować zakupy dla określonego oprogramowania sprzętowego (każdy płatny produkt może zarejestrować swoją kompatybilność w swoim repozytorium, a następnie przefiltruję go pod kątem użytkowników, którzy będą mogli z niego korzystać).
  3. wersja oprogramowania sprzętowego jest wysyłana jako część klienta użytkownika do stron internetowych każdego produktu, umożliwiając programistom wyświetlanie własnych ostrzeżeń.
  4. kompatybilność jest jeszcze bardziej możliwa do osiągnięcia poprzez wykrywanie funkcji, dzięki czemu pakiety mogą powiedzieć: „Potrzebuję obsługi głosu na urządzeniu z kamerą z procesorem armv7 i ekranem Retina”.

Zasadniczo nie ma powodu, aby pakiety, repozytoria, produkty lub cokolwiek innego w ekosystemie Cydia było słabo określone pod względem kompatybilności oprogramowania sprzętowego. To powiedziawszy, prawie żadne pakiety w ekosystemie, a nawet bardzo niewiele produktów (w przypadku których można by pomyśleć, że jest to najważniejsze), nie zawierają tych informacji na żadnym z tych poziomów, co jest raczej rozczarowujące.

Zatem Cydia 1.1 nie będzie próbowała ulepszać żadnego z tych mechanizmów, ponieważ Cydia 1.0 ma ich już więcej niż wystarczająco: prawdziwy ciężar spoczywa teraz na twórcach i artystach konkretnych elementów.

Usuwanie martwej zawartości

„Nie mam żadnej kontroli nad tym, jakie treści są dostępne w Cydii. To znaczy, mogę odmówić osobistego przyjęcia za to pieniędzy, ale prawie nie mam introspekcji nad rzeczami, które są albo darmowe, albo sprzedawane na stronie dewelopera. Przez lata próbowałem nakłonić repozytoria do pobierania przestarzałych pakietów, ale odmawiały. Zamiast lobbować mnie, który się z tobą zgadza i jest bezsilny, musisz wysyłać te skargi do domyślnych repozytoriów: BigBoss, ModMyi i ZodTTD.”

Wyjaśnione wymagania dotyczące instalacji

(Tagi mówiące „jeśli instalacja aplikacji/ulepszeń itp. potrzebujesz odświeżenia odskoczni lub jeśli urządzenie wymaga ponownego uruchomienia)

„Choć jest to często stwierdzane, po prostu nie tak działa ten mechanizm: pakiety podczas instalacji obliczają, czy wymagają ponownego uruchomienia, czy ponownego załadowania, umożliwiając pakietom dokonanie optymalizacji w rodzaju: „Muszę ponownie uruchomić komputer tylko wtedy, gdy użytkownik korzysta z tej wersji oprogramowania sprzętowego i czy zainstalowano ten inny pakiet z określonym ustawieniem”. W rzeczywistości wszystkie moje pakiety, które wymagają takich funkcji, próbują tych optymalizacji i często z tego powodu nie będziesz potrzebować tylu ponownych uruchomień lub przeładowań.

Dlatego określenie tego jako znaczników statycznych w pakiecie zwiększyłoby liczbę niepotrzebnych ponownych uruchomień, które użytkownik musi wykonać. To powiedziawszy, w przypadku pakietów, dla których nie jest to oczywiste (rozszerzenia będą wymagały ponownego załadowania, a MobileSubstrate będzie wymagał ponownego uruchomienia), takich jak przypadki klientów MMS wymagających ponownego uruchomienia, z pewnością najlepszą praktyką dla programisty powinno być umieść tę informację na ekranie informacji o pakiecie. Jest to nawet łatwiejsze dla programisty/sprzedawcy niż modyfikowanie pakietu, a nawet wtedy jest to bardzo rzadko spotykane: dlatego dodanie tagu nie zmieni nawet częstotliwości jego raportowania.

Zarządzanie repo

„Jeśli chodzi o repozytoria, które nie dodały się poprawnie, jak stwierdził Ryan Petrich, Cydia 1.1 nie powinna już pojawiać się w sytuacjach, w których uszkodzone repozytoria są tak bezużyteczne, że nie można ich również usunąć. To powiedziawszy, wielu użytkowników skarży się na repozytoria instalowane za pośrednictwem pakietu: aby usunąć te repozytoria, musisz usunąć pakiet, który je reprezentuje.

(Ze względu na niektóre z tych zawiłości polityka Cydii przewiduje, że żadne repozytoria nie będą instalowane z repozytoriów domyślnych za pośrednictwem pakietów, a istniejące w obszarze Więcej źródeł zostaną przeniesione do nowego, dodanego mechanizmu obsługi tych repozytoriów, który umożliwi bardziej bezpośrednia, prostsza i bezpieczniejsza manipulacja repozytoriami przy użyciu wkrótce odnowionej strony Więcej źródeł.)”