본문 바로가기
자작 프로그램/이지뷰어 PC버전

이지뷰어 모바일앱을 PC버전의 C++소스로 포팅중입니다.

by 채리 2020. 1. 19.
반응형

처음 이지뷰어 모바일 버전을 개발할 때는, 이지뷰어 PC버전의 C++소스를 Java 소스로 포팅해서 만들었는데,

그동안 모바일 버전만 신경쓰다보니 상황이 역전되어버렸습니다.

지원되는 기능들도 모바일 버전이 훨씬 많고..

무엇보다도 모바일 버전의 프로그래밍 설계가 훨씬 잘 되어있다는 점입니다.

20년 넘게 C++ 프로그래밍을 해왔지만, 짧은 시간 Java 프로그래밍을 하면서 깨닫는 점도 많았습니다.

프로그램을 이런식으로 구현할 수도 있구나...

보다 깔끔하게 작성하는 요령도 배웠구요.

그동안 내가 뭐하면서 프로그래밍 했는지 자괴감이 드는군요. ㅠ.ㅠ

암튼 Java소스를 C++로 변환하면서 가장 힘들었던 점은 메모리 관리였습니다.

Java는 메모리 관리를 OS(Java VM)차원에서 해주니깐, 그냥 new로 생성해서 막 쓰면 되지만,

C++은 new로 생성한 데이터는 반드시 메모리에서 해제해줘야 하거든요.

이미지 뷰어기능을 빼고, 모든 기능들을 C++로 변환해놓고 보니, 생각보다 프로그래밍 하기가 편해졌습니다.

기능 추가도 쉽고, 무엇보다도 유지보수가 너무 간편해졌어요.

진작 이렇게 할 걸.. 생각이 듭니다. ^^

모바일 앱에서 지원하는 후리가나(루비)와 EPUB의 목차 알고리즘을 PC버전에 적용한 모습입니다.

일반적인 EPUB 및 HTML에서 지원하는 후리가나와, 텍스트 형식에서 흔히 사용하는 후리가나 형식을 모두 지원하도록 했습니다.

이미지 부분은 아직 작업중이라, 크기나 출력위치가 좀 어설프네요.

그래도 일단은 EPUB의 이미지도 출력되도록 만들었습니다.

그리고 모바일앱에서 지원되는 다중 압축 파일 지원도 PC버전에서 지원됩니다.

다만 설정 파일 구조가 이전버전과 많이 달라질 것 같습니다.

아무래도 모바일 앱의 설정파일 구조를 가져왔기때문에, PC버전의 설정파일 구조랑은 많이 다르거든요.

특히 히스토리나 즐겨찾기, 북마크 파일 구조는 완전히 달라졌습니다.

자동으로 구버전 파일을 새로운 형식으로 변환해주도록 하긴했지만, 실제 동작시 어떤 오류가 있을지 걱정이 드네요. ㅠ.ㅠ

빠르면 주말이나 이달 말이면 완성될 것 같습니다.

텍스트 뷰어 기능이 끝나면, PC버전도 이미지 뷰어 기능을 지원할 생각입니다.

화질과 여러 효과지원이 문제이긴한데, 일단은 기능 구현만 보려구요.

부가 기능들은 천천히 만들어 볼까 싶습니다.

이지뷰어 PC버전 제작이 어느정도 마무리되면

태블릿 버전과, 아이폰용 이지뷰어도 만들어 볼 생각입니다.

태블릿 버전은 화면설계가 끝나면 며칠 내로 만들 수 있을 것 같고,

아이폰용은... 음.. 지금부터라도 열심히 공부해봐야겠습니다.

아이폰 프로그래밍은 해본적이 없어서 어떤식으로 접근해야할지 좀 두렵긴하네요. ^^a

반응형