APP
U.O.S-Mobile 구성 및 확장 방법에 대한 설명입니다.
U.O.S-Mobile
프로젝트 정보
U.O.S-Mobile 프로젝트는 아래 링크에서 확인할 수 있다.
환경
Development Tool: Android Studio Arctic Fox | 2020.3.1 Patch 3
SDK Version: API 21(min), API 30(target), API 30(compile)
Build Tools Version: 30.0.2
Android Gradle Plugin Version: 7.0.3
Gradle Version: 7.0.2
Gradle JDK: 11.0.10
테스팅
U.O.S-Mobile은 아래 환경에서 테스팅을 완료했다.
기기: Galaxy S5 ~ Galaxy S21
안드로이드 버전: Android 5.0 Lollipop (API 25) ~ Android 11.0 R (API 30) (min: 21, target: 30, compile: 30)
API Docs
U.O.S-Mobile에서 사용되는 각 클래스 및 메소드, 변수, 상수 등에 대한 구체적인 설명은 아래 링크에서 확인할 수 있다.
Activity 구현
U.O.S-Mobile에서 구현되는 모든 Activity는 UosActivity를 상속받아 구현한다. UosActivity는 activities라는 정적 변수를 통해 앱에서 작동되고 있는 모든 Activity를 관리하고 있으며 추가적으로 아래와 같은 기능이 있다.
중복된 Activity 생성 방지
onCreate() 호출 시 activities에 UosActivity를 상속받은 클래스를 추가한다. 위 과정에서 이미 생성되어있는 동일한 Activity가 있을 경우 해당 Activity를 종료하고 새로운 Activity를 실행한다. onDestroy() 호출 시 activities에서 해당 Activity를 제거한다.
App 실행 도중 원하는 Activity로 즉시 이동
startFromActivity() 메소드는 현재 실행중인 모든 Activity를 종료하고 매개변수로 전달된 클래스의 Activity부터 앱을 다시 시작한다.
revertToActivity() 메소드는 현재 실행중인 Activity 중 매개변수로 전달된 class의 Activity가 있을 경우 해당 Activity로 되돌아간다.
현재 실행중인 Activity 중 원하는 클래스의 Activity 불러오기
get() 메소드를 사용해서 현재 실행중인 Activity 중 매개변수로 전달된 class의 Activity가 있을 경우 해당 Activity를 반환한다.
Dialog 구현
U.O.S-Mobile에서 구현되는 모든 Dialog(Alert Dialog 제외)는 UosDialog를 상속받아 구현한다. UosDialog는 dialogs라는 정적 변수를 앱에서 작동되고 있는 모든 Dialog를 관리하고 있으며 추가적으로 아래와 같은 기능이 있다.
중복된 Dialog 생성 방지
생성자 호출 시 dialogs에 UosDialog를 상속받은 클래스를 추가한다. 위 과정에서 이미 생성되어있는 동일한 Dialog가 있을 경우 해당 Dialog를 종료하고 새로운 Dialog를 실행한다. dismiss() 호출 시 dialogs에서 해당 Dialog를 제거한다.
현재 실행중인 Dialog 중 원하는 클래스의 Dialog 불러오기
get() 메소드를 사용해서 현재 실행중인 Dialog 중 매개변수로 전달된 class의 Dialog가 있을 경우 해당 Dialog를 반환한다.
상품
추가적인 상품형식을 만들고 싶을 경우 OrderingProductItem을 상속받고 Global.ItemType에 아이템 형식을 추가하면 된다.
현재 기본적으로 구현되어있는 OrderingProductItem, OrderingSetItem, MovieItem은 자주 사용될만한 아이템 형식들을 구현해놓은 클래스다. OrderingProductItem은 상품종류, 개수, 상품명, 상품가격 등 단일상품에 대한 정보를 가지고 있는 클래스다. OrderingSetItem은 OrderingProductItem을 상속받고 있으며 상품 내에서 사이드와 같은 하위 메뉴가 포함된 상품에 대한 정보를 가지고 있는 클래스다. MovieItem은 영화에 대한 정보를 가지고 있으며 MovieSeatItem을 ArrayList로 가지고 있다. MovieSeatItem은 해당 영화를 상영하는 장소의 좌석정보를 가지고 있는 클래스다.
추후 OrderingProductItem을 기준으로 모든 형식의 상품들이 일관된 형식을 가져 더 편리하게 확장할 수 있도록 구현할 예정이다.
주문화면
현재 구현되어있는 주문화면은 OrderingActivity와 MovieOrderingActivity가 있다. OrderingActivity의 경우 단일상품, 세트상품을 판매하는 매장에서 사용하기에 적절하며 영화관, 공연장과 같이 자리예약과 상품을 함께 판매하는 매장에서는 MovieOrderingActivity가 적절하다.
추후 OrderingActivity를 상속받아 다양한 매장에 대한 주문화면을 더 편리하게 확장할 수 있도록 구현할 예정이다.
통신
기본 코드 양식
{ "request_code": 통신코드, "message": { 데이터 } }
0001
회원가입 - 일반고객
0002
회원가입 - UOS파트너
0003
로그인
0004
비밀번호 변폰 번호 수정
0005
휴대폰 번호 수정
0006
회원 탈퇴
0007
카드 정보
0008
카드 추가
0009
카드 제거
0010
주문
0011
주문취소
0012
주문내역
0013
매장정보 및 주문가능목록 전송
0015
주문대기 내역
0017
로그아웃 - 일반고객
Last updated
Was this helpful?