본문 바로가기

안드로이드 코틀린170

[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.
[Android Kotlin] Option Menu Option Menu를 생성하는 법을 알아보도록 하겠습니다. 1. xml을 이용해서 만들기 2. 코드를 이용해서 만들기 이렇게 두 가지 방법으로 만들 수 있습니다. 스틱코드에 코드 포스팅 해 놓았으니 참고하시면 좋을 것 같습니다.^^ https://stickode.com/detail.html?no=2563 스틱코드 stickode.com 1. 먼저 옵션메뉴로 사용할 xml을 만들어야 합니다. 1) res폴더에 menu 폴더를 만듭니다. 2) res폴더에 menu 폴더에서 option_menu.xml 을 생성하고 아래 코드를 작성해 줍니다. option_menu.xml 3. activity_main.xml 4. 메뉴를 앱바에 붙이기 위해서는 MainActivity에 작성해야 한다. 5. 스틱코.. 2021. 11. 8.
[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] Logger 라이브러리 사용하기 안녕하세요. 이번 시간에는 코틀린에서 로거 라이브러리를 사용하는 방법을 알려드리겠습니다. 자바를 통해 로그 찍는 방법은 아래 링크를 통해 확인해 주세요. https://stickode.tistory.com/257 저는 로그 라이브러리를 자주 사용하는데요. 그 이유는 다음 세 가지가 있습니다. 1. 코드의 흐름을 파악하기 쉽다. - 다른 클래스에 있는 메서드를 이용한 로직 같은 경우 흐름 파악하기가 더 용이합니다. 2. JSON 형태의 데이터를 좀 더 쉽게 찍을 수 있다. 3. Logcat에 찍힌 로그를 클릭하면 스크립트 위치로 바로 이동할 수 있습니다. 로거를 이용할 수 있는 라이브러리는 아래 페이지에서 확인 할 수 있습니다. https://github.com/orhanobut/logger GitHub .. 2021. 11. 6.
[Kotlin][Android] 이메일 보내기 기능 만들기 안녕하세요! 이번 시간에는 인텐트를 활용해 이메일을 보내는 기능을 만들어보겠습니다. 구현은 안드로이드 버전 28에서 진행했습니다. 먼저 레이아웃을 만들어줍니다. activity_send_mail.xml 다음으로, 기능의 핵심이 되는 메일 전송 메소드를 만들어줍니다. 스틱코드에서 간편하고 빠르게 메소드 코드를 가져오실 수 있습니다. [AOS][Kotlin] 인텐트 활용하기 - Stickode 스틱코드 stickode.com // 메일 전송 메소드 @SuppressLint("QueryPermissionsNeeded") private fun sendEmail(content: String) { val emailAddress = "stickode@gmail.com" val title = "메일 제목입니다" val.. 2021. 11. 3.
[Kotlin][Android] 리사이클러뷰 아이템 스와이프 구현하기 안녕하세요! 이번 포스팅에서는 아래와 같이 리사이클러뷰의 아이템을 스와이프했을 때의 동작을 구현해보겠습니다. 리사이클러뷰 아이템을 클릭했을 때의 동작을 정의하는 ItemTouchHelper.Callback 클래스를 커스텀하여 구현하는 방법도 있지만, 이번 포스팅에서는 github에 있는 스와이프 레이아웃 오픈소스를 사용해보겠습니다. 오픈소스를 사용하기 위해 앱수준 gradle에 다음과 같이 추가해줍니다. dependencies { ... // 스와이프 implementation 'com.chauthai.swipereveallayout:swipe-reveal-layout:1.4.1' } 구현의 핵심이 되는 리사이클러뷰의 아이템 레이아웃을 만듭니다. item_swipe2.xml 이미지뷰에 사용한 이미지는 R.. 2021. 10. 19.
[Kotlin][Android] 안드로이드 - Radio Button, Radio Group 사용법 [Java][Android] 안드로이드 - Radio Button, Radio Group 사용법 (tistory.com) [Java][Android] 안드로이드 - Radio Button, Radio Group 사용법 라디오 버튼이란? 라디오 버튼은 여러 옵션 중 한 가지 옵션을 선택할 수 있도록 만들어주는 뷰입니다. 각 라디오 버튼을 하나의 라디오 그룹(Radio Group)으로 그룹화해줘야 합니다. 만약, 제시할 stickode.tistory.com 코틀린 버전의 Radio Button, Radio Group 사용법입니다. 라디오 버튼이란? 라디오 버튼은 여러 옵션 중 한 가지 옵션을 선택할 수 있도록 만들어주는 뷰입니다. 각 라디오 버튼을 하나의 라디오 그룹(Radio Group)으로 그룹화해줘야 .. 2021. 10. 9.
[Kotlin][Android] chip 동적 추가 삭제하기 안녕하세요, 이번 포스팅에서는 앱 화면에서 바로바로 chip을 추가하고 삭제하는 기능을 만들어보겠습니다. (코드는 안르도이드 sdk 24 버전 기준으로 작성되었습니다) 포스팅에서 작성된 코드는 스틱코드에서 확인하실 수 있습니다. [AOS][Kotlin] chip 동적 추가 - Stickode 스틱코드 stickode.com 레이아웃 (activity_main.xml) 액티비티 (MainActivity.kt) class MainActivity : AppCompatActivity() { private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?.. 2021. 10. 7.