본문 바로가기

개발 코딩 정보 공유/안드로이드 자바 코틀린

안드로이드 FCM 푸시서버 예제 안녕하세요. 지난번에 firebase 안드로이드 FCM 푸시 관련하여 알아보았습니다. 오늘은 밑도 끝도 없이 예제를 통해서 간단한 사용법을 배워보죠! ***htttp V1 사용법이 아닙니다. 구글에서 말하는 기존의 구형 원시 사용법입니다. 예제는 간단합니다. 1 2 3 4 5 //구글 인증 서버키 private final String AUTH_KEY_FCM = "AAAAlTG6ylg:APA91bHo8 ... "; private final String API_URL_FCM = "https://fcm.googleapis.com/fcm/send"; //기기별 앱 토큰 private String userDeviceIdKey = "d-tse-wQXDA:APA91bH ..."; cs 인증서버키를 가지고 있구요. 예.. 더보기
안드로이드 FCM 푸시서버 구현 내가 뭐 어쨌다고... 지난 푸시 앱설정 포스트에 이어서 안드로이드 푸시 서버구현에 대해 알아봅시다. FCM 푸시 서버 구현의 경우 몇가지 방법으로 나눠지는데요. admin sdk를 사용하여 보내는 방법과 원시프로토콜을 사용하여 보내는 방법 입니다. 그중에 원시프로토콜을 사용하여 푸시를 날려봅시다. 그 안에서도 이렇게 또 나눠집니다. (에고 복잡해) 1. FCM HTTP v1 API (신버전) https://firebase.google.com/docs/cloud-messaging/send-message?hl=ko#send_messages_to_specific_devices 2. 기존 HTTP 프로토콜 https://firebase.google.com/docs/cloud-messaging/http-serv.. 더보기
안드로이드 GCM을 FCM로 마이그레이션 해봅시다 GCM 을 FCM 으로 마이그레이션 합시다 응? 나를 뭐 어쩐다고? 구글정책에 따른 문제파악 다들 바꾸셨겠지만 오래된 플랫폼의 경우 아직도 구글 GCM을 활용한 푸시서비스 방식을 쓰고있습니다. 이미 구글에서 2018년 4월 10일 부터 GCM 사용중지 공고를 하였습니다. 그럼에도 GCM을 쓰셔야 겠다면... 안타깝지만 불가능 합니다. " 2018 년 4 월 10 일부터 Google은 GCM을 사용 중지했습니다. " " GCM 서버 및 클라이언트 API는 더 이상 사용되지 않으며 2019 년 4 월 11 일에 즉시 삭제됩니다 . " " 신뢰할 수 있고 확장 가능한 GCM 인프라와 많은 새로운 기능을 상속하는 FCM ( Firebase Cloud Messaging)으로 GCM 앱을 마이그레이션 합니다. 자세.. 더보기
안드로이드 8.0(api26) 알림채널 생성하기 (notification channel) 안드로이드 api 26(8.0 오레오) 대비 작업 - 알림 채널 생성 android oreo / pixabay / knd61 안녕하세요. 안드로이드 api 26(8.0 오레오)에 대비 하여 오늘은 알림 채널 생성을 해보겠습니다. 알림을 채널별로 관리하여 좀더 효율적으로 사용한다는 것인데요. 역시나 너무 귀찮습니다. "Android 8.0 (API 레벨 26)부터 모든 알림을 채널에 할당해야합니다. 각 채널에 대해 해당 채널의 모든 알림에 적용되는 시각 및 청각 동작을 설정할 수 있습니다. 그런 다음 사용자는 이러한 설정을 변경하고 앱의 알림 채널을 방해하거나 눈에 띄게할지 결정할 수 있습니다." 아래와 같이 작업을 하시면 되는데요. 알림채널의 경우 단 한번만 설정하면 다시 설정할 필요가 없기때문에 app.. 더보기
안드로이드 API 26 (8.0 오레오) 대비 하기 - 백그라운드 제한 안드로이드 API 26 - 강제 업데이트 대비하기 안녕하세요. 지난번에도 소개 했었던 안드로이드 API 26(안드로이드 8.0 오레오) 강제 업데이트를 위한 대비 관련하여 상당히 많은 부분을 수정하고 추가해야 하는데요. 하...(벌써 현기증이) 구글은 이미 한참전 부터 공지를 했었죠. 2018년 8월까지는 새로운 앱에 대해서, 2018년 11월 까지는 기존의 앱까지 통틀어서 강제로! 무조건 API level 26 으로 올려야 한다고 권고 하고 있습니다. 이는 이번 일회성에 그치지 않고 이후에 판올림이 일어날때 마다 (거의 매년) 이번일과 같은 강제적 업데이트를 해야한다고 하고 있습니다. 하...(왜 그러냐 너네들) 큰 틀에서는 64bit 지원을 위한 초석 이며 보안성을 높이기 위한 조치 라고 합니다. 6.. 더보기
함수형 프로그래밍? 그게 뭔데 일급객체 일급시민 고차함수 람다 최근에 트랜드 처럼 퍼지고 있는 함수형 프로그래밍. 맨날 자바만 쓰다보니 다소 생소하였는데... 시간을 들여서 조금 알아보고자 작성하게 되었습니다. 일급객체 다소 생소한 단어인 일급객체는 함수형 프로그래밍을 지원하기 위해 필수 요소 입니다. 그렇기에 함수형 프로그래밍 언어를 쓰기전에 반드시 미리 공부해 둘 필요가 있다고 생각합니다. 많이 쓰던 우리의 자바에는 그런 개념이 없기 때문에 더욱 생소 할 수 있을 것 같습니다. 함수형 프로그래밍에 들어가기 위해 1급 시민(또는 객체) 라 불리우는데 이녀석을 알아야 합니다. 이녀석이 되기 위한 조건은 크게 3가지가 있습니다. " 변수에 담을 수 있다 " " 파라미터로 전달할 수 있다 " " 반환값으로 전달할 수 있다 " 응? 뭘 전달 한다는 말인가? 숫자형, 문자.. 더보기
코틀린 기초 공부 해보기 3 1. 루프문 사용 루프문의 사용도 뭐 비슷비슷하네요. 1 2 3 4 5 val items = listOf("apple", "banana", "kiwifruit") for (item in items) { println(item) } Colored by Color Scripter cs 여기서 listOf 가 궁금하실텐데요. 이건 java에서 리스트 객체를 생성한다고 생각하면 됩니다. for (item in items) { 여기서 돌리는거죠. 참 쉽죠잉 돌리면서 index가 필요할수 있으니 그럴때 이렇게 씁니다. 1 2 3 4 5 6 7 val items = listOf("apple", "banana", "kiwifruit") for (index in items.indices) { println("item a.. 더보기
코틀린 기초 공부해보기 2 1. 조건문의 사용 1 2 3 4 5 6 7 8 fun maxOf(a: Int, b: Int): Int { if (a > b) { return a } else { return b } } Colored by Color Scripter cs if문은 뭐. 그냥 보셔도 아시겠죠? : Int 이건 리턴형이 int라는 말입니다. 다음은 when 입니다. 자바에서 switch case 라고 생각하시면 좋을것같네요. 1 2 3 4 5 6 7 8 9 10 fun describe(obj: Any): String = when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" } Col.. 더보기