본문 바로가기

안드로이드 코틀린168

[Kotlin][Android] Bottom Sheet 프래그먼트 크기 확장하기. 안녕하세요. 이번시간에는 Bottom Sheet 프래그먼트의 크기를 커스텀해보는 시간을 가져보도록 하겠습니다. 진행 방향은 다음과 같습니다. 1. Bottom Sheet이 무엇인가? - Bottom Sheet의 크기를 조절할려면? 2. Bottom Sheet 만들기 2-1) MainActivity 만들기 2-2) Fragment 만들기 1. Bottom Sheet이란 무엇인가? 우선 우리가 만들고자 하는 Bottom Sheet가 무엇인지 짚고 넘어가야겠죠? Bottom sheets are surfaces containing supplementary content that are anchored to the bottom of the screen. Material Design에서 정의한 Bottom Shee.. 2021. 12. 27.
[Kotlin][Android] 기본으로 표시되는 툴바 커스텀하기 안녕하세요! 이번 포스팅에서는 액티비티를 생성하면 기본으로 표시되는 툴바를 커스텀해보겠습니다. 따로 툴바를 레이아웃에서 생성하여 세팅하는 방법도 있지만, 간단하게 제공되는 툴바를 사용하고자 하면 다음과 같은 방법으로 커스텀하시면 됩니다. 커스텀하는 메소드는 다음과 같습니다. 스틱코드를 통해 빠르게 불러올 수 있습니다. 안드로이드 코틀린 - Stickode 스틱코드 stickode.com fun setToolbar() { supportActionBar?.setDisplayHomeAsUpEnabled(true) } fun setToolbar(subtitle: String, hasHome: Boolean = false) { supportActionBar?.apply { if (hasHome) setToolba.. 2021. 12. 18.
[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] 입력값의 태그 추출하기 안녕하세요! 이번 포스트에서는 #으로 시작하는 태그를 추출하는 기능을 만들어보겠습니다. 환경: android sdk 28, viewBinding 사용 먼저 간단한 레이아웃을 만듭니다. activity_find_tag.xml 다음으로 텍스트에서 태그를 추출해 태그들을 반환하는 getTags()를 만들어보겠습니다. 스틱코드로 간편하게 메소드를 구현할 수 있습니다. 안드로이드 코틀린 - Stickode 스틱코드 stickode.com private fun getTags(text: String): Sequence { val pattern = """#([^#\s]+)""" // 태그 추출 정규식 val regex = pattern.toRegex() val matches = regex.findAll(text) re.. 2021. 12. 14.
[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] 초대 메세지 공유하는 기능 만들기 안녕하세요! 이번 포스팅에서는 유저의 닉네임을 포함한 초대 메세지를 공유하는 기능을 만들어보겠습니다. 이 기능은 안드로이드 sdk 28에서 테스트되었습니다. 간단하게 닉네임을 작성하고, 초대 메세지를 전송할 수 있는 레이아웃을 만들어보겠습니다. activity_invitation.xml 다음으로, 초대하기 버튼을 클릭했을 때, 초대메세지를 전송하는 액티비티를 만들어보겠습니다. share() 메소드는 스틱코드를 이용하면 빠르게 구현할 수 있습니다. [AOS][Kotlin] 인텐트 활용하기 - Stickode 스틱코드 stickode.com InvitationActivity.kt import android.annotation.SuppressLint import android.content.Intent imp.. 2021. 11. 24.
[Kotlin][Android] ViewModel을 이용한 타이머 만들기. 안녕하세요. 이번 시간에는 App Architcture Component에서 지원하고 있는 라이브러리를 이용해서 리사이클러뷰를 구현해 볼려고 합니다. App Architecture Componenet에는 ViewModel, LiveData, lifecycle등이 있는데요. 각 요소들을 왜 써야 하는지 공홈을 통해 확인해 보도록 하겠습니다. 우선 첫번째로 Lifecycle에 대해 이해가 필요합니다. Lifecycle package가 왜 나왔을까요? 안드로이드는 Activity가 프로세스의 진입점으로 각 액티비티가 독립적으로 실행될 수 있는 단위가 됩니다. 그렇다 보니 Activity가 더 이상 사용하지 않을 때 Acitivty에 사용한 자원들을 해제 해줘야 모바일의 제한된 물리적 자원을 효율적으로 사용할 .. 2021. 11. 16.