3 hal di Screen Time API yang aku harap diperbaiki Apple
Aku membuat HonorFit, aplikasi blokir tempat kamu mendapatkan screen time dengan push up (sistem kejujuran, tanpa kamera). Aplikasinya sama di iPhone dan Android, idenya sama, dan sebagian besar kodenya juga sama. Dan jujur saja? Versi Android lebih enak dipakai.
Bukan karena Android lebih jago memblokir aplikasi. Screen Time API di iOS sebenarnya sangat solid untuk urusan blokirnya. Masalahnya, iOS mengekang kamu di tiga hal spesifik, dan tidak ada satu pun yang kelihatannya ada untuk melindungi pengguna. Jadi ini daftarku, plus apa yang akan aku minta ke Apple. Aku berusaha memilih hal-hal yang tidak akan mengorbankan privasi siapa pun.
(Kalau kamu mau versi teknis soal membangun aplikasi di atas API ini, aku sudah menulisnya terpisah: yang tidak diceritakan dokumentasi Apple.)
1. Kamu cuma bisa punya satu aplikasi Durasi Layar dalam satu waktu
Misalnya kamu sudah pakai Brick, Opal, atau one sec, dan mau mencoba HonorFit juga. Di iPhone, itu tidak bisa. Saat aplikasi kedua meminta akses Durasi Layar, iOS bahkan tidak menampilkan permintaan izinnya. iOS langsung melempar error yang bilang Family Controls cuma tersedia untuk satu aplikasi dalam satu waktu. Aku sudah melihat error itu sendiri, dan developer lain juga mengalaminya.
Untuk berganti, kamu harus masuk ke Pengaturan › Durasi Layar › App dengan Akses Durasi Layar, mematikan aplikasi yang lain, dan kadang harus me-restart HP. Sekarang HonorFit mendeteksi error itu dan memandu orang melewati langkah-langkahnya, karena pesan error mentahnya tidak ada artinya buat orang biasa.
Anehnya begini: saat Apple memperkenalkan jenis otorisasi ini di WWDC22, mereka bilang bahwa tidak seperti otorisasi kontrol orang tua, otorisasi individual bisa dipakai oleh aplikasi sebanyak apa pun di satu perangkat. Bukan itu yang terjadi sekarang, dan aku tidak bisa menemukan dokumentasinya di mana pun.
Kenapa ini tidak demi kepentingan pengguna: orang suka mencampur alat. Seseorang mungkin pakai Brick untuk sesi fokus serius di kantor dan HonorFit untuk “membayar” jatah scroll malamnya. Apple sudah punya aturan untuk menggabungkan pembatasan: saat beberapa ManagedSettingsStore mengatur hal yang sama, menurut Apple sendiri "the most restrictive setting always wins" (pengaturan yang paling ketat selalu menang). Menerapkan hal yang sama antar-aplikasi akan memungkinkan orang memakai keduanya, dan dengan cara itu HP cuma bisa jadi lebih terkunci, tidak pernah kurang.
2. Pemilih aplikasinya kaku, dan aplikasi tidak bisa mengubahnya
Di iPhone, memilih aplikasi yang mau diblokir berarti memakai FamilyActivityPicker buatan Apple. Ini lembar sistem yang tidak bisa diubah oleh aplikasi, kecuali satu baris teks header dan footer. Lembar ini terbuka di daftar kategori (Sosial, Game, Hiburan...), dan kamu harus mengetuk masuk ke sebuah kategori untuk menemukan aplikasinya. Di Android, daftarnya aku buat sendiri, jadi HonorFit menampilkan aplikasi yang terinstal, diurutkan berdasarkan berapa lama kamu memakai masing-masing dalam 24 jam terakhir.
Ada dua hal yang mengganggu dari versi iOS:
- Gampang sekali tidak sengaja memblokir satu kategori penuh. Ketuk baris kategorinya alih-alih membukanya, dan kamu baru saja memilih semua aplikasi di dalamnya, termasuk yang baru akan kamu instal nanti. Untuk banyak aplikasi, itu tidak pernah yang kamu mau. Kamu maunya Instagram dan TikTok, bukan “Sosial”.
- Kamu tidak bisa melihat aplikasi mana yang sebenarnya menghabiskan harimu. Alasan utama orang membuka aplikasi blokir adalah “aku terlalu lama main HP”. Pemilih aplikasi adalah satu-satunya momen saat mereka memutuskan apa yang mau diblokir, dan pemilih itu tidak memberi info apa pun soal ke mana waktu mereka pergi. iPhone-mu tahu persis berapa lama kamu memakai setiap aplikasi (ada di Pengaturan), tapi pemilihnya tidak menampilkannya.
Ini tidak akan mengorbankan privasi sedikit pun. Pemilih aplikasi digambar oleh iOS di prosesnya sendiri. Aplikasinya tidak pernah melihat isinya, cuma token buram untuk apa pun yang kamu pilih. HonorFit benar-benar tidak bisa tahu aplikasi mana yang kamu pilih. Jadi iOS bisa saja menampilkan waktu pemakaian langsung di dalam pemilih, dan aplikasinya tetap tidak tahu apa-apa. Apple bahkan sudah melakukan hal serupa dengan extension DeviceActivityReport, yang menampilkan pemakaianmu di dalam sandbox yang tidak bisa dibaca aplikasi.
- Opsi di pemilih untuk memilih kategori utuh atau aplikasi saja, supaya aplikasi blokir bisa menawarkan daftar khusus aplikasi tanpa risiko tidak sengaja memilih kategori (dan menyembunyikan situs web kalau tidak dipakai).
- Opsi untuk mengurutkan berdasarkan, dan menampilkan, screen time yang terukur di samping setiap aplikasi, digambar oleh iOS supaya aplikasinya tidak pernah melihat angkanya.
3. Kamu tidak bisa melihat hitung mundur sisa waktu yang akurat
Di HonorFit, waktu yang kamu dapat cuma berkurang selama kamu benar-benar ada di aplikasi yang diblokir. Jadi yang paling jelas untuk ditampilkan adalah hitung mundur: “sisa 12:34”, berkurang selama kamu scroll dan berhenti saat kamu keluar.
Di Android, itu gampang. Service background HonorFit mengecek aplikasi mana yang ada di layar setiap detik, dan notifikasinya memakai timer hitung mundur bawaan Android, jadi panel notifikasi menggambar ulang angkanya sendiri setiap detik. Tarik panel notifikasi ke bawah dan kamu melihat persis berapa sisa waktumu, sampai ke detiknya.
Di iPhone, itu tidak mungkin, dan ini alasannya:
- iOS tidak pernah memberi tahu aplikasi kapan kamu membuka atau meninggalkan aplikasi yang diblokir. Yang kamu dapat cuma event “pemakaian sudah terkumpul sebanyak ini”. HonorFit memasang satu event untuk setiap 15 detik pemakaian, dan event-event itu dikirim ke extension background yang memperbarui notifikasinya.
- Notifikasi biasa tidak bisa menghitung mundur sendiri, jadi yang paling bisa dilakukan HonorFit adalah mengganti teksnya setiap kali event datang. Itu sebabnya notifikasi di iPhone bertuliskan “Sisa ~12:30” dengan tanda gelombang: angkanya melompat per 15 detik.
- Event-event itu juga tidak selalu datang tepat waktu. Di iOS 26, aku pernah melihatnya datang terlambat, atau beberapa sekaligus.
- Live Activities bisa menghitung mundur sendiri, tapi tidak bisa dijeda. Tidak ada yang memberi tahu aplikasi bahwa kamu sudah keluar dari Instagram, jadi Live Activity akan terus berjalan sementara HP-mu tergeletak di meja, dan itu salah.
Jadi pengguna iPhone dapat perkiraan kasar, sementara pengguna Android dapat angka yang sebenarnya.
DeviceActivity menggerakkan hitung mundur yang digambar sendiri oleh iOS: di notifikasi, di Live Activity, atau di shield, yang cuma berjalan selama aplikasi yang dipantau ada di layar. iOS sudah melacak pemakaian itu sampai ke detiknya, jadi iOS bisa menampilkan waktunya tanpa memberi aplikasi informasi baru apa pun. Bahkan callback sederhana “aplikasi yang diblokir dibuka / ditutup” ke extension monitor saja sudah menyelesaikan sebagian besar masalahnya.Sekian
Supaya adil ke Apple, model privasi di sini benar-benar bagus. Aplikasinya tidak pernah tahu apa yang kamu blokir atau berapa lama kamu memakainya, dan aku tidak mau itu berubah. Tidak satu pun dari tiga hal di atas akan mengubahnya. Ketiganya cuma akan membuat aplikasi iPhone bisa sebermanfaat versi Android-nya sekarang.
Kalau kamu juga membangun aplikasi di atas Durasi Layar dan mau salah satu dari ini, tolong ajukan lewat Feedback Assistant. Sejauh yang aku tahu, laporan yang sama dari banyak orang itulah yang membuat sesuatu diperhatikan. Dan kalau kamu cuma mau mencoba aplikasinya, HonorFit gratis di iPhone dan Android. Siapa tahu ada di antara kalian yang suka!