본문 바로가기
자작 프로그램/이지뷰어 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

반응형