Telegram cho iOS đã chuẩn bị sẵn sàng cho iPhone Duo gập, thiết bị mà Apple bắt đầu bán vào ngày 23 tháng 10. Phần lớn công việc nằm trong kho lưu trữ mã nguồn mở Telegram-iOS với một commit duy nhất c8bb114b từ ngày 9 tháng 10: 12.889 dòng được thêm và 2.940 dòng bị xóa. Trên Duo, nút "Quay lại" di chuyển sang dải bên cạnh màn hình, thanh tab trở thành dạng dọc, và các câu chuyện (stories) trên màn hình bên trong lớn sẽ mở dưới dạng thẻ, giống như trên iPad. Các chỉnh sửa cuối cùng cho Duo đã được đưa vào mã nguồn vào ngày 22 tháng 10, chưa đầy một giờ trước khi số phiên bản chuyển thành 13.1.1, và vào tối cùng ngày, phiên bản 13.1.1 đã được phát hành trên App Store. Điều này áp dụng cho người dùng Duo: trên các iPhone và iPad khác, bố cục vẫn giữ nguyên, ngoại trừ một vài sửa lỗi nhỏ đi kèm.

Những thay đổi trên màn hình Duo

Quy tắc chính được ghi trong hướng dẫn, nằm trong kho lưu trữ cùng với mã nguồn: nút "Quay lại" hoặc "Đóng" được đặt ở dải bên, nếu dải đó tồn tại. Các màn hình tiêu chuẩn tự động thực hiện điều này, trong khi các màn hình có tiêu đề riêng sẽ lấy vị trí nút từ bố cục chung.

  • Trò chuyện. Tiêu đề được chia thành hàng trên cùng và cột bên. Cột này chứa nút "Quay lại" và ảnh đại diện của người đối thoại, trường nhập liệu kéo dài đến mép dải nếu dải đó trống.
  • Danh sách trò chuyện và hồ sơ. Các nút di chuyển vào dải, tiêu đề được căn giữa theo phần còn lại của màn hình.
  • Thanh tab. Thay vì dải ngang ở dưới cùng, là một viên nang dọc ở dải bên, được ép sát xuống dưới. Trên màn hình bên trong, nơi có danh sách ở bên trái và trò chuyện ở bên phải, không có chú thích dưới các biểu tượng.
  • Các nút ở cuối màn hình ("Tiếp tục", "Gửi", các bảng chọn) kéo dài toàn bộ chiều rộng, bao gồm cả dải. Các trường hợp ngoại lệ: các nút nhỏ ở giữa (nút ghi âm, "Xong" trên bản xem trước camera), các sheet cao có thể cuộn như "Chia sẻ" và trường nhập liệu có thể mở rộng lên trên. Chúng vẫn ở phần chính của màn hình: nếu không, nút nhỏ sẽ lệch 42 điểm so với trục nội dung, các nút ở góc của sheet cao sẽ chạm vào khối góc, và trường nhập liệu chiếm chiều rộng của các dòng của nó.
  • Câu chuyện trên màn hình mở rộng được hiển thị dưới dạng thẻ 9:16 ở giữa với nền mờ, giống như trên iPad. Nếu không có chỉnh sửa này, câu chuyện sẽ kéo dài toàn màn hình và bị cắt xén.
  • "Xong" trên các màn hình có nút chuyển đổi "Sửa/Xong" vẫn ở hàng trên cùng. Trước đây, nó sẽ nhảy từ hàng vào vòng tròn của cột bên.

Tại sao Duo cần bố cục riêng

Trên iPhone thông thường, hệ thống dành riêng các cạnh màn hình: phần cắt ở trên cùng với đồng hồ, dải chỉ báo cử chỉ "Màn hình chính" ở dưới cùng. Trên Duo, phần dành riêng là một khối hình chữ nhật ở một góc, nơi đặt đồng hồ, biểu tượng kết nối và camera. iOS mở rộng khối này thành một khoảng đệm dọc theo toàn bộ chiều cao của cạnh, và ứng dụng chỉ tuân thủ các khoảng đệm hệ thống sẽ mất một dải rộng 84 điểm dọc theo cạnh. Telegram tiếp tục tuân thủ các khoảng đệm hệ thống, và lấy kích thước của các khối góc từ bảng riêng của mình cho từng vị trí thiết bị. Các giá trị trực tiếp của hệ thống sau khi xoay và gập có thời gian chuyển tiếp lên đến 0,6 giây, vì vậy chúng không được đọc.

Vị tríCửa sổ, điểmKhối gócPhần còn lại ở bên cạnh
Gập, dọc466 × 678trên cùng bên phải, 84 × 170dải bên phải dưới khối
Gập, xoay trái678 × 466dưới cùng bên phải, 84 × 82dải bên phải trên khối
Gập, xoay phải678 × 466trên cùng bên trái, 84 × 84dải bên trái dưới khối
Mở, dọc669 × 951trên cùng bên phải, 134 × 82không có dải, "đảo trạng thái" ở trên cùng
Mở, ngang951 × 669trên cùng bên phải, 84 × 120dải bên phải dưới khối

Từ đó, cạm bẫy chính mà hướng dẫn đề cập đầu tiên là: Duo khi gập có khoảng đệm bên ở hướng dọc, trong khi mã của bất kỳ ứng dụng iPhone nào thường giả định rằng không có khoảng đệm bên ở chế độ dọc.

Ba đặc điểm khác của thiết bị mà mã nguồn phải thay đổi:

  • UIScreen.main trên Duo luôn trả về màn hình ngoài, ngay cả khi điện thoại đã mở. Đèn flash khi chụp bằng camera trước và tin nhắn video, độ sáng khi hiển thị mã QR và chế độ ban đêm tự động đã thay đổi độ sáng của màn hình sai.
  • Các góc bo tròn của màn hình ngoài khác nhau: 8 điểm ở phía gập và 59 điểm ở phía ngoài. Màn hình trong có tất cả các góc là 55 điểm. Các sheet, chuyển đổi giữa các màn hình và dịch chuyển danh sách trò chuyện khi mở camera câu chuyện giờ đây được bo tròn riêng cho từng góc.
  • Duo khi mở ngang được hệ thống coi là màn hình "chiều rộng thông thường", giống như iPad, mặc dù đây là một chiếc điện thoại. Các kiểm tra "đây có phải là iPad không?" dựa trên chiều rộng màn hình đã bị lỗi, và Duo khi mở không thực hiện xoay màn hình từ ứng dụng.
Các lỗi bố cục trông như thế nào

Hướng dẫn liệt kê các lỗi điển hình mà trên các thiết bị khác không dễ nhận thấy, vì khoảng đệm bên trái và bên phải ở đó bằng nhau. Khoảng đệm cạnh trái được áp dụng cả cho bên phải. Một khối có chiều rộng bằng phần chính của màn hình được căn giữa toàn bộ màn hình và dịch chuyển 42 điểm về phía dải. Nút ở cạnh phải được tính từ khoảng đệm trái. Bản xem trước camera 9:16 nằm cao hơn màn hình: trên Duo gập là 150 điểm. Các nút dưới cùng, được tính từ cạnh màn hình theo các hằng số cũ cho iPhone có nút "Màn hình chính", nằm trên dải chỉ báo cử chỉ. Mỗi chỉnh sửa phải được đưa về biểu thức cũ khi không có khối góc và các khoảng đệm bằng nhau, do đó các thiết bị khác hiển thị chính xác những gì trước đây.

Cách kiểm tra 298 màn hình

Quá trình làm việc được ghi lại trong báo cáo về kiểm tra màn hình. Nhánh feature/reserved-corners được phát triển từ ngày 25 tháng 9 đến ngày 9 tháng 10, và việc kiểm tra thực tế diễn ra vào ngày 8 và 9 tháng 10. Đã kiểm tra 298 màn hình, tức là tất cả các bộ điều khiển màn hình của ứng dụng, trừ hai màn hình thử nghiệm giả. Chúng được đọc bởi các tác nhân (agent) bị cấm thay đổi mã, và mỗi màn hình nhận được một dòng trong bảng kiểm tra: một phát hiện hoặc lý do tại sao không cần chỉnh sửa. Các sửa lỗi chỉ được thực hiện trong các tệp riêng của chúng, và ba người kiểm tra đã đối chiếu từng khác biệt với các quy tắc. Commit chính và hầu hết các commit sau đó đều được ký bởi đồng tác giả Claude Opus 5.5. Tổng cộng, theo thông báo commit, khoảng 65 phát hiện đã được sửa.

Đồng thời, cũng tìm thấy những lỗi nghiêm trọng hơn là khoảng đệm không đều:

  • màn hình "Chủ đề trò chuyện" bị đóng với lỗi khi cuộn, vì các phần tử danh sách không được tạo trong luồng chính;
  • nút trong cài đặt phát trực tiếp trên Duo rộng hơn không gian trống bên cạnh dải và vượt ra ngoài cạnh màn hình 12 điểm;
  • nút ủy quyền Telegram Passport ở vị trí gập ngang nằm dưới khối góc.

Các kiểm tra trên màn hình được thực hiện trong trình giả lập Duo với iOS 27.1. Không thể gập và mở trình giả lập từ dòng lệnh, vì vậy phần lớn các chỉnh sửa cho vị trí mở ngang chỉ được kiểm tra bằng cách xây dựng và đọc mã. Điều này được ghi rõ trong phần báo cáo về các thiếu sót. Các màn hình không có trên tài khoản thử nghiệm cũng được xếp vào đó: các nút đăng ký Premium (tài khoản đã có đăng ký), nhập trò chuyện và cuộc gọi trực tiếp.

Những gì đã hoàn thiện trước khi thiết bị ra mắt

Sau commit chính, các chỉnh sửa cho Duo vẫn tiếp tục. Ngày 18 tháng 10, các câu chuyện lân cận không còn ló ra ở dải bên: trên điện thoại thông thường, chúng nằm ngoài cạnh màn hình, nhưng trên Duo, một phần câu chuyện của người khác luôn hiển thị dưới đồng hồ. Cùng ngày, nút chuyển đổi tab ví và hoạt ảnh ảnh đại diện trong cột bên cũng được sửa. Ngày 22 tháng 10, camera câu chuyện và trình chỉnh sửa đã nâng các nút lên trên dải chỉ báo cử chỉ "Màn hình chính", và trường tìm kiếm trong danh sách trò chuyện trên màn hình mở ngang không còn bị che khuất một nửa bởi cạnh trên.

Trong tệp versions.json, số 13.1.1 xuất hiện vào ngày 22 tháng 10 lúc 12:11 UTC, chín phút sau chỉnh sửa cuối cùng cho Duo. Trên App Store, phiên bản 13.1.1 được phát hành cùng ngày lúc 18:45 UTC, với mô tả "Bug fixes, minor improvements, and more". Trong danh sách thiết bị của ứng dụng, iPhone Duo được liệt kê, nhưng danh sách này chỉ cho biết ứng dụng có thể cài đặt được, chứ không phải là nó đã được tối ưu hóa cho màn hình. Bản dựng mà người dùng Duo nhận được trùng khớp với mã nguồn mở về số phiên bản và ngày tháng, nhưng bản nhị phân từ App Store chưa được đối chiếu với mã nguồn.