Programming

    SHA-1, SHA-256 ?

    SHA-1, SHA-256 ?

    안드로이드 스튜디오에서 SHA-1, SHA-256 같은 정보를 요구하는 상황이 있다. 그러한 경우 현재 나의 SHA-1 과 SHA-256 의 정보를 주어야 한다. 하지만 찾는 방법이 매번 기억이 안나고 검색하기 귀찮아서 아예 기록을 해둔다. 간단하다. 1. Sidebar 에 Gradle이라는 탭이 보인다면, 그 안의 일은 아래의 블로그를 참고하고, 만약 이 방법이 불가능한 상황(?)이라면, 2. Teminal 창을 열어서 명령줄 한줄 이면 된다. (공식문서 보기) keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore 기본 비밀번호는 android 이다 참고 블로그 1

    Broadcast Intent

    Broadcast Intent

    Broadcast Intent 와이파이를 접속하거나, 전화를 수신하거나, sw를 설치되기도 하는 이벤트들이 반으한다. 이러한 시스템이 전송하는 브로드캐스트 인텐트를 시스템 브로드캐스트 인텐트라고 한다. 또 다른 형태로 커스텀 브로드캐스트 인텐트가 있다. 이것 또한 시스템 브로드캐스트 인텐트와 유사하다. 인텐트와 유사하게 작동되며, 차이점은 브로드캐스트 수신자로 등록한 다수의 컴포넌트가 동시에 받을 수 있다는 점이다. 즉 다른 앱의 상황이나 정보 공유가 인텐트는 한개씩 가능한 반면 브로드캐스트 인텐트는 동시에 여러 앱이 가능하다는 것이다. 브로드캐스트 인텐트 사용법 1. 브로드캐스트 인텐트를 생성하고 전송한다. context.sendBoradcast(Intent(MSG)) ... companion obje..

    Message

    Message

    Message 안드로이드 쓰레드에는 크게 main thread, background thread 로 나뉜다. main은 UI에 해당되는 모든 처리를 담당한다. background는 이 외의 다른 네트워킹 처리라던가 뭔가 시간이 더 걸리는 것을 처리한다. 일단은 이렇게 개념을 잡았다. 메세지는 그렇다면 무엇에 쓰이는 것일까? main도 처리할 UI 작업이 많고, back도 처리할 작업이 있는 경우 back이 아무리 처리를 많이하고 빨리한다해도 main이 준비되지 않으면 보이지 않는다. 그만큼 back에서는 다양한 업무를 처리하고 main에게 보낸다. 그러나 main이 일이 너무 많다면, 이러한 back의 작업을 무시하거나 back이 완료된 일을 들고 계속 대기해야하는 경우가 생긴다. 이런 현상이 바로 우리..

    Retrofit

    Retrofit

    Retrofit Retrofit 은 Square사에서 제공하는 오픈 소스 라이브러리이다. REST API를 안드로이드에서 쉽게 사용하도록 도와준다. OkHttp 라이브러리를 자신의 HTTP클라이언트로 사용한다. 래트로핏은 HTTP 게이트웨이 클래스 생성을 도와준다. - 애노테이션을 지정된 함수를 갖는 인터페이스를 작성한다. - Retrofit이 인터페이스의 구현 클래스를 생성한다. - 이 클래스에서 HTTP 요청(request)을 하고 OkHttp.ResponseBody 로 HTTP 응답(response)을 파싱한다. 여기서 중요한 포인트는, ResponseBody를 그대로 받아오는 것보다 형변환을 한번 거쳐서 가져오는 것이 더 편하고 좋다. 응답 변환기 Response Converter 앱에서 필요한 ..

    [Android] 시스템 UI가 응답하지 않음. System UI isn't responding.

    [Android] 시스템 UI가 응답하지 않음. System UI isn't responding.

    [Android] 시스템 UI가 응답하지 않음. System UI isn't responding. 이 놈의 애뮬레이터는 언제쯤 물리적 디바이스보다 원할하게 사용할 수 있을지 의문이다. 이번 상황은 애뮬레이터가 잘~ 돌아가다. 특정 짓을 하면 이렇게 갑자기 홈, 뒤로가기, 오버뷰 버튼이 없어지면서 그냥 UI가 안된다고 버벅버벅 거린다. 당연히 컴퓨터가 느려서 그런것도 있지만, 애초에 애뮬레이터를 가볍게 만들어줄 수는 없나보다. 아무튼 이러한 문제가 있을때, 나름 찾은 방법을 계속 추가해서 기록해두려한다. 1. 애뮬레이터 폴더로 이동해서 뭔가 이상한 파일을 제거해본다. (무지성) 뭔지는 모른다. 그냥 따라해본다. [뭔지모르는 파일 삭제 방법] 켜져있는 애뮬레이터를 일단 끈다. (요즘은 끄는것도 어렵다.) 그..

    JetPack AAC: DataBinding

    JetPack AAC: DataBinding

    Data Binding LiveData 와 DataBinding ? 둘 다 데이터가 변경되는지 관찰하면서 변경될 때 반응하는 방법을 제공한다. 그러나 둘의 사용법에서의 차이가 존재한다. [스택오버플로 글 참고하기] UI 상의 변화를 실시간으로 관찰하고 반영하고자 한다. 👉 DataBinding 백그라운드에서 데이터를 관찰하고 관리한다. 👉 LiveData [좀 더 자세히 보기] 그리고, LiveData는 LifeCycleOwner를 사용해줘야 한다. 간단하게 이렇게 인식하고 활용하자. 1. 원하는 화면에서 데이터 묶기 기능 추가하기 먼저, 데이터 묶기를 시도할 화면이 필요하다. xml 코드상에 아래의 예시와 같이 작성한다. 구체적인 설명 1. 태그를 xml 코드 전체를 감싼다. xmlns 부분은 layo..

    Accessibility

    Accessibility

    Accessibility 이 앱은 접근성이 좋다. 접근성 ,이 말의 뜻은 시각, 거동, 청각 장애에 상관없이 누구나 사용할 수 있다는 의미이다. 앱의 접근성이 좋을 수록 앱을 더 편안하게 사용할 수 있다. 접근성이 완벽하게 좋은 앱을 만들기는 어렵다. 그렇다고 해서 시도조차 하지 않는 것은 적절하지 않다. TalkBack 토크백은 구글에서 만든 음성 안내 지원 앱이다. 사용자가 수행하는 작업을 기반을 화면의 내용을 음성으로 알려준다. 토크백은 접근성 서비스 (Accessibility Service) 로 작동하는 특별한 컴포넌트이다. 어떤 앱을 사용하든 이것을 통해 화면으로부터 정보를 읽을 수 있다. 기능을 사용해보기 위해 아래와 같이 한다. 1. Android 접근성 도구 모음 설치 ( 구글 플레이 검색..

    Localization

    Localization

    Localization 지역화는 사용자의 언어 설정을 기반으로 앱의 적합한 리소스를 제공하는 절차이다. 주로 지역화 작업은 리소스를 통해서 먼저 진행된다. values/ 폴더 아래에 원하는 이름(주로 strings)으로 문자 리소스 파일을 만들어준다. 위와 같이 Locale 을 선택한뒤, 원하는 언어를 선택한다. 예를들어 일본어를 선택헀다면, values-ja 로 형성된다. 언어 구성 수식자는 ISO 639-1 코드의 표준을 따라 두개의 문자로 구성되며, 일본어는 수식자가 ja이다. 탐색기에서는 string.xml (ja) 라는 파일명으로 보인다. 참고로 제일 우측에 Specific Region Only 는 말그대로 어떤지역에서만 그 언어가 보이게 할지 선택하는 것이다. Any Region이 기본값이고 ..