Android Studio 24

리사이클러뷰 아이템 다중 삭제 시 깜빡거림 해결하기 (feat. 룸 데이터베이스)

처음에는 다중 선택 시 item들의 id들을 한 set으로 모아 뒀다가, (selectedItem) 삭제 버튼을 누르면 selectedItem을 순회하면서 해당 id들을 룸 데이터베이스에서 하나씩 삭제하는 방식으로 구현하였다. lifecycleScope.launch { for(id in selectedItem) movieDao?.delete(id) } 문제점 lifecycleScope.launch{ movieDao?.fetchAllBasicInfo()?.collect { list -> val myList = ArrayList() for (item in list) myList.add(item) setItemAdapter(myList) } } @Query("SELECT id, title, image FROM..

REST API의 6가지 원칙

REST는 원칙과 제약이 있다. 이 6가지 원칙을 따르는 Web API를 RESTful한 API라고 한다. 1. Uniform Interface 컴포넌트 인터페이스에 보편성의 원리를 적용함으로써, 전반적인 시스템 아키텍처를 단순화하고 상호작용의 가시성을 향상시킬 수 있다. 여러 제약을 통해 일관된 인터페이스를 만들고 컴포넌트의 행위를 가이드할 수 있다. 이 네 가지의 제약들로 일관된 REST 인터페이스를 얻을 수 있다. Identification of resource: 인터페이스는 클라이언트와 서버 간의 상호작용에 포함된 각각의 자원을 식별할 수 있어야 한다. Manipulation of resources through representations: 자원은 서버의 응답에서 일관된 표현을 해야 한다. AP..

🤓 TIL/웹 2022.05.21

Retrofit과 Gson을 이용해서 네이버 영화 검색 API 사용하기

내 프로젝트에 사용할 적절한 영화 API를 찾던 도중 네이버 영화 검색 API를 발견하게 되었다. 영화 제목만 보내면 필요한 정보들 (제목, 소제목, 영화정보 링크, 포스터, 개봉일자, 감독, 배우, 평점) 을 한꺼번에 전달해준다. 나중에 알았지만 딱 한가지 아쉬운 점 .. 장르는 전달해주지 않는다는 것이다. 자주 보는 장르에 따라서 로맨스 매니아, 스릴러 매니아 등 별명을 붙여주고 싶었는데.. 아쉽게 됐다. 준비하기 API에 요청했을 때 값을 받아올 클래스를 만들어준다. data class MovieList( @SerializedName("lastBuildDate") val lastBuildDate: String, @SerializedName("items") val items: ArrayList ) d..

startActivityForResult deprecated

startActivityForResult가 deprecated되었다. 여전히 많은 강의나 글들이 startActivityForResult를 통해 intent의 정보를 주고받는 방법을 알려 주고 있다. Android Studio에서 아직 사용이 가능하긴 하지만, 어쨌든 사용중지 된다고 하니 다른 방법을 찾아야 한다. intent를 사용해서 정보를 주고받을 때 단방향의 경우와, 양방향의 경우가 있다. 단방향은 한 액티비티에서 다른 액티비티로 넘어가는 경우가 있다. 이러한 경우 A에서 B로 넘어간 후 B에서 다시 A로 정보를 전달해야 할 일이 없으니 단방향이라고 할 수 있다. 이때는 startActivity(intent)를 활용하면 된다. 반면 A에서 B로 화면을 전환한 후, B가 종료될 때 전달한 정보를 이..