
안녕하세요. 이번 포스팅에서는 같은 디자인 및 속성을 공유하는 커스텀 뷰를 생성하고 적용하는 방법에 대해 알아보겠습니다. 아래 사진은 버튼 3개에 커스텀 뷰를 적용한 화면입니다. 개요 프로젝트를 진행하면서 비슷한 기능에 비슷한 디자인의 뷰를 여러개 생성해야 하는 경우가 흔하게 발생합니다. 만약 뷰의 개수가 적다면 다행이지만 공통된 여러개의 뷰가 하나의 레이아웃을 이루고 있다면 골칫거리가 아닐 수 없죠. 그때 우리는 커스텀 뷰로 하나의 뷰 처럼 만들 수 있습니다. 아래 방식에 따라 예제를 진행하고 결과를 확인해 보겠습니다. 1. 커스텀 속성 파일 생성 및 정의 2. 커스텀 뷰 레이아웃 파일 생성 3. 커스텀 뷰 클래스 파일 생성 4. 메인 레이아웃 파일에 커스텀 뷰로 공통된 뷰 생성 본문 커스텀 속성 파일..

안녕하세요. 이번 포스팅에서는 앱의 테마 설정을 클래스에서 변경하는 방법에 대해 알아보겠습니다. 아래 예제는 코틀린으로 작성되었습니다. 개요 앱 테마를 시스템 테마로 설정하여 사용자의 기기에 동기화 시키는 방법도 있지만, 앱의 설정 페이지에 테마를 변경하는 기능을 추가하여 해당 앱에서 사용하는 테마를 정해 줄수도 있습니다. 이번 글에서 이벤트에 따라 테마를 변경하는 방법에 대해 소개드리겠습니다. 본문 예제 진행 순서메인 레이아웃 구성 (테마 변경 버튼 3개 + 테마 변경을 확인 할 텍스트 뷰 1개)뷰의 속성에 적용할 테마 별 옵션 생성테마를 변경하는 함수 구현각 버튼에 테마 변경 함수를 적용결과 확인 메인 레이아웃 구성 버튼은 라이트 모드, 다크 모드, 시스템 모드 총 3가지로 구성되어 있습니다. ..

안녕하세요. 이번 포스팅에서 안드로이드 스튜디오에서 로그의 색상을 변경하는 방법과 길이를 간소화 하는 방법에 대해 알아보려고 합니다. 출력되는 로그에 대한 정보는 이전 포스팅인 Logger 라이브러리에서 사용했던 코드를 재사용 하였습니다. 로그 색상 변경 경로 : File > Setting > Editor > Color Scheme > Android Logcat 변경을 원하는 IDE 테마를 선택하고 각각의 항목들에 해당하는 색상을 입력하여 주시면 됩니다. ① IDE 테마 선택 : 테마마다 다른 로그의 색상을 적용 할 수 있습니다. ② 로그 종류 선택 : 변경을 원하는 로그의 태그를 선택합니다. ③ 변경 내용 선택 : 변경 할 종류를 선택하고 내용을 입력합니다. ※ 변경 내용에 대한 설명입니다. Foreg..

안녕하세요. 이번 포스팅에서는 안드로이드 로그를 가시성이 높고 예쁘게 출력하는 방법에 대해서 알아보겠습니다. 로그 출력 결과는 아래 사진과 같습니다. 개요프로그램을 개발하다 보면 내가 원하는 결과를 로그캣에 담아서 확인해야 하는 일이 매우 빈번하게 발생합니다. 그때 우리는 보통 안드로이드 기본 라이브리러인 Log를 사용합니다. 보통 이런 식으로 쓰시는 경우가 많습니다.Log.d("TAG_LOG", "기본 로그 라이브러리") 결과물은 아래와 같습니다. 하지만 이런 로그가 여러개가 반복되고 여러개의 태그를 동시에 봐야하는 일이 발생한다면 가시성이 떨어지기 십상이죠. 그래서 이번에 소개드릴 제품은라이브러리는 Logger입니다. Logger는 orhanobut이 개발한 라이브러리로, 기본 ..

안녕하세요. 이번 포스팅에선 뷰의 클릭 이벤트가 여러번 중복 발생해서 생기는 에러들을 해결하기 위한 방법을 소개드리려고 합니다. 방식은 뷰의 클릭 리스너를 상속받는 클래스를 생성하고, 클릭 이벤트가 발생했을 때의 시간과 현재 시간을 비교하여 일정시간이 지나기 전까지 클릭을 막는 형태입니다. 전체 예제 코드를 보여드린 후 설명드리겠습니다 👀 시연 저는 버튼 하나와 텍스트뷰 하나를 생성해 버튼을 클릭하면 텍스트의 숫자가 하나씩 증가하는 예제를 만들었습니다. 아래 코드와 같이 중복 클릭 방지시간은 1초로 설정하였고, 중복클릭이 발생했을 경우엔 아무런 처리를 하지 않았습니다. 코드 import android.os.SystemClock import android.view.View import android.wid..

안녕하세요🖐대략 한달만에 글을 남기는 것 같습니다. 요새 장마가 끝이나고 정말 숨이 턱턱 막히는 날씨들이 반복되고 있는데다들 건강관리 잘 하시고 계신지 궁금하네요 ㅎㅎ 저는 요새 새로운 서비스 배포일에 가까워 지다보니할 일도 많아지고 이것 저것 신경쓸 것도 늘어나는 것 같습니다..😭 그래도 이번에 시간이 생겨 2023.07.29에 개최 된 Google I/O Extended 2023 Seoul에 다녀왔는데요! 역시 국내 최대규모의 컨퍼런스라 그런지 사람이 정말 많았던 것 같습니다.(다들 이런 무더운 날씨인 주말에 오시다니 열정이 대단하신...주말에...주말..에...) 사실 저는 저번에 다녀온 AI 컨퍼런스(MatLab Expo)보다제가 지금 사용하고 있는 분야의 발표를 들을 수 있는 행..

안녕하세요. 이번 포스팅에서는 날짜 객체인 LocalDataTime과 TimeStamp 객체인 Long을 서로 파싱하는 방법에 대해 알아보겠습니다. 개요 보통 안드로이드에서 System.currentTimeMillis(), Date 객체의 매개변수, Calendar 객체의 timeInMillis() 등 자주 사용하는 데이터 타입들은 Long 타입으로 제공됩니다. 하지만 Long은 타임스탬프이기 때문에 실제 날짜나 시간 데이터와는 형태가 다릅니다. 따라서 우리가 사용하기 좋은 구조로 데이터를 파싱하는 과정이 필요한데, 이때 자주 사용되는 객체가 LocalDateTime입니다. LocalDateTime은 시간을 년,월,일,시,분,초 등으로 쪼개어 받아올 수 있고, 세계시간을 기준으로 해당하는 지역의 시간으로..

안녕하세요:) 오늘은 2023년 5월 24일에 3년만에 개최된 MathWorks 주최 MatLab Expo Korea에 다녀온후기에 대해 적어보려고합니다! 예.. 이건 뒷북을 넘어서 징,장구,꾕가리가 함께 어우러진 뒷풍물놀이급 리뷰입니다..ㅠㅠ 그 동안 바쁘기도 하였고 리뷰를 써야할지 말아야할지에 대한 고민도 깊었기 때문에늦어져 버렸습니다. 고민이 깊었던 이유는 저는 개발자이긴 하지만 인공지능과는 전혀 연이 없던 사람이기 때문입니다. (순전히 제 문제죠.) 그러다보니 컨퍼런스에 대한 이야기를 늘어놓아도 전문가분들에게 도움이 전혀 되지 않는것이 당연하였고 실제로 보고 느낀것들은 있었지만 전달력이 떨어질 것 같다고 생각했죠. 그래서! 😤 이번 글에서는 MatLab Expo에 대한 간단한 소개와 실제 컨퍼런스..