목록분류 전체보기 (163)
Simple&Natural
Remote Config은 보통 앱에서 사용하는 설정값, 공지사항 등등의 데이터를 앱 업데이트 없이 배포하기 위해 사용한다. 이걸 약간 응용하면 따로 서버와 DB를 구성하지 않고도 간이 DB처럼 사용할 수가 있다! 그러나 DB처럼 실시간으로 값을 변경하거나 할 수는 없고 (변경된 값을 업데이트 하는 데 시간 제약이 있다) 저장량에도 한계가 있다. 아래 문서를 참고하면 약 80만자 정도의 Json 데이터를 저장 가능하므로 한번에 대량의 데이터를 넣고 사용하면서 1주일 혹은 1달에 한 번 데이터를 추가해주거나 하는 작업에는 매우 적합! 공식 가이드 문서에 매우 친절하게 사용법을 설명해주므로 그대로 참고하면 된다. 내 경우에는 Application 클래스에서 초기화를 하여 데이터를 받아와 사용하는 편. 매개변..
차이는 생각보다 간단하다. onDraw의 경우 ItemView가 그려지기 이전에 그려진다. 따라서 ItemView의 아래에 보이게 된다. onDrawOver의 경우는 반대로 ItemView보다 나중에 그려지며 ItemView의 위에 덮어 씌워진다. onDraw /** * Draw any appropriate decorations into the Canvas supplied to the RecyclerView. * Any content drawn by this method will be drawn before the item views are drawn, * and will thus appear underneath the views. * * @param c Canvas to draw into * @para..
수치 데이터를 깔끔하게 다듬어 보여주고 싶을 때가 있다. 원하는 결과값이 소수점 둘째까지 짜리만 보여줘! 와 같은 경우라면 편하겠지만 데이터에 따라 유효숫자까지만 보여주고 싶은 경우는 어떻게 해야 할까? 예를 들어 1.4240000 과 같은 데이터는 1.424, 17400200.0000과 같은 데이터는 17,400,200과 같은 식으로 말이다. 이럴 땐 DecimalFormat을 활용하면 된다. fun main() { val sample = 1401200.1241000 val formatter = DecimalFormat("#,##0.########") val result = formatter.format(sample) println(result) } 출력값: 1401200.1241
현재 진행중인 프로젝트는 실제 서비스를 목표로 만들고 있다. 그러다보니 연습용 프로젝트와는 달리 사용자들의 예상치 못한 조작에도 폭넓게 대응할 수 있어야 한다. 이번 이슈는 사용자가 고의로 네트워크 작업을 과도하게 요청할 때 이를 막을 수 있는 방법에 대한 고민이다. 현재 특정 API를 이용하여 데이터를 불러오고 있다. 이때 API를 제공하는 쪽에서 초당 1회로 트래픽을 제한하고 있기 때문에 내 경우 자동으로 3초마다 업데이트 되도록 설정을 해놓았다. 그러나 현재 데이터를 요청하는 ViewModel이 파괴되고 다시 만들어지면 3초 이내라도 여러 번 요청이 가능하다. 예를 들어 사용자가 고의적으로 BottomNavigationItem을 여러 번 클릭하는 행위를 하는 경우를 가정할 수 있다. 이렇게 되면 A..