Android87 [Android] 안드로이드에서 유튜브 임베디드 적용하기 배경 이번에 프로젝트를 진행하면서 사용자들이 관심있어할만한 주제의 유튜브 영상들을 제공하고자 했습니다. 따라서 안드로이드 앱에서 유튜브를 임베디드 하는 방법을 공부해봤습니다! 설명에 앞서.. 저는 이번에 유튜브 developer 사이트를 참고하여 적용해볼까 고민을 했지만 생각보다 자세히 나와있지 않았습니다. https://developers.google.com/youtube/android/player 그래서 저는 PierfrancescoSoffritti가 만든 android-youtube-player 라이브러리를 사용했습니다. 구현 1. 우선 build.gradle(App)에 implementation을 추가해줍니다. implementation 'com.pierfrancescosoffritti.andro.. 2022. 8. 31. [Android] ScrollView 내 레이아웃 높이 가득 채우기 ScrollView의 속성 중에서 아래를 추가시켜주면 화면이 꽉 차는 것을 볼 수 있습니다! android:fillViewport="true" 2022. 8. 6. [Android] findViewById는 어떻게 동작하는걸까? 배경 binding을 사용하기 이전에 Android에서는 findViewById를 자주 사용해왔습니다. 하지만 findViewById를 반복적으로 호출하게 될 경우 성능 저하가 발생한다고 합니다. 왜 성능저하가 발생하는걸까요? findViewById Activity - findViewById @SuppressWarnings("TypeParameterUnusedInFormals") @Override public T findViewById(@IdRes int id) { return getDelegate().findViewById(id); } Activity의 경우 getDelegate()를 파고 들어가면 AppCompatDelegate를 생성하여 그것에서 findViewById를 실행합니다. // AppCo.. 2022. 8. 6. [Android] Event Bus (greenbot)에 대해 알아보자 배경 저는 이번에 FCM이 날아왔을 때 실시간으로 데이터가 변경되는 화면을 구현해야 했습니다. 처음에는 object 객체에 LiveData를 넣어 구현하였지만 LiveData를 object에 넣어 작업하면 lifecycle 문제가 발생할 것이라고 생각하였습니다. 다른 방식을 찾다보니 Event Bus를 활용하는 것이 좀 더 나은 방식이라고 판단하여 적용하게 되었습니다 설명에 앞서.. Event Bus 라이브러리에는 아래와 같이 2가지가 있습니다. 1. Square사의 Otto (https://github.com/square/otto) 2. greenbot의 EventBus (https://github.com/greenrobot/EventBus) 저는 2번를 사용하여 이것에 대해 정리해보고자 합니다. Ev.. 2022. 7. 29. [Android] 기본 구분선 추가하기 간단하게 구분선을 추가하려면 아래 코드와 같이 입력하면 얇은 구분선이 생깁니다 recyclerView.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) 2022. 7. 23. [Android Kotlin] Google Login & registerForActivityResult Prologue 이번에 TodoList 어플을 개발하기로 했는데 로그인 방식으로 우선 구글 로그인을 사용하기로 했습니다. Google Login API 1. Firebase에 프로젝트 연결 일단 구글 로그인을 하기 위해선 Firebase와 프로젝트가 연결되어 있어야 합니다. [Firebase] Android에 Firebase 연동하기 구글에 Firebase입력하시면 아래와 같은 창이 뜨게 됩니다. 이제 시작하기와 프로젝트 만들기를 순서대로 눌러주시면 됩니다. Firebase는 총 3단계로 이루어져 있습니다. 순서대로 차근차근 입력하 jgeun97.tistory.com 1-1. 프로젝트 연동은 했는데 SHA-1만 알고 싶다면 링크를 확인하세요 [Android] SHA-1 key 쉽게 확인하기 예전에는 Gr.. 2022. 7. 20. [Android] java.lang.IllegalStateException: Already executed 배경 retrofit을 이용하여 작업할 때 화면을 회전시키면 Already executed 에러가 발생하였습니다 해결방법 Java과 kotlin 해결방법 모두 같습니다 storeInfoCall.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { itemLiveData.postValue(response.body().getStores()); } @Override public void onFailure(Call call, Throwable t) { Log.e(TAG, "onFailure: ", t); itemLiveData.postValue(Collections.emptyList()); } }); ca.. 2022. 7. 18. [Android] RecyclerView 마지막 layout 잘림 현상 RecyclerView 작업을 하다보면 맨 마지막 item이 잘리는 경우가 발생합니다. 1. ConstraintLayout 으로 상위 Layout이 구성되어있는 경우 RecyclerView를 Bottom을 연결하지 않고 height에 wrap_content를 입력하여 구현하는 경우 바닥이 잘리게 됩니다. android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" 이럴 때는 layout_height="0dp"로 선언 후 bottom을 연결해주면 해결됩니다. android.. 2022. 7. 13. [Android] Gradlew Permission Denied 배경 작업을 하다가 Gradlew Build를 하기 위해 명령어를 입력했는데 Permission Denied가 떴습니다 해결방법 chmod +x gradlew를 터미널에 입력한 후 다시 gradlew build(or 명령어)를 해주시면 실행되는 것을 확인할 수 있습니다 2022. 7. 11. 이전 1 ··· 4 5 6 7 8 9 10 다음