Hikaye

Tidy Geri Döndü: 6 Yıl Sonra Tamamen Yeniden Yazım Hikayesi

12 dk okuma
Tidy Team
Tidy App Icon
v2.0 NEW RELEASE

Bunu okuyorsanız, Tidy'yi hatırlama ihtimaliniz var. Belki 2018 veya 2019'da kullandınız. Belki yüzlerce fotoğrafın arasında kaydırdınız, galerinizi başparmağın bir hareketiyle temizlediniz. Belki bize bir yorum bıraktınız. Bıraktıysanız, teşekkür ederiz. Her birini okuduk.

Ayrıca okuyun: Tidy 2.1 ve 2.2'deki Yenilikler: Albüme Sıralama, Haftalık Görevler ve Daha Fazlası

Ve sonra kaybolduk.

Altı yıl boyunca Tidy, App Store'da dokunulmadan durdu. Güncelleme yok. Yeni özellik yok. İletişim yok. Uygulama hâlâ çalışıyordu, çoğunlukla, ama etrafındaki dünya ilerlemeye devam etti. iOS gelişti. Telefonlar daha iyi kameralar (ve daha büyük fotoğraf kütüphaneleri) aldı. Yeni uygulamalar geldi ve gitti. Ve Tidy sadece... orada durdu.

Ayrıca okuyun: iPhone'da Fotoğraflar Nasıl Düzenlenir: Eksiksiz Rehber (2026)

Bugün bu değişiyor. Tidy v2.0, sıfırdan tamamen yeniden yazıldı. Bir güncelleme değil. Bir yenileme değil. Modern teknoloji, yeni özellikler ve ilk çıkışımızdan bu yana öğrendiğimiz her şeyle sıfırdan inşa edilmiş tamamen yeni bir uygulama.

Ayrıca okuyun: Yapay Zeka Yinelenen ve Benzer Fotoğraflarınızı Nasıl Buluyor (Ve Neden Manuel Aramadan Daha İyi)

Bu, buraya nasıl geldiğimizin hikayesi.

Orijinal Tidy: 4,8 Yıldız ve 723 Yorum

Tidy, 2018'de basit bir öncülle başladı: fotoğraf kütüphanenizi temizlemek bir oyun gibi hissettirmeli. Bir fotoğrafı saklamak için sağa kaydır. Silmek için sola kaydır. Karmaşık menüler yok, klasör sistemleri yok, organizasyon çerçeveleri yok. Sadece dağınıklığı temizleyen hızlı, içgüdüsel kararlar.

Tepki bizi şaşırttı. Birkaç ay içinde Tidy, ortalama 5 üzerinden 4,8 yıldız puanla yüzlerce yorum topladı. 723 yoruma ulaştığımızda kalıp netleşmişti: insanlar kaydırma mekaniğini sevdi. Ne kadar hızlı olduğunu sevdiler. Sıkıcı bir görevi eğlenceli hale getirmesini sevdiler.

Rakamlarla Tidy

  • 4,8 Yıldız Puanı
  • 723 Yorum
  • 31 Dil
  • 2018 Çıkış Yılı

Kullanıcılar bize “ihtiyacım olduğunu bilmediğim uygulama buymuş” ve “bir öğleden sonrada 3.000 fotoğraf temizledim” gibi şeyler söyledi. Uygulama 31 dile çevirildi. Birden fazla ülkede App Store vitrinlerinde yer aldı. Odaklı bir amacı olan küçük bir bağımsız uygulama için, ağırlığının çok üstünde başarı gösterdi.

Orijinal Tidy, o dönemde iOS geliştirme için standart olan MVC mimari kalıbını kullanarak Swift 4 ile inşa edildi. Dönemi için sağlam bir uygulamaydı. Ama teknoloji hızla ilerliyor ve 2019'a kadar çatlakları göstermeye başladı.

Neden 6 Yıl Sessiz Kaldık

Dürüst cevap: hayat oldu.

Tidy küçük bir ekip tarafından inşa edildi ve öncelikler değiştiğinde - bağımsız geliştiricilerde olduğu gibi - uygulama listenin en altına düştü. Dramatik bir hikaye yoktu, satın alma yoktu, kapatma kararı yoktu. Sadece bir yan proje ilgi görmeyi bıraktığında olan yavaş kayma.

Bu sırada, Tidy'nin olduğu yer ile olması gereken yer arasındaki uçurum büyümeye devam etti:

  • SwiftUI 2019'da geldi ve hızla olgunlaştı, UIKit tabanlı arayüzleri eski gösterdi
  • Fotoğraf kütüphaneleri boyut olarak patladı. Ortalama iPhone kullanıcısı 2.000-5.000 fotoğraftan 10.000-50.000'e geçti
  • AI ve makine öğrenimi deneysel olmaktan beklenen olmaya geçti. Kullanıcılar uygulamaların akıllı olmasını beklemeye başladı
  • iOS widget'ları ve Live Activities uygulamaların desteklemesi beklenen yeni yüzeyler oluşturdu
  • Gizlilik beklentileri dramatik bir şekilde arttı, kullanıcılar cihaz üzerinde işleme ve şeffaflık talep etmeye başladı
  • Swift'in kendisi 5.0'dan 6.0'a kadar sürümlerde gelişti, sıkı eşzamanlılık ve yeni dil özellikleriyle

Tidy'ye tekrar ciddi olarak baktığımızda, orijinal kod tabanı arkeolojikti. Modern araç zincirleriyle derlenmeyecek Swift 4 kodu. İki kez geçersiz kılınmış UIKit kalıpları. Kullanıcıların artık beklediği hiçbir özelliği destekleyemeyen bir mimari.

İki seçeneğimiz vardı: eski kod tabanını yamalayıp güncellemeye çalışmak veya sıfırdan başlamak.

Sıfırdan Yeniden Yazma Kararı

Yeniden yazmayı seçtik. İşte nedeni.

Eski Tidy'yi güncellemek, Swift 4 kodunu Swift 6'ya taşımak, tüm arayüzü UIKit'ten SwiftUI'ye yeniden yazmak, MVC mimarisini modern bir şeyle değiştirmek, yeni Apple çerçevelerini (Vision, Core ML, StoreKit 2, WidgetKit) eklemek ve bir şekilde tüm bu değişikliklerin mevcut uygulamayı bozmadan birlikte çalışmalarını sağlamak anlamına gelecekti.

Yazılım geliştirmede, Joel Spolsky'nin “Asla Yapmamanız Gereken Şeyler, Bölüm I” adlı ünlü bir makalesi var ve sıfırdan yeniden yazmanın neredeyse her zaman bir hata olduğunu savunur. Ve çoğu proje için haklıdır. Ama Tidy istisnaydı:

  • Sıfır ortak kod - Eski kod tabanını değerlendirdikten sonra, orijinal kodun %5'inden azının yeniden kullanılabileceğini tahmin ettik. Dil çok fazla değişmişti, çerçeveler tamamen farklıydı ve mimari uyumsuzdu
  • Farklı platform - Orijinal Tidy iOS 11'i hedefliyordu. Yeni Tidy iOS 18'i hedefliyor. Bunlar farklı yeteneklere, tasarım dillerine ve kullanıcı beklentilerine sahip fiilen farklı platformlar
  • Genişletilmiş kapsam - Orijinal Tidy tek bir şey yapıyordu: temizlemek için kaydır. Yeni Tidy'nin AI filtreleri, fotoğraf editörü, karşılaştırma modu, oyunlaştırma, widget'lar, Live Activities ve daha fazlasına ihtiyacı vardı. Tüm bunları eski mimariye eklemek, tek katlı bir evin çatısına kat yıkmak gibi olurdu
  • Gelecek için temiz temel - Sıfırdan başlamak, Swift 6 sıkı eşzamanlılığını ilk günden benimseyebileceğimiz, Core Data yerine SwiftData kullanabileceğimiz, düzgün Clean Architecture uygulayabileceğimiz ve yıllarca gelecek geliştirmeyi destekleyecek bir temel inşa edebileceğimiz anlamına geliyordu

Yeniden yazım hızlı bir karar değildi. Eski kodu değerlendirmek, her iki yönde de prototipleme (güncelleme vs. yeniden yazma) yaparak haftalar geçirdik ve sonunda sıfırdan yeniden yazımın daha hızlı, daha temiz olacağı ve orijinali modernize etme girişimine göre daha iyi bir uygulama ortaya çıkacağı sonucuna vardık.

Tidy App Icon

Galerinizi temizlemeye hazır mısınız?

Tidy'yi indirin ve kaydırmaya başlayın. AI destekli kopya tespiti, akıllı filtreler ve yerleşik fotoğraf editörü.

Tidy v2.0’daki Tüm Yenilikler

Peki ne inşa ettik? İşte yeni Tidy’deki her büyük özellik ve iyileştirme.

Modern iOS için SwiftUI Yeniden Yazımı

Tüm uygulama Apple’in modern deklaratif UI çerçevesi olan SwiftUI ile inşa edildi. Bu, akıcı animasyonlar, Dynamic Type (erişilebilirlik metin boyutlandırması) için yerel destek, otomatik Karanlık Mod desteği ve her ekranda tutarlı, cilalı bir görünüm anlamına gelir. Arayüz iOS 18’e ait gibi hissettiriyor çünkü özel olarak onun için inşa edildi.

AI Destekli Akıllı Filtreler

Bu, Tidy’nin temel deneyimine en büyük eklemedir. Tüm fotoğraf kütüphanenizi manuel olarak kaydırmak yerine, artık temizlik için muhtemel adayları belirlemek üzere AI destekli filtreler kullanabilirsiniz:

  • Bulanık Fotoğraflar - AI, hareket bulanıklığı, kamera sarsıntısı veya kaçırılmış odak içeren fotoğrafları tanımlar
  • Düşük Kalite - Kötü pozlanmış, aşırı sıkıştırılmış veya başka şekilde düşük kaliteli görüntüleri tespit eder
  • Benzer Fotoğraflar - Algısal hash kullanarak neredeyse aynı fotoğrafları gruplar, böylece en iyiyi seçip gerisini atabilirsiniz
  • Kopyalar - Meta veri ve görsel benzerliği temel alarak tam ve yaklaşık kopyaları bulur
  • En İyi Çekim - Benzer fotoğraflar grubunda AI, en keskin, en iyi kompoze edilmiş seçeneği önerir
  • Yardımcı - Ekran görüntüleri, fişler, belgeler ve muhtemelen sonsuza kadar saklamanız gerekmeyen diğer “yardımcı” fotoğrafları tanımlar

Tüm AI işlemesi Apple’in Core ML ve Vision çerçevelerini kullanarak cihazınızda gerçekleşir. Hiçbir fotoğraf herhangi bir sunucuya yüklenmez. Analiz, telefonunuz gece şarj olurken arka planda çalışır, böylece siz hazır olduğunuzda o da hazırdır.

29 Filtreli Tam Fotoğraf Editörü

Tidy v2.0, eksiksiz bir fotoğraf düzenleme paketi içerir. Bu basit bir parlaklık/kontrast editörü değil - beş kategorili profesyonel bir düzenleme sistemidir:

  • Ayarlama - Pozlama, vurgular, gölgeliler, kontrast, doygunluk, sıcaklık, keskinlik, kumlanma ve arka plan bulanıklığı dahil 10 ayar kaydırıcı
  • Güzellik - Vücut pozitif mesajlarla 6 doğal güzellik aracı (Cilt Yumuşatma, Portre Işığı, Göz Aydınlatma, Yüz İnceltme, Göz Büyütme, Dudak Dolgunlaştırma)
  • Rötuş - Hedefli düzeltmeler için iyileştirme fırçası ve diş beyazlatma araçları
  • Efektler - İnce film emülasyonlarından cesur sanatsal efektlere uzanan 29 yaratıcı filtre
  • AI - Süper çözünürlük yükseltme ve AI destekli stil aktarım efektleri

Editör, geri al/yinele, önce/sonra karşılaştırma kaydırıcı ve tuval üzerinde kıstırarak yakınlaştırma içerir. Her düzenleme tahribatsızdır ve yeni bir kopya olarak kaydedebilir veya orijinali değiştirebilirsiniz.

Karşılaştırma Modu

Orijinal Tidy için en çok istenen özelliklerden biri benzer fotoğrafları yan yana karşılaştırma yeteneğiydi. Tidy v2.0, hızlı gözatma için küçük resim şeridi, detay incelemesi için kıstırarak yakınlaştırma ve düzenlemeleri değerlendirmek için önce/sonra kaydırıcı içeren özel bir Karşılaştırma Modu ile bunu sunuyor.

Oyunlaştırma

Orijinal Tidy, kaydırma mekaniği aracılığıyla temizliği eğlenceli hissettirdi. Tidy v2.0, tam bir oyunlaştırma sistemi ile bunu daha ileri taşıyor:

  • Oturum istatistikleri - Her oturum için incelenen, saklanan, silinen fotoğraflar ve süre
  • Temizlik serileri - İvme oluşturmak için günlük ve haftalık seri takibi
  • Kilometre taşları - Konfeti animasyonları ve haptik kutlamalarla başarı sistemi
  • Paylaşılabilir temizlik kartları - Sosyal medya için güzel, paylaşıma hazır özet grafikleri

RTL Dahil 20 Dil

Tidy v2.0, 20 dil desteğiyle çıkıyor: İngilizce, İbranice, Arapça, Farsça, Rusça, Fransızca, Hintçe, Romence, İspanyolca, Portekizce, Almanca, İtalyanca, Japonca, Korece, Felemenkçe, Lehçe, Tayca, Türkçe, Basitleştirilmiş Çince ve Geleneksel Çince.

Bu dillerden üçü (İbranice, Arapça ve Farsça) sağdan sola (RTL) yazılır. Tidy’deki her ekran, kaydırma oyunu, editör, önce/sonra kaydırıcı ve tüm gezinme ögeleri dahil olmak üzere RTL kullanıcıları için doğru şekilde çevrilecek şekilde tasarlanmıştır. RTL desteği sonradan düşünülmüş bir şey değil - temele işlenmiştir.

Etkileşimli Widget’lar ve Live Activities

Etkileşimli Widget’lar, Ana Ekranınızdan tek bir dokunuşla temizlik oturumu başlatmanızı sağlar. Live Activities, temizlik ilerlemenizi Kilit Ekranı ve Dynamic Island’da gerçek zamanlı olarak gösterir. Birlikte, “fotoğraflarımı temizlemeliyim” düşüncesi ile gerçekten yapmak arasındaki sürtünmeyi azaltırlar.

Gold Aboneliği

Tidy v2.0 indirmesi ve kullanması ücretsizdir. Temel kaydırma oyunu, basit filtreler ve fotoğraf karşılaştırması ücretsiz olarak mevcuttur. Daha fazlasını isteyen kullanıcılar için Tidy Gold şunları açar:

  • Tüm AI destekli akıllı filtreler (bulanıklık tespiti, benzer fotoğraflar, en iyi çekimler, yardımcı)
  • Tüm 29 filtre ve güzellik araçlarıyla tam fotoğraf editörü
  • Gelişmiş oyunlaştırma özellikleri
  • Reklam yok

Gold, 1 aylık, 3 aylık veya 6 aylık abonelik olarak mevcuttur. Bu modeli seçtik çünkü motivasyonlarımızı sizinkiyle hizalıyor: yalnızca Tidy’yi kullanmaya devam edecek kadar değerli bulmaya devam ederseniz başarılı oluruz.

Yeniden Yazımın Teknik Zorlukları

Bir uygulamayı sıfırdan yeniden yazmak özgürleştirici gibi görünüyor ve öyle - ilk başta. Ama kendi zorluk setiyle de geliyor. İşte karşılaştığımız en önemli teknik engellerden bazıları.

Swift 6 Sıkı Eşzamanlılık

Swift 6, sıkı eşzamanlılık denetimi tanıttı, bu da derleyicinin derleme zamanında iş parçacığı güvenliğini zorunlu kıldığı anlamına gelir. Bu hataları önlemek için harika ama geliştirme sırasında inanılmaz derecede zor. Her paylaşılan değiştirilebilir durum parçası bir aktör tarafından korunmalı, Sendable olarak işaretlenmeli veya ana iş parçacığına izole edilmelidir.

Bir fotoğraf uygulaması için bu özellikle zorlayıcı çünkü fotoğraf işleme doğası gereği eşzamanlıdır. Küçük resimler yükleme, AI analizi çalıştırma, filtre uygulama, düzenlemeleri kaydetme - tüm bu işlemler arka plan iş parçacıklarında gerçekleşirken UI ana iş parçacığında güncellenir. Eşzamanlılık modelini doğru kurmak önemli bir çaba gerektirdi, ama sonuç iş parçacığı sorunları söz konusu olduğunda neredeyse çökmesiz bir uygulama.

Benzer Fotoğraf Tespiti için Algısal Hashleme

Benzer fotoğrafları bulmak, ölçekte uygulamaya çalışana kadar basit görünüyor. Tidy, fotoğrafları görsel olarak karşılaştırmak için algısal hashleme (pHash) adlı bir teknik kullanıyor. Her fotoğraf, görsel içeriğini temsil eden 64-bit bir hash’e indirgenir ve benzer hash’lere sahip fotoğraflar birlikte gruplanır.

Zorluk benzerlik eşiğini ayarlamaktı. Çok sıkı olursa, ilgili fotoğraflar birlikte gruplanmaz. Çok gevşek olursa, ilgisiz fotoğraflar aynı grupta biter. Standart karşılaştırmalar için 10, seri fotoğraflar için (birbirinden 10 saniye içinde çekilmiş) 14 Hamming mesafesi eşiğine ve kümelerin çok büyümesini önlemek için 14 maksimum grup çapına karar verdik.

Ayrıca doğru kümeleme algoritmasını seçmemiz gerekiyordu. Basit bir açgözlü yaklaşım bazen ilgili fotoğrafları ayrı gruplara bölerdi. Bunun yerine, bağlı bileşenleri doğru şekilde tanımlayan ve çap kısıtlamasını yalnızca aşırı büyük gruplara uygulayan Union-Find kümeleme uyguladık. Sonuç, doğal ve sezgisel fotoğraf gruplama.

Cihaz Üzerinde AI İşleme

AI modellerini cihaz üzerinde çalıştırmak, doğruluk ve performans arasında sürekli bir ödünleşim sunar. Fotoğraf başına 2 saniye süren bir model, analiz edilecek 30.000 fotoğrafınız olduğunda kullanılamaz. Fotoğraf başına 10 milisaniyede çalışan bir model, yararlı olacak kadar doğru olmayabilir.

Bunu arka plan işlemesi ile çözdük. Tidy, telefonunuz şarj olurken ve WiFi’ye bağlıyken gece boyunca tam AI analizini çalıştırmak için iOS BGProcessingTasks kullanıyor. Analiz bulanıklık tespiti, kalite puanlaması, benzerlik hashleme ve yüz tespiti içerir - tümü yüksek doğrulukla işlenir çünkü zaman baskısı yoktur. Sabaha sonuçlarınız hazırdır.

Gerçek zamanlı özellikler için (güzellik editörü gibi), hız için biraz kaliteden feragat eden optimize edilmiş işlem hatları kullanıyoruz. Güzellik araçları, tüm modern iPhone’larda donanım hızlandırmalı olan Apple’in Metal GPU shader’ları ve Core Image filtrelerini kullandıkları için etkileşimli kare hızlarında çalışıyor.

Yüz Deforme Etme için Metal Shader’lar

Yüz hatlarını yeniden şekillendiren güzellik araçları (Yüz İnceltme, Göz Büyütme, Dudak Dolgunlaştırma), gerçek zamanlı mesh deforme etme için Metal CIWarpKernel shader’ları kullanıyor. Bu shader’ları yazmak, Core Image’in işlem hattı ile uyumlu Metal Shading Language’in kısıtlı bir alt kümesinde çalışmayı gerektirdi.

Özellikle zor bir hata çene hattı deforme etmesini içeriyordu. İlk uygulama, deforme çapa’sını yanlış dikey koordinata (çene yerine alın) konumlandırdı ve Yüz İnceltme’nin yüzün yanlış bölümünü yeniden şekillendirmesine neden oldu. Konumlandırmayı doğru almak, Vision çerçevesinin yüz işaret noktası koordinat sisteminin dikkatli bir şekilde incelenmesini gerektirdi.

RTL Yerleşim Desteği

Sağdan sola dilleri desteklemek, metin hizalamasını çevirmekten daha fazlasıdır. Her etkileşimli ögenin her iki yönde de doğru çalışması gerekir. Kaydırma oyunu (“saklamak için sağa kaydır, silmek için sola kaydır”) RTL’de anlamsal anlamını korur - hareketler aynı kalır çünkü sakla/sil anlambilimine dayanır, sol/sağ yönüne değil. Fotoğraf editöründeki önce/sonra kaydırıcı yönünü doğru şekilde çevirir. Gezinme akışları tersine döner. Ve her yerleşim kısıtlaması hem LTR hem de RTL modlarında test edildi.

Sırada Ne Var

Tidy v2.0 bir temeldir, bir bitiş çizgisi değil. Gelecek sürümler için üzerinde çalıştıklarımızın bir önizlemesi:

  • Kırpma ve döndürme araçları - v2.1’de geliyor, düzleştirme kılavuzları ve en-boy oranı ön ayarlarıyla
  • Siri ve App Intents entegrasyonu - “Hey Siri, bir fotoğraf temizlik oturumu başlat” doğrudan çalışacak
  • Video sıkıştırma - Kaliteyi koruyarak büyük video dosyalarının boyutunu azaltma
  • Temizlik zorlukları - Tematik hedeflerle haftalık ve aylık zorluklar (örneğin, “Ekran Görüntüsü Temizliği Haftası”)
  • Alan tahmini - Fotoğraf çekme kalıplarınıza göre telefonunuzun ne zaman depolamasının biteceğine dair AI tahminleri
  • Daha fazla AI filtresi - Meme tespit filtresi ve geliştirilmiş kategorizasyon dahil

Ayrıca cihaz üzerinde doğal dil araması için Apple’in Foundation Models API’si ile entegrasyonu keşfediyoruz (örneğin, “bana sahildeki köpeğimin fotoğraflarını göster”), ancak bu Apple’in API’yi yayınlama zamanlamasına bağlıdır.

Hedefimiz her 4-6 haftada anlamlı güncellemeler yayınlamak. Bir daha sessiz kalmayacağız.

Topluluğumuza Teşekkürler

Bitirmeden önce, orijinal Tidy’yi kullanan ve bunu okuyor olabilecek insanlara doğrudan bir şeyler söylemek istiyoruz.

Yorumlar için teşekkürler. Özellik istekleri için teşekkürler. Hata raporları için teşekkürler. Tweet’ler, mesajlar ve arkadaşlara yapılan öneriler için teşekkürler. Basit bir uygulama etrafında özel bir şey inşa ettiniz ve bunun için minnettarız.

Altı yıllık sessizliğin uzun bir süre olduğunu biliyoruz. Bir kez kırılan güveni yeniden inşa etmenin çaba gerektirdiğini biliyoruz. Onu geri kazanmaya kararlıyız - sözlerle değil, tutarlı güncellemeler, şeffaf iletişim ve sürekli daha iyi olan bir uygulama ile.

Orijinal Tidy’yi kullandıysanız, sizi geri görmek isteriz. v2.0’i indirin, deneyin ve ne düşündüğünüzü bize bildirin. Geri bildiriminiz Tidy’nin ilk sürümünü şekillendirdi ve bundan sonraki her sürümü de şekillendirecek.

Ve Tidy’de yeniyseniz - hoş geldiniz. Gerçekten gurur duyduğumuz bir şeyin başında katılıyorsunuz. Umarız beğenirsiniz.

Fotoğraf kütüphanenizi temizlemenin en iyi zamanı altı yıl önceydi. İkinci en iyi zaman şimdi.

Yeni Tidy’nin neler yapabileceğini keşfetmek mi istiyorsunuz? Doğal güzellik filtreleri, fotoğrafları yan yana karşılaştırma, oyunlaştırma ile temizlik alışkanlığı oluşturma ve hızlı erişim temizliği için widget’lar ve Live Activities kullanma rehberlerimizle başlayın.

Tidy App Icon

Galerinizi temizlemeye hazır mısınız?

Tidy'yi indirin ve kaydırmaya başlayın. AI destekli kopya tespiti, akıllı filtreler ve yerleşik fotoğraf editörü.