본문 바로가기

분류 전체보기

안드로이드 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.. 더보기
코틀린 기초 같이 공부하기 1 안드로이드에서 코틀린을 공식언어로 지정해버렸죠. 자바에서 코틀린으로 완전히 넘어갈지 아닐지 그건 알수 없지만 현재로써는 코틀린도 공부해 둘 수 밖에 없겠습니다. 코틀린은 안드로이드 스튜디오의 뼈대인 intelliJ 를 만든 jetbrain 사에서 만들어 배포하고 있습니다. 구글에서 전폭적인 지지를 아끼지 않네요. 나온지는 꽤 되어서 이미 많은 앱에서 쓰이고 있습니다. 코틀린은 환경은 자바와 100% 호환이 된다고 합니다. 그들말로는... 이말은 즉 섞어서 쓸수 있다. 정도로 풀이 됩니다. 코틀린을 적용하더라도 기존의 자바라이브러리와 소스를 버리지 않아도 된다는 말이죠. 이 상황은 마치.. 아이폰 진영의 object C 와 swift를 짬뽕하는 코드를 보는것 같네요. * kotlin 공식사이트의 basic.. 더보기