본문 바로가기

kotlin41

[Kotlin][Android] BroadCast 이벤트 송신, 수신하기 안녕하세요. 이번 시간에는 안드로이드 4대 컴포넌트 가운데 하나인 BroadCast Receiver를 코틀린 언어로 간단히 사용하는 예제를 만들어 보도록 하겠습니다. BroadCast Receiver란? Android apps can send or receive broadcast messages from the Android system and other Android apps, similar to the publish-subscribe design pattern. 공식 홈페이지에서 'Broadcast Receiver'에 대한 설명을 인용해보았습니다. 즉 저희가 만들고 있는 앱이 안드로이드 시스템이나 다른 앱으로부터 메시지를 받을 수 있으며 그 방법은 '게시-구독' 디자인 패턴과 흡사하다고 합니다. 구체.. 2022. 2. 4.
[Kotlin][Android] FCM 메시지 받기 안녕하세요. 이번시간에는 FCM을 통해 메시지를 받는 방법에 대해서 포스팅을 작성하고자 합니다. FCM이란? Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션입니다. _(공홈) 특징으로는 각 플랫폼 환경별로 개발할 필요가 없이 Push 메시지를 전송할 수 있기 때문입니다. 또한 사용자는 낮은 배터리와 네트워크의 사용만으로도 메세지를 실시간으로 송수신 처리를 할 수 있다는 이점도 있습니다. 추가적인 FCM의 아키텍처를 확인하고 싶으시다면 아래 글을 확인해보세요. https://firebase.google.com/docs/cloud-messaging/fcm-architecture?hl=ko FCM 아키텍처 개요 | Firebase Google은 .. 2022. 1. 11.
[Kotlin][Android] TextInputLayout 사용하여 로그인 화면 만들기 앱을 개발할때마다 항상 만들게 되는 로그인화면 좀더 간단하고 빠르게 그리고 무엇보다 직관적으로 이쁘게 만들수는 없을까? 고민하게 되는데요. 안드로이드의 Material Library에서 TextInputLayout을 제공해 주고 있습니다. 그럼 인제 사용법을 한번 알아볼까요? 먼저 라이브러리를 추가해줍니다. build.gradle implementation 'com.google.android.material:material:1.2.1' 먼저 EditText에 Hint를 보여주고 포커스가 올때 Hint값이 TextInputLayout의 라벨로 이동합니다. activity_main.xml TextInputLayout 의 스타일은 기본적으로 두가지가 있습니다. 위에 보이는 스타일이 기본 스타일인 FilledB.. 2021. 12. 15.
[Kotlin][Android] 앨범 사진 이미지 뷰에 띄워주기 안녕하세요. 이번 시간에는 앨범 사진을 이미지 뷰에 띄워주는 것을 구현해보도록 하겠습니다. 저번에 카메라에서 찍은 사진을 이미지 뷰에 띄워준 포스팅의 연장선입니다. 아직 전 포스팅을 안 보신 분이 있다면 먼저 읽고 오면 좋겠네요 ^^ https://stickode.tistory.com/302 개발 순서는 다음과 같습니다. 1. XML 파일 수정하기 2. 권한 승인 요청하기 3. 권한 승인 시 앨범 실행 4. 앨범 선택 이미지 uri 값을 받아 이미지뷰에 띄워주기. 1. XML 파일 수정하기 2. 권한 승인 요청하기 권한을 요청하기 전에 필요한 권한을 Manifest에 추가해주도록 합시다. 앨범 버튼을 클릭했을 때 권한 요청을 하도록 아래와 같이 작성해줍시다. val PERMISSION_Album = 10.. 2021. 12. 13.
[Kotlin][Android] 카메라로 찍은 사진 이미지 뷰에 띄워주기 안녕하세요. 이번시간에는 코틀린으로 카메라로 이미지를 받아와 이미지 뷰에 띄워주는 기능을 구현해보도록 하겠습니다. 개발 순서는 다음과 같습니다. 1. XML 파일 만들기 2. 권한 승인 요청하기 3. 권한 승인 시 카메라 실행 4. 카메라 실행후 결과 값을 받아 이미지뷰에 띄워주기. 1. XML 파일 만들기 (activity_main.xml) 2. 권한 승인 요청하기 권한을 요청하기 전에 필요한 권한을 Manifest에 추가해주도록 합시다. 카메라 버튼을 클릭했을 때 권한 요청을 하도록 아래와 같이 작성해줍시다. // 카메라 버튼 클릭 리스너 구현 val cameraBtn = findViewById(R.id.buttonCamera) as Button cameraBtn.setOnClickListener(V.. 2021. 12. 3.
[Kotlin][Android] 네트워크 모니터링 기능 안녕하세요. 이번 시간에는 사용자가 네트워크 환경에서 벗어난 경우에 알림 메시지를 띄워주는 기능을 구현하도록 하겠습니다. 우선 인터넷을 감지하는 녀석이 누군지 알아봐야겠죠? 안드로이드에서는ConnectivityManager Class를 통해 사용자의 모바일 기기가 인터넷에 연결되어 있는지 확인하고 연결되어 있다면 어떤 유형의 연결이 설정되어 있는지 확인할 수 있으며 추가적으로 인터넷이 끊긴 상태또한 알 수 있습니다. https://developer.android.com/training/monitoring-device-state/connectivity-status-type?hl=ko 연결 상태 및 연결 측정 모니터링 | Android 개발자 | Android Developers 연결 상태 및 연결 측정 모.. 2021. 11. 27.
[Kotlin][Android] 트렌디한 SlidingUpPanel Layout 적용하기 요즘 나온 앱들 중 트랜디한 앱들 대부분이 사용하는 레이아웃 인데요 클럽 하우스에서도 보면 하단에 네비게이션 버튼이 나열되어 있지 않고 레이아웃 하나가 밑에서 올라옵니다. 바텀 쉬트와 다를게 뭐가 있을까 비교해 보면서 진행해 보면 좀더 재미있겠죠? 그럼 SlidingUPPanel Layout을 적용하러 가볼까요? http://github.com/hannesa2/AndroidSlidingUpPanel GitHub - hannesa2/AndroidSlidingUpPanel: It provides a simple way to add a draggable sliding up panel (popularized by Google Mus It provides a simple way to add a draggable .. 2021. 11. 7.
[Kotlin][Android] 블루투스 On/Off 제어하기 오늘은 블루투스를 설정창에서 제어하는게 아닌 저희가 만든 앱 내에서 제어하는 기능을 만들어 보도록 하겠습니다. 너무 당연히 사용하던 블루투스가 어떤 기술인지 궁금하지 않으세요? 블루투스란 무엇일까요? 블루투스란 휴대폰, 노트북, 이어폰, 헤드폰등의 휴대기기를 서로 연결하여 정보를 교환하는 근거리 무선 기술(10M이내)의 표준을 뜻합니다. 블루투스의 무선 시스템은 ISM(Industrial Scientific and Medical) 주파수 대역인 2400~2483.5MHz를 사용 하고 있습니다. 이중에서 위 아래 주파수를 쓰는 다른 시스템의 간섭을 막기 위해서 2400MHz 이후 2MHz, 2483.5MHz 이전 3.5MHz까지의 범위를 제외한 2400MHz 이후 2483.5MHz 이전 3.5MHz까지의 .. 2021. 9. 5.
[Kotlin][Android] SharedPreference 사용법 SharedPreference란? SharedPreferences는 간단한 값을 저장할 때 주로 사용합니다. 초기 설정 값이나 자동 로그인 여부 등 간단한 값을 저장할 때 DB를 사용하면 복잡하기 때문에 SharedPreferences를 사용하면 적합합니다. SharedPreferences는 어플리케이션에 파일 형태로 데이터를 저장한다. 데이터는 (key, value) 형태로 data/data/패키지명/shared_prefs 폴더 안에 xml 파일로 저장된다. 해당 파일은 어플리케이션이 삭제되기 전까지 보존된다. SharedPreference 사용하기 SharedPreferences는 앱의 어디서든 전역적으로 사용하기 때문에 싱글톤 패턴을 사용해서 어디서든 접근 가능하게 만드는 것이 좋습니다. https.. 2021. 8. 24.