본문 바로가기

분류 전체보기

(18)
[Android] Retrofit 2.0 사용방법 (Kotlin) - 3. RxJava + Retrofit 1. 시작하기 (이전 포스팅) 2. Call 사용하기 (이전 포스팅) 이번 포스팅에서는 RxJava와 함께 Retrofit을 사용하는 방법에 대해서 다루겠습니다. RxJava를 다루자면 끝도 없을 정도로 기능이나 활용방법이 많습니다. 여기에서는 Retrofit과 함께 쓰는 방법을 주로 하여 포스팅해보도록 할게요 이 포스팅은 제가 주로 쓰는 방법을 소개할텐데 꼭 이렇게 쓰는 것만이 정답이 아닌 다른 방식으로도 사용할 수 있으므로 참고해주세요! 1. Gradle 추가 먼저 app단 build.gradle 파일에 RxJava, Retrofit을 위와 같이 추가해주세요 2. Interface 작성 이전 포스팅에서는 메소드의 리턴값를 설정할 때 Call을 사용했었는데, 이번에는 Observable로 아래와 같이 ..
[Android] APK 빌드 오류 : Lint found fatal errors while assembling a release target. APK 빌드를 하다보면 앱 실행시에는 보지 못했던 Lint found fatal errors while assembling a release target. 이라는 오류가 뜨면서 빌드가 되지 않을 때가 있습니다. Android Studio에서 아래와 같은 해결방법을 제시해주기도 하는데 이는 임시 방편이므로 원인이 되는 코드를 찾는 방법에 대해 포스팅해보겠습니다. Lint found fatal errors while assembling a release target. To proceed, either fix the issues identified by lint, or modify your build script as follows: android { lintOptions { checkReleaseBuilds..
[Android] Glide 라이브러리 사용하기 (ImageView에 이미지 리소스, GIF 넣기) Glide 라이브러리의 간단한 사용법에 대해 써보도록 하겠습니다. 보통 ImageView에 이미지 리소스를 넣을때 자주 사용하는 라이브러리입니다. src로 바로 넣을 수 있지만, 사이즈가 큰 이미지의 경우 OOM을 발생시키기도 해서 Glide를 사용하는 것이 좋습니다. 또한 drawable의 이미지 리소스 뿐만 아니라, url의 이미지를 가져오거나 GIF 같은 움직이는 이미지도 넣을 수 있고 여러가지 기능도 있어 유용한 라이브러리입니다. 이미지 로딩 속도가 빠른 장점도 있습니다. 먼저 app단의 Gradle 파일에 다음을 넣고 Sync해주세요 1. 기본 사용법 가장 기본적인 사용법 입니다. with 내부에는 현재 Context를 넣습니다. load에는 url 또는 이미지 리소스를 넣으면 됩니다. Glid..
[Programmers] 스택/큐 - 쇠막대기 (Java) 1. 문제 프로그래머스 문제 링크 코딩테스트 연습 - 쇠막대기 | 프로그래머스 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다. - 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있습니다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓습니다. - 각 쇠막대기를 자르는 레이저는 적어도 하나 존재합니다. - 레이저는 어 programmers.co.kr 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하..
[Android] TextWatcher 사용하기 - EditText 입력 변경 이벤트 탐지 (Kotlin) + 무한루프 해결법 안녕하세요! 오늘은 EditText를 사용하다보면 쓸 일이 생기는 TextWatcher에 대해 포스팅 해보겠습니다. TextWatcher는 단어 그대로 입력되는 Text를 감지하고 있다가 실시간으로 동작하는 유용한 클래스죠. 입력 값 형식 체크, 환율 계산 등등 여러 상황에서 많이 쓰입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 private val textWatcher = object : TextWatcher { override fun afterTextChanged(s: Editable?) { val length = s.toString().length tvLength.text = "$length / 120" } override fun beforeTextChanged(s: CharS..
[Android] Retrofit 2.0 사용 방법 (Java, Kotlin) - 2. Call 동기, 비동기 1. 시작하기 (이전 포스팅) 이번 포스팅은 Retrofit의 Call을 이용하여 실제 통신을 하는 방법에 대해서 포스팅하겠습니다. 많이 쓰고, 간단한 방법인것 같습니다. 동기와 비동기 통신 두가지 방법이 있습니다. 간단한 만큼 Java와 Kotlin 두가지 다 보여드릴게요 1. 초기화 [Java] 1 2 3 4 5 6 7 public static final Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.twitch.tv/") .addConverterFactory(GsonConverterFactory.create()) .build(); final TwitchService twitchService = retrofit.create(Twit..
[Android] TextView, EditText 글자 수, 줄 수 제한하기 (+글자 줄임 표시) 오늘은 앱을 개발하다보면 언젠가 한번은 쓰는 TextView나 EditText에서 글자 수를 제한하는 방법에 대해 포스팅 해보겠습니다 1. 글자 수 제한 1 2 3 4 5 글자 수 제한의 경우 간단히 maxLength를 사용합니다. 이때 글자 수는 공백 포함인 것을 알 수 있습니다. EditText의 경우 5글자를 작성하면 더이상 써지지 않습니다! 2. 글자 수 제한 + 줄임표 1 2 3 4 5 6 7 줄임표를 사용할 경우 ellipsize 속성을 씁니다. end는 텍스트 뒷부분을 줄이기 위해서구요 ellipsize 속성을 썼을 때 maxLength를 사용하면 줄임표가 제대로 뜨지 않더라구요 ems를 써주었습니다. ems는 공백 포함하지 않고 글자 수를 제한하는 것을 알 수 있죠! 예전에는 singleL..
[Android] Button 클릭 효과 주기 (버튼 누르는 효과, XML) 오늘은 간단하지만 잊어버리기 쉬운 버튼 클릭 효과에 대해 포스팅 해보겠습니다! 바로 본론으로 들어가서 먼저 res/drawable 폴더에 새 resource 파일을 생성해주세요 drawable/button_back.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 맨 윗줄 state_pressed="true" 에는 눌렀을 때의 상태, 두, 세번째 item은 누르지 않은 (보통의) 버튼 상태, 마지막 state_enabled="false" 에는 버튼이 비활성화 되었을 때의 drawable을 넣어줍니다. drawable/button_back_pressed.xml 1 2 3 4 csv item에 drawable 속성으로 넣어준 xml 파일은 이렇게 작성해주면 됩..