본문 바로가기
반응형

전체 글338

[Android] dp, sp, dpi, pt용어정리 DP Display Independent Pixel 이라는 의미이다. 디스플레이 크기와 상관없이 항상 일정한 크기를 나타내기 위해 사용하는 단위이다. dp를 위해서는 dpi라는 개념을 알아야 한다. dpi란 dots per inch 라는 뜻으로 1인치당 몇개의 픽셀이 안에 담겨있는지를 의미한다. dpi가 높을수록 1인치당 많은 픽셀들이 담겨있으므로 화질이 높다. 안드로이드에서느 1dp는 160dpi에서 하나의 픽셀(점)을 의미한다. 한마디로 1/160inch 라는 뜻 만약 dpi가 320dpi로 늘었다고 가정하자. 그럼 1dp는 2픽셀이 사용된다. dpi가 두배로 늘었으니 픽셀의 크기는 반으로 줄어들지만 사용되는 픽셀을 2픽셀로 늘었으니 크기는 동일하다. 그럼 1인치는 몇 dp일까? 바로 160이다. 그.. 2022. 7. 1.
[Android] RecyclerView 데이터 꼬일 때 대량의 데이터를 단순 출력하는데에는 RecyclerView가 최고의 선택일 것이다. 허나 단순출력을 넘어 데이터에 리스너등을 달아주는 순간 데이터가 꼬이기 시작한다. 이러한 문제의 원인은 ViewHolder를 재사용함에 있어서 발생하는 문제이다. 그럼 어떻게 해결해야 할 까? 걍 리스트뷰를 쓰는게 나을까? 해결방법1 : 재활용 막기 holder.setIsRecyclable(false); 위와같이 홀더의 재활용을 막으면 데이터 꼬임 문제를 해결 할 수 있다. 하지만 이렇게 하면 리사이클러뷰를 사용하는 의미가 없다 해결방법2 : 재활용 될 때 뷰를 초기화 하기 내가 찾은 해결방법은 onViewRecycled(ViewHolder holder) 메소드를 재 정의 하는 것이다. 뷰가 재활용 될 때 홀더를 싹다 초.. 2022. 6. 28.
[Android] Room DB 에서 query함수 동작 안할 때 데이터베이스에 직접 쿼리를 날리고 싶어서 객체를 까보니 query 함수가 있다. 헌데 동작을 안한다 망할. 하루종일 찾아보니 execSQL 함수를 쓰니 동작한다. 도대체 저 query 메소드는 정체가 뭘 까? 하루종일 고생했네 //db.getOpenHelper().getWritableDatabase().query("UPDATE user SET value = '123'"); db.getOpenHelper().getWritableDatabase().execSQL("UPDATE user SET cookTime = '123'"); 2022. 6. 24.
[Android] AlertDialog에서 showSoftInput 동작 안할 때 커스텀 레이아웃으로 Dialog를 만들고 그 안에 EditText를 넣은뒤 다이얼러그를 띄우면 바로 키보드가 뜨도록 하는 작업을 하게 되었다. 헌데 키보드가 올라오지 않는다... 구글에 검색해보니 나와 같이 AlertDialog로 커스텀 레이아웃을 쓰는 사람들 모두 똑같은 문제를 겪고 있었다. 하루종일 찾아보니 AlertDialog의 Window관련 Flag들이 문제를 일으키는게 원인이라 하던데... 대충 만져보니 showSoftInput 함수가 동작하였다. 단 Forced로 설정해야지만 동작한다. Forced로 하면 키보드 입력이 끝나도 키보드가 내려가지를 않음 ㅠㅠ... 어떤 flag를 만져야 할지 전혀 감이 안잡혀서 결국 생고생 하다가 나만의 workaround를 찾아 내었다. editText.re.. 2022. 6. 23.
[Android] 안드로이드 스튜디오 자동완성 코드찾기 안될 때 해결방법 File -> Invalidate Caches를 눌러서 안드로이드 스튜디오를 다시 시작해 주면 된다. 2022. 6. 20.
[Android] Recycler View 사용하기 https://developer.android.com/guide/topics/ui/layout/recyclerview RecyclerView로 동적 목록 만들기 | Android 개발자 | Android Developers RecyclerView로 동적 목록 만들기 Android Jetpack의 구성요소 RecyclerView를 사용하면 대량의 데이터 세트를 효율적으로 표시할 수 있습니다. 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 R developer.android.com 1. Recycler View란? 데이터를 리스트로 나타내주는 뷰 이다. 아니 그럼 리스트뷰 쓰면 되지 왜 Recycler View를 쓰는가? 그 이유는 리스트뷰가 가지고 있던 성능문제를 Recycler View는 해결했기.. 2022. 6. 15.
[Matter] Device Data Model https://developers.home.google.com/matter/primer/device-data-model?hl=en 기기 데이터 모델 | Matter | Google Home 법적 사안 기기를 뒷받침하는 데이터 모델 이해하기 developers.home.google.com 매터 디바이스는 DM, 데이터 모델이라는 것ㅇ르 가지고 있다. 그리고 이 데이타모델은 디바이스의 기능을 계층화 시킨다. 아 계층에 최상위에는 Device가 있다. Device와 Endpoints 모든 디바이스, 예를들어 스마트폰과 홈 어시스턴스들은 Node로 구성된다. Node는 unique하게 구별되고 자체 주소를 가진 네트워크에 있는 리소스이며, 유저가 기능을 전체적으로 인식 할 수 있다. 매터의 네트워크는 Node로.. 2022. 6. 14.
[Flutter] Android Studio vs VScode 어느 게 좋을까 1. 개요 구글은 공식적으로 플러터 ide로 Android Studio와 VScode를 권장하고 있다. 그럼 둘 중 뭘 쓰는게 좋을 까? 2. 두 IDE의 장단점 구글링으로 찾아본 결과 다음 내용이 대표적인 내용이다. Visual Studio Code Android Studio보다 훨씬 가볍게 돌아간다 강력한 익스텐션들이 있다 AndroidStudio 상대적으로 VScode보다 무겁다 노트북사용시 팬이 주구장창 돌아갈 확률이 높고 발열을 일으킬 가능성이 있다 VSCode와 다르게 찐 IDE이기에 환경설정이 용이하다 아무튼 찾아보면 저 내용으로만 주구장창 싸우는 내용밖에 없음... 하지만 나는 Android Studio를 추천한다 사실 원래 처음에는 vscode로 시작했었다. 안드스튜보다 훨씬 가볍기 때문.. 2022. 6. 10.
[Dart] non nullable 변수의 초기화 시기 https://dart.dev/null-safety/understanding-null-safety Understanding null safety A deep dive into Dart language and library changes related to null safety. dart.dev 공식문서 null safety의 이해에서 발췌, Uninitialized variables항목 참고 1. 개요 Dart의 non nullable 변수는 사용전에 반드시 초기화 해 주어야 한다. 그런데 코드를 작성하다보면 사용전에만 초기화 하면 될 줄 알았는데 어떤 경우에는 선언과 동시에 초기화를 해야하는 경우가 있다. 어떨때는 나중에 초기화해도 되고, 어떨때는 반드시 선언과 동시에 초기화 해야하는데 이 문서는 이를.. 2022. 6. 10.
반응형