웹서비스를 이용해서 만들어져 있는 트위터 어플이에요. 트위터 어플에는 글 올라오는걸 보고 여러가지 기능을 넣을 수 있도록
만들어야 하죠. 트위터 어플 개발 기준을 정하기 위해 기능이 많고 안정성이 좀 떨어지게 만들거나, 안정성이 좋고 기능이 좀 적게
만들건지 결정해야 해요.
 트위터 어플을 만드는 이유는요 안드로이드와 java언어가 인터넷과 연동해서 하기에 적합하기 때문이죠. 안드로이드 폰을 단순하게
게임 디바이스 용으로 쓰기에는 별로 의미가 없어요. 인터넷 연결성이 중요하죠. 앞으로 인터넷 서비스를 하는 기업용 App도 커질 것
이고요.

 트위터 어플을 개발하기 위해선 http를 잘 이해해야 해요. http는 웹서버에 데이터를 전달하기 위한 약속이죠. 그리고 xml은 일반적으로
많이 사용하는 포멧이기 때문에 XML parshing하는 법도 알아야해요.

 웹서비스에 대해 알아보고 갈께요. 웹서비스에 대한 API는 Daum 맵, 구글 맵 등 각 서비스 회사별로 많이 존재해요. 구글 맵은 
사람들이 정말 많이 사용하죠.
 여기서 mashup 이란 API를 이용해서 만들어놓은 web을 이야기 하죠.
 API를 사용할 때 라이센스 조항을 잘 봐야해요. API를 사용할 때 공짜는 없기 때문이죠.

 우리나라에서 웹서비스는 2004년 부터 조금씩 쌓이기 시작했어요. 그래서 web2.0과 상관없이 무딘 발전을 했죠. 외국같은 경우
web2.0발표된 이후로 API를 공개하는 방향으로 했는데 말이죠.
 우리가 webservice를 만들때는 항상 공개 할수 있다고 가정을 하고 만들어야 해요.
 웹서비스가 필요한 이유는요 아직 html분석, 데이터모으기 등을 해서 서비스를 이용하려는 사람들이 있어요. 이런일에 개발자를
투입한다면 개발자 리소스 낭비라고 할 수 있죠. 그런일이 없도록 웹서비스가 필요해요.
 카메라 보여주기 등 증강현실과 관련된 것도 WebService를 이용한 거에요.
 
 웹서비스 중 Twitter API는 가장 쉽고 깔끔한 API중 하나에요. 트위터가 API를 공개해서 성장한 서비스 중 하나죠. 여기선 ListView와
Adapter가 중요해요. Dialog와 Async도 보충적으로 알아야 하죠.

 트위터의 특징을 알아볼께요. 트위터는 나를 보고있는 사람과 내가 보는 사람이 비대칭적이에요. Following과 Follower로 존재하죠.
그리고 미디어적인 성격이 강해요. 내가 하는 것을 다른사람들이 많이 보기 때문에 영향력도 존재하죠.













 트위터 로그인하는걸 연습해봤어요.
 로그인 버튼을 누르면 아이디와 암호를 SharedPreferences에 저장하도록 했죠. 그 후 로그인 액티비티를 종료시키고 메인 List 액티비티를 실행시켰고요.











 트위터 어플을 만들기 위해 API를 분석해 봤어요. 만약 나중에 API를 만들어야 하는 일이 생기면 twitter, Flicker API를 많이 참고해야 해요.
 트위터 API에서 하나하나의 단위를 status라고 해요. status는 우리가 말하는 거의 정보를 담고있죠. 이미지, 날짜, 텍스트, 내용 레이아웃으로 구성되어 있어요.











트위터 API를 사용하여 넘어오는 XML문서를 파싱하기 위해 웹문서를 보았어요. 여기서 http프로토콜을 사용하는데요 http에 대해서 좀 알아볼께요. http는 apache에서 만들었고 java에서 많이 사용해요. 안드로이드에선 http 4.** 때부터 쓰이기 시작했죠. 그리고 REST 라는 걸 알아야 하는데요 REST란 웹의 데이터를 제공하는데 사용되는 구조적인 형식을 말하죠. 구조적으로 저장하는 방식의 예로 URL이 있어요. 이 URL표현에는 많은 정보가 들어가 있어요. 보통 get방식으로 쿼리를 전송하고요 post방식도 쓰는데 이때는 좀 복잡한 form 데이터를 전송하죠. 웬만한 웹사이트는 REST로 구성되어 있어요. 트위터 API는 xml과 REST 를 많이 쓰죠. xml 말고 json도 있는데요 둘중 어떤걸 쓸 지는 상황마다 활용도를 보고 결정하면 되요.
 
 XML parser에 대해 알아볼께요. parser에는 DOM 모델과 스트리밍 모델이 있는데요 DOM은 xml 파일을 다 읽고나서 tree 형태로 메모리에 구성을 하죠. 그리고 스트리밍은 download와 동시에 데이터 처리가 가능해요. 모바일 환경에선 어떻게든 빨리 처리하고 다음으로 넘어가야 하기 때문에 스트리밍 방식을 써야 하죠. DOM으로 하면 메모리를 많이 쓰게 되요. 모바일에선 배터리 절약이 중요하죠. 그런데 초침이 1초에 한번씩 간다면 배터리가 엄청 빨리 달겠죠. 스트리밍도 똑같아요.

  스트리밍 방식에 두가지가 있어요. SAX parser와 pull parser가 있는데요 SAX는 push based방식으로 어떤 태그가 왔다고 계속 알려주는 거에요. pull방식은 내가 태그를 꺼내오는 거에요. 개발자가 지금 태그 가져와!! 택스트 가져와!! 하고 주도권을 갖고 시키는 거죠. 좀더 읽기 쉬운 구조가 되요. 실제 안드로이드 내에서 layout을 분석하는 데 XmlPullParser를 사용하죠. 트위터 API에서 xml 파일을 내려주고 우리는 Pull Parser를 이용해서 API를 분석하는 거에요. XML pull parser를 어떻게 이용하냐면요 첫째, xml을 클래스로 매핑시켜요. 둘째, xml에 대응하는 class 구조를 만들죠. 셋째, 각 class마다 parseXXX 함수를 호출하는 거에요.
 



트위터의 home_time_line을 이용하기 위해 ListView연습을 했어요. home_time_line은 트위터의 main에 보여지는 Line을 이야기 하죠.












신고

'T아카데미' 카테고리의 다른 글

트위터 home_time_line  (0) 2010.07.09
XML Pull Parse  (2) 2010.07.09
트위터 어플개발의 시작  (0) 2010.07.08
쓰레드와 에니메이션  (0) 2010.07.07
데이터 저장 기초  (0) 2010.07.03
메뉴  (0) 2010.07.03
Posted by 응큼미소


티스토리 툴바