ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • iOS 텍스트 뷰어 개발을 끝내고 검수를 넣으며
    iOS 2018. 9. 30. 21:53


    아이폰 / 아이패드용 텍스트 뷰어의 개발...을 완료해서,


    오늘 아침에 검수를 신청했습니다.


    앱스토어의 악명높은 리뷰어(?)의 검수가 통과되면 출시가 될 것 같습니다.



    포트폴리오 용 간단한 앱으로 무엇을 출시하는 것이 좋을까 생각하던 참에 



    텍스트 뷰어의 개발 및 출시를 결정하게 된 이유로는 몇 가지 요소가 작용했습니다.


    서버가 붙어 있는 앱을 출시하려면 지속적으로 서버 요금이 발생할텐데, 계속 유지보수할 입장에서 서버비의 적자도 생각할 필요가 있었습니다. 뭐 광고로 충당하기엔  애드몹의 바닷물같이 짜디짠 수익을 이미 여러 경로(?)로 파악하고 있어서, 솔직히 현실성이 많이 없었구요.


    APNS 하나 송신하는데도 서버가 필요한데, 논서버로 할 수 있는 간단한 지속가능한 앱이 무엇일까..?

    하고 나온 게 텍본 뷰어입니다.


    타겟은  iOS 9 ~ 12 로 나름 넓게 잡았습니다.

    그 이유는.. 제 아이패드가 구형이라 iOS 9에서 더 이상 못하기 때문입니다.



    프로젝트를 시작할 때 목표로 잡은 바는 다음과 같습니다.


    - 코어데이터를 활용한 앱

     하이브리드 앱을 첫앱으로 스타트했기 때문에 코어데이타를 만져볼 기회가 별로 없었습니다. 초급 iOS 개발자로서 Coredata 를 모르는 건 말이 안되는 일이기도 했으니, 이번 기회에 익혀 보기로.

    - 스토리보드를 이용하지 않고 UI를 프로그래밍으로 짜기

     스토리보드로 짜는 앱도 많은 장점이 있습니다만... 콜렉션뷰와 테이블뷰를 커스터마이징하기가 조금 힘든데다가, 아웃렛을 일일히 연결해주는 작업도 조금 지치기도 해서, 이번에는 스토리보드 없이 앱을 만들어보기로 했습니다. 거기에 스토리보드로는 뭐랄까 복잡한 액션을 모두 담아내기가 까다롭기도 했고요. SnapKit을 이용해서 유아이를 전부 프로그래밍으로 구현했습니다.



    제가 구상한 텍스트뷰어는 뭐랄까, 아크로뱃 리더에서 pdf 보여주듯이 텍스트를 책처럼 슥슥 보여주는 것을 원했습니다. 텍본 읽으면서 제일 불편했던 게, 어디까지 읽었는지 도통 파악이 안 되는 거였거든요. 그래서 제 구상(?)에서는 텍스트를 한페이지로 조각조각 잘라서 책처럼 보여주고, 및에 페이지수도 표현해주고 그런 걸 원했습니다.

    문제는 텍스트를 알맞게 페이지로 잘라내는 게 쉽지가 않다는 거, 속도도 거북이처럼 느리고 cpu도 많이 쓰고 골치좀 아팠습니다.


    처음에는 텍스트 전체를 for 문 돌려서, boundingrect 로 페이지 범위 짤라서 보여주는 걸로 구현했었는데, 이건 맥 시뮬에서 돌려도 답이 없더군요.


    그다음에는 boundingrect로 하되 이진 탐색으로 하는 것.. 이것도 답은 없었고요..


    애플 개발자 페이지 이 잡듯 뒤져서 NSGlaphs, NSTextContainer 같은 것까지 쓴 끝에야 1MB 이하에서는 봐줄만한 속도가 나오긴 했습니다.

    문제는 이것도 지금 출시되어있는 텍본뷰어보다 속도가 느린 편입니다. 차차 유지보수를 하면서 속도 개선에 최적화하는 앱을 만들어야 할 듯.


    그리고 골치아팠던건, 아무래도 인코딩부분이겠죠. 텍스트 파일은 인코딩을 어떻게 추정? 하는데.. 일단 doskorean과 utf8 만 보여주는 선으로 끝냈습니다.

    테스트가 안된 부분이기도 해서 일어 텍본이나 중어텍본, 기타 특수한 한국어텍본 읽는 걸 못할 것 같습니다. 일단 출시시켜 보고 보완 패치를 차차 진행해야 할 듯 싶습니다.


Designed by Tistory.