목록Android (51)
210202
안드로이드 기기(A)에서 다른 기기(B)로 메시지를 보내려면 보내는 클라이언트(A) -> FCM 백엔드 -> 받는 클라이언트(B) 이 순서로 통신이 이루어진다. 보내는 클라이언트 -> FCM 백엔드에서 상호작용 하는 방식은 다음과 같은 방식이 있다. Firebase Admin SDK FCM HTTP v1 API 기존 HTTP 기존 XMPP 이중에서 구글링했을 때 대부분 기존 HTTP 방식을 대부분 사용하여 설명되어있고, 나도 이 방식을 사용해왔다. 그러나 기존 HTTP 방식은 2023년 6월에 지원이 중단되어 2024년 6월까지 FCM HTTP v1 API로 마이그레이션이 필요하다. 변경점: HTTP v1 부터는 기존에 서버키를 사용하던 방식 대신 OAuth 2.0 AccessToken을 사용하고, 보내..
오류 증상 - XML Preview에서 Material CalendarView가 표시되지 않는다. 오류 원인 - 링크 참고 https://github.com/prolificinteractive/material-calendarview/issues/876 해결법 - 라이브러리 버전을 1.6.0으로 낮추면 해결됨.
px 실제 픽셀에 대응하는 단위 스크린 해상도에 관계없이 고정적인 크기를 가짐. dp 160dpi 화면의 픽셀 하나를 기준으로 한 단위 다른 해상도를 가지는 기기들에서 항상 적절한 크기로 UI를 제공하기 위해 사용한다. sp 텍스트 크기를 정의하는데 사용 글꼴 크기에 따라서 텍스트의 크기를 변경시킨다. 사용자가 시스템 설정에서 글자크기를 변경하면 그에 맞춰서 크기가 달라짐. dp와 마찬가지로 다른 해상도를 가지는 기기들에서 적절한 크기로 변경됨. 기타 in 인치를 기반으로한 물리적 크기 단위 mm 밀리미터를 기반으로한 물리적 크기 단위 pt 1/72 인치 기반의 물리적 화면 사이즈 실제 화면 비교 sp는 시스템 설정에 영향을 받는다. dp, px, pt, in, mm는 시스템 설정에 관계없이 동일한 ..
기본 조건 - A activity에 B,C,D 라는 fragment가 있고 A의 BottomNavigation에서는 B,C,D로 이동할 수 있다. - A 액티비티의 초기 화면은 B fragment이다. 순서 1. B fragment에 있는 이동 버튼을 눌러 findNavController().navigate() 메소드로 C로 이동한다. 2. 다시 C에서 B로 이동하기 위해서 A의 BottomNavigation을 눌러 B로 이동한다. 3. 이때 B로 이동했음에도 C 화면이 나오게된다. Jetpack Navigation은 Fragment 이동시에 이전 Fragment이 포함된 backstack을 자동으로 관리한다. 처음 화면이 backstack에 배치되고 그 후 이동하는 navigate()가 실행되서 이동할..
app:labelVisibilityMode="labeled" xml에서 다음과 같이 추가해준다 ex)
이번 프로젝트에서 소켓통신을 Stomp로 구현해보면서 안드로이드에서 Stomp 라이브러리를 사용하는 방식에 대한 자료들이 초보자가 구현하기엔 설명이 부족한 것들이 많아서 초보자도 쉽게 구현할 수 있는 Stomp를 활용한 소켓통신 구현방법에 대해 포스팅 해본다. Stomp란? 웹소켓 위에서 동작하는 프로토콜 왜 Stomp를 사용했을까? 보통 소켓통신을 구현할 때 socket.io를 많이 사용한다. socket.io는 웹소켓을 기반으로 이를 활용한 라이브러리라 같은 기능을 구현하더라도 약간 느린대신, 많은 편의성을 제공한다. 웹소켓 방식은 데이터 전송이 많은 경우 빠르고 비용이 적은 작업에 유리하고 socket.io는 서버에서 연결된 소켓들을 세밀하게 관리해야하는 경우 유지보수 측면에서 유리하다. 따라서 우..
코루틴과 retrofit2를 사용하면 call adapter를 사용하지 않고도 retrofit을 사용할 수 있어야한다. 하지만 call adapter를 만들 수 없다는 이 에러는 구글링해도 해결방법이 없어서 내가 해결했던 방법을 공유하고자 한다. build.gradle에 retorift2 dependency를 설정할때 이전에 썼던 버전으로 설정해줬는데 바로 이 이유때문이였다. retorift2를 최신버전으로 설정을 안하면 다음과 같은 오류가 나는 것이였다. 항상 라이브러리를 최신버전으로 설정하도록 하자!
OP.GG 프로젝트 진행하면서 필요한 기술들을 차근차근 정리해보려고한다. 알람기능은 CodeLab을 참고해서 만들었다. https://developer.android.com/codelabs/android-training-notifications?index=..%2F..%2Fandroid-training&hl=ko#2 다음과 같이 진행된다. 1. createNotificationChannel() 먼저 사용자에게 알림을 전달해줄 NotifiactionManager 객체를 생성한다. lateinit var notificationManager : NotificationManager 그 다음 생성한 NotificationManager 객체를 인스턴스화 시켜준다. notificationManager = requir..