2014년 2월 20일 목요일

[앱 소개] 플립 어린이 동영상 HD

플립 어린이 동영상 HD






기존 리스트을 책을 넘기는 효과를 주어 재미를 더한 앱 입니다.
아이들이 좋아 할 만한 인터페이스라고 생각이 드네요. 
다른 앱들은 Youtube 모바일 웹 페이지를 띄워 동영상을 보여 주고 있지만,
이 앱은 Youtube 플레이어를 사용해서 앱 밖으로 나갈 필요가 없어 졌네요.

Youtube 모바일 웹 페이지로 링크를 걸면 아이들이 Youtube의 다른 동영상을 클릭해서 볼수 있기
때문에 위험 요소가 있었다면 이 앱은 그 위험 요소를 없애 버렸다는게 장점 인거 같아요.

목록 보기에 플립 인터페이스를 적용해서 재미를 더해 주었고, YouTube 플레이어를 앱 안에 넣어
아이들로 하여금 이 앱 안에서만 놀도록 안전 지대를 만들어 준 점이 장점 인거 같습니다.

어린 아이에게 음식점에서 버스 안에서 동영상을 보여 주시는 부모님들에게 강추 입니다.













설명
책을 넘기듯이.... 기존의 식상한 리스트는 이제 그만.....^^
플립 어린이 동영상 HD는 책을 넘기듯이 동영상 목록을 찾아 볼수 있는 안드로이드 전용 앱입니다.
꼬마버스 타요,뽀로로와 노래해요, 뽀로로 3기, 뽀로로 2기, 뽀로로 1기, 후토스 미니미니, 로보카 폴리 1기, 로보카 폴리 2기, 로보카 폴리 3기, 라바 2013 (시즌2), 라바 시즌1, 빼꼼 1, 2, 아기공룡 곤, 방귀대장 뿡뿡이, 후토스 시즌1, 후토스 시즌2, 코코몽 시즌2, 코코몽 시즌1, ... 등의 동영상들을 쉽게 찾아 볼 수 있습니다.
추가 : 변신자동차 또봇 시즌01,변신자동차 또봇 시즌02,변신자동차 또봇 시즌03,변신자동차 또봇 시즌04,변신자동차 또봇 시즌05,변신자동차 또봇 시즌06,변신자동차 또봇 시즌07,변신자동차 또봇 시즌08,변신자동차 또봇 시즌09,변신자동차 또봇 시즌10,변신자동차 또봇 시즌11,변신자동차 또봇 시즌12,,변신자동차 또봇 시즌13

※ 참고 사항
* 모든 동영상은 네트워크에서 재생됩니다. 데이터(3G/4G/LTE) 무제한 요금제를 사용하지 않으시는 분들은 필히 Wifi 로 접속하세요. (보통 한 편보는데 100 메가 정도 나갑니다.)
* 연결되는 모든 동영상은 유튜브 동영상 플레이어로 재생 됩니다. 유해 동영상은 절대 등록되지 않습니다.
* 3G를 사용 하실 경우 동영상이 끊어지는 현상이 나타날 수 있습니다.(이통사 네트워크 상황에 따라 끊기는 경우가 종종 생기는 것 같습니다.)
※ 저작권 관련
본 어플리케이션에서 제공하는 모든 컨텐츠(영상, 이미지등 2차 저작물 포함) 들은 Youtube 의 Copyright management System에서 라이센스가 허용되는 컨텐츠들입니다.
만약 저작권상 문제가 있다고 판단되는 저작권자 분들은 Youtube에서 해당컨텐츠를 차단하시면 본 어플리케이션에서도 함께 차단됩니다.
(모든 컨텐츠의 제어권한은 원저작권자에게 있음을 알려드립니다.)
유투브에 파트너사로 등록하고, Reference 영상을 등록하신 후 차단 혹은 광고수익분배모델을 택하실 수 있습니다.
해당 앱이 발생하는 트래픽으로 인해 발생하는 모든 수익은 원저작권자에게 가는것을 미리 알려드립니다.
*관련 검색어 : 키즈, 어린이동영상, 유아동영상, 아이들동영상

2014년 2월 7일 금요일

Volley 간단 사용법

- 초기화
Volley에서 주로 사용자가 접하는 2개의 클래스는 RequestQueue와 Request 인데, RequestQueue는 request를 네트워크에 던지는 인터페이스이다.
RequestQueue는 필요에 따라 만들수도 있지만, 보통 singleton으로 사용한다.
기본으로 4개의 thread pool을 사용하게 되어 있다.

RequestQueue mRequestQueue = Volley.newRequestQueue(context);    //threadpool(4)
ImageLoader mImageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache());



- RequestQueue 이용
ImageRequest를 생성해서 mRequestQueue 에 넣어주면 되는데, ImageRequest에  url과 성공, 실패시에 리턴은 설정한 listener 에서 받아서 처리한다.

ImageRequest imageRequest = new ImageRequest(URL_IMAGE, listener, 0, 0, Config.ARGB_8888, errorListener);
imageRequest.setTag(TAG);
mRequestQueue.add(imageRequest);

이미지 요청을 view holder에 저장해놓고, View를 재활용해야할 때는 요청을 취소한다.
Volley toolbox에 있는 ImageLoader가 나머지를 처리한다.
메모리 캐쉬를 제공하고, 로딩 중일때, 에러일때 표시될 drawable 자원 이미지를 지정할 수도 있다.

if (holder.imageRequest != null) {
    holder.imageRequest.cancel();
}
holder.imageRequest = mImageLoader.get(BASE_URL, holder.imageView, R.drawable.loading. R.drawable.error);


- NetworkImageView 이용
Layout 설정 파일에 ImageVIew 선언대신 NetworkImageView를 지정하고 ImageView 객체에 간단히 url과 imageLoader만 넘겨주면 된다.

NetworkImageView imageView = (NetworkImageView) findViewById(R.id.network_image_view);
imageView.setImageUrl(null, null);                                //clear
imageView.setImageUrl(URL_IMAGE, mImageLoader);    //start load

2014년 1월 21일 화요일

[Android] 안드로이드용 ZXing 소스를 다운 받아 Jar 파일 만들기.

ZXing ?
구글에서 제공하는 오픈소스로 Zebra Crossing의 약자. QR코드 스캔 어플리케이션의 대다수가 이 어플리케이션을 이용했다고 해도 과언이 아닐정도로 널리 쓰이고 있는 코드라고 합니다. 다양한 바코드를 인식할 수 있다고합니다. 무려. 인식할 수 있는 바코드 종류는 총 15 가지 정도라고 하네요.
※ 지원포맷
- 1D product : UPC-A, UPC-E, EAN-8, EAN-13
- 1D industrial : Code 39, Code 93, Code 128, Codabar, ITF, RSS-14, RSS-Expanded
- 2D : QR Code, Data Matrix, Aztec (beta), PDF 417 (beta)

제가 이 글을 쓰게된 이유는 ZXing 2.2 이전 버전까지는 Ant를 이용해서 쉽게 Jar를 만들어 사용했는데, 2.2 버전부터는 Ant를 사용할수 있는 build.xml 이 core 디렉토리에서 삭제되어 버린거 같네요.
build.xml를 직접 만들어 사용 하실 수도 있겠지만... 이왕이면 zxing의 메뉴얼을 따라 해 보려고 이렇게 글을 쓰게 되었네요. 참고가 되시길... (사실 내가 잊어버릴까 적어 두는거긴 하지만.... ㅋ~~~~)

1. 안드로이드용 ZXing 소스를 다운 받아 Jar 파일 만들기.
    1.1. 다운로드 : http://code.google.com/p/zxing/downloads/list (현재 버전 2.3.0)
    1.2. 컴파일 방법 : https://github.com/zxing/zxing/wiki/Getting-Started-Developing 참고 
       1.2.1. 컴파일을 메이븐(Maven)이용 함(다운로드 : http://maven.apache.org/download.html)
    ※ core-2.3.0.jar 획득(다운로드 : https://db.tt/PKzHLitQ)

위의 순서대로 하나씩 해 보도록 하겠습니다.
1.1 ZXING 다운로드 (http://code.google.com/p/zxing/downloads/list (현재 버전 2.3.0))
   - ZXing-2.3.0.zip 다운로드 합니다.
 [캡쳐 1] zxing 다운로드 페이지


1.2. 컴파일 방법
  1.2.1. 컴파일을 메이븐(Maven)이용 함(다운로드 : http://maven.apache.org/download.html)
     - 메이븐 다운로드 합니다.(apache-maven-3.1.1-bin.zip)
     - 메이븐 설치는 압축을 해지 하고, bin 디렉토리를 시스템 환경변수(PATH)에 추가해 주시면 끝납니다.
     - 다운받은 메이븐을 C:\Program Files\Apache Software Foundation\apache-maven-3.1.1 압축을 해지 합니다.
     - 환경변수 PATH에 아래 경로를 추가해 줍니다.
         ;C:\Program Files\Apache Software Foundation\apache-maven-3.1.1\bin
  1.2.2. 컴파일 하기
     - 위에서 다운 받은 ZXing-2.3.0.zip 을 임의 디렉토리에 압축을 풀어 주세요. 
        (예시 ==> D:\Android\Workspace\zxing-2.3.0)
     - cmd 창을 열어서 Maven을 이용해 컴파일을 합니다.
      ㄱ. 윈도우 > 실행 > cmd
      ㄴ. zxing 압축을 해지한 디렉토리로 이동
           C:\Users\user>d:
           D:\>cd Android\Workspace\zxing-2.3.0\core
      ㄷ. 컴파일 명령 실행
           mvn -DskipTests -Dgpg.skip=true install
    ㄹ.JAR 생성 완료, 파일 확인.
      D:\Android\Workspace\zxing-2.3.0\core\target 
      core-2.3.0.jar 가 생성된 것을 확인 할 수 있습니다.
          

[캡쳐 2] 메이븐 다운로드 페이지


2014년 1월 20일 월요일

[Android] Listview 당겨서 새로고치기

Pull To Refresh for Android

This project aims to provide a reusable pull to refresh widget for Android.
Screenshot

Usage

Layout

<!--
  The PullToRefreshListView replaces a standard ListView widget.
-->
<com.markupartist.android.widget.PullToRefreshListView
    android:id="@+id/android:list"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    />

Activity

// Set a listener to be invoked when the list should be refreshed.
((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() {
    @Override
    public void onRefresh() {
        // Do work to refresh the list here.
        new GetDataTask().execute();
    }
});

private class GetDataTask extends AsyncTask<Void, Void, String[]> {
    ...
    @Override
    protected void onPostExecute(String[] result) {
        mListItems.addFirst("Added after refresh...");
        // Call onRefreshComplete when the list has been refreshed.
        ((PullToRefreshListView) getListView()).onRefreshComplete();
        super.onPostExecute(result);
    }
}

Last Updated

It's possible to add a last updated time using the method setLastUpdated and onRefreshComplete. The text provided to these methods will be set below the Release to refresh text. Note that the time representation is not validated replaces the previous text, which means that it's possible and recommended to add a text similar to "Last Update: 15:23". This might be changed in future versions.

1.5 Support

To use the widget on 1.5 the necessary drawables needs to be copied to that projects drawable folder. The drawables needed by the widget can be found in the drawable-hdpi folder in the library project.

Contributors

Are you using this widget?

If you are using this widget please feel free to add your app to the wiki.

License

Copyright (c) 2011 Johan Nilsson
Licensed under the Apache License, Version 2.0

2014년 1월 17일 금요일

Netty 번역자료 - Netty(V3.2.2)

Netty Guide(Netty(V3.2.2)) 번역본 입니다.

작성하신 분 블러그는 http://withoutwing.tistory.com 입니다.

다운로드 : NettyUserGuide_byYuuHeaVen.doc

1.1        Netty

-. 자바 네트워크 어플리케이션 프레임워크
-. 이벤트 기반이며 비동기 방식이다.
-. Interceptor Chain 패턴기반이다.
-. Old, New I/O 모두 지원
-. NIO구현 벤더별 최적화
-. 과부하 및 Dos 방어 메커니즘을 포함하고있다.
-. 제한된 환경지원(Androiud, Applet, WebStart)
     -. 다양한 컨테이너 지원(JbossMc, OSGi, Guice, Spring)

1.1        Architecture


 이하 내용은 파일을 받아 보시길..... (다운로드 : NettyUserGuide_byYuuHeaVen.doc)