무엇을 위한 앱인가
오프라인 검색은 이미 다운로드한 기록을 대상으로 합니다. 삭제에는 인터넷 연결이 필요하며, Telegram이 허용하는 경우에만 모두에게서 메시지를 삭제할 수 있습니다.
채팅에는 여러 가지가 남습니다. 급하게 보낸 비밀번호, 일회용 코드, API 키, 카드 번호, 주소. Telegram 자체 검색은 어느 채팅이었는지, 단어가 어떤 형태였는지 기억해야 찾아 줍니다. TCleanner는 기기에 기록의 간단한 색인을 만들고, 그 전체에 진짜 정규 표현식을 한 번에 실행하게 해 줍니다. 그다음 찾은 것을 선택해 삭제할 수 있습니다 — 모두에게서, 모든 기기에서. 무엇이든 사라지기 전에 정확한 개수가 눈앞에 표시됩니다.
본인 계정만 읽으며 메시지를 보내는 일은 없습니다. 개인 채팅과 그룹을 색인합니다. 구독 중인 채널은 켜 둔 경우에만 색인합니다.
데이터는 어디에 있나
서버가 없고, 분석, 광고, 추적기도 없습니다. 사용하는 라이브러리는 Telegram 자체의 TDLib과 로컬 데이터베이스 GRDB뿐입니다. 색인은 앱의 비공개 저장소에 있고 백업에서 제외됩니다. 세션은 TDLib의 암호화된 데이터 디렉터리에 있으며, 이곳 역시 비공개이고 백업에서 제외됩니다. 그 키는 Keychain에 ‘이 기기에서만’으로 보관됩니다. 암호화된 기기 백업에 포함될 수는 있지만 다른 기기에는 복원할 수 없습니다. 앱은 사용자의 클라이언트로서 Telegram과만 통신합니다.
같은 여섯 가지 원칙이 앱의 설정 › 작동 방식에 있습니다. 기기 안에서, Telegram만, 제3자에게는 아무것도 없음, 삭제할 항목은 직접 결정합니다, 세션과 색인, 진단 정보는 직접 내보낼 때만. 전문은 개인정보 처리방침에 있습니다.
어떻게 만들어졌나
네이티브 iPhone·iPad 앱입니다. 하나의 Swift 패키지가 도메인과 프레젠터를 담고, SwiftUI가 상태 스냅숏을 그리고 인텐트를 돌려보냅니다. Telegram에는 TDLib으로 연결하며, TDLib 자체의 메시지 데이터베이스는 꺼 둡니다. 이 앱이 색인을 직접 갖기 때문입니다. 그 색인은 GRDB를 통한 SQLite이며, 단어 색인이 아니라 중간에 멈출 수 있는 전체 스캔으로 검색합니다. 단어 색인으로는 정규 표현식에 답할 수 없기 때문입니다.
동작은 코드를 쓰기 전에 글로 먼저 정합니다. 실행 가능한 시나리오를 갖춘 11개의 기능 명세가 있고, 각 요구 사항에는 코드와 테스트가 인용하는 고정 ID가 있습니다. 테스트는 시간을 제어할 수 있는 테스트용 구현 위에서 돌아갑니다. 프로젝트에는 자체 뮤테이션 테스트 도구가 있고 목표는 100%이며, 모든 기능이 이를 달성했습니다. 색인 작업은 스스로 속도를 조절하고, 앱이 강제 종료된 뒤에도 이어서 진행됩니다. 삭제는 항상 모두에게서 이루어지고, 항상 정확한 개수로 확인을 받으며, 예약되는 일은 없습니다.
현재 상태
아직 App Store에 출시되지 않았습니다. 내장 데모 보관함은 Telegram 계정 없이 개발과 테스트를 진행하는 데 사용됩니다. 소스 코드는 비공개입니다.
앱 지원 및 진단: support@kudravets.com. 일반 문의: info@kudravets.com.
비공식 앱입니다. Telegram API를 사용하며 Telegram과 관련이 없습니다.
오픈 소스 라이선스 (영어)



