2 puan yazan GN⁺ 2025-09-03 | 1 yorum | WhatsApp'ta paylaş
  • iPhone Alarm uygulamasında zaman seçme yöntemi dairesel bir tasarım değil
  • Dışarıdan döner arayüz gibi görünse de gerçekte uzun bir liste yapısından oluşuyor
  • Kullanıcı kaydırdıkça bunun sonu yokmuş gibi hissedilmesini sağlıyor
  • Geliştiriciler ve UX tasarımcıları için UI illüzyonu örneği olarak dikkat çekiyor
  • Gerçek uygulama biçimini anlamak uygulama geliştirme açısından referans oluyor

iPhone alarm uygulamasındaki zaman seçicinin yapısı

  • iPhone'un Alarm uygulamasında zamanı ayarlamak için kullanılan seçici, yüzeyde dairesel (dönen tekerlek) biçiminde görünüyor
  • Ancak bu seçici gerçekte başlangıcı ve sonu olan çok uzun bir liste olarak uygulanmış durumda
  • Kullanıcı kaydırırken yukarı ya da aşağı doğru sürekli döndürülebiliyormuş gibi bir yanılsama veriyor
  • Bu uygulama biçimi, doğrudan dairesel bir arayüz kullanmadan da benzer bir kullanıcı deneyimi sunmak için tasarlanmış
  • Geliştiriciler, sonsuz kaydırmalı listeyi dairesel görünmesini sağlayacak şekilde kullanıcı arayüzüne uyarlıyor

Geliştirici ve UX tasarımı perspektifi

  • Bu yöntem sayesinde yalnızca basit bir listeyle karmaşık dairesel arayüzün yerini almak mümkün oluyor
  • Gerçekte listenin iki ucunda karşı tarafa geçiş olmuyor, sadece öğe sayısı çok olduğu için kullanıcının sınıra ulaşması zorlaşıyor
  • Bu tasarım, kullanıcının beklediği deneyimi sunmak için UI illüzyonundan yararlanıyor
  • Uygulama geliştirirken yalnızca liste implementasyonuyla dairesel kullanım faydası ve kullanılabilirliği sağlama örneği sunuyor

Sonuç

  • iPhone alarm uygulamasındaki zaman seçici, uzun bir listeyi döndürme yöntemiyle dairesel etki yaratıyor
  • Bu durum, geliştiricilere ve UI/UX tasarımcılarına sezgisel ve verimli arayüz tasarımı için bir yön gösteriyor

1 yorum

 
GN⁺ 2025-09-03
Hacker News görüşü
  • Alarm uygulamasındaki gerçekten sinir bozucu hata (ya da özellik mi bilmiyorum), saat kadranının zıplayıp durması bitene kadar beklemeden AM/PM ayarının düzgün uygulanmaması. Sadece kaydırıp kaydete basarsanız önceki ayar olduğu gibi kalıyor; böylece önemli bir 7am alarmı 7pm olarak kalıyor ve işe geç kalıyorsunuz
    • Artık menü kodlamayı bile düzgün yapamıyorlarmış gibi geliyor. Örneğin macOS Reminders uygulamasının ana liste ekranında saat açılır menüsünü seçerken, istediğiniz saatin üstünde fare tuşunu bırakıp flash animasyonu çalışırken imleci hafifçe yukarı aşağı oynatırsanız bir anda başka bir saat seçiliyor. Bu, macOS'ta 1984'ten beri hep aynı olan davranış biçimiyle hiç uyuşmuyor. Yıllar önce bug report gönderdim ama muhtemelen daha önemli işleri vardır diye düşünüyorum
    • Bu bug yüzünden birkaç kez sıkıntı yaşadıktan sonra sonunda tüm cihazlarda tamamen 24 saat sistemine geçtim. Her gün kullanılan bir arayüz için iOS'un dikey kaydırmalı kadran UI'ını hem kullanılabilirlik hem estetik açısından gerçekten kötü buluyorum. Yine de kadranın ortasına dokununca sayısal tuş takımının açılması çok iyi oldu. Tuş takımıyla saat girme yöntemi çok iyi tasarlanmış ve verimli
    • Bunun sadece bende olduğunu sanıyordum, değilmiş. Apple'ın bu kadar uzun sürede bir alarmı bile doğru düzgün yapamamış olması inanılmaz
    • Android'den iPhone'a geçince yaşadığım sorunlar içinde en büyüğü bu. Ama daha da sinir bozucu olan şey, bu tür sorunları geliştiricilere ya da programcılara anlatınca hep "sen yanlış yapıyor olmayasın", "bu o kadar da önemli mi ki?" gibi geçiştirmeleri. (Önemli tabii; ben de geç uyanmak istemediğim için zaten bu konuşma çıkıyor!) 100 bin doların üstünde maaş alıp böyle ufak şeyleri bile hızlıca düzeltememek gerçekten can sıkıcı. Biraz gurur duyup basit bug'ları cesurca düzeltmelerini isterdim. Buna rağmen bu dünyada UX giderek daha karmaşık hale geliyor. Sadelikten söz ederken alarm ve zamanlayıcı UI'larının birbirinden farklı olması ama sadece görsel olarak benzemesi, yinelenen takvim etkinliklerinin tek satırlık bir regex ile silinebilecekken görünür şekilde kalması, aynı isimli kişileri bulamayıp manuel birleştirme sürecinin gizlenmesi ve zor bela birleştirince bu kez bir doğum günü etkinliğinin daha eklenip silinememesi gibi şeyler. (Hepsi bizzat yaşadığım şeyler.) Hepimizin yazılımı daha kötü hale getirdiğini düşünüyorum. Yapay zekanın üretkenlikle işleri elimizden alacağından değil, bizim kalite çıtasını çok düşürmüş olmamızdan korkuyorum. Artık Perl ya da Brainfuck ile yazmıyor olmalarına bile şaşıracak hale geldim
    • Bunun için sleep/wake alarm özelliği var. Bunun UI'ı gerçekten iyi. Haftalık program ayarlanabiliyor ve alarm saatini değiştirirken dairesel saat UI'ı üzerinden ne kadar daha uyuyabileceğinizi görsel olarak gösteriyor
  • 10 yıl önce bile iyi bir akıllı telefon alarm uygulaması böyle görünüyordu; bkz. Nokia N9 alarm clock UI. Ayrıca bununla ilgili bir Hacker News tartışması da var
    • Google Clock uygulaması da benzer özellikler sunuyor. Ana ekranda slider, dairesel saat seçici (ben şahsen tercih etmiyorum) ve alarma ne kadar kaldığını söyleyen toast bildirimi var. Sadece her gün/devre dışı seçenekleri yok
    • Android saat uygulaması oldukça iyi ve Nokia N9 alarm uygulamasına benziyor. Bu yılın başında iPhone'a geçtim ama çeşitli UI sorunları çok rahatsız edici. Yavaş dönen kadrandan bıktım ve alarm ayarladıktan sonra Android'deki "alarma x saat kaldı" türü doğrulama mesajını çok özlüyorum. Özellikle sayı spinner'ı gerçekten kötü. Hilton uygulamasında çocukların yaşını tekrar tekrar ayarlamak gerektiğinde sayı kadranını çevirmek tam bir stres kaynağı. iOS'un neden büyülü, keyifli ve sezgisel diye bir üne sahip olduğunu anlamıyorum. Artık Pixel'e geri dönmek istiyorum
    • İlginç şekilde, iOS'ta Health uygulaması üzerinden açılan uyku programı ayar ekranı Nokia N9 alarm saatine çok benziyor
    • Düzgün bir akıllı telefonun önemli olması bundan. Nokia'nın en iyi ürününü çıkardıktan hemen sonra işi bırakmış olması gerçekten üzücü
    • Günümüzde birçok genç analog saat okumayı bilmiyor; bu yüzden kitlelere hitap edecek bir şey tasarlanırken bunun da hesaba katılması gerektiğini düşünüyorum
  • En azından dakika/saniye kısa listelerle ayarlanabilse ve tek seferde hızlıca 00'a gidilebilse iyi olurdu. PalmOS için BigClock uygulamasında, rakamların her hanesinin üst kısmına dokununca 1 artıyor, alt kısmına dokununca 1 azalıyordu; böylece çok hızlı ve öngörülebilir giriş yapılabiliyordu. Kaydırma tekerleğinin zıplaması gibi görsel geri bildirim olmadan da istenen saat kolayca seçilebiliyordu. BigClock tanıtım1, BigClock tanıtım2
    • Sadece klavye olsa yeterli olurdu (ekran tuş takımı da olur, fiziksel tuş takımı da). En fazla dört girişte iş biter
  • iOS Clock uygulaması gerçekten kötü. iOS 26 ile AlarmKit geldiğine göre artık kendi özel alarm uygulamamı yapabilecek olmaktan çok mutluyum. "Tekrarlayan alarmı koruyup sadece yarın için kapat" gibi son derece doğal bir özellik yoktu, takvimle bağlantılı alarmlar da yoktu
    • Sleep özelliğini kullanırsanız normal alarm yerine bu "sadece yarın kapat" özelliğini yıllardır zaten kullanabiliyordunuz. Uyku programını değiştirirken tüm programı mı değiştirmek istediğinizi yoksa sadece bir kez mi kapatacağınızı soruyor
    • Apple'ın doğrudan alarm uygulaması yapma yetkisini açması büyük bir güvenlik açığı gibi geliyor
    • Uyku programını kullanırsanız sadece bir sonraki alarmı atlayabiliyor ya da güne göre farklı uyanma saatleri destekleniyor. Bunlar normal alarmlarla aynı yerden doğrudan ayarlanabiliyor
    • Bence o kadar kötü değil; hatta basit olduğu için bir varsayılan uygulama olarak anlaşılır buluyorum
  • Bu koda yazıldıktan sonra gerçekten bir daha hiç bakılmadı mı, yoksa kod yeniden yazıldıktan sonra bile yaşamaya devam mı etti merak ediyorum. Eski iPhone'ların alarm saat dilimi bozulmaları ya da yaz saati geçişlerinde çalmamasıyla kötü bir ünü vardı: iPhone alarm bug – saat dilimi/yaz saati sorunu
    • Bunun saat dilimi ya da Clock uygulamasıyla ilgisi yok. Bu sınırlamanın UIPickerView adlı sistem düzeyi UI bileşeninden kaynaklandığını düşünüyorum. Benim uygulamamda da benzer bir "bug" var
    • Bence bu organik büyümenin sonucu. Başta bir AZ listesi vardı ama sonra biri bunu döner hale getirmek isteyince UI düzeyinde en kolay çözüm sonlu bir listeyi birkaç kez tekrar ettirmek oldu ve bu yaklaşım öylece kaldı. Örneğin HTML'de sonlu bir liste yapmak çok kolaydır ama sanallaştırılmış bir JS sonsuz listesini her framework değişiminde tekrar port etmeniz gerekir (mesela SwiftUI'a geçince)
    • Aynı birkaç bileşeni tekrar tekrar kullanan dairesel, sonsuz liste yapmak çok zor olduğu için, doğrudan (0..60).times(50).flatten() gibi vahşi bir kod toplam çabanın %1'iyle sorunların %99'unu çözüyor. QA'de ancak listenin sonuna kadar kaydırıldığında sorun çıkarsa Product bunu mesele eder. Kimin umurunda olur ki
  • Bu, özel widget geliştirmekten kaçınmak için kullanılmış mükemmel bir hack. Rastgele bir mühendise alkışlar
  • Bu yöntem 10 yıldan uzun süredir gizliymiş. Gerçek bir çözüm üzerine düşünmeye değer
    • Bence pragmatizm mükemmeliyetçilikten iyidir
  • Bana ilginç gelen noktalardan biri, zamanlayıcı ile alarmın birbirinden uzak iki ayrı implementasyona sahip olması. Alarmda dakikalar döngüsel ama zamanlayıcıda değil. Benzer arayüzlere rağmen neden farklı implementasyonlar kullanıldığını bilmiyorum. Dairesel bile değil; bence sadece gereksiz karmaşıklık ekleyen bir kod
  • Buradaki yorumlarda iOS alarm bug'larından bıkan çok kişi görünce benzer durumda olanlar için bir ipucu bırakayım. Sharp, ucuz ama iyi birkaç alarm saati satıyor. 5-12 dolar vererek bu bug'lardan sonsuza dek kurtulabilirsiniz. Bonus olarak, sabah ilk elinize aldığınız cihazın beyninizi çürüten bir akıllı telefon olmaması en büyük artısı. Benim şahsen Walmart'tan aldığım Sharp Twin Bell modeli en pahalı olanıydı ama yine de 12.63 dolardı
    • Aynı modeli kullanıyorum. Eski dijital alarmlarda yaşamadığım en iyi özelliği, alarmı her gece elle kurmak zorunda olmanız. Alarmda sadece bir aç/kapat anahtarı var; alarm çalmaya başlayınca kapatmanız gerekiyor ve en az 12 saat sonra tekrar açmanız gerekiyor (yoksa akşam 8'de çalabilir). Böylece her gece programı kontrol edip alarm anahtarını açma rutini oluştu ve artık tatil günü ya da erken saat alarmı kurmayı unutma derdim kalmadı. Bir de sesi gerçekten çok yüksek olduğu için alarmı duyup tekrar uyuduğum hiç olmadı
  • Alarm ve zamanlayıcıda snooze ve stop düğmelerinin yerlerinin neden ters olduğunu asla anlayamıyorum. Birinde stop düğmesi ekranın ortasında, diğerinde altta. Böyle şeylerin neden standartlaştırılmadığını merak ediyorum
    • Sabah yarı uykulu halde telefonu yoklarken, alıştığınız yerde duran büyük ve parlak turuncu snooze düğmesine kolayca basıyorsunuz. Tam uyanıp alarmı kapatmak içinse yeri değişmiş gri stop düğmesine basmanız gerekiyor ve ancak o zaman alarm susuyor. Alarm ayarlarında snooze'u kapatırsanız zamanlayıcıdaki gibi ortada büyük turuncu bir stop düğmesi kullanabiliyorsunuz. Ama bu tasarım fazla sezgisel bulundu galiba; duyduğuma göre iOS 26'da iki düğme birbirinden farklı göründüğü için kaldırılacakmış. Demek ki artık alarmda en önemli şeyin güzel görünmesi olduğu düşünülüyor, ne yazık ki
    • Kardeşim, sana gerçekten teşekkür etmek istiyorum. Böyle küçük ayrıntıların eksikliği yüzünden yıllardır çok zorlandım