티스토리 툴바


댓글뉴스 앱 소개

Android 2011/10/12 14:21
어제 처음으로 제가 만든 안드로이드앱을 마켓에 등록했습니다. 앱 이름은 [댓글뉴스]입니다. 많은 이용부탁드립니다.^^



소개

댓글뉴스는 포털사이트의 뉴스기사에 달린 추천댓글을 보는 애플리케이션입니다. 댓글뉴스는 뉴스내용보다는 댓글에 먼저 눈길이 가는 분들에게 유용하며, 뉴스에 대한 네티즌들의 반응을 쉽게 파악할 수 있습니다. (현재 지원하는 포털사이트 : DAUM, NATE, YAHOO)


* YAHOO 사이트를 추가했으나 응답이 굉장히 느리므로 권장하지는 않습니다.

 
■ 기능설명
- 뉴스제목을 클릭하면 추천댓글이 조회되며, 뉴스순위 아래에 댓글수가 표시됩니다.
- 각 댓글내용 아래에는 작성자, 작성시간, 추천수가 표시됩니다.
- 뉴스제목을 길게 누르면 해당 뉴스사이트로 이동합니다.
- 댓글을 길게 누르면 해당 뉴스의 댓글목록이 접힙니다.
- 옵션메뉴를 통해 뉴스목록을 새로고침하거나 사이트를 바꿀 수 있습니다.
- 조회작업 중 취소키를 누르면 작업이 취소됩니다.
- 멀티터치(두 손가락을 모으는 제스처)를 통해 펼쳐진 뉴스를 모두 접을 수 있습니다.
- 설정을 통해 기본 포털사이트 및 좌우로 흔들 경우 기본동작을 변경할 수 있습니다.

■ 저작권 공지
본 애플리케이션을 통해 제공되는 뉴스목록과 댓글의 저작권은 해당 언론사 및 포털사이트에 있습니다.

화면캡쳐













설치

 



크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오

댓글을 달아 주세요

아래글에서는 WebView와 웹서버간의 HTTP 통신내용을 모니터링하는 방법을 설명했습니다. 이번에는 Spring-Android 라이브러리를 이용하여 앱과 웹서버간에 REST로 통신하는 경우에 통신 내용을 엿보는 방법입니다.

import org.apache.http.HttpHost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
...

public class MyRestActivity extends Activity {

  public xxx someMethod() {
  
    RestTemplate restTemplate = new RestTemplate();
    ... ...
    
    if (isDebugMode(this.getApplicationContext())) { 
      HttpComponentsClientHttpRequestFactory factory =
                   (HttpComponentsClientHttpRequestFactory) restTemplate.getRequestFactory();
      HttpHost proxy = new HttpHost("본인로컬PC의 IP주소", 프록시포트, "http");
      factory.getHttpClient().getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }

    ... ...
    ResponseEntity<Xxx> result = 
restTemplate.exchange(url, HttpMethod.POST, requestEntity, Xxx.class);
    ... ...
 
  }
}  


아래글에서 지적했듯이 개발자 PC의 IP주소에 localhost나 127.0.0.1 루프백 주소를 쓰면 안됩니다.

이클립스 TCP/IP 모니터 뷰 설정하는 방법은 아래글과 동일합니다.


실제 앱 개발시에는 위와 같이 프록시를 설정한 RestTemplate 인스턴스를 공통모듈단에서 한개만 만들어놓고 재사용하면 됩니다.
 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오

댓글을 달아 주세요

WebView를 사용하는 앱 개발시 Eclipse의 TCP/IP Monitor를 통해 WebView와 웹서버간의 HTTP 통신내용을 보는 방법을 설명합니다.

1. 프록시 세팅

import myapp.ProxySettings;
...
public class MyWebActivity extends Activity {

   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      
      if (isDebugMode(
this.getApplicationContext())) { 
         ProxySettings.setProxy(this.getApplicationContext(), "본인로컬PC의 IP주소", 프록시포트);
      } 
      ...
      ...
      myWebView.loadUrl("http://웹서버IP:웹서버포트/xxxx.jsp");
   }


웹페이지를 로딩하기 전에 ProxySettings를 통해 프록시를 설정합니다. ProxySettings 클래스는 http://manojtk.blogspot.com/2011/01/android-webview-proxy-setting.html 사이트에서 구할 수 있습니다.

여기서 주의할 점이 2가지가 있습니다.

(1) 개발자 PC의 IP주소에 localhost나 127.0.0.1 루프백 주소를 쓰면 안됩니다. 앱은 PC가 아니라 폰에서 실행되므로 루프백 주소는 폰의 로컬 IP입니다.
(2) 프록시 설정은 실제 마켓에 올라가는(production 환경) 앱에 반영되면 안되므로 개발시점(development 환경)에서만 적용되도록 해야합니다. 위 예제소스에서는 앱이 debug모드로 서명되었는지를 체크하여 프록시를 세팅하고 있습니다.

    private boolean isDebugMode(Context context) {
        try {
            PackageInfo packageInfo = context.getPackageManager().getPackageInfo(
                    context.getPackageName(), 0);
            int flags = packageInfo.applicationInfo.flags;
            return (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
        } catch (NameNotFoundException e) {
            return true;
        }
    }

    

2. 이클립스에서 TCP/IP 모니터링 설정
 



(1) 이클립스 Preferences 창을 띄웁니다.
(2) TCP/IP Monitor 메뉴를 선택합니다.
(3) Add 버튼을 눌러 모니터를 추가합니다.

* Local monitoring port : 앞서 설정한 프록시 포트
* Host name : 웹서버 IP
* Port : 웹서버 포트

(4) Start 버튼을 눌러 모니터링을 시작합니다.


3. 이클립스에서 TCP/IP Monitor 뷰를 통해 HTTP통신내용 확인
폰에서 폰갭앱을 실행하여 웹페이지를 띄우면 이클립스에서 TCP/IP Monitor뷰가 뜨면서 통신내용을 볼 수 있습니다.

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오

댓글을 달아 주세요