·🐸 Android
0. FCM 푸쉬 알림이란 서버에서 모바일 장치에 보내는 알림 또는 메세지이다. 직접 구현한 서버에서 사용자 장치로 알림을 보내기 위해서는 앱과 서버의 연결을 지속적으로 유지해야 한다. 하지만 FCM(Firebase Cloud Messaging)은 구글 클라우드 서버를 이용해 앱에서 서버에 연결하지 않아도 기기의 내부 연결을 통해 메세지를 보낼 수 있다. Firebase console 에서도 FCM token 을 넣어 푸쉬 메세지를 보낼 수 있지만, 서버와 연결한다면 이러한 과정을 거치게 된다. 1. FCM Message Type when your app in background, the method onMessageReceived never invoked FCM에서 보내는 메세지의 타입에 따라 앱의 포..
·🐸 Android
기존 안드로이드 OS에서는 유저의 동의없이 푸쉬 알림을 띄울 수 있었지만, 안드로이드 13 부터는 다른 permission 들처럼 알람 권한이 새로 생겼다. 알림 권한은 유저 기기의 OS가 13인 경우 모두 해당 된다. 즉 대응을 하지 않으면 유저들이 알림을 받지 못한다. 1. Delcare The Permission POST_NOTIFICATIONS (Notification Permission) 은 Target SDK API 33 이상부터 추가 가능 2. Scenario Target SDK API 32 이하의 앱이 Android 13 디바이스에 설치되면 Notification Channel을 등록할 때 자동으로 Notification 권한 요청 팝업이 나옴 Target SDK API 33 이상의 앱..
·🐸 Android
0. RecyclerView에서 Data Set을 하는 방법들 RecyclerView의 data set의 변경방식에 관해서는 여러 메서드들과 제공하는 클래스가 있다. DiffUtil이 만능인지 그렇다면 정확히 어떤 면에서 만능인지, 그렇지 않다면 그 외의 것들 중에서는 어떤 것을 써야 효율적이고 적재적소에 쓰는 것이 맞는지 생각해보는 글이 되겠다. 1. DiffUtil은 Infinite Scroll에 맞는 방식인가? first items convert to second items 스크롤을 하면서 다음 데이터를 계속해서 추가해야하는 무한 스크롤에서 DiffUtil을 사용한다면 기존에 호출한 20개의 아이템에 다시 20개를 추가한 40개의 새 아이템 리스트를 DiffUtil 함수가 포함된 데이터 업데이트 메..
·🐸 Android
Android 개발에서 어려운 것 중 하나가 Lifecycle 관리이다. Activity와 그 위에 올려져있는 Fragment 인스턴스에도 Activity와는 다른 자체 생명 주기가 있다. 또한 Fragment Lifecycle과 다른 Fragment View Lifecycle이라는 독립적인 뷰 라이프사이클도 존재한다. Fragment는 왜 이런 view Lifecycle 를 따로 가지는 것일까? ૮꒰ ྀི . . ꒱ა .. Fragment의 생명주기와 Fragment View Lifecycle에서 LiveData는 어떻게 다뤄야하는지까지 이야기해본다. 0. 함께 했을 때의 생명주기 흐름 Activity위에 Fragment가 Attach 되었을 때의 생명주기 흐름이다. 여러개의 Fragment를 하나의 ..
·🐸 Android
0. IntroRx에서 제공하는 스레드(AndroidSchedulers.MainThread와 같은 편한 그 무언가...)를 자연스럽고 편하게 사용하고 있을 찰나, 익숙함에 속지 않지 위해 정리하고자 하는 글. 운영체제에서 말하는 process와 thread부터 시작한다. 1. ProcessProcess: An instance of a program in execution 프로세스(Process): 실행중인 프로그램 운영체제 위에서 연속적으로 실행되고 있는 프로그램을 의미한다. 프로그램은 실행할 수 있는 물리적인 파일을 말하는 것이고, 우리가 이 프로그램을 실행시키면 프로세스 인스턴스가 생성된다. 인스턴스가 생성된다는 말은 즉 메모리에 적재된다는 뜻이다. 인텔리제이도 실행하고 카톡도 실행하고 구글 브라우저..
·🐸 Android
안드로이드에서 내장 데이터베이스에 저장하는 방법을 알아본다. 대표적인 저장 방법- File(text..)- SharedPreferences(key-value)- RoomDB(관계형DB) key-value 쌍으로 비교적 간단한 정보를 저장할 수 있는 방법인 SharedPreferences와 Room은 기기 내장 DB에 데이터베이스를 저장하기 위해 사용하는 라이브러리이다.  간단한 정보를 저장할 경우의 기준이란 무엇일까? 나는 저장할 데이터가 비즈니스의 core data 인지 아닌지 그리고 저장할 값이 단순히 key-value 값으로 저장하고 사용할 수 있는지에 따라 보통 구분 짓는다. 예를 들어 팝업창을 띄우는 경우 다시 보지 않기라는 값을 저장해야하는 상황이라면 이 값은 비즈니스의 core data도 아..
·🐸 Android
One goal of LinksUsers following links on devices have one goal in mind: to get to the content they want to see.한 번은 프론트엔드 동료 개발자분이 웹은 웹 주소에 따라 다른 페이지를 보여주는데 앱도 페이지마다 식별할 수 있는 주소가 있는지 여쭤보셨다. 언제든 해당 url만 있으면 접근할 수 있는 웹과 달리 앱은 activity가 고유한 주소값을 가지고 있지 않기도 하고 직접적으로는 특정 페이지에 도달할 수 없다. 독립적이고 폐쇄적인 성격을 가진 앱의 특성때문이다. http 기반으로 문서를 주고받는 웹의 배경과도 다르기에 모바일에서도 딥링킹할 수 있는 방법이 필요해졌다.그래서 Android, iOS에서는 딥링크를 구현..
·🐸 Android
firebase app distribution + fastlane + slack = 🚀fastlane은 모바일 플랫폼에서의 CD(Continuous Deploy)의 대표적인 툴로 fastlane을 이용하여 테스트앱 자동 배포화부터 (feat.App Distribution)부터 App Store에 등록하는 것까지 다뤄본다.기존 테스트앱 배포방식PlayStore 내부 테스트 트랙기존의 테스트앱 배포방식은 직접 안드로이드 스튜디오에서 기기를 연결하여 빌드한 수동 중의 수동 배포 방식이었다.(..🐒) 그 이후 QA까지 완료되었고, 우리 서비스를 쓰는 일부 내부 클라이언트들에게만 실제 사용을 위한 테스트 배포를 위해서 PlayStore Beta로 내부 테스터에게만 배포했었다. 이 과정에서도 수동적으로 버전 코..
·🐸 Android
0. This is how it happened.. 네이티브 서비스 앱을 처음 배포하고 마주친 케이스이다. 앱을 삭제하고 다시 설치하였는데도 데이터가 남아있는 현상이 발현됐다. ( ˃̣̣̥᷄⌓˂̣̣̥᷅ ) 회사 서비스의 앱은 앱 초기 실행시 shared preference 데이터로 로그인 뷰로 갈지, 자동 로그인 되는 것처럼 메인 뷰로 진입할지를 결정하는데 이 shared preference의 데이터가 기기에 남아있는 경우였다. 앱을 삭제하고 다시 설치하면 로그아웃 된 것처럼 로그인 페이지로 가는 것이 아니라 바로 메인뷰로 이동하는 현상이었다. 앱을 지우고 다시 깔아도 기존의 유저가 사용하는 데이터가 백업되었다가 복원되어 기존의 데이터를 사용할 수 있게 되는데 안드로이드 메니페이스의 속성중 하나로 all..
·🐸 Android
0. Intro ⚡️ the gallery widget doesn't support multiple selection by default 안드로이드에서는 기본적으로 기기내 공유 저장소의 미디어 파일에 액세스했을 때 미디어 파일을 여러 개 선택하는 것이 가능하지 않다. api 18이상부터는, Intent.ACTION_GET_CONTENT을 이용하여 image/*로 setType을 한 다음 Intent.EXTRA_ALLOW_MULTIPLE을 설정하면 가능하다지만, 실제로 적용시켜봤을 때는 파일 저장소에는 적용이 되었지만 갤러리에는 적용되지 않았고 그 이하의 api 에서도 적용이 안된다는 점이 있다. 또한 Android 13부터는 Photo Picker을 제공하여 모든 미디어 라이브러리를 가져올 필요없이 사진..
안드로보이
'🐸 Android' 카테고리의 글 목록