사용 팁

스크롤 기반 페이징 기능 구현하기


스크롤 기반 페이징 기능 구현하기

지난 강의에서는 연동한 API 데이터를 플렉스튜디오 시나리오 화면에 표현하는 방법을 소개했어요. 이번 글에서는 스크롤할 때마다 데이터를 계속 불러오는 페이징 기능을 구현할 예정이에요.

예시로 제로페이 가맹점 목록을 확인할 수 있는 앱을 만들어보겠습니다. 페이징 기능을 구현할 때 가장 중요한 점은 페이징 상태를 관리하는 것이에요. 관리를 위해 API를 호출할 때 페이지 번호를 전달하여 동적으로 호출하도록 구성해야 합니다.

 

5-1 공공데이터 포털 활용 신청하기_앱소개

 

👉 플렉스튜디오 유튜브에서 영상 강의 보러 가기

 

1단계 : API에 페이지 번호 전달

1. 플렉스튜디오 워크스페이스 - 좌측 데이터 메뉴 - API 연동 버튼 클릭

5-4 공공데이터 페이징_01


2. Advanced Key Setting 탭 클릭

5-4 공공데이터 페이징_02


3. Event Config Key 항목에 pageNo값 추가

5-4 공공데이터 페이징_03


4. Params 탭에서 pageNo를 대체 표현식으로 지정해 동적으로 설정 / pageNo : {=Event.pageNo}

5-4 공공데이터 페이징_04


5. 테스트 탭으로 이동

5-4 공공데이터 페이징_06


6. pageNo 값을 변경 (예시 value : 1부터 증가하면서 테스트)

5-4 공공데이터 페이징_07


7. TEST CALL 버튼 클릭하여 pageNo값이 동적으로 할당되는지 확인

5-4 공공데이터 페이징_08


8. 우측 하단 배포 버튼 클릭

 

2단계 : 시나리오에서 페이징 상태 관리

1. 이벤트를 추가할 스텝 선택

5-4 공공데이터 페이징_10


2. 스텝 이벤트 추가 - 이벤트 발생 시점 : ScrollEnd / 이벤트명 : API조회

5-4 공공데이터 페이징_115-4 공공데이터 페이징_12


3. 이벤트 연결 버튼 클릭

5-4 공공데이터 페이징_13


4.  스크립트 추가

5-4 공공데이터 페이징_14

    • 다양한 방법 중 시나리오 내에서 전역 변수 _v를 활용하여 기능 구현
    • _v.page = _v.page + 1로 페이지 번호를 1씩 증가
    • 예시 스크립트 :  if (!_v.pageNo){ _v.pageNo = 1 } else { _v.pageNo++ }

5-4 공공데이터 페이징_15

 

5. 플렉스튜디오에서는 가장 상단에 있는 이벤트부터 순서대로 실행되기 때문에 스크립트 순서를 첫 번째로 변경

5-4 공공데이터 페이징_16

 

3단계 : 이벤트에서 API 호출 설정

1. API 모듈 - Event Config Key에 등록된 pageNo 항목 확인
    • 변경한 Event Config Key가 적용되지 않았다면 모듈명 다시 선택 (모듈명 : 조회)

5-4 공공데이터 페이징_17

 

2. pageNo에 대체 첵스트 입력 - pageNo : {%_v.pageNo%}

5-4 공공데이터 페이징_18

 

3. 보내는 데이터 제거

5-4 공공데이터 페이징_19

 

4. 받는 데이터 - 카테고리명 : list / 추가 유형으로 설정

5-4 공공데이터 페이징_20

 

4단계 : 받아온 데이터를 화면에 반영

1. 데이터를 연결한 그룹의 상위 그룹 아이디 복사

5-4 공공데이터 페이징_21

 

2. Event 탭 - 함수자동생성 - 기능/함수자동생성 - 그룹/레이아웃

5-4 공공데이터 페이징_22

 

3. 다시 그리기 팝업에 붙여넣기

5-4 공공데이터 페이징_23

 

5단계 : 디버거로 페이징 동작 확인

1. 시나리오 우측 상단의 화살표( ▶ ) 클릭하여 디버거 실행

5-4 공공데이터 페이징_24

2.  정상적으로 동적하는지 확인
    • 스크롤이 끝나면 ScrollEnd 이벤트 실행 → 다시 조회이벤트 호출 → 받는 데이터가 ‘list’ 카테고리에 추가 → 화면에 표시

5-4 공공데이터 페이징_25

 

이제 플렉스튜디오에서 스크롤 기반으로 데이터를 불러오는 페이징 기능까지 구현했어요.
지금 바로 플렉스튜디오에서 공공데이터포털 Open API를 활용한 나만의 앱을 만들어 보세요!

 

{{ include_custom_fonts({"Pretendard_Regular":["Regular"],"Pretendard_SemiBold":["Semi Bold"]}) }}

추천 블로그 콘텐츠