본문 바로가기
728x90

안드로이드24

Android ViewModel Test - Junit4 단위 테스트가 무엇인지 이해하고, 적용해 본 경험이 있는 사람을 대상으로 설명하겠습니다. 이 글을 읽고 ViewModel 테스트와 친해지길 바랍니다! 화이팅! Android ViewModel Test AAC ViewModel은 사전 준비 없이 테스트하게 된다면 테스트에 실패합니다. 여기에는 크게 두 가지 경우가 있습니다. LiveData value 변경에 대한 테스트, Coroutine과 같은 비동기 작업에 대한 테스트입니다. 두 경우에 대한 실패 원인은 같습니다. 이는 테스트가 MainThread에서 작동하지 않는다는 것입니다. WorkerThread 테스트는 WorkerThread에서 작동합니다. 테스트는 MainThread에서 수행되지 않고, WorkerThread에서 작동합니다. 이것이 왜 Liv.. 2023. 9. 6.
Intent 알아보기 Intent란? 영어 단어적 의미: 목표, 목적, 의지 안드로이드 공식 문서: 메시징 객체. 다른 Component로 작업을 요청하는 데 사용. 인텐트가 Component 간 통신을 촉진하는 데는 여러 방식이 있지만 기본적인 사용 사례는 크게 세 가지로 나눌 수 있습니다. (액티비티/서비스 시작, 브로드캐스트 전달 등) 즉, Component를 실행하기 위해 시스템에 넘기는 정보. Component(Content provider 제외) 간의 작업 수행을 위한 정보를 전달하는 역할. Intent의 유형과 그에 따른 실행 과정 Explicit intents (명시적 인텐트) 실행하고자 하는 컴포넌트의 클래스명을 Intent에 담아 명시하는 방법. 주로 동일 앱에서 다른 Component를 실행시킬 때 사용.. 2023. 6. 15.
[android] Context를 가지는 객체를 singleton으로 관리하기 아래의 코드들을 실행시키기 위한 MainActivity.kt와 activity_main.xml 더보기 class MainActivity : AppCompatActivity() { private val settingSwitch: SwitchCompat by lazy { findViewById(R.id.notification_setting_switch) } private val settingTv: TextView by lazy { findViewById(R.id.textView) } private val alarmSetting: NotificationSetting by lazy { NotificationSetting.getInstance(this) } override fun onCreate(savedInst.. 2023. 5. 22.
[android] [kotlin] Notification사용하기 (단순한 상단바 알림 만들기) 다양한 앱에서 흔히 볼 수 있는 상단바에 떠있는 알람을 구현해보겠습니다. 아주 간단하고 단순한 예제이며, 화면상의 알림이 없고 상단바에만 생성되는 예제입니다. 화면의 알람, 알림의 구성, 알림에서 빠른 입력 등을 이용하거나 커스텀 해주고 싶다면 아래의 참고란을 확인해주세요. dependencies 추가적으로 스타일을 주거나할 때 dependencies를 주기도 하지만 우선 정말 단순한 예제이기때문에 필요없습니다. 1. 알림을 위한 채널 생성 private fun createNotificationChannel(channelId: String, name: String, channelDescription: String) { // Create the NotificationChannel, but only on A.. 2022. 2. 22.
[android][firebase] playstore에 출시 후 로그인이 안되는 현상 문제 컴퓨터와 빌드폰을 직접 연결하여 실행할 때는 아무 문제 없던 google 로그인 기능이 playstore에 출시 후 playstore에서 다운받아 실행할 때에는 로그인이 되지 않았다. 이전에도 처음으로 로그인 기능을 사용할 때 sha1 인증서 키 문제로 로그인이 안된 것이 생각나 인증 키의 문제일 것이라 생각하고 찾아보았고, play console의 인증 키가 따로 있다는 것을 알았다. 해결 이전에도 처음으로 로그인 기능을 사용할 때 sha1 인증서 키 문제로 로그인이 안된 것이 생각나 인증 키의 문제일 것이라 생각하고 찾아보았고, play console의 인증 키가 따로 있다는 것을 알았다. play console의 설정>앱 무결성에서 인증키를 복사해 firebase의 프로젝트 SHA인증서에 추가.. 2021. 9. 24.
[android] play console 버전 코드 에러 문제 1 버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요. play console에 출시한 앱을 수정하여 새로운 버전으로 올리려고 하였으나 문제가 발생하였다. 이는 수정하기 전과 후의 안드로이드 앱 버전이 동일하기 때문에 play console에 올릴 수 없는 것임을 의미한다. 해결 build.gradle (:app)에서 안드로이드 앱의 버전을 수정해주어야 한다. 2021. 9. 24.
startActivityForResult deprecated in kotlin (firebase google login) 문제 firebase google 로그인을 사용하던 중 Activity의 결과를 처리하는 startActivityForResult가 deprecated 된 것을 확인할 수 있었다. deprecated는 그대로 사용해도 되지만 오류가 발생하거나 호환이 되지 않는 등의 문제가 발생할 수 있으니 최신 문법을 적용시켜주는 것이 좋다. 해결 https://www.youtube.com/watch?v=gCrVwjh4LiY https://techtauras.xyz/firebase-google-auth-in-android 검색을 통해 위의 두 사이트를 찾아 해결할 수 있었다. requestCode는 필요 없는걸까? 라는 고민을 했는데 나와 같은 생각을 한 사람의 질문과 글 작성자의 답변을 보고 이해할 수 있었다. 이전에.. 2021. 8. 21.
lifecycleScope 사용 (firebase를 사용하던 중 정보의 흐름(?)이 이상함!) 문제 처음으로 Firebase를 이용하면서 어떻게 해야할지 고민되는 문제를 만났다. 아래와 같은 상황이었다. 비동기 방식이 의심되어 검색을 해보거나 질문을 해서 역시 비동기 방식때문이라는 것을 알았다. 해결 https://developer.android.com/topic/libraries/architecture/coroutines?hl=ko 수명 주기 인식 구성요소와 함께 Kotlin 코루틴 사용 | Android 개발자 | Android Developers Kotlin 코루틴은 비동기 코드를 작성할 수 있게 하는 API를 제공합니다. Kotlin 코루틴을 사용하면 코루틴이 실행되어야 하는 시기를 관리하는 데 도움이 되는 CoroutineScope를 정의할 수 있습니다. 각 developer.androi.. 2021. 8. 20.
[android] Activity Lifecycle https://developer.android.com/guide/components/activities/activity-lifecycle 활동 수명 주기에 관한 이해 | Android 개발자 | Android Developers 활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페 developer.android.com Acvitity 생명 주기란? 액티비티의 생성부터 소멸까지의 주기이다. 안드로이드 응용프로그램은 화면이 작아 동시에 여러 개의 액티비티가 나올 수 없어서 앞에 나오는 화면 하나만 활성화된 상태이고 나머지는 모두 비활성화된 상태로 남게 된다. 그에 따른 액티.. 2021. 6. 8.
728x90