OneLimit'i nasıl geliştirdik: bir yazılımcı babanın yan projesi
OneLimit Team
Her yan proje, aklınızdan çıkaramadığınız bir problemle başlar. OneLimit için problem şuydu: çocuklarımın günlük ekran süresi limitleri vardı. Bunlara uyuyorlardı. Ama yine de istediğimden çok daha fazla ekran başındaydılar.
Nedenini anlamam utanç verici derecede uzun sürdü. Switch'te 90 dakikaları vardı. PS5'te bir saat. iPhone'da bir buçuk saat. Xbox'ta bir saat daha. Bir de Windows PC'de zaman. Beş ayrı limit, beş ayrı sistem - hepsi ayarlanmış, hepsi uygulanmış, hepsi tam tasarlandığı gibi çalışıyordu. Toplam, niyet ettiğimden çok daha fazlaydı. Bunu ben kurmuştum. Sadece toplamayı yapmamıştım.
İşte o an OneLimit bir fikir olarak doğdu. Bir uygulamaya dönüşmesi bir yıl daha aldı.
Aradığım ama bir türlü bulamadığım şey
İlk içgüdüm, birilerinin bunu çoktan çözmüş olması gerektiğiydi. Ben bir yazılımcıyım - nasıl arama yapılacağını bilirim. Birkaç akşamımı, birden fazla cihaz ve platform genelinde tek bir günlük ekran süresi limiti belirlememe izin verecek bir uygulama ararken geçirdim. Çok sayıda tek platforma yönelik araç buldum. Size raporlar veren ama hiçbir şeyi zorunlu kılmayan izleme uygulamaları buldum. Bizim durumumuz için fazla abartılı kaçan bazı donanım çözümleri buldum.
Bulamadığım şey çok basit bir şeydi: tek bir sayı, tüm ekranlar, otomatik olarak uygulanan. İstenmesi son derece doğal bir şey gibi görünüyordu. Ama yoktu.
Ben de bunu kendim geliştirebilir miyim diye düşünmeye başladım.
Bunu teknik olarak zorlaştıran şey
Anlamam gereken ilk şey, bunu neden henüz kimsenin geliştirmediğiydi. Cevap: her platform, ebeveyn denetimi verilerini kendi API'lerinin, kendi kimlik doğrulama modelinin ve üçüncü taraf uygulamaların neler yapabileceğine dair kendi kısıtlamalar dizisinin ardına kilitliyor.
Apple'ın ScreenTimeKit'i en güçlüsü ama aynı zamanda en kısıtlayıcısı. Uygulamalara meşru, işletim sistemi düzeyinde ekran süresi yönetimi yetenekleri veren birinci taraf bir çerçeve. Bunu kullanmak için uygulamanızın doğru yetkilendirmelerle kurulması gerekir ve bu yetkilendirmeler otomatik olarak dağıtılmaz - Apple, onlarla ne yaptığınızı inceler. Uygulama gerçektir: işletim sistemi düzeyinde çalışır ve atlatması hayli zordur.
PlayStation Family Management, yetkili uygulamaların oyun süresi verilerini okumasına ve aile hesaplarını yönetmesine olanak tanıyan bir API'yi PlayStation Network üzerinden sunar. Sony bunu öncelikle kendi uygulaması için geliştirmiş, ancak API erişilebilir durumda. Zorluk, uç noktayı sürekli yormadan verileri senkronize tutan güvenilir, periyodik sorgulayan bir entegrasyon kurmaktır.
Nintendo Switch Online da, resmi Parental Controls uygulamasının kullandığı bir API üzerinden hesap ve ebeveyn denetimi verilerini benzer şekilde sunar. Bunun nasıl çalıştığını tersine mühendislikle çözmek (yasal yoldan, resmi uygulamanın trafiğini gözlemleyerek) çözülmesi gereken daha ilginç problemlerden biriydi.
Microsoft Family Safety, Xbox ve Windows PC ekran süresini yönetmek için bir API sağlar. Tüm konsol entegrasyonları arasında Microsoft'unki en yapılandırılmış olanı - düzgün OAuth'a sahip, belgelenmiş bir API ve aynı hesap üzerinden hem Xbox konsollarını hem de Windows PC'leri kapsıyor.
Bu API'lerin hiçbiri birbirleriyle konuşacak şekilde tasarlanmamış. Farklı kimlik doğrulama akışları, farklı veri formatları, farklı hız limitleri kullanıyorlar. OneLimit'i geliştirmek, aralarındaki köprü olmak anlamına geliyordu - her birinden zaman verisi çekmek, birleşik bir bütçe durumu korumak ve uygulama eylemlerini her platforma geri yansıtmak.
Beni şaşırtan kısımlar
API çalışmasının zor olmasını bekliyordum. Kullanıcı deneyiminin daha zor olmasını beklemiyordum.
Teknik entegrasyon gerçekten karmaşık, ama bir kez çalışmaya başladı mı, çalışıyor. Arayüz ise - yani "tüm cihazlarında toplam 45 dakikan kaldı" mesajını 9 yaşındaki bir çocuğa adil ve anlaşılır hissettirecek şekilde nasıl ileteceğiniz - beklediğimden çok daha fazla tekrara mal oldu.
Uygulamanın ilk sürümleri fazla teknikti. Çok fazla sayı, çok fazla ayrıntı. Çocuklarım ona bakıp omuz silkiyordu. Davranışı asıl değiştiren sürüm çok daha basitti: çocuk uygulamasında, kalan süreyi görsel bir geri sayım olarak gösteren bir bütçe halkası. Yeşil bol süre demek. Sarı, süre azalıyor demek. Kırmızı, neredeyse bitti demek. Hepsi bu. Çocuklar bunu anında anlıyor.
Diğer sürpriz ise uygulamanın yürürlüğe girdiği anın ne kadar önemli olduğuydu. Süre bittiğinde ne oluyor? Ve çocuk, süre bitmeden bunu nasıl öğreniyor? Bu geçişleri doğru yapmak - işini gerçekten toparlayacak kadar erken uyarmak, sorunsuzca kilitlemek, net bir açıklama vermek - tasarım çalışmasının büyük kısmının gittiği yer oldu.
Gerçek ebeveynlik durumlarından doğan özellikler
Daha Fazla Süre İste belirli bir pazarlıktan doğdu: "Biraz daha süre alabilir miyim?" Bunun her seferinde anlık bir ebeveyn kararı olması yerine, OneLimit çocukların doğrudan kendi cihazlarından istek göndermesine olanak tanıyor. Ebeveyn tek dokunuşla onaylıyor ya da reddediyor. Tartışmayı odadan çıkarıyor.
Seriler öz denetimi ödüllendirici hissettirmek isteğinden doğdu. Günlük bütçesinin içinde kalan çocuklar bir seri oluşturuyor. Basit bir teşvik ama limiti dayatılan bir şey olmaktan çıkarıp hak edilen bir şeye dönüştürüyor.
Acil kilit birçok ebeveynin tanıdığını düşündüğüm bir durumdan doğdu: bir çocuğun oyunda kaybetmenin verdiği öfkeyle kontrolden çıktığı ve her ekstra ekran dakikasının durumu daha da kötüleştirdiği an. Telefonumdan anında tüm cihazları kilitleyebilmek - fiziksel olarak müdahale edip bir şeyi elinden almak zorunda kalmadan - gerçekten faydalı oldu.
Yatma geri sayımı çocuklara, ekranlar gece kilitlenmeden önce net ve görünür bir yavaşlama süresi veriyor. Ani bir kesinti yok - yaklaşan zamanı görüyor ve doğal bir şekilde toparlayabiliyorlar.
Programlar okul günü ile hafta sonu gerçeğinden doğdu. Salı günü için doğru limit, Cumartesi için doğru olandan farklıdır. OneLimit farklı günler için farklı bütçeler belirlemenize olanak tanıyor, böylece hafta sonları varsayılan haline gelmeden daha fazla nefes alanı sağlayabilir.
Neyi yanlış yaptık (ve düzelttik)
İlk sürüm fazla şey yapmaya çalıştı. Cihaz kullanım analizleri, uygulamaya göre ayrıntılı dökümler, zaman içindeki trend raporları. Bunların hepsi ilginç veri, ama çoğu ebeveynin o anda gerçekten ihtiyaç duyduğu şey değil. Ebeveynlerin ihtiyaç duyduğu şey şu: ne kadar süre kaldı ve bu gece bir sorun olacak mı? Geri kalan her şey gürültü.
Bunların çoğunu kaldırdık. Şu anki uygulama ilk sürümlerden daha basit. Doğru karardı.
Ayrıca başta ara sıra ekstra süre vermeyi fazla zorlaştırmıştık. Sistem, hem çocuğa hem bize cezalandırıcı hissettiren bir şekilde katıydı. Gerçek hayat katı değil. Bazı günler daha fazla esnekliği hak eder. Genel yapıyı bozmadan kolay, tek günlük istisnalar oluşturmak önemliydi.
OneLimit şu anda nerede
OneLimit, App Store'da gerçek bir uygulama. iPhone, PS5, Nintendo Switch, Xbox ve Windows PC'yi destekliyor. Bir çocuk ve bir cihazı kapsayan ücretsiz bir katman var - temel fikrin ailenizde işe yarayıp yaramadığını denemenize ve görmenize yetecek kadar. Pro plan limitleri kaldırıyor; güncel fiyat App Store'da gösteriliyor.
Hâlâ küçük bir operasyon. Kişisel olarak ihtiyaç duyduğumuz bir şeyi, birçok ailenin de paylaştığını düşündüğümüz bir problem için geliştiren küçücük bir ekibiz. Slogan - "Tek bütçe. Tüm ekranlar." - tam da geliştirmeye koyulduğumuz şey ve uygulamanın yaptığı şey de bu.
Birden fazla cihazı yöneten ve cihaz başına limitlerin sürtüşmesini hisseden bir ebeveynseniz, denemenizi çok isteriz. Ve geri bildiriminiz varsa - çalışmayan şeyler, faydalı bulacağınız özellikler, bir şeyi yanlış yaptığımız yerler - bunları gerçekten okuyoruz ve gerçekten bundan sonra ne geliştireceğimizi şekillendiriyor.
Küçük bir ekip olmanın o kısmı hiç de fena değil.
OneLimit iOS'ta mevcuttur ve iPhone, PS5, Nintendo Switch, Xbox ve Windows PC desteği sunar. onelimit.app adresinden başlayın.