본문 바로가기

분류 전체보기144

[Android] ConcatAdapter onBindViewHolder 여러번 호출되는 현상 https://medium.com/androiddevelopers/merge-adapters-sequentially-with-mergeadapter-294d2942127a Concatenate adapters sequentially with ConcatAdapter Use case example: displaying a list header and footer medium.com CheckList 에서 체크했더니 체크가 풀렸다가 다시 체크가 되면서 반짝이는(?) 버그가 발견되었다. 로그를 찍어보니 CheckList adapter 에서 onBindViewHolder 가 2번 호출되고 있었다. ConcatAdapter 안에 있는 특정 어댑터에서 notifyItemChanged(~) notifyDataSetC.. 2024. 1. 5.
[Android] POST_NOTIFICATIONS Permission 작동 안하는 문제 (dialog not showing) POST_NOTIFICATIONS Permission 작동 안하는 문제 (Android 13 POST_NOTIFICATIONS request permission dialog not showing) 1. Manifest 설정 한 토시도 틀리면 안됨. 근데 잘 썼는데도 permission dialog 가 안떴음;; 2. targetSdk 설정!!! 이거 deprecated 라고 지워버리면 안됨. shit 그러면 POST_NOTIFICATIONS 작동 안합니다 ㅋㅋ 꼭 넣어주세요. targetSdk = 33 잘된다! 2023. 11. 23.
[Android] GitHub Actions CI/CD 안녕하세요 제가 최근에 작성한 GitHub Actions 워크플로우에 대해 설명드리겠습니다. 이 워크플로우는 develop 브랜치에 코드를 푸시할 때마다 안드로이드 앱을 자동으로 빌드하고, 서명한 다음 Firebase App Distribution을 통해 배포합니다. 또한, 작업의 성공 여부에 따라 Slack으로 알림을 보내는 기능도 포함되어 있습니다. 이제 한 줄씩 자세히 살펴보겠습니다. name: dev Build&Upload 워크플로우 이름 설정: dev Build&Upload라는 이름으로 이 워크플로우를 설정했습니다. 이 이름은 GitHub에서 워크플로우를 쉽게 식별할 수 있게 해줍니다. on: push: branches: - develop 트리거 설정: 이 워크플로우는 develop 브랜치에 .. 2023. 11. 14.
Type? State? Type과 State의 구분 SNS 탭에서 게시글을 API를 통해 불러오는 기능을 구현하는 과정에서, 두 가지 주요 동작에 직면했습니다: 가장 최신 100개 불러오기 (FetchFeeds) 특정 ID부터 시작하여 일정 수의 게시글 불러오기 (FetchMoreFeeds) 이 두 API 동작은 각각 세 가지 상태(로딩, 성공, 실패)를 가지며, 상태별로 다른 UI 변화를 요구합니다. 이는 결국 각 API에 대해 세 가지 상태 변화에 대응하는 로직을 개발해야 함을 의미합니다. 본 글에서는 이 과정에서 겪은 문제와 해결 방법을 공유합니다. 안 좋은 예시: 초기 접근 방법 초기에는 'Type'을 기준으로 상태 변화를 구분하려 시도했습니다. 아래는 초기 코드 예시입니다: DataStatus Sealed Class:.. 2023. 11. 14.
Copliot 근황 ㄷㄷㄷㄷㄷㄷㄷ GitHub 유니버스 2023 https://www.youtube.com/watch?v=NrQkdDVupQE Thomas는 파괴적인 혁신이 있었던 지난 대회처럼, 이번 신제품 발표 대회에서도 기대를 하고 있어요. 이번 발표 이후 소프트웨어 개발의 근본적인 변화가 일어날 것이라고 예측하며, 이번 대회는 오랜 준비 이후 작별인사를 할 수 있는 숙명이라고 생각합니다. 2020년, GitHub은 GPT-3 모델을 이용하여 개발자들의 문제를 해결하려는 시도를 하였어요. 이를 위해 203개의 시험 문제 중 93%의 정확도로 풀었으며, 발전을 위한 출발점이 되었죠. 초기에는 회의적이었던 구성원들도 발전 속도와 결과에 감탄하여 열광하게 된 것으로 밝혀졌어요. 세계 최초의 규모 있는 파편 감마를 개발하여 공동체의 모든 지식을 개인의 손끝에 놓아주는 .. 2023. 11. 13.
[Android] 버저닝 정책 Android 버전 종류에는 versionName 과 versionCode 가 있습니다. versionName 앱의 배포 버전을 나타내는 문자열(String) 사용자에게 공개 됨 앱 갱신에 영향을 주지 않으며 정답이 없어 상황에 맞게 의미를 부여해 주면 된다. android:versionCode 앱의 버전 코드를 나타내는 정수(int) 업데이트를 검사할 수 있는 용도 첫 번째 버전은 1이고, 이후 versionCode를 1씩 증가시켜서 배포 사용자에게 공개 되지 않음 Version Name 1. Version Name 에 Semantic Versioning 기반 버저닝 도입 기존 버전과 호환되지 않게 API가 바뀌면 “주(主) 버전”을 올리고, 기존 버전과 호환되면서 새로운 기능을 추가할 때는 “부(部).. 2023. 11. 3.
[Android] File templates (BottomSheet) https://dvlv.tistory.com/153 [Android] File Templates (Dialog) 2초만에 custom dialog 만드는 법 제가 쓰는 File Templates 를 소개합니다. 위치는 여기입니다. '+' 눌러서, 원하는 template 이름을 입력합니다. 그리고 이렇게 적어줍시다. 그리고 template 코드 적는 란에 dvlv.tistory.com 2초만에 BottomSheet 바텀시트 구현하기 전 게시글에 이어, BottomSheet 도 공유합니다. .kt package ${PACKAGE_NAME}; import android.os.Bundle import android.view.LayoutInflater import android.view.View import an.. 2023. 11. 2.
[Android] File Templates (Dialog) 2초만에 custom dialog 만드는 법 제가 쓰는 File Templates 를 소개합니다. 위치는 여기입니다. '+' 눌러서, 원하는 template 이름을 입력합니다. 그리고 이렇게 적어줍시다. 그리고 template 코드 적는 란에 아래 코드를 복붙해주세요. package ${PACKAGE_NAME}; import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.D.. 2023. 11. 2.
[Android] letter capitalization + done button In EditText, apply keyboard first letter capitalization option along with changing to done button EditText에서 완료 버튼으로 변경과 함께 키보드 첫 글자 대문자 옵션 적용 You cannot apply the above two functions together from EditText to xml. However, if implemented programmatically with kotlin as below, it works normally. fun EditText.setImeDone() { imeOptions = EditorInfo.IME_ACTION_DONE setRawInputType(InputType.TYPE_TE.. 2023. 2. 10.
If I write on T-story with Chat GPT, will it be exposed well? It's possible that using ChatGPT to write articles on Tistory could lead to increased visibility and engagement. However, it's also important to consider the context and audience of Tistory as well as the quality of the content produced by ChatGPT. Using a language model like ChatGPT to generate content can be a useful tool for creating unique and high-quality articles, but it's not a guarantee .. 2023. 1. 25.