본문 바로가기
반응형

Android42

[Android] Firebase FCM을 사용하여 서버 없이 push 알림 구현하기 – part 2 본 포스팅은 Android에서 Firebase FCM을 사용하는 두 번째 포스팅으로 서버 측 구현을 다루고 있습니다. 1. FCM Trigger 등록 이제 서버쪽 구현이 필요합니다. 여기서 서버는 Firebase – Clound Functions를 사용하여 구현할 예정입니다. 앞서 언급한데로 Firestore의 특정 document가 변경되면 document의 소유자에게 이를 알려주는 message를 보낼 것입니다. 이를 구현하기 위해 Firestore의 특정 document가 변경되는 것을 감지하여 동작하도록 trigger를 부착해야 합니다. 이는 생각보다 굉장히 쉽습니다. 아래 코드는 Firestore의 recruits에 {recruitId} document가 수정되면 동작하는 trigger입니다. .. 2020. 11. 8.
[Android] Firebase FCM을 사용하여 서버 없이 push 알림 구현하기 – part 1 Firebase의 Auth, Realtime database만으로도 어지간한 서비스는 서버 없이도 만들 수 있었습니다. 하지만 뭔가 2% 부족했죠. DB 데이터가 변경되었을 때 추가 작업이 이루어 져야 하는 경우가 있어 이를 구현한다고 하면 클라이언트 코드가 아주 복잡해졌습니다. 서버에서 해야할 작업을 클라이언트가 직접 해주어야 했기에 복잡성이 증가하고, 안정성?도 떨어졌죠. (안정성을 높이기 위해 복잡성이 계속 증가하지만 과연 100% 확신할 수 있을까?…) 하지만 Firebase에 Cloud Functions 기능이 추가되면서 한단계 더 만족할만한 Serverless 서비스를 만들 수 있게 되었습니다. [동기] 아래와 같은 상황을 가정해봅시다. 사용자 A가 채팅 방을 개설합니다. 사용자 B가 채팅 방.. 2020. 11. 8.
[Android] SharedPreference commit과 apply Android에서 사용자 설정 값이나 간단한 데이터를 저장하기 위해 SharedPreference를 사용합니다. SharedPreference에 데이터를 저장할 때 마지막에 어떤 함수를 호출하시나요? 여기에 2 가지 옵션이 있습니다. commit() apply() 이 두 함수는 어떤 차이가 있고, 언제 무엇을 써야 할까요? 두 함수의 역할은 사실 동일합니다. 차이점은 return type에 있습니다. boolean commit(); void apply(); commit 메서드는 데이터를 persistent storage에 저장하는 과정이 동기화되어 있고, storage에 write를 한 결과(성공/실패)를 사용자에게 boolean으로 반환합니다. 단순히 commit을 호출하지만 그 내부 로직은 동기화되어.. 2020. 11. 8.
[Android] 화면 방향 변경 시에도 RecyclerView의 Position 유지하기 디바이스 방향을 가로 혹은 세로로 바꾸게 되면 Config가 변경되면서 Activity의 라이프사이클이 다시 onCreate부터 호출됩니다. 즉 RecyclerView의 스크롤이 상단으로 되돌아 가게 되죠. Config가 변경되어 Activity 종료 라이프사이클을 탈 때 현재 스크롤 정보를 저장하고, Activity가 다시 시작하는 라이프사이클 때 저장했던 스크롤 정보를 가져와 적용시켜주면 됩니다. 이를 위해 우리가 알아야 할 메서드는 다음 2가지입니다. public void onSaveInstanceState(Bundle outState); public void onViewStateRestored(@Nullable Bundle savedInstanceState); onSaveInstanceState는.. 2020. 11. 8.
반응형