일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Spring boot swagger blank screen
- Android apple login
- Spring LocalDateTime response array
- 주 4일 근무제 log
- stable-diffusion-webui local 네트워크에서 접속
- supabase edge function deploy error supabaseurl is required
- Stomp socket connection event
- 소개팅앱 만들기 flutter
- Supabase edge function insert data
- Stomp user connection event
- 소개팅앱 만들기
- Supabase edge function
- 주 4일 근무제
- Firebase authentication apple login
- Firebase authentication android apple login setting
- DT_TOOLCHAIN_DIR cannot be used
- Firebase authentication android apple login
- supabase storage feature not enabled for this tenant
- Android apple login 인증서 설정
- 로컬 서버 접속
- stable-diffusion-webui local 접속
- 소개팅앱 만들기 stomp
- Firebase authentication apple login 최신
- 주 4일 근무제 경험담
- Android apple login identifier
- Spring google SMTP settings
- supabase edge function deploy error
- no such module '__ObjC'
- invite user for supabase project
- supabase storage public url not working
- Today
- Total
목록공부방/Android (50)
꿀맛코딩
Android suppport Library 28 로 업데이트후에 FloatingActionButton 안의 이미지가 Center를 벗어나서 그려지는 현상이 보였다. 찾아보니 버그라는데, 이것 저것 해보니 해결 방법은 두가지가 있다. 1. FloatingActionButton xml을 layout_width layout_height 56dp 로 설정 (이부분 변경이 필요할시 2번 방법을 쓰면 작동이 되었다.) 2. code 추가 fab.scaleType = ImageView.ScaleType.CENTER
BottomNavigationView 를 사용할때 버튼이 4개 이상 늘어나면 버튼의 이름 들이 선택 할 때만 보이게 된다. 이럴때는 아래의 옵션 xml 에서 BottomNavigationView 에 아래의 옵션을 추가 하여 BottomNavigationView의 이름 보기 방식을 변경할수 있다. app:labelVisibilityMode="labeled" 총 4개의 옵션이 있는데, 하나씩 설명해 보면 1. auto 3 개 이하의 항목이있는 경우 레이블은 "레이블"으로 동작하거나 4 개 이상의 항목이 있으면 "선택된"레이블로 동작합니다. 즉 3개 이하의 메뉴일때는 이름이 그대로 보이고, 그 이상 일때는 선택된 버튼만 이름이 보인다. 2. labeled 모든 항목의 이름이 전부 노출된다. 3. unlabel..
Mac에서 Android ADB Path 설정은 아래와 같다. 1. 먼저 ADB 위치를 찾아보자 보통 특별히 사용자가 위치를 다른 경로에 설치하지 않을 경우 ADB 위치는 아래와 같다 /Users/{사용자}/Library/Android/sdk/platform-tools/ {사용자} 이부분은 자신의 계정명이다. 해당 디렉토리가 실제 존재하는지를 알고 싶다면, Finder (파인더) 를 열고 cmd + shift + G 를 눌러서 아래와 같이 Path를 입력하고 이동을 누르자 {사용자} 부분은 자신의 계정 디렉터리를 참고해서 넣어주자 ex) 자신의 계정 디렉토리가 test 라면 경로는 /Users/test/Library/Android/sdk/platform-tools/ 가 된다. 2. 해당 폴더로 이동이 되..
요 근래 매우 다양한 일들이 생겨서 심난하여 글을 잘 올리지 못했다. 그러던 중 저번 주에 독특한 요청이 들어왔는데, 안드로이드 디바이스의 host를 변경해서 테스트를 해달라는 요청이었다. 찾아보니 일단 실제 기기에서는 루팅 하지 않는 이상 안되는 듯하고, 에뮬레이터에서 하는 방법을 찾아보았다. 일단 몇몇 버전을 다운로드하여서 테스트해보았는데, 벽돌폰이 된 버전도 생겨낫다.... 실제 기기에서 했으면 아찔했을 거 같다. 자 이제 본론으로 넘어가서 방법을 알아보자! 1. AVD Manager를 열자 아래 그림 1처럼 디바이스 목록 버튼을 클릭하면 Open AVD Manager를 발견할 수 있다. 클릭! 2. 왼쪽 하단에 + Create Virtual Device... 을 눌러보자 3. 그림 2 에서 pla..
개발을 하다가 아래와 같은 테이블 구성 기능이 필요한 View 가 필요했는데 , 대부분 TableView를 추천해 주었다. 하지만.. 문제가 되는건 역시 성능 이슈, 저런 튜플 데이터를 몇 백개를 보여주고, 그게 보여질 여러 타입의 View 들중 하나라면? 단순하게 ScrollView 에 모든 View 들을 넣고 Scroll을 한다면 어마어마하게 버벅일 것이며, 심할 경우 뷰가 로딩 될때까지 몇초의 시간이 걸릴수 있을 것이다. 이러한 부분을 개선하기 위해서 Observer를 이용해 그림 1 처럼 Recyclerview에 아이템들의 스크롤이 마치 한개의 스크롤 뷰처럼 동작하고, 다른 Type 의 View 들을 붙여도 성능상에 이슈가 거의 없다. 풀 소스 코드는 아래에서 확인 가능하다. https://git..
일반 LinearLayoutManager 같은 경우는 findFirstVisibleItemPosition() 을 이용해서 바로 아이템을 가져 올수 있는데, StaggeredGridLayoutManager은 어떻게 가져 올수 있을까? StaggeredGridLayoutManager의 findFirstVisibleItemPosition의 구조는 아래와 같은데 public int[] findFirstVisibleItemPositions(int[] into) { if (into == null) { into = new int[mSpanCount]; } else if (into.length < mSpanCount) { throw new IllegalArgumentException("Provided int[]'s s..
StaggeredGridLayoutManager 를 이용해서 각 항목마다 보여지는 방식을 다르게 구성하고, 마지막 카테고리는 영상처럼 Grid 뷰로 구성하였는데, 동적으로 Span 카운트를 변경하려고 해보니, ScrollListener가 동작을 하지 않았다. stackoverflow 에서 알려주는 방식은 대충 home_rv.apply { layoutManager = StaggeredGridLayoutManager(spanCount, LinearLayoutManager.VERTICAL) adapter = this@HomeViewModel.adapter } 위와 같이 layoutManager 를 바꿔 주면서 SpanCount 를 변경해주고, adapter 또한 변경해 주라는 내용이었다. 물론 이방식도 단순하..
보통 RecyclerView 에서 아이템 삭제후에 notifyItemRangeRemoved() 또는 notifyItemRemoved() 을 이용해서 아이템의 삭제 여부를 통보 해주면 별다른 이상없이 잘 작동 하지만, StaggeredGridLayoutManager 에서는 각 뷰 타입별로 Span 을 달리 하기 위해 ItemDecoration 을 사용했는데, 여기서 out of index 에러가 나는 것이다. 찾아보니 아래와 같은 순서로 제거 동작을 수행하면 더 이상 에러가 나지 않았다. val index = arrayList.indexOf(item) arrayList.removeAt(index) notifyItemRemoved(index) notifyItemRangeRemoved(index, 1) 참고 ..
Android FCM 을 사용하면서 발견한 몇가지 제약 사항을 정리 하려 합니다. 1. Payload(메시지 데이터)에 Notification 필드가 포함되어 있으면 백그라운드 상태에서 onMessageReceived를 호출하지 않습니다. 그림 1 을 참고 하시면 Notification만 있을때, Data 만 있을때 , 둘다 사용할때, onMessageReceived의 호출 여부및 노출 여부를 알수 있습니다. 참고 : https://firebase.google.com/docs/cloud-messaging/android/receive 2. Android Oreo 버전 이상은 Notification Channel Id 와 Payload 의 "android_channel_id" 가 같아야 heads-up 알림..
안드로이드 스토어 등록 정보에 프로모션 그래픽을 첨부할수 있는 칸이 있는데, 이부분은 자신의 프로젝트가 OS 4.0 이전 버전 앱을 지원할때 필요하다. 그림 2를 참고 하면, 자신의 프로젝트가 minSdkVersion 14 이상이라면 무시해도 된다는 소리다. 참고: https://docs.microsoft.com/ko-kr/xamarin/android/app-fundamentals/android-api-levels?tabs=macos Android API 수준 이해 - Xamarin Xamarin.ios에는 여러 버전의 Android와 앱의 호환성을 결정 하는 몇 가지 Android API 수준 설정이 있습니다. 이 가이드에서는 이러한 설정의 의미, 구성 방법 및 런타임에 응용 프로그램에 미치는 영향에 ..