목록Android (30)
코딩하기 좋은날
📝아키텍처 패턴을 왜적용 해야 하는가? - 글을 들어가기에 앞서 아키텍처 패턴을 적용해야 하는 이유를 말해보려고 합니다. 아키텍처 패턴을 신경쓰면서 코드를 작성하는 것은 쉬운일이 아닙니다. 그러나 코드가 방대해질수록 마구잡이로 작성된 프로젝트를 수정하기란 정말 어렵습니다. 실제로 프로그램의 라이프 싸이클을 본다면 단순 개발이 차지하는 비율은 어느정도 안됩니다. (유지보수가 아주 많은 부분을 차지하죠.) 물론 저는 그런 프로그램을 개발한 뒤 유지보수를 해본 경험이 없지만.. 당장 제프로젝트의 코드를 수정 할 때도 마구잡이로 짜 놓은 프로젝트는 답이 없다라는 것을 종종 느낍니다. 아키텍처 패턴을 적용하고 기타 여러 도구들을 이용함으로써 우아하고 클린한 프로그램으로 변하는 것을 몸소 느낄 수 있을거라 생각합니..
원격으로 알림을 보낼 때 많이 쓰이는 FCM에 대해서 한번 알아 보겠습니다. 안드로이드 스튜디오의 Tools -> firebase 를 클릭하면 아래와 같은 창이 나옵니다. 1번과 2번을 각각 눌러서 dependency를 추가하고 프로젝트를 등록하고 google-services.json 파일이 추가되면 FCM을 수신 받을 수 있는 상태가 됩니다. 아 그리고 firebase-analytics는 자동으로 추가가 되지 않는데 이걸 추가안하면 FCM이 바로바로 오지 않는 것 같습니다. 실제로 FCM의 최적화를 위해 추가시키라는 글이 웹상에서 나오는 걸로 알고 있는데 추가시켜주면 보내자마자 바로 수신이 됩니다! 기본적으로 이렇게만 세팅을 해주면 FCM은 다음과 같은 상황에서 수신이 가능합니다. 1. 앱이 완전히 꺼..
처음에 만든 모습에서 조금씩 수정을 하다보니 3편 글을 쓰게 되었습니다. 1. Navigation Drawer 적용 기존의 단순 버튼을 클릭해서 동작하던 방식을 Navigation Drawer를 이용하였습니다. 메인화면에는 등록된 소환사들의 정보를 RecylcerView를 이용하여 보여줍니다. 왼쪽 상단의 메뉴 버튼을 클릭하거나 왼쪽에서 오른쪽으로 swipe를 하게 되면 아래와 같은 Navigation Drawer가 나오게 됩니다. 사용자 등록/삭제, API 키 변경을 클릭시 AlertDialog가 등장하며 값을 입력받아 동작을 수행하게 됩니다. KEY 발급 항목을 클릭시 Riot API 키를 발급 받을 수 있는 페이지를 웹뷰에서 띄우게 됩니다. 자신의 롤 ID를 통해 이 KEY 값을 발급 받은 뒤 AP..
SharedPreferences SharedPreferences는 DB를 사용하지 않고 간단하게 로컬에 데이터를 저장 할 때 사용 할 수 있습니다. 이전에 포스팅한 롤 알리미를 만들 때도 이를 사용하여 유저들을 저장하여 사용하였습니다. Key-Value 의 형태로 값을 저장하며 로컬에 파일형태로 저장되기 때문에 앱을 삭제하면 모든 데이터가 날아간다는 단점이 있습니다. 보통 Object로 선언을 한 뒤 자신이 set/get할 자료형에 대한 함수를 정의하는 방식으로 사용을 많이 하는 것 같습니다. 아래는 제가 사용한 예시입니다. 값을 쓰거나 수정하기 위해서는 getSharedPreferences를 통해서 객체를 얻어온 후 edit() 객체를 얻은 뒤 put... 을 통해 값을 쓸수 있습니다. 값을 변경한 후..
5. 소환사 저장 1편에서 사실상 목표로 하는 기능의 구현은 끝이 났습니다. 이제는 유저가 소환사를 등록 하고 이 등록된 소환사들을 대상으로 앞선 기능들을 수행해 주면 됩니다. 처음에는 DB를 이용하려 했으나 소환사 이름만 저장하는 것이기 때문에 굳이 그럴 필요가 없음을 느꼈습니다. 따라서 SharedPreferences를 이용하였고 소환사 이름 - Boolean 의 형태로 하나의 파일에 저장을 했습니다. 이것외에도 추가의 저장이 필요한 정보가 존재합니다. 앞서 우리의 구현과정을 보면 80초마다 API를 호출하여 게임 여부를 판단한다고 하였습니다. 그렇다면 동일 게임에 대해서도 알림이 또 전송되는 현상이 발생합니다. 라이엇에서는 각경기마다 matchID를 부여합니다. 따라서 이를 이용하여 위의 문제를 해..
평소 롤을 즐겨하는 유저로써 롤 API를 활용한 무언가를 만들어 보자라고 생각을 하였습니다. 그중 내가 등록한 사람이 게임을 시작했을 때 ! 알림을 알려주는게 있으면 편하겠구나 라는 생각이 들어 만들기 시작하였습니다. 간략하게 제작 순서를 설명하고 시작하겠습니다. 1. Riot API Key 발급받기 API를 이용하려면 당연히 Key를 발급받아야 합니다. https://developer.riotgames.com/ Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and r..
Notification 이란? Android의 알림에 대해서 알아 보겠습니다. 휴대폰에서 최상단에서 밑으로 드래그를 하면 아래와 같은 알림이 뜬 상태바가 나오게 됩니다. 알림은 일반적으로 아래와 같이 구성 되어 있습니다. 출처 : 구글 공식 문서 알림 개요 | Android 개발자 | Android Developers 알림은 사용자에게 알림, 다른 사람과의 의사소통 또는 앱에서 보내는 시기적절한 기타 정보를 제공하기 위해 Android가 앱의 UI 외부에 표시하는 메시지입니다. 사용자는 알림을 탭하여 열거나 �� developer.android.com 알림은 기본적으로 로컬알림과 원격알림이 존재하며 로컬 알림은 장치에서 앱을 통해 발생 하게 되고 원격 알림은 원격서버에서 장치로 전송하는 알림입니다. 우선..
지난 글에 이어 각 서비스들의 예제 프로그램을 만들어 보겠 습니다. 먼저 IntentService 는 onHandleIntent 메서드만 오버라이딩 해주면 됩니다. IntentService 아래는 그냥 Log를 찍어보는 예제입니다. IntentService의 서브클래스로 생성 해주면 되고 worker thread의 이름을 매개변수로 넣어주어야 합니다. MyIntentService.kt package com.example.intentserviceexample import android.app.IntentService import android.content.Intent import android.util.Log class MyIntentService: IntentService("MyIntentService..