Telegram untuk iOS telah bersiap untuk iPhone Duo yang dapat dilipat, yang mulai dijual Apple pada 23 Oktober. Sebagian besar pekerjaan ini terdapat dalam repositori terbuka Telegram-iOS melalui satu commit c8bb114b pada 9 Oktober: 12.889 baris ditambahkan dan 2.940 baris dihapus. Di Duo, tombol "Kembali" berpindah ke strip samping di tepi layar, panel tab menjadi vertikal, dan cerita (stories) di layar dalam yang besar terbuka sebagai kartu, seperti di iPad. Perubahan terakhir untuk Duo masuk ke dalam kode pada 22 Oktober, kurang dari satu jam sebelum nomor versi berubah menjadi 13.1.1, dan pada malam hari yang sama, 13.1.1 dirilis di App Store. Ini berlaku untuk pemilik Duo: pada iPhone dan iPad lainnya, tata letak tetap sama, kecuali beberapa perbaikan kecil yang menyertainya.

Apa yang Berubah di Layar Duo

Aturan utama tercatat dalam panduan yang terletak di repositori di samping kode: tombol "Kembali" atau "Tutup" ditempatkan di strip samping, jika ada. Layar standar melakukannya secara otomatis, sementara layar dengan header kustom mengambil posisi tombol dari tata letak umum.

  • Obrolan. Header dibagi menjadi baris atas dan kolom samping. Kolom ini berisi tombol "Kembali" dan avatar lawan bicara, bidang input membentang hingga tepi strip jika kosong.
  • Daftar Obrolan dan Profil. Tombol-tombol berpindah ke strip, judul dipusatkan di bagian layar yang tersisa.
  • Panel Tab. Alih-alih strip horizontal di bagian bawah, ada kapsul vertikal di strip samping, menempel di bagian bawah. Di layar dalam, di mana daftar berada di kiri dan obrolan di kanan, tidak ada label di bawah ikon.
  • Tombol di bagian bawah layar ("Lanjutkan", "Kirim", panel pilihan) membentang selebar penuh, termasuk strip. Pengecualian: tombol kecil di tengah (tombol rekam, "Selesai" pada pratinjau kamera), lembar tinggi dengan gulir seperti "Bagikan", dan bidang input yang memanjang ke atas. Ini tetap berada di area utama layar: tombol kecil akan bergeser 42 titik dari sumbu konten, tombol di sudut lembar tinggi akan mencapai blok sudut, dan bidang input menempati lebar barisnya.
  • Cerita pada layar yang diperluas ditampilkan sebagai kartu 9:16 di tengah dengan latar belakang buram, seperti di iPad. Tanpa perubahan ini, cerita akan membentang ke seluruh layar dan terpotong.
  • "Selesai" pada layar dengan tombol "Ubah/Selesai" tetap berada di baris atas. Sebelumnya, tombol ini melompat dari baris ke lingkaran kolom samping.

Mengapa Duo Membutuhkan Tata Letak Sendiri

Pada iPhone biasa, sistem mencadangkan tepi layar: takik dengan jam di atas, strip gestur "Beranda" di bawah. Pada Duo, cadangan ini adalah blok persegi panjang di salah satu sudut, tempat jam, ikon koneksi, dan kamera berada. iOS memperluas blok ini hingga ke seluruh tinggi tepi, dan aplikasi yang hanya mengikuti batas sistem akan kehilangan strip selebar 84 titik di sepanjang tepi. Telegram terus mematuhi batas sistem, dan mengambil ukuran blok sudut dari tabelnya sendiri untuk setiap posisi perangkat. Nilai sistem langsung setelah rotasi dan pelipatan bersifat transisi hingga 0,6 detik, sehingga tidak dibaca.

PosisiJendela, titikBlok SudutApa yang Tersisa di Samping
Terlipat, vertikal466 × 678kanan atas, 84 × 170strip di kanan di bawah blok
Terlipat, diputar ke kiri678 × 466kanan bawah, 84 × 82strip di kanan di atas blok
Terlipat, diputar ke kanan678 × 466kiri atas, 84 × 84strip di kiri di bawah blok
Terbuka, vertikal669 × 951kanan atas, 134 × 82tidak ada strip, "status island" di atas
Terbuka, horizontal951 × 669kanan atas, 84 × 120strip di kanan di bawah blok

Dari sini muncul jebakan utama, yang disebut pertama kali dalam panduan: pada Duo yang terlipat, batas samping ada dalam orientasi vertikal, sementara kode aplikasi iPhone biasanya mengasumsikan bahwa tidak ada batas samping dalam mode potret.

Tiga fitur perangkat lainnya yang memerlukan perubahan kode:

  • UIScreen.main pada Duo selalu mengembalikan layar luar, bahkan saat ponsel terbuka. Lampu kilat saat mengambil gambar dengan kamera depan dan pesan video, kecerahan saat menampilkan kode QR, dan mode malam otomatis mengubah kecerahan layar yang salah.
  • Sudut membulat pada layar luar berbeda: 8 titik di sisi lipatan dan 59 di luar. Layar dalam memiliki semua sudut 55 titik. Lembar, transisi antar layar, dan pergeseran daftar obrolan saat membuka kamera cerita kini dibulatkan untuk setiap sudut secara terpisah.
  • Duo yang terbuka secara horizontal dianggap oleh sistem sebagai layar "lebar normal", seperti iPad, meskipun ini adalah ponsel. Pemeriksaan "apakah ini iPad?" berdasarkan lebar layar rusak, dan Duo yang terbuka tidak melakukan rotasi layar dari aplikasi sama sekali.
Bagaimana kesalahan tata letak terlihat

Panduan ini mencantumkan kesalahan umum yang tidak terlihat pada perangkat lain karena batas kiri dan kanan sama. Batas tepi kiri disisipkan juga di kanan. Blok selebar area utama layar dipusatkan di seluruh layar dan bergeser 42 titik ke strip. Tombol di tepi kanan dihitung dari batas kiri. Pratinjau kamera 9:16 muncul di atas layar: pada Duo yang terlipat, 150 titik lebih tinggi. Tombol bawah, yang dihitung dari tepi layar berdasarkan konstanta lama untuk iPhone dengan tombol "Beranda", ditempatkan pada strip gestur. Setiap perubahan harus kembali ke ekspresi sebelumnya ketika tidak ada blok sudut dan batas sama, sehingga perangkat lain menggambar hal yang sama persis seperti sebelumnya, byte demi byte.

Bagaimana 298 Layar Diperiksa

Alur kerja dicatat dalam laporan audit layar. Cabang feature/reserved-corners dikembangkan dari 25 September hingga 9 Oktober, dan audit itu sendiri berlangsung pada 8 dan 9 Oktober. Sebanyak 298 layar diperiksa, yaitu semua view controller aplikasi, kecuali dua test stub. Ini dibaca oleh agen yang dilarang mengubah kode, dan setiap layar menerima baris dalam tabel audit: temuan atau alasan mengapa perubahan tidak diperlukan. Perbaikan hanya dilakukan di file masing-masing, dan tiga reviewer membandingkan setiap diff dengan aturan. Commit utama dan hampir semua commit berikutnya ditandatangani oleh co-author Claude Opus 5.5. Secara total, menurut pesan commit, sekitar 65 temuan telah diperbaiki.

Secara bersamaan, ditemukan juga kesalahan yang lebih serius daripada batas yang tidak rata:

  • Layar "Tema Obrolan" tertutup dengan kesalahan saat digulir, karena elemen daftar tidak dibuat di main thread;
  • Tombol di pengaturan siaran langsung pada Duo lebih lebar dari ruang kosong di samping strip dan melewati tepi layar sejauh 12 titik;
  • Tombol otorisasi Telegram Passport dalam posisi terlipat horizontal berada di bawah blok sudut.

Pemeriksaan layar dilakukan di simulator Duo dengan iOS 27.1. Simulator tidak dapat dilipat dan dibuka dari baris perintah, sehingga sebagian besar perbaikan untuk posisi horizontal yang terbuka hanya diperiksa melalui build dan pembacaan kode. Ini secara langsung dicatat di bagian laporan tentang celah. Bagian ini juga mencakup layar yang tidak ada di akun uji: tombol berlangganan Premium (akun sudah memiliki langganan), impor obrolan, dan panggilan langsung.

Apa yang Diselesaikan Sebelum Perangkat Dirilis

Setelah commit utama, perbaikan untuk Duo terus berlanjut. Pada 18 Oktober, cerita tetangga berhenti terlihat di strip samping: di ponsel biasa, cerita tersebut berada di luar tepi layar, tetapi di Duo, sebagian cerita orang lain selalu terlihat di bawah jam. Pada hari yang sama, tab switcher dompet dan animasi avatar di kolom samping diperbaiki. Pada 22 Oktober, kamera cerita dan editor menaikkan tombol di atas home indicator, dan bidang pencarian di daftar obrolan pada layar horizontal yang terbuka tidak lagi setengah melewati tepi atas.

Dalam file versions.json, nomor 13.1.1 muncul pada 22 Oktober pukul 12:11 UTC, sembilan menit setelah perbaikan terakhir untuk Duo. Di App Store, versi 13.1.1 dirilis pada hari yang sama pukul 18:45 UTC, dengan deskripsi "Bug fixes, minor improvements, and more". Dalam daftar perangkat aplikasi, iPhone Duo tercantum, tetapi daftar ini hanya menunjukkan bahwa aplikasi dapat diinstal, bukan bahwa aplikasi telah diadaptasi untuk layar tersebut. Build yang diterima pemilik Duo cocok dengan kode terbuka berdasarkan nomor dan tanggal, sementara binary dari App Store itu sendiri belum diverifikasi dengan kode.