목록안드로이드(Android)/기타 (21)
Simple&Natural
Field Parameter 에 encoded 옵션을 주지 않아서 생기는 문제. 깨지는 값을 url디코더로 찍어보면 원래 값이 잘 복원되어 나옴. @FormUrlEncoded 를 사용한 POST 요청 interface TestApiService { @Headers("content-type: text/plain; charset=utf8") @FormUrlEncoded @POST("/") suspend fun postToLocal( @Field("name") name: String, @Field("age") age: String ): String } 결과 name=%EC%B2%A0%EC%88%98&age=13 수정 후 @Field("name", encoded=true) name: String, @Field(..
사용할 API 업비트에서 제공하는 호가정보 조회를 이용하였습니다. api.upbit.com/v1/orderbook Json 데이터의 구조는 다음과 같습니다. [ { "market":"KRW-BTT", "timestamp":1601978350558, "total_ask_size":1661426721.82969615, "total_bid_size":3193649917.22018229, "orderbook_units":[ { "ask_price":0.38, "bid_price":0.37, "ask_size":52579173.39995168, "bid_size":326923944.36043933 }, { "ask_price":0.39, "bid_price":0.36, "ask_size":110921173.949..
구글에서 찾아보면 대부분 소스코드 상에서 동적으로 변경하는 자료들이 많이 나온다. xml 상에서 적용하는 코드를 원했는데 대표적으로 나오는 솔루션들이 잘 먹히지가 않아서 이것저것 바꾸어보며 동작 조건을 알아보았다. 액티비티나 프래그먼트 상의 소스코드는 별로 다를 게 없고 xml을 조건에 맞게 작성하는 것이 중요하다. - 무슨 이유인지는 모르겠으나 ListView는 Hide가 동작하지 않으니 유의해야 한다. - 최상위 레이아웃은 반드시 CoordinatorLayout으로 선언해주어야 한다.
- Retrofit에서 코루틴 사용을 위해서는 2.6.0버전 이상을 사용해야 한다. - Room과 Retrofit은 자체적으로 비동기 처리를 하기 때문에 Main Dispatcher에서 suspend function을 사용하더라도 main-safe하다. IO Dispatcher를 사용하는 것은 아니고 자체 Dispatcher를 사용함. Suspend function support requires Retrofit 2.6.0 or higher. Both Room and Retrofit make suspending functions main-safe. It's safe to call these suspend funs from Dispatchers.Main, even though they fetch from t..