[Android] Firebase FCM을 사용하여 서버 없이 push 알림 구현하기 – part 1

Firebase의 Auth, Realtime database만으로도 어지간한 서비스는 서버 없이도 만들 수 있었습니다.하지만 뭔가 2% 부족했죠.DB 데이터가 변경되었을 때 추가 작업이 이루어 져야 하는 경우가 있어 이를 구현한다고 하면 클라이언트 코드가 아주 복잡해졌습니다.서버에서 해야할 작업을 클라이언트가 직접 해주어야 했기에 복잡성이 증가하고, 안정성?도 Read more…

[Android] SharedPreference commit과 apply

Android에서 사용자 설정 값이나 간단한 데이터를 저장하기 위해 SharedPreference를 사용합니다.SharedPreference에 데이터를 저장할 때 마지막에 어떤 함수를 호출하시나요? 여기에 2 가지 옵션이 있습니다. commit() apply() 이 두 함수는 어떤 차이가 있고, 언제 무엇을 써야 할까요? 두 함수의 역할은 사실 동일합니다.차이점은 return Read more…

[Android] 화면 방향 변경 시에도 RecyclerView의 Position 유지하기

디바이스 방향을 가로 혹은 세로로 바꾸게 되면 Config가 변경되면서 Activity의 라이프사이클이 다시 onCreate부터 호출됩니다.즉 RecyclerView의 스크롤이 상단으로 되돌아 가게 되죠. Config가 변경되어 Activity 종료 라이프사이클을 탈 때 현재 스크롤 정보를 저장하고,Activity가 다시 시작하는 라이프사이클 때 저장했던 스크롤 정보를 가져와 적용시켜주면 Read more…

[Android] BroadcastReceiver를 통해 SMS 수신하기

가계부 앱을 보면 요즘 카드/체크카드 결제 내역을 사용자가 직접 입력하는 경우는 거의 없습니다.SMS로 결제 통보가 오면, 가계부 앱에서 이를 자동으로 등록하며,사용 내역 같은 정보만 사용자가 다시 수정하는 정도입니다. 그럼 가계부 앱은 어떻게 SMS를 읽어 DB에 저장할 수 있는 것일까요?이 시나리오에 Read more…

[Android] startActivityForResult 사용 시 주의할 점

본 포스팅은 아래 글을 바탕으로 하고 있습니다. https://developer.android.com/training/basics/intents/result.html?hl=ko#ReceiveResult A 라는 Activity에서 B라는 Activity로 전환하고, 이후 다시 Activity A로 돌아올 때 Activity B에서 처리한 작업 결과를 가져와서 Activity A를 표현해야할 필요가 있습니다.Activity 전환을 위해 Intent와 함께 startActivity() 메서드를 사용합니다.하지만 지금과 같이 전환하는 Read more…