Android51 [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. [Android] Postman으로 FCM Push 알림 보내기 Postman을 이용하여 Firebase Cloud Message(FCM) 푸쉬 알림을 보내보도록 하겠습니다. Postman은 https://www.postman.com/ 에서 다운받으실 수 있습니다. 1. Firebase에서 서버키 가져오기 Firebase 홈페이지에서 프로젝트 대쉬보드 -> 설정버튼 -> 클라우드 메시징을 클릭하시면 서버키를 확인할 수 있습니다 2. 디바이스 토큰 가져오기 Activity에서 아래의 코드를 추가한 후 실행합니다 FirebaseMessaging.getInstance().token.addOnCompleteListener { task -> if (task.isSuccessful) { println("token: ${task.result}") } } 3. Postman으로 F.. 2022. 7. 9. [SWM Mobile] CommonListAdapter (6/30) 이번 스터디에서는 주어진 json을 보고 어떻게 설계를 할 것인가에 대해 고민하는 시간을 갖고 그거에 따른 구현을 고민하며 페어 프로그래밍을 통해 다른 동료들이 시키는대로 코드를 짜보는 시간을 갖게 되었습니다. [Android] Multi-View Type을 지원하는 RecyclerView 구현하기 배경 기존에는 하나의 RecyclerView에 같은 타입의 뷰만 띄웠지만 여러 타입의 뷰를 띄워야 하는 경우도 있습니다. 이런 경우 RecyclewView.Adapter를 상속하는 CommonAdapter를 구현하여 Multi-View Type이 적용.. jgeun97.tistory.com 이번 스터디를 통해 저는 한 번도 Multi-View Type에 대해 고민해본 적이 없고 android 공식 홈페이지에서.. 2022. 7. 6. [SWM Mobile] CommonListAdapter - JSON (6/23) 배경 데이터 통신을 통해 받아오는 json이 정말 다양한 형식으로 제공됩니다. 이에 따라 adapter도 각각 ViewHolder를 생성하여 데이터를 바인딩해줍니다. 하지만 뷰타입의 종류를 정하고 그거에 따른 데이터를 제공해준다면 매번 ViewHolder를 생성하는 것이 아닌 정해진 ViewHolder를 사용해서 진행할 수 있습니다 스터디 첫 번째로 그림을 보고 Multi-View Type을 지원할 수 있는 형식으로 json을 만들어봅니다. { data: [ { "viewType": "ONE_LINE_TEXT", "title": { "text": "Title1", "style" "bold", "size": "14sp" } }, { "viewType": "ONE_IMAGE", "image": { "url".. 2022. 7. 4. [Android] Multi-View Type을 지원하는 RecyclerView 구현하기 배경 기존에는 하나의 RecyclerView에 같은 타입의 뷰만 띄웠지만 여러 타입의 뷰를 띄워야 하는 경우도 있습니다. 이런 경우 RecyclewView.Adapter를 상속하는 CommonAdapter를 구현하여 Multi-View Type이 적용되도록 하는 방법을 알아보겠습니다 Data는 아래와 같이 viewType과 type에 따른 viewObject가 제공됩니다 { "viewItems": [ { "viewType": "TWO_LINE_TEXT", "viewObject": { "titleText": "서울대입구역", "descText": "서울특별시 관악구 남부순환로 지하 1822" } }, { "viewType": "ONE_LINE_TEXT", "viewObject": { "titleText":.. 2022. 7. 4. 이전 1 2 3 4 5 6 다음