전체 글

Android 및 취미 활동을 공유하는 블로그입니다!!
Android/Common

[Android] RecyclerView의 최상단 최하단 감지하기

안녕하세요 점냥입니다:) 페이징을 구현하려고 할 때, Jetpack Paging 라이브러리를 쓰지 않는 다면 우리는 리스트의 끝을 도달하는 시점을 확인해야 합니다. recyclerview에서는 함수로 쉽게 제공해주고 있습니다! canScrollVertically(int direction) // 수직 상단 하단 감지 canScrollHorizontally(int direction) //수평 상단 하단 감지 수직 기준 direction 값이 1이면 하단 방향 , -1이면 상단 방향 수평 기준 direction 값이 1이면 오른쪽 방향 , -1이면 왼쪽 방향 위 조건을 사용하여 아래처럼 구현할 수 있습니다. myList.setOnScrollListener(new RecyclerView.OnScrollListe..

Language/kotlin

Kotlin의 유용한 함수들 - let, apply, run, with

let 호출하는 객체의 값을 block에 전달하고 block의 결과값을 반환 fun T.let(block: (T) -> R): R 사용 예 한번쓰고 나서 사용하지 않을 변수가 있을 때 let을 사용하면 불필요한 선언을 방지해준다. val test = Test() setTest(test) //let 사용 Test().let{ setTest(it) } safe-calls 와 결합하여 null check에 사용할 수 있다. var obj:String? = null if(obj != null){ ... } //let 사용 obj가 null이 아닐경우 실행 obj?.let{ ... } apply 함수를 호출하는 객체를 이어지는 block의 리시버를 전달하고, 객체자체를 반환 리시버란? 이어지는 block 내에서 ..

Language/kotlin

[Kotlin] Kotlin을 왜 배워야 할까요?

안녕하세요. 점냥입니다 :) 여러분들은 Kotlin 언어를 알고 있나요? 열심히 Android 공부를 하고 있는 여러분이라면 이미 알고 있겠죠 ㅎㅎㅎ Kotlin은 Google I/O 17년도에서 Android 공식 언어로 지정되었습니다!! 아직 Kotlin을 사용하지 않는 다면 서두르세요. 어느새 Android Develop 사이트 전반적인 코드 샘플들과 공식 유투브에서 Kotlin 언어를 기본으로 사용중인 것을 확인할 수 있습니다. 이 포스팅을 읽고 나서 Kotlin 언어에 대한 흥미가 생기셨으면 좋겠습니다. Kotlin 배경 Kotlin 언어가 나오기 전 Android 플랫폼에서는 C++ 언어도 쓰이긴 했지만, 대다수의 개발자들은 Java 언어를 사용해서 개발했습니다. Java 언어는 JVM에서 동..

Android/Common

[Android] Retrofit 기본 사용법

안녕하세요. 점냥입니다:) 이번 포스팅에서는 Android HTTP 통신 라이브러리인 Retrofit의 기본 사용 방법에 대해서 정리하고자 합니다. Retrofit 퀄리티가 있는 앱을 개발하려면 네트워크 통신은 빠질 수가 없는 기능입니다. 여러분은 어떤 방식으로 네트워크 통신을 구현하시나요? Java에서 기본적으로 제공해주는 HttpURLConnection을 사용하시나요? Google에서 개발한 Volley 라이브러리를 사용하시나요? 저는 Retrofit을 사용하는 것을 추천드립니다. Retrofit이 속도 측면에서 여러 다른 네트워크 라이브러리와 비교했을 때 가장 빠르고 효율적이다라는 자료를 쉽게 찾아보실 수 있습니다. 라이브러리를 사용하는 개발자 입장에서 네트워크 호출 시 처리해주어야 하는 보일러 플..

Android/Common

[Android] ripple Effect 커스텀하기

Ripple Effect는 적용한 뷰 안에서 사용자의 터치 위치를 중점으로 발생되는 물결 현상입니다.

GIT

[Git] github Repository에 License 추가하기

추가하고자 하는 저장소에서 새로운 파일을 생성 License.md 입력 후, 생성되는 License Template 누르기 원하는 License Template 선택 Template를 선택 후, 오른쪽의 제출 버튼을 누른 뒤 Master에 Push

Android/Error

[Android] trying to draw too large Bitmap 해결하기 - Bitmap Resize

RuntimeException : try to draw too large ( 바이트 수 ) Bitmap 위 명시되어 있는 Exception은 메모리 캐싱 등의 부가 기능을 제공해 주는 이미지 라이브러리 없이 직접 메모리 용량이 큰 이미지를 View에 로딩 했을 때, 나타나는 문제입니다. 우리가 사용할 수 있는 application의 메모리는 제한되어 있기 때문에 Bitmap Resize를 적용해주는 것이 좋습니다. Bitmap 크기 가져오기 BitmapFactory class는 Bitmap을 생성하기 위해 여러 가지 Decode Method를 제공합니다. decodeByteArray(), decodeFile(),decodeResource(), etc 위 함수를 사용하게 되면 Bitmap의 고유의 크기를 ..

Algorithm_Java

완전 탐색 By 재귀 호출 ( 프로그래머스 - 소수 찾기 )

완전 탐색 무식해보여도 사실은 최고의 방법일때가 있지요 완전 탐색 알고리즘은 나올 수 있는 모든 경우의 수를 다 구해서 올바른 정답을 구하는 알고리즘 입니다. 완전 탐색을 구현하는 방법은 여러가지가 있지만 이 글에서는 재귀호출로 완전탐색 알고리즘을 구현해보도록 하겠습니다. 소수 찾기 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한 상황 nu..

Data structure_Java

[DataStructure] HashSet

안녕하세요 점냥입니다:) 이번 포스팅에 다룰 Java의 자료구조 class는 HashSet 입니다. HashSet은 중복된 값이 저장되지 않는 Set 자료구조에서 중복된 값을 판단하는 기준이 Hash code 인 Java 라이브러리 입니다. 이 포스팅에서 다루지 않은 Hash Set의 다양한 내용을 알고 싶다면 HashSet 개요를 클릭해주세요! HashSet 주요 함수 반환값 함수 설명 boolean add(E e) 해당 요소가 존재하지 않으면 추가 boolean remove(E e) 해당 요소가 존재하면 삭제 boolean contains(E e) 해당 요소가 존재하는 지 주요 예제 코드 public static void main(String[] args) { HashSet hashSet = new ..

Data structure_Java

[DataStructure] 우선순위 큐

안녕하세요:) 점냥입니다 Priority Queue는 Heap 자료구조를 구현한 클래스로 우선순위가 높은 요소가 먼저 나가는 Queue 자료구조라고 생각하시면 됩니다 따라서 요소들이 저장될 때 우선순위에 맞게 정렬되기 위해 Priority Queue의 Type들은 Comparable 인터페이스를 구현한 요소들만 저장할 수 있습니다 Priority Queue 주요 함수 반환값 함수 설명 boolean add( E e ) 요소 추가 boolean contains( E e ) 해당 요소가 있는지 확인 E peek() 제거하지 않고 맨 위 요소 꺼내기 E poll() 제거하면서 맨 위 요소 꺼내기 boolean remove( E e ) 해당 요소 삭제 int size() queue 크기 반환 T[ ] toArr..

점냥
점냥's Log