본문 바로가기
프로그래밍 공부

모바일 앱 프로그래밍 공부 14일째 - 이지뷰어 앱만들기 (2019.04.05)

by 채리 2019. 12. 5.
반응형
  • 이지뷰어 앱 만들기
    그때그때 글을 올렸어야 하는데 귀차니즘때문에 몰아서 올리게 되는군요.

    텍스트 뷰어에 필요한 기능들은 어느정도 구현된 것 같습니다.
    전자책 EPUB문서도 방금 지원했고...
    이제 남은 것은 처음부터 하고 싶었던 이미지 뷰어군요.

    어떤식으로 구현해야할지 조금 막막합니다.

    텍스트 뷰어는 TextView를 상속받아서, 텍스트 뷰어에 필요한 모든 기능들을 직접 만들어 구현했기때문에 그리 어렵지는 않았습니다.
    하지만, 이미지 뷰어는 이미지를 읽어오는 방법도 모르겠고 어디서부터 손을 대야할지 막막하네요.

    그리고 하나의 액티비티에서 텍스트와 이미지뷰어를 모두 지원해야할지...
    아니면 각각의 텍스트뷰어 액티비티와 이미지뷰어 액티비티 2개로 나누어서 관리하는게 맞는지 조차 잘 모르겠습니다.


  • Fragment 구조로 개발
    인터넷을 검색해보니 Fragment라는 것을 사용해서 ViewPager라든지 RecycleView, Tab등을 구현한다는 글이 있더군요.

    일단 간단한 예제를 만들어 테스트 해보니 잘 되네요.

    이제 이지뷰어의 뷰어 액티비티를 손댈 차례입니다.

    기존의 텍스트 뷰어 액티비티는 Fragment로 변경시켜주고, 아직 이미지뷰어는 만들지 못했기때문에 이미지뷰어 Fragment는 더미형식으로 만들어서 2개의 Fragment를 만들어놨습니다.

    간단하게 만들어본 예제에서는 잘 동작하던 Fragment가 이지뷰어에서는 제대로 동작하지 않았습니다.

    이지뷰어의 뷰어쪽은 상단타이틀과 뷰어 2개로 나누어서 뷰어부분을 include로 호출하는 구조인데, include쪽을 fragment로 구현하려니 버튼등 모든 객체들의 onClick이벤트들이 동작하지 않더군요.

    include를 빼버리고 뷰어부분에 직접 Fragment관리 로직을 우겨넣으면 되겠지만 그리 내키진 않고...

    결국 Fragment는 포기해야할 것 같습니다.


  • Activity 구조로 개발
    Fragment는 Click등 이벤트 처리 문제로 실패로 끝났고...
    평범하게 Activity로 구현하기로 결정했습니다.

    텍스트 뷰어는 이미 액티비티로 구현되어있으니, 이미지뷰어만 더미형식의 액티비리를 만들기만 하면 끝나는 군요.

    파일을 읽을때 텍스트인지 이미지인지 체크해서 각각의 액티비티를 호출하면 되니깐 구조가 훨씬 간단해졌습니다.

    실제 동작시켜보니 Fragment 때와는 달리 제대로 동작하는군요. 한시름 놨습니다. ^^

    이미지 기능에 필요한 라이브러리로 Glide와 Picasso중 어떤 것으로 해야할지 고민이 생겼습니다.
    그외에도 좋은 라이브러리가 많았지만, 위 2가지가 널리 사용되기도 하고 기능도 괜찮더군요.

    Glide와 Picasso 둘다 사용법이 비슷하기때문에 한쪽만 알면 다른 라이브러리도 쉽게 사용할 수 있다는 장점이 있습니다.

    기본설정상태에서 Picasso가 좀더 화질이 좋지만, 사용메모리는 Glide가 훨씬 적은 메모리를 사용한다는 장점이 있어 선택이 어렵더군요.


    압축파일내의 이미지를 보여주려고 하는데 2가지 방법이 있겠습니다.
    1안) 압축파일내의 이미지파일을 폰 저장공간에 압축해제하여 이미지 라이브러리에서 불러온다.
    2안) 압축파일내의 이미지파일을 메모리상에 압축해제하여 이미지 라이브러리에서 불러온다.

    단순하게 생각해봐도 2안이 속도도 좀더 빠를테고.. 폰의 저장공간 수명에도 영향을 주지 않을 것 같았습니다.
    하지만 picasso는 메모리상으로 읽어온 데이터를 처리해주는 기능이 없더군요.
    결국 Glide를 사용하기로 결정했습니다.



텍스트뷰어 액티비티와 이미지뷰어 액티비티 2개의 구조로 변경후 텍스트 뷰어와 이미지 뷰어 기능이 완성되었습니다. 

다만 Glide라는 이미지 라이브러리가 생소하다보니 많은 부분에서 미흡하네요. 
특히 이미지뷰어 모드에서 이전/다음 이미지를 불러올때 깜빡임이 있습니다. 

이 부분은 좀더 고민해봐야할 듯 싶습니다.


이지뷰어 모바일앱을 만들기 시작한지 14일째.. 드디어 이미지 로딩시 깜빡임을 해결했습니다. 
이제 이미지의 가로길이가 긴경우 2페이지로 나누어서 보여주는 기능과 확대/축소만 남은 것 같습니다. 
일단 지금까지 만들어진 이지뷰어 모바일앱을 올려봅니다. 

  • 이지뷰어 모바일앱 다운로드
 

이지뷰어-만화/소설/텍스트/PDF/루비/후리가나 뷰어 - Google Play 앱

★ 특징 ✔️ 모든 것이 자동입니다. 이미지를 자동으로 판단하여 1장 또는 2장으로 분할하거나, 웹툰모드로 보여줍니다. 이미지에 따라서 분할모드를 계속 변경해야하는 불편함이 없습니다. ✔️ 원터치 실행 특정 기능 또는 설정을 변경하기 위해서 여러번 터치할 필요가 없습니다. 최소한의 터치로 기능을 조작할 수 있어 편리합니다. ✔️ 빠른 속도 100메가짜리 텍스트 문서도 빠른속도로 불러옵니다. 글자크기/줄간격을 변경시 먹통이 되지 않습니다. ✔️ 전자책 모드

play.google.com

 

미니뷰어-소설/텍스트/루비/후리가나 뷰어,이지뷰어 - Google Play 앱

💎 미니뷰어는 기능제한이 전혀 없습니다. 💎 ♥ 만화/이미지 뷰어 기능이 필요하시면 이지뷰어를 사용해주세요. ★ 특징 ✔️ 원터치 실행 특정 기능 또는 설정을 변경하기 위해서 여러번 터치할 필요가 없습니다. 최소한의 터치로 기능을 조작할 수 있어 편리합니다. ✔️ 빠른 속도 100메가짜리 텍스트 문서도 빠른속도로 불러옵니다. 글자크기/줄간격을 변경시 먹통이 되지 않습니다. ✔️ 전자책 모드 지원 전자책 (EPUB,CBZ,CBR)을 바로 읽어 볼 수 있으며

play.google.com

 

쪼꼬미 - 만화/사진/PDF뷰어,이지뷰어 - Google Play 앱

이지뷰어 쪼꼬미는 저용량/저성능 스마트폰에서 사용할 수 있도록 최적화하여, 4MB의 작은 크기로 빠르고 강력한 기능을 지원합니다. ♥ 소설/텍스트 뷰어 기능이 필요하시면 이지뷰어를 사용해주세요. ★ 특징 ✔️ 모든 것이 자동입니다. 이미지를 자동으로 판단하여 1장 또는 2장으로 분할하거나, 웹툰모드로 보여줍니다. 이미지에 따라서 분할모드를 계속 변경해야하는 불편함이 없습니다. ✔️ 원터치 실행 특정 기능 또는 설정을 변경하기 위해서 여러번 터치할 필요가

play.google.com

반응형