개발
-
(jetpack) LiveData개발/Android 2021. 7. 16. 22:15
LiveData란? LiveData는 Data의 변경을 관찰 할 수 있는 DataHolder 클래스 일반적인 Observable과는 다르게 LiveData는 안드로이드 생명주기를 알고있음 즉 액티비티나, 프레그먼트, 서비스 등과 같은 안드로이드 컴포넌트의 생명주기를 인식하며 그에 따라 LiveData는 활성상태(active)일때만 데이터를 업데이트 함 LiveData는 Observer 객체와 함께 사용 가능 LiveData가 가지고 있는 데이터에 어떠한 변화가 일어날 경우, LiveData는 등록된 Observer 객체에 변화를 알려주고, Observer의 onChanged() 메소드가 실행되게 됨. LiveData의 장점 Data와 UI간의 동기화 LiveData는 Observer 패턴을 따름, 그에 ..
-
Android 데이터 직렬화개발/Android 2021. 7. 15. 18:56
데이터 직렬화 직렬화란? 직렬화란 메모리 내에 존재하는 data를 보다 쉽게 전송 및 전달 하기 위하여 byte 형태로 나열하는 것을 직렬화라 한다. Android에서 컴포넌트간의 데이터 전달을 할때는 intent를 사용하여 data를 전달하는데 이때 객체형태의 데이터를 보낼때 직렬화가 필요하다. Serializable Serializable 은 자바의 표준 인터페이스로 데이터 클래스에서 해당 인터페이스를 상속하여 사용한다 장점 Serializable 인터페이스만 상속받으면 자동으로 직렬화를 해주기 때문에 간편하게 사용할 수 있다. 단점 속도가 굉장히 느림 (성능 이슈) Parcelable Parcelable은 자바 기반이 아닌 Android Sdk에서 직렬화를 지원해주는 인터페이스로 안드로이드에서 사용..
-
android notification 즉시응답개발/Android 2021. 7. 15. 18:44
# android 7.0 부터 위와 같이 notification이 올경우 즉시 답장을 보낼수 있도록 direct reply action을 지원하고 있습니다. remoteInput 객체를 아래와 같이 만듭니다. KEY_TEXT_REPLY는 원하시는 id값으로 만드시면 됩니다. DirectReplyReceiver라는 브로드캐스트를 저는 만들어 두었는데, 아래와 같이 intent를 만들게 되면 즉시 답장을 할시 해당 리시버의 onReceiver 콜백으로 가게 됩니다. 보낼 데이터가 있다면 replyIntent에 putExtra하여 보내면 됩니다. 전체 코드 replyaction 을 만들고 만들어 두신 notification builder에 addAction을 하시면 정상적으로 작동하게 됩니다. 메신저앱에 해당..
-
android 이미지 다중선택개발/Android 2021. 7. 13. 20:51
현재 메신저 앱을 만들고 있는중인데, 이미지를 다중 선택하여 전송하는 기능을 구현하여 한번 정리해 보려한다. intent 부분 val intent = Intent() intent.type = "image/*" intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent.action = Intent.ACTION_PICK requestActivity.launch(intent) intent에 Intent.EXTRA_ALLOW_MULTIPLE 해당 값을 true로 넣어주어야 멀티초이스를 지원하게 됨. requestActivity 부분 private val requestActivity = registerForActivityResult(ActivityResultContr..
-
git personal access token 사용하기개발/Git 2021. 7. 13. 15:33
최근에 아래와 같은 메일이 왔었다. 해석 하자면 git repo에 접근할때 이제처럼 비밀번호와 id를 입력하는 접근은 8/13일부터 막힌다는 내용. git에서 권장하는 내용은 personal access token을 발급 받아 해당 토큰으로 access하길 권장하였다. 토큰 발급 받는방법은 github문서에 친절히 나와 있어 아래 링크대로 하니 쉽게 발급받을수 있었다. Creating a personal access token 토큰을 발급 받고 password 대신에 토큰번호 입력해서 정상적으로 push/pull 되는것을 확인 하였지만 토큰번호기억하는것은 불가능 하기에 토큰번호를 자동으로 가져오게 끔 설정 하는것도 찾아 보았다. 이미 git project가 clone된 상태라면 git remote set..
-
(jetpack) ROOM 사용 방법개발/Android 2021. 7. 12. 18:09
(jetpack) ROOM 사용 방법 Android에서 로컬로 데이터베이스를 사용하는 고전적인 방법으로는 sqlLite가 있다. 더 간단하게 메모장처럼 사용하는 방식은 sharedPreference가 있다. android develop 사이트에서 sqlLite에 대한 설명 현재는 위와같은 이유로 jetpack 라이브러리에서 Room 라이브러리를 만들고 sqlite대신 사용하기를 권장하고 있음 Room DB 의 장점 Room은 SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하는 동시에 SQLite를 완벽히 활용가능. 상당한 양의 구조화된 데이터를 처리하는 앱은 데이터를 로컬로 유지하여 이점을 얻을 수 있다.. 가장 일반적인 사용 사례는 관련 데이터를 캐싱하는 것. 이런 방식으..
-
webRtc란개발/기타 2021. 7. 12. 02:21
1. webrtc란 WebRTC(Web Real-Time Communications) 웹 브라우저 상에서는 어떠한 플러그인도 필요 없이 음성 채팅과 화상채팅, 데이터 교환까지도 가능하게 하는 기술 RTCPeerConnection 서로 어떤 형식의 데이터를 주고 받을 지를 협의(negotiation)이 필요 (이러한 negotioation이 필요하다고 판단될시) negotiationneeded이벤트를 발생시킴 negotiationneeded 이벤트의 핸들러에서 이 협의 절차를 수행해주어야함 SDP offer / answer 교환 (협의절차) 위 다이어그램처럼 message를 주고 받기 위해서는 signaling server 가 구현되어야 한다. webRTC로 p2p 통신을 시작하기 전, 서로 어떻게 정보를..
-
Bitmap / Vector의 차이점개발/기타 2020. 12. 27. 15:21
최근 컴퓨터에서 이미지를 표현하는 방식에 대해 공부했던 적이 있었는데, 공부했던 내용을 간략히 요약하여 올려봅니다. 컴퓨터에서 이미지를 표현하는 방식은 크게 2가지로 구분 Bitmap 방식 / Vector 방식 1. Bitmap 서로 다른 많은 점(픽셀)들의 조합으로 그려지는 이미지 표현 방식 장점 비트맵 이미지는 정교하고 화려한 표현 가능 (주로 사진 이미지에 사용) 단점 bitmap 이미지는 크기를 늘리거나 줄이면 (혹은 회전을 시키면) 원본 이미지에 손상이 갈 수 있음. 흔히 보고 다루는 이미지 파일 확장자 대부분은 bitmap 방식 jpg jpeg png gif 2. Vector 점과 점을 연결하여 수학적 원리로 그림을 그려 표현하는 방식 장점 특성상 이미지의 크기를 늘리고 줄여도 손상되지 않음 ..