제출하기 전에 서버 테스트 코드 내꺼 삭제하자고 말하기
안드로이드
- 비동기 처리
- 아이템 사용과 조회는 통신을 통해서 개수를 처리했기 때문에 통신 결과로 적용이 필요
- 코루틴의 어싱크 어웨이트를 사용하여 백그라운드에서 작업을 수행하면서 메인 스레드를 차단하지 않고, 필요한 데이터, 즉 통신 결과를 사용할 수 있도록 함
- 어싱크 블록 내의 코드는 비동기적으로 실행되며, 별도의 스레드(대부분 백그라운드 스레드)에서 수행 ⇒메인 스레드(예: UI 스레드)를 차단하지 않기 때문에, 애플리케이션의 반응성을 유지
- 어웨이트는 비동기 작업이 완료될 때까지 기다린 후, 그 결과를 반환. 호출하는 동안 메인 스레드는 차단되지 않으며, 다른 작업을 계속 처리 가능. 작업이 완료되면 어웨이트는 비동기 작업의 결과를 반환하고, 이를 사용할 수 있음
- 콜백
- 리사이클러뷰와 메인 액티비티의 상호작용 ⇒ 아이템 사용 및 경험치 업데이트
- 사용자 인터페이스의 일관성 유지
- 리사이클러뷰 내의 이벤트(예: 아이템 클릭)에 대해 메인 액티비티에서
UI를 업데이트할 필요가 있을 때, 콜백을 사용하여 액티비티에서 UI 업데이트를 수행
- 액티비티와 프래그먼트 간의 통신을 용이
- 통신 함수와 메인 액티비티의 상호작용 ⇒ 아이템 구매 및 포인트 감소
- 네트워크 통신으로 인한 데이터 변경(예: 아이템 구매, 포인트 감소) 후 메인 액티비티에서 UI를 업데이트
- 네트워크 요청의 결과에 따라 UI를 적절히 반영
- 리사이클러뷰
- 사용자 소유 아이템의 경우 데이터 변화가 빈번함
- 데이터 변경 처리 메서드를 제공
- notifyDataSetChanged() 등의 메서드를 통해 특정한 위치만 업데이트 가능
- 불필요한 업데이트 방지 및 성능 향상
- 유연한 레이아웃을 지원함
- 리사이클러뷰를 많이 사용했는데, 레이아웃을 다양하게 사용 가능
- 리사이클러뷰 사용 목록
- 사용자 아이템 목록
- 상점 구매 목록
- 상점 사용자 소유 목록
- 과거 다이노 목록
- gif / 다이얼로그 짧게
- 이런 의존성을 통해 이미지뷰에 raw를 주입해서 움짤 사용했다~
- 다이얼로그를 띄워서 유저에게 편의성을 제공했다
- 생명주기
- onCreate()로 실행
- 액티비티 전환 시 finish()를 호출하지 않아 자동으로 onPause()상태로 만듦
- 액티비티를 백그라운드에 남기고 상태와 데이터 유지
- 해당 액티비티로 돌아오면 onResume()이 되어 onCreate()는 호출하지 않음
- onCreate()에서 데이터를 로드하고, 특정한 이벤트 발생시에만 통신을 하여 불필요한 네트워크 리소스를 절약하고 통신을 통한 데이터 로드 시간 절약 및 애플리케이션의 성능을 최적화
- 액티비티 전환 시 finish()를 호출하지 않아 자동으로 onPause()상태로 만듦
- 액티비티를 백그라운드에 남기고 상태와 데이터 유지
- 해당 액티비티로 돌아오면 onResume()이 되어 onCreate()는 호출하지 않음
- 특정한 이벤트 발생시에만 통신을 하여 불필요한 네트워크 리소스를 절약하고 통신을 통한 데이터 로드 시간 절약 및 애플리케이션의 성능을 최적화
서버
- 테이블 연관
- 유저 생성됨과 동시에 유저 아이템 만들기..? ← 굳이 말 안해도 될듯
- 아는게 없어서 쓸것두 없네…
시연
- 다이노 시연을 위해 포인트가 충분하고, 아이템 개수가 적당히 있는 계정 준비
- 아이템 개수가 0개이면 버튼 비활성화 / 포인트가 가격보다 부족하면 버튼 비활성화 보여주기
- 아이템 개수 0 0 0 0 으로 시작, 세트 2개 사고 애정 2개, 음식 2개 사기
- 포인트 : 100 100 60 50 → 310 ~320 준비