Skils/Android

프로젝트에서 Network 연결 상태에 따라 API 동작 및 화면을 갱신해야 했습니다. 여러 가지 방법이 있지만, 저는 공식문서에 나와있는 ConnectivityManager를 통해서 해결했습니다. 네트워크 상태 읽기 | Connectivity | Android Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 네트워크 상태 읽기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android에서는 앱이 연결의 동적 변 developer.android.com 설명하기 전 네트워크 사용을 위해선 안드로이드 매니페스트에 다음 권한을 포함해야 합니다. 해당 권한은 음악, 갤러리 접근과 달리 일반권한이기 때문에 런타임에 요청할 필요가 없습..
프로젝트를 하면서 Ui State와 Ui Event를 통해서 데이터에 대한 변화와 사용자 입력에 대한 변경사항을 UI에서 반영하도록 코드를 작성했습니다. 하지만 기존 코드의 문제점(?)과 제가 UI Layer에 대한 이해도와, Ui State, Ui Event 코드를 잘못이해한 거 같아서 UI layer에 대한 역할과 state, event에 대해서 공부해봤습니다 ㅎ 개인적으로 공부하고 적은 글이라는 점이라서 정확하지 않을 수 있어요 UI Layer 공식문서에서 권장하는 Clean Architecture중 하나의 영역입니다. UI 레이어에 대한 역할은 다음과 같습니다. 화면에 어플리케이션 데이터를 표시하고, 사용자 상호작용의 기본 지점으로의 역할을 수행하는 것 말이 조금은 딱딱한 감이 있는데, 쉽게 말하..
개요 프로젝트에서 코루틴을 많이 사용했지만, 코루틴에 대해서 정확하게 알지 못하고 기존 코드를 그대로 사용한 적이 많았다. 공식문서에서 비동기 작업으로 코루틴을 권장하고, 애플리케이션 특성상 비동기 작업이 중요한 만큼 한번 자세히 다룰 필요성이 있다고 느꼈다. 코루틴에 대해서 설명하기전에 비동기 작업이 왜 중요한지, 어떤 것인지 알고 넘어갈 필요성이 있다. 여기선 동시성과 병렬성이라는 단어의 차이를 알 필요성이 있다. 동시성 vs 병렬성 동시성 둘 이상의 작업이 동시에 실행되는것을 의미한다. 여기서 말하는 동시는 정확하게 같은 시간에 실행되는 것이 아닌 동시에 실행하는 것처럼 보인다는 의미이다. 예를 들어 N명의 사람이 하나의 큰 작업을 하는데, 동시에 작업을 하는것이 아닌 1명씩 돌아가면서 작업을 하는..
개요 Activity와 Fragment는 Android에서 화면을 구성하는 두 개의 클래스이다. 안드로이드 개발을 하면서 어떤 화면에선 Activity를 사용하고, 어떤 화면에선 Fragment를 사용하곤 하는데 각각의 특징을 통해서 화면을 구성하는데 Activity와 Fragment를 사용하는 기준을 공부하고자 한다. 그리고 공부한 것 내용을 토대로 개인적인 생각을 적은 글이라 너무 맹신하진 않았으면 좋겠습니다..ㅎ Activity 우선 Activity에 대해서 많은 사람들이 알고 있다고 생각합니다. Android의 4대 컴포넌트 중의 하나이며, 앱이 사용자와 상호작용을 하는 UI를 그리는 창을 제공해 줍니다. 흔히들 Android Studio에서 처음으로 프로젝트를 생성할 때 만들어지는 것이 Main..
Android 프로젝트를 한다면 가장 많이 사용하는 view가 RecyclerView가 아닐까.. 싶을 정도로 굉장히 많이 사용되는거 같습니다 이번 프로젝트를 하면서 어떻게 하면 아이템을 효과적으로 관리할 수 있을까에 대해서 고민해봤고, ListAdapter에 대해서 공부해 봤습니다. 제 목표는 위 사이드바에서 선택한 아이템에 대해서 UI적으로 변화를 주고 싶었습니다.ㅎㅎ ListAdapter RecyclerView에서 사용하는 Adapter는 RecyclerView.adapter 와 조금 더 확장된 개념인 ListAdapter가 있습니다. 간략하게 RecyclerView.adapter를 그냥 Adapter라고 부르겠습니다. Adapter와 ListAdapter의 차이점 아이템이 변화할 때 수동으로 변화..
리사이클러뷰를 이용해서 아이템마다 체크박스를 달아주고 아이템에 대한 체크박스 이벤트를 처리해야 했다. 아이템을 체크하고 스크롤을 내리다가 올라가면 원래 위치에 해당하는 체크박스에 대한 이벤트 처리가 사라진 것을 확인할 수 있었다. 왜??? 일정 스크롤 이상으로 움직이면 리사이클러뷰가 아이템을 재생성하기 때문이었다. 즉 viewHolder가 재활용돼서 생긴 문제라고 판단했다. 이미 Bind를 통해서 아이템을 생성했지만 스크롤을 위아래로 이동하면 아이템을 다시 배치하는 것을 확인할 수 있었다. 실제로는 아이템에 대해서 체크박스가 체크가 되어있지만 아이템을 다시 할당하면서 체크박스가 해제된 모습으로 보인 것이다. 해결 방안 해결하기 위해서 다양한 방법이 있지만, 데이터 클래스의 체크박스 상태를 저장할 변수를 ..
이번 프로젝트를 진행하면서 CustomView를 굉장히 많이 다뤘었고, CustomView에서 텍스트 관련 작업을 맡았는데, CustomView에서 DrawText에 대한 자료도 옛날 자료가 많고, 맨땅에 헤딩하듯이 개발하면서 겪은 경험입니다.. 우리 팀 프로젝트처럼 디테일하게 Text에 대해서 다루지 않을 수도 있지만,, 많은 도움 되었으면 합니다ㅎ DrawText란? Canvasd에서 제공하는 함수입니다. 여러 오버로딩된 함수가 많지만 보편적으로 사용되는 함수는 아래와 같습니다. public void drawText (String text, float x, float y, Paint paint) 함수의 내용은 그리고자 하는 text를 (x, y)를 시작점으로 해서 paint 객체를 이용해서 그리는 것..
앞선 Navigation Component의 글의 보충 내용입니다. https://jja2han.tistory.com/373 [Android] - Navigation Component 기존의 Fragment간의 이동을 구현할 때 supportFragmentManager.beginTransaction(). replace(R.id.frame_layout,GameFragment()).commit() 위와 같은 코드를 통해서 프래그먼트 간의 이동을 구현했습니다. 하지만 Android에서 Na jja2han.tistory.com Navigation Component에 대하여.. 1️⃣ Navigation을 통해서 Activity로 이동할 수 있을까? 정답은 가능하다. 나도 사용해 보기 전까지는 Activity에 ..
앞선 글은 Github Action을 이용해서 CI를 구축해보았다. 이번 글은 CD를 구축했고 그에 따른 경험을 적을 예정이다. CD가 뭐야? CD는 Continous Delivery로 지속적인 배포를 뜻한다. 즉 이번 글의 목적은 Github Action으로 배포를 자동화를 어떻게 했는지에 대한 글이다. 어플리케이션의 배포 경험이 없어서 정말 많이 헤멨다. Github Action에 대한 정확한 개념이 없어서 많은 글을 찾아봤고, 참고해서 성공할 수 있었다. CD를 하기전에 버전관리에 대해서 간략하게 설명하겠다. 우리가 사용하는 어플리케이션은 지속적인 업데이트로 버그를 수정하고, 기능을 추가한다. 이렇듯 어플리케이션의 버전관리는 아주 기본적이라고 할 수 있다. 버전관리의 전략은 다양한 전략이 있지만 통..
재한
'Skils/Android' 카테고리의 글 목록 (3 Page)