본문 바로가기

[Bluetooth] BLE에 대한 간단한 정리 BLE(Bluetooth Low Energy)란? - 2010년 6월 30일, 블루투스 4.0 버전의 등장과 함께 제공된 프로토콜 중 하나 - 전력소모 최소화, 배터리 수명연장에 중점을 둔 프로토콜 - 다른 무선 전송규격에 비해 상대적으로 느린 편. > 현재 웨어러블 기기를 중점으로 주로 사용되고 있는 프로토콜로 알려져 있음. 핵심 구성요소들 - GATT (Generic Attribute Profile) 데이터를 어떠한 방식으로 주고받을지에 대해 정의함. - Central(혹은 GATT Client) 컴퓨터, 태블릿, 모바일 기기등 주로 데이터 요청과 송신을 하는 주체 - Peripheral(혹은 GATT Server) Central의 요청에 따라 데이터를 전송하는 객체 - Services 주변 BLE ..
[Kotlin] 자바로 쓰인 안드로이드 프로젝트를 단순히 Kotlin으로 컨버팅해보자 이전동안 자바에 익숙해있던 중에 이제 꽤나 업계에서 널리 쓰이는것으로 보이는 코틀린을 실제로 사용하고 익숙해져보기로 했다. 기본 입문서정도는 훑어서 익혔으나, 훑은 것들은 실제로 사용하고 경험해보기 전에는 머릿속과 손끝에서 휘발되기 마련이다. 단순한 첫단계로 새로 만든 예시 앱을 코틀린으로 컨버팅하고, 이를 입문서를 참조하며 찬찬히 살펴보기로 했다. 과정은 설명이 필요 없으리만치 매우 단순하며 간단하다. 1. OS에 따라 다르겠지만 윈도우 기반 안드로이드 스튜디오에 경우 ctrl + shift + a 를 누르면 옵션들을 검색해 볼 수 있는데, 여기에서 convert java to kotlin 옵션을 찾을 수 있다. 2. 클릭하여 옵션을 실행하면 약간의 시간소요 이후 다수의 java 파일이 코틀린으로(.k..
[Q&A] Question of myself - 무엇을 하고 싶은가? 면접을 하면서 받는 질문들 중에 '무엇을 하고 싶은가?' 류의 질문을 쉽게 접하고는 하는데, 이에 대해 손쉽게 답변할 수 있는지는 물론 평소에 이 '무엇을 하고 싶은가? 무엇을 이루고 싶은가? 당신이 하고자 하는 바가 무엇인가? 무엇을 만들고 싶은가?' 등에 대해 얼마나 고민해보고 생각해보았는지에 따라 달라질 수 있다. 이전에 이력서를 쓰면서 몸에 체화된 질문인 탓에 생각난거 같기는 하지만, 어찌되었든 내가 궁극적으로 성취하고 싶은 것은 무엇인가? 그리고 그것을 어떻게 성취하려 하는가? 정도의 질문을 짧게 생각할 수 있었고, 차례대로 생각해보며 정리해보고자 한다. 1 . 내가 궁극적으로 성취하고 싶은 것은 무엇인가? 먼저 거창하게 말하자면, 사람과 사회에 실질적인 도움을 줄 수 있는, 사회 구성원들의 삶..
[RxJava] RxJava란 무엇인가? 요약왕 워너비로써 다시 RxJava가 무엇이냐, 빠르게 이해하기 위해 기존 자바와의 차이점으로 시작한다면 - Java는 객체지향 언어이고 RxJava는 반응형 언어이다. - RxJava가 등장한 이유는 Main Thread가 하는 일과, Thread간의 data flow를 개선 > 앱의 반응성, 효율성을 늘리는데 있다 - 또다른 등장 이유는 객체지향형 Thread 형태로는 Thread간에 경쟁구도에 빠지기 때문에 '나쁜일들' 이 벌어질 수 있다. - RxJava를 구성하는 큰 세가지 요소를 꼽자면 Observable, Scheduler, Observer 가 있다. - Observable 아이템에 수행할 수 있는 다양한 요소들은 Marble diagram으로 이해하자 https://rxmarbles.com..
[Unity] 유니티란 무엇인가? (나무위키 요약) 유니티에 대해 알아보고자 간단히 나무위키 문서를 보며 요약해 본 내용이다. 정리하고 나서 느끼는 바로는 일단 개발자에게 쉽고오픈되어 있고, 개발자 커뮤니티나 오픈 리소스가 많은 장점이 있으나 보안에 취약 및 멀티코어 쓰레딩 취약, 제한된 라이센스 비용등이 단점으로 부각된다? 정도 - 2010년부터 iOS, Android 등의 모바일 플랫폼으로 확장, 콘솔 게임기 시장으로도 확장 - 2012년 Unity 4 발표 > 2015년 unreal engine 4 완전 무료화와 함께 Unity 5 개인용 무료화 선언(완전무료 아님) - 비주얼 스튜디오, Rider와의 연동 가능 - Window 10 지원 > DirectX 12를 실험적으로 지원 - 최신버전 > 2018.2 (18년 12월 기준) - Unity 5 ..
[안드로이드] static View array 혹은 static Bitmap array를 사용할 때의 nullpointerException 제목대로 static view 혹은 Bitmap array를 반복 사용해야 하는 경우 memory 문제때문에 단순하게 array 자체를 null 처리했었는데, 이후 해당 array에 접근시 nullPointerException이 발생. >> static array를 onCreate 부분에서 init하지 않으면 그대로 null로 남아있는 것으로 보임. 해결책 >> A. onCreate 내부에서 static array를 재생성한다>> B. array 전체를 null처리하는 대신에 Arrays.fill(배열, null)로 내용을 비울 수 있음> View와 Bitmap의 경우 0을 할당 할시 오류가 발생하기 때문에 null로 배열을 채워야 함.
[안드로이드] 이미지를 포함한 커스텀 ListView 구현 단순히 텍스트를 포함하는 리스트 뷰를 만드는 데는 적은 수의 리소스와 코드로 이를 구현할 수 있지만, 이미지나 기타 다양한 내용을 담은 row item을 출력하고자 한다면, 좀 더 많은 준비물이 필요하다. 우선 구현하고자 하는 item의 구성과 그에 따른 준비물을 나열해보자면 ** 텍스트뷰 한 개와 이미지 한 개를 포함하는 row item을 쓰고자 할 때 ** 1. row item의 구성을 정의하는 xml 레이아웃 여기에는 텍스트뷰와 이미지뷰 하나가 레이아웃 구성으로 들어가며 당연히 필히 id값을 달아두어야 한다. 2. row item의 레이아웃을 코드에 링크 시켜주는 커스텀 BaseAdapter 3. 각 row item의 텍스트에 적용하고자 하는 String 배열 : 여기에는 각 item에 넣고자 하는..
[안드로이드] 다중 블루투스 연결 Application 클래스에서 해결하기 기본적으로 한 앱에서 블루투스 소켓을 생성할 때에 들어가는 시간이 있는데, 한개의 기기와의 통신을 수행할 때에는 크게 고려할 정도가 아닌 딜레이지만 세 개 이상의 기기와 소켓을 생성하여 통신을 수행할 때에 소켓을 open하는데 걸리는 시간은 눈에 띄게 배로 증가하게 된다. 우선 액티비티 내부에서 이런 작업들을 수행할 경우, 다음 액티비티로 넘어갈 때 이전 액티비티에서 소켓을 클로징해주지 않으면 잡을 수 없어 오픈과 클로징을 반복해야만 하는 번거로운 과정과 타임 딜레이가 생기는 상황이었다. 이를 해결하기 위해 액티비티들과 독립되 독자적으로 존재하는 Application 클래스가 생각이 났고, 여기에서 블루투스 소켓 통신을 유지하면 되지 않을까 하는 아이디어를 가지고 서치를 조금 했다. 아니나다를까 그런 사..