티스토리 툴바


블로그 이미지
카라크라스

Leon.Kim의 공부하는 블로그입니다. mail - kalaklas@gmail.com twitter - @kalaklas

Rss feed Tistory
MobileApp 2011/04/07 20:39

iScroll을 이용하여, 특정 영역만 스크롤이 가능하게 해보자.

iScroll을 이용하여, 특정 영역만 스크롤이 가능하게 해보자.


참고 : http://cubiq.org/iscroll

예를 들어 아래와 같은 jquery mobile을 이용하여, 만든 webapp을 구현했다고 치자.

.
.

<div data-role="page" id="page_default" data-theme="e">
.
.
 

<div data-role="content">

<div id="collapser" data-role="collapsible" data-collapsed="true">

<h3>검색어 입력</h3>

<input  id="enteredItemField" type="search" value="" placeholder="검색어를 입력하세요."</input>

<div data-role="controlgroup" data-type="horizontal" align="center">

<a id="enteredItemSaveButton"href="#" data-icon="star" data-role="button">검색어 저장</a>

<a id="directSearchButton"href="#" data-icon="search" data-role="button">바로 검색</a>

</div>

</div>

<ul id="ItemList" data-role="listview">

<!-- 여기에 동적으로 li가 붙는다. -->

</ul>

</div>

<!-- CONTENT END -->

</div>
.
.



1. 특정 영역만을 scroll가능도록 하기 위해서 일단 이 페이지 (#page_default) 의 스크롤링을 prevent하자.

$("#page_default").live('touchmove', function (e) { e.preventDefault(); }, false); 

 

2. iscroll.js를 페이지에 import하자.
<script src="./lib/iscroll.js"></script>





3. scrolling되었으면 하는 영역을 래핑하자.
 

<div id="wrapper">
    <div id="scroller">
        <ul id="itemList" data-role="listview">
            <li>...</li>
        </ul>
    </div>
</div>




4. wrapper를 위한 css를 내 어플에 맞게 customize하자.
#wrapper {
    position:relative;
    z-index:1;
    width:100%;
    height:350px;
    overflow:auto;
}
 
5. iscroll 객체를 listview dom id와 함께 인스턴싱하자.
myScvar roll = new iScroll('scroller'); 


결과 >> 리스트 부분만 스크롤링 된다. 




이 모든 내용은 
http://cubiq.org/iscroll 에 돔 더 자세히 잘 나와 있으니, 참고도록 하자.






 

분류없음 2011/03/16 01:21

KTH에서 Hybrid App 플레임웍을 공개했다 !

KTH에서 Hybrid App 플레임웍을 공개 했다.


지난번 webapps conn 2011 세미나때 Appspresso로 만들었다는  

"푸딩 얼굴 인식 "을 보고 호기심 돋았었는데 . . . .

http://www.appspresso.com/appdev/appMain.do 에서 확인 가능하다.

이클립스에 Appspresso 개발툴을 미리 플러그인해둔 형태로 개발 툴을 제공한다.


1. 간단하게 프로젝트를 만들고




2. 좀 더 익숙한 js UI Framework을 선택하면,




3. 멀티플랫폼을 지원하는 Web기반 App 개발 환경이 완벽히 마련된다.



4. 샘플을 실행해보자.



5. jQuery Mobile 기반의 간단한 웹앱이다.
Header, Content(에는 간단한 listView가), Footer(nav메뉴) 구조를 지닌 간단한 App이다.
시뮬레이터 뿐만아니라, 폰에서도 미려하게 잘돌아간다.






iTunes의 응용프로그램에 app이 추가되서 . . . 폰과 직접 동기화를 해야한다... 흠 ; ; 
이점은 좀 불편 . . .
XCode에서 javascript 코딩하기 사실 정말 힘들다 . . 
때문에 xCode + eclipse로 작업을 하는 바보같은 습관을 갖게 되어 버렷다.
그치만 . . . 이제  XCode를 딱히 실행 시키지 않아도되겠다.




 

 











 

 
분류없음 2011/02/14 17:09

localStorage on Android.


localStorage on Android.

내가 뭔가 잘못한것이 있는것일까?

phonegap 플랫폼에 jquery mobile + html5를 이용하여 app을 개발하는 도중..


내가 지금 개발하고 있는 app은 client - server 통신을 유지하는 어플리케이션인데 . .

client가 유지해야하는 data와 server가 유지해야하는 data가 명확히 구분되어 있다.

따라서 client가 유지해야할 data의 유지 방법과 관련 고민이 필요했고, 간단히 html5 요소인

localStorage를 이용하여 setItem(), getItem() 메소드를 이용하여 상대적으로(webSQLDatabase등)

간단한 방법으로 data를 유지하기로 했다.

이 방법을 이용할 경우 어플리케이션을 삭제하지 않는한 data가 항상 유지되는 것으로 알고 있고,

iOS에서 당연히 그렇게 동작했다.

그런데 . . . Android에서 어플리케이션을 종료하고 다시 실행했더니, localStorage에 Setting했던,

당연히 유지되고 있을것이라 생각했던 data가 유지되지 않고 있었다.


iOS와 android간 localStorage data의 각각의 동작이 기대와는 달라 몹시 당황했다 . . .


두가지 해결방법이 있는것 같다,.

1. WebSQLDB를 이용하여 Table을 만들어 데이터를 유지하는 방법
2. Phonegap에서 제공하는 FileIO를 이용하여 File에 데이터를 유지하는 방법



현재 진행해둔 프로젝트의 소스코드를 최대한 유지하면서, 간단히 해결할 수 있는 방법은 FileIO를 이용하는 방법인것 같다.

(애초에 WebSQLDB를 사용하지 않은 이유는 javascript 소스코드에 sql query문이 난잡하게 내재되어 있는 이쁘지 못한 소스
코드를 보고 싶지 않았기 때문이다.)

Phonegap FileIO api
url : http://docs.phonegap.com/phonegap_file_file.md.html#File


이 녀석을 이용하여 해결해 보고, 결국 해결되지 않을 경우 WebSQLDB를 이용하여야겠다. ㅠㅠ





MobileApp 2010/12/29 11:56

jQuery Mobile 자주쓰는 Event와 API 몇개

jQuery Mobile - API
http://jquerymobile.com/demos/1.0a2/



jQuery Mobile로 WebApp을 개발함에 있어, 유용하고 자주 쓰는 몇가지 Event와 API들을 나열해 보쟝

Event

Page show/hide events

pagebeforeshow
pagebeforehide
pageshow
pagehide

이벤트명 그대로 Page 노출 시점에 따라 발생하는 이벤트다.

예> pagesshow되자 마자 alert을 발생해보자.
$('div#page_main').live('pageshow',function(event, ui){
  alert('page_main 페이지가 보입니다.');
});

Page initialization events

pagecreate
pagebeforecreate

페이지 이동

간단 활용 예>

/* div#page_main으로 slideup하며 이동 */
$.mobile.changePage("div#page_main", "slideup");

페이지 로딩 메시지 노출

$.mobile.pageLoading (method)

$.mobile.pageLoading( true );	// 페이지 로더를 숨긴다.
$.mobile.pageLoading( false );	// 페이지 로더를 보여준다.
TOTAL 16,073 TODAY 1