Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

경북대 Android 이혜원 step2 코드 #95

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

heonniy
Copy link

@heonniy heonniy commented Jul 19, 2024

어려웠던점

깃에 미숙해서 conflict를 해결하는 과정에서 오류가 크게나서 싹다 코드가 삭제되어버리는 바람에...
step2에 시간을 거의 쓰지못하였습니다..
아직 test코드에 대한 이해가 많이 적어서 main activity만 테스트 코드를 구현을 했습니다 ㅜ

카카오맵 API 심화

step1

과제 진행 요구 사항

  • 저장된 검색어를 선택하면 해당 검색어의 검색 결과가 표시된다.
  • 검색 결과 목록 중 하나의 항목을 선택하면 해당 항목의 위치를 지도에 표시한다.
  • 앱 종료 시 마지막 위치를 저장하여 다시 앱 실행 시 해당 위치로 포커스 한다.
  • 카카오지도 onMapError() 호출 시 에러 화면을 보여준다.

프로그래밍 요구 사항

  • BottomSheet를 사용한다.
  • 카카오 API 사용을 위한 앱 키를 외부에 노출하지 않는다.
  • 가능한 MVVM 아키텍처 패턴을 적용하도록 한다.
png

Comment on lines +9 to +11
super.onCreate()
KakaoMapSdk.init(this, "bfa0e5ab308b39ef7e373921d5a5e697")
Log.d("KakaoSDK", "Kakao SDK initialized")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기에서 DI 처리가 이뤄져야할거같아요

class HorRecycleAdapter(private val onClick : (String, String, String, String) -> Unit, private val onDeleteClick: (String) -> Unit ) : RecyclerView.Adapter<HorRecycleAdapter.Holder>() {


private var cursor:Cursor? = null
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adapter에 DB의 데이터를 쿼리해오는 Cursor가 직접 들어오는건 좋은구조가 아니라고 생각해요.

Comment on lines +119 to +139
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
val api = retrofit.create(KakaoAPI::class.java)
val call = api.getSearchKeyword("KakaoAK ${BuildConfig.KAKAO_REST_API_KEY}", keyword)

call.enqueue(object: Callback<ResultSearch> {
override fun onResponse(
call: Call<ResultSearch>,
response: Response<ResultSearch>
) {
if (response.isSuccessful) {
searchPlaceAPI(response.body())
adapter.submitList(listItems)
}
}

override fun onFailure(call: Call<ResultSearch>, t: Throwable) {
}
})
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

View에서 API를 콜하는것은 좋은 책임분리가 아닌것으로 생각됩니다!

@acious
Copy link

acious commented Jul 22, 2024

이번에는 전반적으로 시간이 부족해서 과제에서 요구하는 사항을 잘 만족하지 못한것으로 보입니다 ㅠㅠ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants