전체 글

Glion 의 안드로이드 개발노트
[Kotlin] apply, run, with, let, also
코틀린의 범위 지정 함수 - 특정 객체애 대한 작업을 블록(특정 객체에 대해 할 작업의 범위) 안에 넣어 실행할 수 있도록 하는 함수. - 구성 요소 : 수신 객체, 수신 객체 람다 [ 공식문서 ] https://kotlinlang.org/docs/scope-functions.html The Kotlin standard library contains several functions whose sole purpose is to execute a block of code within the context of an object. When you call such a function on an object with a lambda expression provided, it forms a temporary sc..
[Android] 앱 전체에 적용되는 스타일 및 테마 지정하기
오랜만에 글을 올리는것 같다. 신입 개발자로서 그동안 배운것들에 대해 쓰고싶은건 많지만 게을러서 써야지 써야지 하다보니 벌써 9월이 다가왔다.. 지금부터라도 조금씩 조금씩 올려야지.... 이번 글에서는 텍스트의 폰트나 크기, 버튼의 배경 등등을 앱 전체에 적용시키는 방법에 대해 쓸 것이다. TextView나 EditText, Button 등에 배경색, margin 등등 여러 속성값을 지정할 수 있고, 그에 들어가는 텍스트에도 폰트, 색상, 사이즈 등등 여러가지를 지정할 수 있다. 이전에 사용했던 방법은 다음과 같았다. activity_main.xml 에서 텍스트뷰를 작성하고, 내부에 필요한 속성들을 작성해주었다. "텍스트 뷰 입니다" 라는 텍스트가 30sp의 사이즈로 가운데에 #FF039BE5 색상으로 ..
[Android] RecyclerView 이해하기 (2) - RecyclerViewAdapter 내부요소를 외부에서 사용하는 방법
지난번 포스팅에서 리사이클러뷰에 대해 정리하고 아이템을 넣어보았다. 이번 포스팅에서는 interface를 사용하여 Adapter에 있는 pos와 같은 값을 MainActivity에서 사용할 수 있게끔 해 볼 것이다. 우선, 리사이클러뷰의 각 요소에 대해 다시 정리해보자. ViewHolder 생성된 ViewHolder는 아이템의 모양을 보관하고 있고, 여기에 데이터만 변경하여 사용하게 된다. onCreateViewHolder 미리 정의한 리사이클러뷰의 한 아이템의 xml 레이아웃을 inflate하여 view의 형태로 ViewHolder 객체를 생성해준다 getItemCount Adapter가 생성되면 제일 먼저 실행되는 함수로, 리스트로 생성해야 하는 아이템들의 총 개수를 반환한다. onBindViewHo..
[Android] RecyclerView 이해하기 (1)
안드로이드에서 다량의 데이터를 표시할때, 리사이클러뷰를 많이 사용한다. 그동안 아무생각없이 사용했던 리사이클러뷰에 대해 확실하게 정리할 것이다. 안드로이드 개발자 문서에는 다음과 같이 설명하고 있다. RecyclerView를 사용하면 대량의 데이터 세트를 효율적으로 표시할 수 있습니다. 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 RecyclerView 라이브러리가 필요할 때 요소를 동적으로 생성합니다. 이름에서 알 수 있듯이 RecyclerView는 이러한 개별 요소를 재활용합니다. 항목이 스크롤되어 화면에서 벗어나더라도 RecyclerView는 뷰를 제거하지 않습니다. 대신 RecyclerView는 화면에서 스크롤된 새 항목의 뷰를 재사용합니다. 이렇게 뷰를 재사용하면 앱의 응답성을 개선하고..
[Android] 앱을 지워도 데이터가 남아있는 경우(AndroidManifest allowBackup 속성)
안드로이드 앱을 만드는 도중, 테스트를 위해 기존에 기기에 빌드했던 앱을 지우고, 다시 설치하여 테스트를 하려고 하였다. 앱에서는 첫 시작시 2가지정도의 사용자 데이터를 수집하고, 임의로 생성한 유저키와 데이터를 서버로 전송하여 사용자 정보를 등록한다. 이 과정은 설치 이후 첫 실행시에만 동작하게 하고, 사용자 데이터는 SharedPreference를 사용하여 기기에 저장한다. 이후 실행시에는 이 값이 저장되있는지 유무에 따라서 첫 시작 유무를 판단하게 하였다. 여기서 문제가 생겼는데, 내 테스트 기기인 GalaxyS20에서는 삭제이후 다시 빌드했을때 정상적으로 첫 시작 화면이 나왔지만, 다른 사람의 디바이스에 빌드되어있는 내 앱을 삭제하고 다시 빌드했음에도 첫 시작화면이 나오지 않고, 로그를 찍어봐도 ..
Java(자바) - 선택정렬, 버블정렬, 삽입정렬, LRU(Least Recently Used)
오늘 학습한 선택정렬, 버블정렬, 삽입정렬, LRU 알고리즘에 대해 정리한다. 1. 선택정렬 주어진 리스트에서 최소값을 찾고, 그 값을 맨 앞의 값과 교체한다. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체하는 정렬이다. n개의 리스트가 주어졌을때 시간복잡도는 O(n^2)이다. 전체 배열의 개수가 n일때 인덱스는 n-1까지 존재한다. 0부터 n-2까지 반복하는 i for 문에서 idx를 i 로 두고 j+1부터 n까지 반복하는 j for문을 내부에서 반복하며 array[j] < array[idx] 를 판별하여 idx위치의 값보다 j의 위치의 값이 작으면 idx를 j로 한다.(최솟값 인덱스 탐색) j for문 반복이 끝나면 array[i]의 값과 array[idx] 값의 위치를 교환해준다. 이 과정..
[백준] 1157번 단어공부 - Java(자바)
오늘의 백준 문제 1157번 단어공부 본래 하루 한문제씩 풀고자 마음먹었지만, 오늘 풀었던 파트 문제가 간단한 것들이 많아 총 5문제를 풀었고, 그중 1157번에서 살짝 헤매었기에 해당 문제를 포스팅한다. 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 풀이 우선 문제에서 대소문자를 구분하지 않는다고 했으니, 전부 대문자로 바꾸고 시작한다...
[백준] 1065번 한수 - Java(자바)
오늘의 백준 문제 1065번 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 풀이 문제를 보았을때 내가 제일 중요하게 생각하는건 당연한 말일수도 있지만 어떤 프로그램을 작성해야하는지 보는것이라고 생각한다. 어떤 양의정수 X 의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다고 했다. 난 이해력이 부족해서 항상 이런 문제를 보면 예시를 들어야 이해가 되는데, 처음에 이해하기 위해 1부터 10까지 숫자 중 한수를 생각해보았다. "각 자리가..
Glion
Glion 의 안드로이드 개발노트