목록안드로이드(Android) (70)
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..
Serialize와 Parcelize 모두 객체의 직렬화를 위해 사용되는 기능이다. 다만, Parcelize의 경우 Android SDK에서만 지원된다. 기존의 Parcelize는 컴파일 상의 이점이 있었으나 보일러플레이트 코드가 많아 부담이 되었는데 코틀린에서는 새로이 Parcelize annotation을 도입하여 간단하게 사용할 수 있게 하였다. 참고자료 simsi6.tistory.com/69 [Android] Kotlin Parcelize 등장 - Serializable vs Parcelable 안드로이드 컴포넌트나 Fragment간에 클래스로 데이터를 주고 받을 때 Serializable, Parcelable을 구현해야 합니다. 직렬화/역직렬화, 마샬링/언마샬링 이라고도 하는 이 두 기법은 아주..
내가 겪었던 문제는 아니지만 얼마 전 아는 개발자 분의 문제를 함께 해결해주면서 있었던 이슈이다. 이 부분은 예전에 채팅앱을 만들 때 서비스를 다루면서 알고 있던 부분이라 다행히 바로 찾아낼 수 있었다. 문제인즉슨, 앱이 종료 유무에 관계없이 지속적으로 카운팅이 유지되는 기능이 필요한데 앱을 껐다 키면 카운팅이 새롭게 시작되는 현상이었다. 소스코드를 부탁드리고 문제의 원인을 분석해보았다. 원인은 의외로 간단했는데 바로 카운팅 작업을 다루는 서비스를 액티비티에 단지 바인드만 시킨 것이 문제였다. 안드로이드 공식 문서에서는 다음과 같은 내용을 찾을 수 있다. Bound A service is bound when an application component binds to it by calling bindSe..