안녕하세요.
2018년에 처음 만들었던 압축 만화 뷰어 ComicJet(코믹제트)을 다시 정비해 안드로이드와 iOS로 출시했습니다.
ComicJet은 콘텐츠를 판매하거나 제공하는 서비스가 아니라, 사용자가 가지고 있는 만화와 문서 파일을 직접 불러와 읽는 뷰어입니다.
지원 형식
-
ZIP / CBZ
-
RAR / CBR
-
7Z / CB7
-
PDF
-
TXT
-
안드로이드에서는 TAR / CBT / TGZ / TAR.GZ도 지원
주요 기능
-
일반 좌→우 읽기와 일본 만화용 우→좌 읽기
-
양면으로 스캔된 페이지 분할
-
실제 제본선 위치를 감지하는 스마트 분할
-
가로 화면에서 두 페이지 나란히 보기
-
표지 페이지 단독 표시
-
핀치 확대와 페이지 탐색
-
마지막으로 읽은 위치 이어보기
-
TXT 세로 스크롤과 읽던 위치 저장
-
자동 페이지 넘김과 마지막 페이지에서 다음 책 열기
-
암호로 보호된 ZIP/CBZ, RAR/CBR, PDF 열기
-
안드로이드에서는 암호로 보호된 7Z/CB7도 지원
-
생체 인증 또는 기기 잠금을 이용한 앱 잠금
-
한국어·일본어·중국어 압축 파일명 인코딩 처리
플랫폼별 파일 불러오기
안드로이드판은 로컬 저장소와 SD카드 외에도 Dropbox, Google Drive, OneDrive, SMB, SFTP를 통한 파일 탐색과 다운로드를 지원합니다.
iOS판은 파일 앱의 ComicJet 폴더에 파일을 넣거나, 파일 앱에서 공유 → ComicJet을 선택해 바로 열 수 있습니다. 아이폰과 아이패드를 모두 지원합니다.
2018년에 만들었던 앱을 다시 꺼내 하나씩 손보면서, 제가 실제로 만화를 볼 때 불편했던 부분을 중심으로 기능을 추가했습니다.
안드로이드판은 2018년부터 이어온 코드 기반을 계속 정비해서 사용하고 있습니다. 그래서 UI도 당시 최신 스타일이었던 Material UI를 기반으로 하고 있습니다. 최신 앱들과 비교하면 조금 익숙하거나 옛 느낌이 날 수 있지만, 기존 구조를 유지하면서 기능과 안정성을 계속 개선하고 있습니다.
아직 부족한 부분이나 예상하지 못한 문제가 있을 수 있습니다. 사용해 보시고 불편한 점이나 필요한 기능을 알려주시면 이후 업데이트에 참고하겠습니다.
앱은 기본적으로 무료이며 배너 광고가 표시됩니다. 광고 제거를 위한 연간 자동 갱신 구독과 평생 이용권도 준비했습니다.
읽어주셔서 감사합니다!
다운로드
- 안드로이드: Google Play에서 ComicJet 받기
- 아이폰·아이패드: App Store에서 ComicJet 받기


먼저 압축 파일명 쪽입니다. PKWARE 규격 문서(APPNOTE)의 일반 목적 비트 항목에 Bit 11이 언어 인코딩 플래그(EFS)로 정의돼 있고, 이 비트가 켜져 있으면 해당 파일의 파일명과 코멘트를 UTF-8로 인코딩해야 한다고 되어 있습니다. 부록 D에는 ZIP 포맷이 역사적으로 IBM Code Page 437만 지원했고, Bit 11이 꺼져 있으면 원래 ZIP 문자 인코딩을 따라야 한다고 적혀 있습니다. 실제로 돌아다니는 한국어와 일본어 압축본은 이 비트가 꺼진 채 CP949나 Shift-JIS로 들어 있는 경우가 많아서 추측이 불가피한 구간이 맞습니다. 다만 뒤집으면, Bit 11이 켜진 정상 UTF-8 파일에까지 추측 로직이 먼저 닿으면 멀쩡한 파일명이 깨집니다. Bit 11을 먼저 읽고 꺼져 있을 때만 추측으로 내려가는 구조인지 궁금합니다.
두 번째는 안드로이드 저장소입니다. 로컬 저장소와 SD카드 탐색을 지원한다고 쓰셨는데, 안드로이드 공식 문서의 모든 파일 관리 항목에 MANAGE_EXTERNAL_STORAGE가 SD카드 루트 디렉터리 접근을 포함해 부여한다고 나와 있습니다. 같은 문서의 Google Play 알림 절에 허용되는 사용 사례가 파일 관리자, 백업 및 복원, 바이러스 백신, 문서 관리 앱, 기기 내 파일 검색, 디스크와 파일 암호화, 기기 간 데이터 이전으로 나열돼 있고, 저장소 액세스 프레임워크나 Media Store API를 효과적으로 사용할 수 없는 경우에만 요청해야 한다는 문장이 앞에 붙어 있습니다. 뷰어는 저 목록에 이름이 없어서, 탐색을 SAF 트리 권한으로 받으시는지 아니면 저 권한을 선언하셨는지가 갈릴 것 같습니다.
세 번째는 iOS입니다. 파일 앱의 ComicJet 폴더에 넣는 방식은 사본이 하나 더 생깁니다. Info.plist 키 중 LSSupportsOpeningDocumentsInPlace는 앱이 파일 프로바이더의 문서를 사본이 아니라 원본 그대로 열 수 있는지를 나타내는 불리언이라고 문서에 정의돼 있습니다. 만화 압축본은 권당 용량이 커서 사본이 생기면 저장공간이 두 배가 되는 쪽이라, 이 키가 켜져 있는지 궁금합니다.