Historia

Tidy wraca: Historia kompletnej przebudowy po 6 latach

12 min czytania
Tidy Team
Tidy App Icon
v2.0 NEW RELEASE

Jeśli to czytasz, istnieje szansa, ze pamiętasz Tidy. Może uzywales go w 2018 lub 2019 roku. Może przesuwales setki zdjęć, czyszcząc galerię ruchem kciuka. Może zostawiles nam recenzję. Jeśli tak, dziękujemy. Przeczytalismy kazdą z nich.

Czytaj też: Co nowego w Tidy 2.1 i 2.2: Sortowanie do albumów, wyzwania tygodniowe i więcej

A potem zniknęlismy.

Przez szesc lat Tidy lezal nietknięty w App Store. Żadnych aktualizacji. Żadnych nowych funkcji. Zadnej komunikacji. Aplikacja nadal działała, w większosci, ale świat wokol niej szedl do przodu. iOS ewoluowal. Telefony dostaly lepsze aparaty (i większe biblioteki zdjęć). Nowe aplikacje pojawialy się i znikaly. A Tidy po prostu... tam lezal.

Czytaj też: Jak uporządkować zdjęcia na iPhonie: Kompletny przewodnik (2026)

Dzisiaj to się zmienia. Tidy v2.0 to kompletna przebudowa od zera. Nie aktualizacja. Nie odswiezenie. Całkowicie nowa aplikacja, zbudowana od podstaw z nowoczesnymi technologiami, nowymi funkcjami i wszystkim, czego nauczylismy się od pierwszego wydania.

Czytaj też: Jak AI znajduje zduplikowane i podobne zdjęcia (i dlaczego jest lepsza od recznego wyszukiwania)

To jest historia tego, jak tu dotarlismy.

Oryginalne Tidy: 4,8 gwiazdki i 723 recenzje

Tidy zostalo wydane w 2018 roku z prostym zalozeniem: czyszczenie biblioteki zdjęć powinno przypominać grę. Przesuń w prawo, zeby zachować zdjęcię. Przesuń w lewo, zeby je usunąć. Żadnych skomplikowanych menu, systemow folderow ani ram organizacyjnych. Tylko szybkie, instynktowne decyzje, które usuwają balagan.

Reakcja nas zaskoczyła. W ciągu kilku miesięcy Tidy zebralo setki recenzji ze średnią oceną 4,8 na 5 gwiazdek. Gdy osiągnęlismy 723 recenzje, wzorzec byl jasny: ludzie kochali mechanikę przesuwania. Kochali to, jak szybkie bylo. Kochali to, ze nudne zadanie stalo się zabawne.

Tidy w liczbach

  • 4,8 Ocena
  • 723 Recenzje
  • 31 Języków
  • 2018 Rok premiery

Użytkownicy mowili nam rzeczy takie jak “to jest aplikacja, o której nie wiedzialem, ze jej potrzebuję” i “wyczyścilem 3000 zdjęć w jedno popoludnie”. Aplikacja zostala przetlumaczona na 31 języków. Pojawila się w wyroznieniach App Store w wielu krajach. Jak na malą niezalezną aplikację z konkretnym celem, osięgnęla dużo więcej niż można bylo oczekiwać.

Oryginalne Tidy zostalo zbudowane w Swift 4, z wykorzystaniem wzorca architektonicznego MVC, który byl standardem w rozwoju iOS w tamtym czasie. To byla solidna aplikacja jak na swoją epokę. Ale technologia szybko się rozwija i do 2019 roku zaczęly pojawiać się pęknięcia.

Dlaczego milczelismy przez 6 lat

Szczera odpowiedz brzmi: zycie się wydarzylo.

Tidy zostalo stworzone przez maly zespol, a gdy priorytety się zmieniły - jak to bywa u niezaleznych deweloperow - aplikacja spadla na sam dol listy. Nie bylo dramatycznej historii, żadnego przejęcia, zadnej decyzji o zamknięciu. Tylko powolny dryf, który następuje, gdy poboczny projekt przestaje dostawać uwagę.

Tymczasem przepasc między tym, gdzie Tidy bylo, a tym, gdzie powinno być, ciągle rosla:

  • SwiftUI pojawil się w 2019 roku i szybko dojrzal, sprawiając, ze interfejsy oparte na UIKit wyglądaly na przestarzale
  • Biblioteki zdjęć eksplodowaly rozmiarem. Przeciętny użytkownik iPhone przeszedl z 2000-5000 zdjęć do 10 000-50 000
  • AI i uczenie maszynowe przeszly z eksperymentalnych do oczekiwanych. Użytkownicy zaczęli oczekiwać, ze aplikacje będą inteligentne
  • Widgety iOS i Live Activities stworzyly nowe powierzchnie, które aplikacje powinny obsługiwać
  • Oczekiwania dotyczące prywatnosci wzrosly dramatycznie, użytkownicy zaczęli wymagać przetwarzania na urządzeniu i przejrzystosci
  • Sam Swift ewoluowal przez wersje od 5.0 do 6.0, z rygorystyczną wspolbieznoscią i nowymi funkcjami języka

Gdy powaznie przyjrzelismy się Tidy ponownie, oryginalna baza kodu byla archeologiczna. Kod Swift 4, który nie kompilowałby się z nowoczesnymi narzędziami. Wzorce UIKit, które zostaly zastąpione dwukrotnie. Architektura, która nie mogła obsluzyć zadnej z funkcji, których użytkownicy teraz oczekiwali.

Mielismy dwa wyjscia: sprobować załatać i zaktualizować starą bazę kodu lub zacząć od nowa.

Decyzja o przebudowie od zera

Wybralismy przebudowę. Oto dlaczego.

Aktualizacja starego Tidy oznaczalaby przeniesienie kodu Swift 4 do Swift 6, przepisanie całego interfejsu z UIKit na SwiftUI, zastąpienie architektury MVC czymś nowoczesnym, dodanie nowych frameworkow Apple (Vision, Core ML, StoreKit 2, WidgetKit) i jakos sprawienie, zeby wszystkie te zmiany dzialaly razem bez psucia istniejącej aplikacji.

W inzynierii oprogramowania istnieje slynny esej Joela Spolsky'ego zatytulowany “Things You Should Never Do, Part I”, który twierdzi, ze przepisywanie od zera jest prawie zawsze bledem. I dla większosci projektow ma rację. Ale Tidy bylo wyjątkiem:

  • Zero wspolnego kodu - Po ocenie starej bazy kodu oszacowalismy, ze mniej niż 5% oryginalnego kodu można bylo ponownie uzyć. Język zmienil się za bardzo, frameworki byly całkowicie inne, a architektura niekompatybilna
  • Inna platforma - Oryginalne Tidy celowal w iOS 11. Nowe Tidy celuje w iOS 18. To są faktycznie różne platformy z różnymi możliwościami, językami projektowania i oczekiwaniami użytkowników
  • Rozszerzony zakres - Oryginalne Tidy robilo jedną rzecz: przesuń, zeby wyczyścić. Nowe Tidy potrzebowalo filtrów AI, edytora zdjęć, trybu porównania, grywalizacji, widgetow, Live Activities i więcej. Probowanie przylozyć to wszystko do starej architektury byloby jak dobudowywanie pięter do parterowego domu przez ukladanie ich na dachu
  • Czysty fundament na przyszlosc - Rozpoczęcię od nowa oznaczalo, ze moglismy przyjąć rygorystyczną wspolbieznosc Swift 6 od pierwszego dnia, uzyć SwiftData zamiast Core Data, wdrozyć odpowiednią Clean Architecture i zbudować fundament, który będzie wspierać lata przyszlego rozwoju

Przebudowa nie byla szybką decyzją. Spędzilismy tygodnie na ocenie starego kodu, prototypowaniu w obu kierunkach (aktualizacja vs. przepisanie) i ostatecznie doszlismy do wniosku, ze przebudowa od podstaw będzie szybsza, czystsza i da lepszą aplikację niż jakakolwiek próba modernizacji oryginaln.

Tidy App Icon

Gotowy, by wyczyścić galerię?

Pobierz Tidy i zacznij przesuwać. Wykrywanie duplikatów oparte na AI, inteligentne filtry i wbudowany edytor zdjęć.

Wszystko nowe w Tidy v2.0

Więc co zbudowalismy? Oto każda główna funkcja i ulepszenie w nowym Tidy.

Przepisanie na SwiftUI dla nowoczesnego iOS

Cała aplikacja jest zbudowana z SwiftUI, nowoczesnym deklaratywnym frameworkiem UI od Apple. Oznacza to plynne animacje, natywną obslugę Dynamic Type (dostępnosc rozmiaru tekstu), automatyczną obslugę trybu ciemnego i spojny, dopracowany wygląd na każdym ekranie. Interfejs wyglądał jakby nalezal do iOS 18, poniewaz zostal zbudowany specjalnie dla niego.

Inteligentne filtry AI

To największy dodatek do glownego doświadczenia Tidy. Zamiast ręcznie przewijać calą bibliotekę zdjęć, możesz teraz uzywać filtrów opartych na AI, aby wyswietlić konkretne typy zdjęć, które są prawdopodobnymi kandydatami do czyszczenia:

  • Rozmazane zdjęcia - AI identyfikuje zdjęcia z rozmyciem ruchu, drzeniem aparatu lub nietrafionym ostrzeniem
  • Niska jakosc - Wykrywa zle naswietlone, nadmiernie skompresowane lub w inny sposób niskiojakosciowe obrazy
  • Podobne zdjęcia - Grupuje niemal identyczne zdjęcia razem za pomocą hashowania percepcyjnego, dzięki czemu możesz wybrać najlepsze i usunąć resztę
  • Duplikaty - Znajduje dokładne i prawie dokładne duplikaty na podstawie metadanych i podobieństwa wizualnego
  • Najlepsze ujęcia - W grupie podobnych zdjęć AI sugeruje najostrzejszą, najlepiej skomponowaną opcję
  • Uzytkowe - Identyfikuje zrzuty ekranu, paragony, dokumenty i inne zdjęcia “uzytkowe”, których prawdopodobnie nie musisz zachowywać na zawsze

Calość przetwarzania AI odbywa się na Twoim urządzeniu za pomocą frameworkow Core ML i Vision od Apple. Żadne zdjęcia nie są przesyłane na żaden serwer. Analiza działa w tle podczas nocnego ładowania telefonu, więc jest gotowa, gdy Ty jestes.

Pełny edytor zdjęć z 29 filtrami

Tidy v2.0 zawiera kompletny zestaw do edycji zdjęć. To nie jest podstawowy edytor jasnosci/kontrastu - to pięciokategoriowy profesjonalny system edycji:

  • Korekta - 10 suwakow regulacji, w tym ekspozycja, swiatla, cienie, kontrast, nasycenie, cieplo, ostrość, ziarno i rozmycie tla
  • Uroda - 6 naturalnych narzędzi urody z pozytywnym przekazem dotyczącym ciala (Wygładzanie skóry, Swiatlo portretowe, Rozjasnianie oczu, Wyszczuplanie twarzy, Powiększanie oczu, Powiększanie ust)
  • Retusz - Pędzel korygujący i narzędzia do wybielania zębow do ukierunkowanych poprawek
  • Efekty - 29 kreatywnych filtrów od subtelnych emulacji filmowych po odwazne efekty artystyczne
  • AI - Skalowanie super-resolution i efekty transferu stylu oparte na AI

Edytor obejmuje cofnij/ponow, suwak porównania przed/po oraz szczyp, aby powiększyć na plotnie. Każda edycja jest niedestrukcyjna i możesz zapisać jako nową kopię lub zastąpić oryginal.

Tryb porównania

Jedną z najczęsciej prosonych funkcji oryginalnego Tidy byla możliwość porównywania podobnych zdjęć obok siebie. Tidy v2.0 dostarcza to za pomocą dedykowanego trybu porównania, który obejmuje pasek miniatur do szybkiego przeglądania, szczyp, aby powiększyć do kontroli szczegółów oraz suwak przed/po do oceny edycji.

Grywalizacja

Oryginalne Tidy sprawialo, ze czyszczenie bylo zabawne dzięki mechanice przesuwania. Tidy v2.0 idzie dalej z pelnym systemem grywalizacji:

  • Statystyki sesji - Zdjęcia przejrzane, zachowane, usunięte i czas każdej sesji
  • Serie czyszczenia - Sledzenie dziennych i tygodniowych serii, aby budować rozpęd
  • Kamienie milowe - System osiągnięć z animacjami konfetti i haptycznymi swietowaniami
  • Karty czyszczenia do udostępniania - Piękne, gotowe do udostępnienia grafiki podsumowujące dla mediów społecznościowych

20 języków, w tym RTL

Tidy v2.0 startuje ze wsparciem dla 20 języków: angielski, hebrajski, arabski, perski, rosyjski, francuski, hindi, rumunski, hiszpanski, portugalski, niemiecki, wloski, japonski, koreanski, holenderski, polski, tajski, turecki, chinński uproszczony i chinński tradycyjny.

Trzy z tych języków (hebrajski, arabski i perski) są pisane od prawej do lewej (RTL). Każdy ekran w Tidy jest zaprojektowany tak, aby poprawnie się odwracal dla użytkowników RTL, w tym gra przesuwania, edytor, suwak przed/po i wszystkie elementy nawigacji. Obsluga RTL nie jest dodatkiem - jest wbudowana w fundament.

Interaktywne widgety i Live Activities

Interaktywne widgety pozwalają rozpocząć sesję czyszczenia z ekranu glownego jednym dotknięciem. Live Activities pokazują postęp czyszczenia na ekranie blokady i Dynamic Island w czasie rzeczywistym. Razem zmniejszają tarcie między “powinienem wyczyścić zdjęcia” a faktycznym dzialaniem.

Subskrypcja Gold

Tidy v2.0 jest darmowe do pobrania i uzywania. Główna gra przesuwania, podstawowe filtry i porównywanie zdjęć są dostępne bezplatnie. Dla użytkowników, którzy chcą więcej, Tidy Gold odblokowuje:

  • Wszystkie inteligentne filtry AI (wykrywanie rozmycia, podobne zdjęcia, najlepsze ujęcia, uzytkowe)
  • Pełny edytor zdjęć ze wszystkimi 29 filtrami i narzędziami urody
  • Zaawansowane funkcje grywalizacji
  • Bez reklam

Gold jest dostępne jako subskrypcja 1-miesięczna, 3-miesięczna lub 6-miesięczna. Wybralismy ten model, poniewaz lączy nasze motywacje z Twoimi: odnosimy sukces tylko wtedy, gdy nadal uważasz Tidy za wystarczająco wartościowe, aby kontynuować uzywanie.

Wyzwania techniczne przebudowy

Przebudowa aplikacji od zera brzmi wyzwalająco i tak jest - na początku. Ale wiąze się też z wlasnym zestawem wyzwań. Oto niektore z najwazniejszych przeszkod technicznych, z ktorymi się zmierzylismy.

Rygorystyczna wspolbieznosc Swift 6

Swift 6 wprowadzil rygorystyczne sprawdzanie wspolbieznosci, co oznacza, ze kompilator wymusza bezpieczenstwo wątków podczas kompilacji. To świetne do zapobiegania błędom, ale niezwykle wymagające podczas tworzenia. Każdy fragment wspoldzielonego mutowalnego stanu musi być chroniony przez aktora, oznaczony jako Sendable lub izolowany do glownego wątku.

Dla aplikacji do zdjęć jest to szczególnie trudne, poniewaz przetwarzanie zdjęć jest z natury wspolbiezne. Ladowanie miniatur, uruchamianie analizy AI, stosowanie filtrów, zapisywanie edycji - wszystkie te operacje odbywają się na wątkach tla, podczas gdy interfejs aktualizuje się na glownym wątku. Prawidlowe ustawienie modelu wspolbieznosci wymagalo znacznego wysilku, ale rezultatem jest aplikacja praktycznie wolna od awarii związanych z problemami wątkow.

Hashowanie percepcyjne do wykrywania podobnych zdjęć

Znajdowanie podobnych zdjęć brzmi prosto, dopoki nie sprobuje się tego zaimplementować na duzą skalę. Tidy używa techniki zwanej hashowaniem percepcyjnym (pHash) do wizualnego porównywania zdjęć. Każde zdjęcię jest redukowane do 64-bitowego hasza, który reprezentuje jego zawartosc wizualną, a zdjęcia z podobnymi haszami są grupowane razem.

Wyzwaniem bylo dostrojenie progu podobieństwa. Zbyt ścisly i powiązane zdjęcia nie są grupowane razem. Zbyt luzny i niepowiązane zdjęcia trafiają do tej samej grupy. Zdecydowalismy się na prog odległości Hamminga wynoszący 10 dla standardowych porównań i 14 dla zdjęć seryjnych (zrobionych w ciągu 10 sekund od siebie), z maksymalną średnicą grupy 14, aby zapobiec zbyt duzemu rozrastaniu się klastrow.

Musielismy też wybrać odpowiedni algorytm klasteryzacji. Proste zachlanne podejście czasami dzielilo powiązane zdjęcia na oddzielne grupy. Zamiast tego zaimplementowalismy klasteryzację Union-Find, która poprawnie identyfikuje polączone komponenty i stosuje ograniczenie średnicy tylko na zbyt duzych grupach. Rezultatem są naturalne, intuicyjne grupowania zdjęć.

Przetwarzanie AI na urządzeniu

Uruchamianie modeli AI na urządzeniu to ciągly kompromis między dokladnoscią a wydajnoscią. Model, który potrzebuje 2 sekund na zdjęcię, jest nieuzywalny, gdy masz 30 000 zdjęć do analizy. Model, który działa w 10 milisekund na zdjęcię, może nie być wystarczająco dokładny, aby być uzyteczny.

Rozwiązalismy to za pomocą przetwarzania w tle. Tidy używa iOS BGProcessingTasks do uruchomienia pełnej analizy AI w nocy, gdy telefon się laduje i jest podlączony do WiFi. Analiza obejmuje wykrywanie rozmycia, ocenę jakosci, hashowanie podobieństwa i wykrywanie twarzy - wszystko przetwarzane z wysoką dokladnoscią, poniewaz nie ma presji czasu. Rano Twoje wyniki są gotowe.

Dla funkcji w czasie rzeczywistym (jak edytor urody) używamy zoptymalizowanych potokow, które poswięcają trochę jakosci na rzecz szybkości. Narzędzia urody dzialają z interaktywnymi częstotliwosciami klatek, poniewaz uzywają shaderow Metal GPU od Apple i filtrów Core Image, które są akcelerowane sprzętowo na wszystkich nowoczesnych iPhone’ach.

Shadery Metal do deformacji twarzy

Narzędzia urody, które zmieniają ksztalt rysow twarzy (Wyszczuplanie twarzy, Powiększanie oczu, Powiększanie ust) uzywają shaderow Metal CIWarpKernel do deformacji siatki w czasie rzeczywistym. Pisanie tych shaderow wymagalo pracy w ograniczonym podzbiorze Metal Shading Language, który jest kompatybilny z potokiem Core Image.

Jeden szczególnie trudny błąd dotyczyls deformacji linii szczęki. Początkowa implementacja umiesczala kotwicę deformacji na zlej wspolrzędnej pionowej (na czole zamiast na brodzie), powodując, ze Wyszczuplanie twarzy zmienialao ksztalt zlej częsci twarzy. Prawidlowe ustawienie pozycji wymagalo starannego przestudiowania systemu wspolrzędnych punktow orientacyjnych twarzy we frameworku Vision.

Obsluga ukladu RTL

Obsluga języków pisanych od prawej do lewej to więcej niż odwrocenie wyrownania tekstu. Każdy interaktywny element musi dzialać poprawnie w obu kierunkach. Gra przesuwania (“przesuń w prawo, aby zachować, w lewo, aby usunąć”) zachowuje swoje znaczenie semantyczne w RTL - gesty pozostają takie same, poniewaz opierają się na semantyce zachowaj/usuń, a nie na kierunku lewo/prawo. Suwak przed/po w edytorze zdjęć poprawnie odwraca swoją orientację. Przeplywy nawigacji się odwracają. I każde ograniczenie ukladu zostalo przetestowane zarowno w trybie LTR, jak i RTL.

Co dalej

Tidy v2.0 to fundament, nie linia mety. Oto zapowiedz tego, nad czym pracujemy na nadchodzące wydania:

  • Narzędzia do kadrowania i obracania - Pojawią się w v2.1, z prowadnicami prostowania i presetami proporcji
  • Integracja z Siri i App Intents - “Hey Siri, rozpocznij sesję czyszczenia zdjęć” będzie dzialać bezpośrednio
  • Kompresja wideo - Zmniejszenie rozmiaru duzych plikow wideo przy zachowaniu jakosci
  • Wyzwania czyszczenia - Cotygodniowe i comiesięczne wyzwania z tematycznymi celami (np. “Tydzien czystki zrzutów ekranu”)
  • Prognoza miejsca - Prognozy AI dotyczące tego, kiedy w telefonie skończy się pamięć na podstawie wzorcow robienia zdjęć
  • Więcej filtrów AI - W tym filtr wykrywania memow i ulepszona kategoryzacja

Badamy również integrację z Foundation Models API od Apple do wyszukiwania językiem naturalnym na urządzeniu (np. “pokaz mi zdjęcia mojego psa na plazy”), choć zależy to od harmonogramu wdrozenia API przez Apple.

Naszym celem jest wydawanie znaczących aktualizacji co 4-6 tygodni. Nie zamierzamy znow milczeć.

Dziękujemy naszej społeczności

Zanim zakonczymy, chcemy powiedzieć cos bezpośrednio do osob, które uzywaly oryginalnego Tidy i mogą to czytać.

Dziękujemy za recenzje. Dziękujemy za prosbie o funkcje. Dziękujemy za zgloszenia błędów. Dziękujemy za tweety, wiadomosci i rekomendacje dla przyjaciol. Zbudowaliscie cos wyjątkowego wokol prostej aplikacji i jestesmy za to wdzięczni.

Wiemy, ze szesc lat ciszy to długi czas. Wiemy, ze zaufanie, raz utracone, wymaga wysilku, aby je odbudować. Jestesmy zdecydowani je odzyskać - nie obietnicami, ale konsekwentnymi aktualizacjami, przejrzystą komunikacją i aplikacją, która ciągle się poprawia.

Jeśli uzywales oryginalnego Tidy, chętnie Cię przywitamy z powrotem. Pobierz v2.0, wyprobuj i powiedz nam, co myślisz. Twoje opinie uksztaltowaly pierwszą wersję Tidy i będą ksztaltowac kazdą następną.

A jeśli jestes nowy w Tidy - witaj. Dolączasz na początku czegos, z czego jestesmy naprawdę dumni. Mamy nadzieję, ze Ci się spodoba.

Najlepszy czas na wyczyszczenie biblioteki zdjęć byl szesc lat temu. Drugi najlepszy czas jest teraz.

Chcesz poznać możliwości nowego Tidy? Zacznij od naszych przewodnikow o naturalnych filtrach urody, porownywaniu zdjęć obok siebie, budowaniu nawyku czyszczenia z grywalizacją i uzywaniu widgetow i Live Activities do szybkiego czyszczenia.

Tidy App Icon

Gotowy, by wyczyścić galerię?

Pobierz Tidy i zacznij przesuwać. Wykrywanie duplikatów oparte na AI, inteligentne filtry i wbudowany edytor zdjęć.