Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/html/devdiary/wp/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

[Android Tutorial] 웹툰 뷰어 제작 – 1) 연재 정보 수집

아무래도 내가 관심이 있는 분야가 웹상의 정보들을 앱으로 편하게 볼 수 있게 하는 것이라서, XML Parsing 해서 ListView 에 얹히는 작업이 반복되고 있다. 일종의 틀로 만들어놓고 재사용을 해도 좋을 것 같아 최대한 간단한 포맷으로 정리하였다. 따라 만들어보는 Tutorial 식으로 작성하고자, Daum 웹툰 뷰어를 만들어보았다. 연재 목록을 RSS로 제공하고 있어서 작업하기에 편리하다 🙂

이 작업은 무려 5개월 전에 작성한 Tutorial ‘슬라이딩 메뉴 만들기’ 를 기반으로 하고 있다. Activity, Fragment 의 차이라서 onCreate와 onCreateView 정도의 차이만 있을 뿐이니 크게 상관은 없다.

아래 이미지와 같이 윤태호의 신작 『파인』 의 정보를 불러오는 Tutorial 을 만들 예정이다.


목차
1. 연재 정보 받아오기 – XML Parsing
2. 원하는 형태의 리스트로 만들기 – ListView
3. 웹툰 본편 보여주기 – WebView


일단, 다음에서 제공하고 있는 RSS의 타입을 확인한다.

http://webtoon.daum.net/webtoon/rss/farin

각 화마다 title, link, description, pubDate 가 필요하다. 이 중 Description에서는 HTML태그와 각 화 제목이 함께 제공되고 있어서, 이미지 URL만 별도로 취할 필요가 있다.

ListFragment.java

이 소스에서 ListFragment는 앱이 실행되면서 가장 먼저 실행되는 부분이다. 실행과 동시에 XML 데이터를 불러오는 것 외에 별다른 작업이 없다. 다음 회에서 다룰 ListView에 데이터를 넣는 코드가 대부분이다.

XMLParser.java

이번 포스팅에서는 이 소스가 핵심이다. 중간에 setLink, setTitle, setPubdate 는 각각 link, title, pubdate 태그의 내용물을 불러오고, setDescription만 getImgSrc 함수를 한 번 더 호출하여 src 태그의 이미지 URL만 추출한다. getImgSrc 부분은 정규표현식을 포함하여 기본적인 소스를 여기에서 참고하였고, 약간 수정하였다.

당연하게도 setXXX 등의 함수는 사전에 정의가 필요하다. 아래 Item 클래스에서 get, set 기능을 세트로 정의하였다.

Item.java

각 태그별로 get, set 함수를 설정하여 다른 곳에서도 값을 참조할 수 있게 하고 있다. 구조상 이런 식으로 해야 하는 것은 이해가 가지만 좀 더 편한 방법이 있으면 좋겠다. 불러오는 정보가 많아지면 이런 단순 작업이 늘어나서 불편한 점이 있다.

AndroidManifest.xml

인터넷에 엑세스해야 하기 때문에, 위와 같이 권한을 설정하여야 한다.


이렇게까지 하면 arrayOfList 에 각각의 웹툰 정보가 저장된다. 그 다음에는 이 내용을 ListView에 뿌리는 내용을 담을 예정이다.