ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • fetchListData() 일반적인 디자인 패턴
    Android_Kotlin/Android_공부 2023. 8. 8. 15:32
    728x90

    아래 코드 예시는 리스트 초기화까지 포함하여 데이터를 가져오는 함수의 디자인 패턴을 보여주고 있습니다.

    import retrofit2.Call
    import retrofit2.Callback
    import retrofit2.Response
    
    class YourViewModel {
        // Retrofit 서비스 인스턴스...
        private val apiService = RetrofitUtil.getRetrofit()
    
        // 리스트 데이터를 가져오는 함수
        fun fetchListData() {
            // API 요청 초기화 ...
            val call: Call<List<YourDataItem>> = apiService.getListData()
    
            // 데이터를 담을 리스트 초기화 ...
            val dataList = mutableListOf<YourDataItem>()
    
            // 비동기적으로 요청 보내기 ...
            call.enqueue(object : Callback<List<YourDataItem>> {
                override fun onResponse(call: Call<List<YourDataItem>>, response: Response<List<YourDataItem>>) {
                    if (response.isSuccessful) {
                        // 성공적인 응답 처리 ...
                        val data: List<YourDataItem>? = response.body()
                        if (data != null) {
                            dataList.clear() // 리스트 초기화
                            dataList.addAll(data) // 데이터 추가
                            processData(dataList)
                        }
                    } else {
                        // 에러 응답 처리 ...
                        handleErrorResponse(response.code())
                    }
                }
    
                override fun onFailure(call: Call<List<YourDataItem>>, t: Throwable) {
                    // 네트워크 또는 기타 실패 처리 ...
                    handleFailure(t)
                }
            })
        }
    
        // 데이터 가공 함수
        private fun processData(data: List<YourDataItem>) {
            // 데이터 가공 후 UI 업데이트 또는 다른 작업 수행
            // ex)
            // val processedData = data.process()
            // updateUI(processedData)
        }
    
        // 에러 응답 처리
        private fun handleErrorResponse(errorCode: Int) {
            // 에러 코드에 따라 다른 에러 처리   
        }
    
        // 네트워크 또는 기타 실패 처리
        private fun handleFailure(throwable: Throwable) {
            // 네트워크 실패, 타임아웃 또는 기타 예외 처리   
        }
    }

    네트워크 요청 및 데이터 처리에 관한 일반적인 디자인 패턴입니다.

    'Android_Kotlin > Android_공부' 카테고리의 다른 글

    Fragment와 WebData 활용하기  (0) 2023.08.01
    TextInputLayout 사용하기  (0) 2023.08.01
    SQLite 실습1-2(추가 : 예외처리)  (0) 2023.08.01
    SQLite 실습1-2  (0) 2023.07.31
    SQLite 실습1-1  (0) 2023.07.31
Designed by Tistory.