일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- jvm 작동 원리
- rxjava cold observable
- 안드로이드 라이선스
- 서비스 vs 쓰레드
- 스택 자바 코드
- 안드로이드 레트로핏 사용법
- 2022 플러터 안드로이드 스튜디오
- android retrofit login
- 큐 자바 코드
- 클래스
- 안드로이드 레트로핏 crud
- rxjava hot observable
- rxjava disposable
- 플러터 설치 2022
- 안드로이드 유닛테스트란
- android ar 개발
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트
- jvm이란
- 안드로이드 유닛 테스트 예시
- Rxjava Observable
- 2022 플러터 설치
- 객체
- 서비스 쓰레드 차이
- 스택 큐 차이
- 멤버변수
- ar vr 차이
- 안드로이드 os 구조
- ANR이란
- 자바 다형성
- Today
- Total
목록분류 전체보기 (1024)
나만을 위한 블로그

이 포스팅에선 리사이클러뷰와 같이 사용하는 ListAdapter에 대해 정리하고 간단한 예제를 확인한다. 리사이클러뷰를 만들려면 어댑터는 반드시 필요하다. 그런데 그냥 리사이클러뷰에 데이터를 표시할 뿐 아니라 아이템 위치를 바꾸거나 낱개를 또는 여러 개를 추가, 삭제하는 경우도 많이 있다.이 때마다 notify가 붙은 메서드를 호출해서 데이터 변경 처리를 구현하지만 과연 이 방법이 모든 경우에 권장되는 방법인가? 극단적인 예로 데이터 수 만개가 표시되는 리사이클러뷰가 있는데 데이터 변경사항이 생겨서 notifyDataSetChanged()로 모든 아이템을 업데이트해 강제로 다시 그린다고 가정한다. 이게 맞는 방법일까? noitfyItemInserted() 또는 notifyItemRemoved()를 사용하..

클린 빌드하던 중 갑자기 발생한 에러인데 이 에러의 원래 이름은 대충 아래와 같을 것이다. Unable to delete directory: C:\Users\myProject\app\build\intermediates\build 경로명은 다를 수 있지만 현재 안드로이드 스튜디오가 바라보고 있는 폴더 안의 build 폴더에 문제가 생긴 것이다.해당 프로젝트의 app 폴더로 들어가면 아래와 비슷한 형태일 것이다. 안드로이드 스튜디오를 포함한 해당 폴더를 열고 있는 에디터가 있다면 모두 종료한 다음 build 폴더를 완전히 제거한다.이후 안드로이드 스튜디오를 다시 실행한 다음 클린 빌드나 앱을 빌드하면 정상적으로 실행될 것이다. 참고한 사이트) https://stackoverflow.com/a/3650409..

프로젝트에 저장된 문자열에 밑줄을 추가해서 표시하는 거라면 아래처럼 할 수 있다. 여긴 밑줄 안 됨 <u>여기만 밑줄됨</u> 여긴 밑줄 안 됨 그리고 액티비티, 프래그먼트에서 아래처럼 사용한다. binding.tv1.text = Html.fromHtml(getString(R.string.string), Html.FROM_HTML_MODE_LEGACY) 또는 아래처럼 써도 상관없다. binding.tv1.text = Html.fromHtml(getString(R.string.string), HtmlCompat.FROM_HTML_MODE_LEGACY)binding.tv1.text = HtmlCompat.fromHtml(getString(R.string.string), HtmlCompa..

※ 아래 내용을 따라하기 전에 정말 피그마를 구독 해지해도 문제 없는지 생각해 보자 혼자 결제하고 쓰던 피그마 구독을 해지해야 해서 찾아봤는데 1번부터 막혔다. 프로페셔널 팀이 뭔지 몰라서 조금 헤매다가 성공해서 피그마 유료 결제 후 구독 해제 방법을 정리하려고 한다. 피그마가 익숙하지 않다면 참고하자.참고로 유럽, 튀르키예 거주자를 제외하면 환불은 불가능하다. 먼저 피그마 브라우저든 프로그램이든 홈 화면으로 이동한 후 왼쪽 사이드바 중 Admin을 클릭한다. 그럼 왼쪽 사이드바가 아래처럼 바뀔 것이다. Settings를 누르면 아래 화면이 나오는데 이 중 Cancel plan을 선택한다. 그럼 화면 중앙에 이런 작은 창이 뜰 것이다. 구독 해지하면 어떻게 된다는 걸 설명한 건데 이 글을 찾아..

https://ktor.io/docs/server-create-restful-apis.html How to create RESTful APIs in Kotlin with Ktor | Ktor ktor.io 여기선 JSON 파일을 만드는 RESTful API 예제를 중심으로 코틀린, Ktor를 써서 백엔드 서비스를 빌드하는 방법을 확인하고 작업 관리를 위한 RESTful 서비스를 만든다.여기선 아래 내용을 확인한다. JSON 직렬화를 쓰는 RESTful 서비스 만들기Content Negotiation 프로세스 이해Ktor 안에서 REST API의 경로 정의 com.example.ktor-rest-task-app 이름의 프로젝트를 만들고 Routing, Content Negotiation, Kotlinx.s..

https://ktor.io/docs/server-requests-and-responses.html Use Ktor and Kotlin to handle HTTP requests and generate responses | Ktor ktor.io 이제 라우팅, 요청 처리, 매개변수에 대한 기본 내용들을 확인한다. 이 내용을 확인하면 아래의 것들을 할 수 있게 된다. GET, POST 요청 처리요청에서 정보 추출데이터 변환 중 에러 처리단위 테스트를 통한 라우팅 검증 이 문서에선 작업 관리자 앱을 점진적으로 만든다. 사용 가능한 모든 작업을 HTML 표로 볼 수 있다우선순위, 이름 순으로 표시HTML 폼으로 작업 추가 정적 HTML 컨텐츠 표시 ktor 프로젝트 생성기를 써서 ktor-task-app이란 ..

수정 내역) 2025.01.28 - 다른 방법 추가 크롬이 잠수함 패치를 진행했는지 갑자기 북마크바 맨 왼쪽에 이상한 버튼이 생겼다. 안 쓰는 버튼이라 거슬려서 없애려면 먼저 크롬 주소창에 chrome://flags를 입력한다. 그럼 Experiments 화면으로 이동한다. 크롬 관련해서 뭔가 실험적인 기능을 온오프할 수 있는 실험실 같은 곳 같다. 상단 입력창에 tab을 입력하면 Tab Groups Save and Sync V2가 있는데 사진처럼 Disabled로 바꾸면 된다.바꾸면 오른쪽 밑에 다시 시작 버튼이 표시되는데 이걸 눌러서 크롬 브라우저 종료 후 재시작하면 탭 그룹 버튼을 없애고 이전처럼 사용할 수 있다. 위 방식으로 없애고 쓰다가 갑자기 다시 탭 그룹 버튼이 생겼다. 바퀴벌레같은 놈이..

이 포스팅에선 LazyVerticalGrid에 여러 사진들이 표시될 때 드래그로 여러 사진들을 선택하는 법을 확인한다.코드는 아래와 같다. import androidx.compose.animation.core.animateDpimport androidx.compose.animation.core.updateTransitionimport androidx.compose.foundation.Imageimport androidx.compose.foundation.backgroundimport androidx.compose.foundation.borderimport androidx.compose.foundation.layout.Boximport androidx.compose.foundation.layout.aspe..

※ 모든 코드는 예시 코드기 때문에 실제로 사용하려면 반드시 리팩토링한다 이전 포스팅에서 이어진다. https://onlyfor-me-blog.tistory.com/1129 [Android Compose] Supabase를 활용한 CRUD 구현 - 1 -이 포스팅에선 Supabase를 활용한 CRUD를 간단하게 구현한 예시를 확인한다.이름, 가격 TextField의 값과 카메라로 촬영하거나 갤러리에서 photo picker로 가져온 사진을 같이 supabase에 업로드하고 리스트onlyfor-me-blog.tistory.com 코드는 supabase의 안드로이드 예시 문서를 바탕으로 작성했다.그러나 SQL부터 막히고 문서의 코드들이 하나의 프로젝트로 완벽하게 작동하지 않아서 좀 수정했다. https://..

이 포스팅에선 Supabase를 활용한 CRUD를 간단하게 구현한 예시를 확인한다.이름, 가격 TextField의 값과 카메라로 촬영하거나 갤러리에서 photo picker로 가져온 사진을 같이 supabase에 업로드하고 리스트 형태로 표시하는 예제를 구현할 것이다. supabase를 안드로이드에 연동하려면 크게 아래와 같은 작업들을 해야 한다. supabase 프로젝트 생성, 테이블 정의supabase, ktor, hilt 라이브러리 추가CRUD 기능 구현 + UI 구현 supabase에 새 프로젝트를 만드는 것부터 시작한다. 이 포스팅에선 구글 클라우드 콘솔 설정까지 한 후 다음 포스팅에서 코드들을 확인한다. https://supabase.com/dashboard/projects Dashboard ..