전체 글
-
안드로이드 앱 테마에 따른 색상 변경하기Android Studio 2024. 7. 16. 21:36
처음으로는 기존에 있는 색상을 바꾸지 않은 상태에서 AppCompatDelegate 을 이용하여 일반모드와 다크모드를 변경하는 코드를 작성해 보겠습니다. AppCompatDelegate는 Android의 AppCompat 라이브러리에서 제공하는 클래스 중 하나이며, 주로 app의 테마와 UI 모드를 동적으로 변경하는 데 사용합니다. 사용 예제로는 다름와 같습니다.// 다크 테마 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) // 일반 테마 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) // 시스템 설정에 따른 테마 AppCompatDelegat..
-
RecyclerView를 AsyncListDiffer 을 이용하여 효율 높이기Android Studio 2024. 6. 26. 21:17
레이아웃 구성 compose X , xml 파일 O RecyclerView 에 적용된 아이템에 대해서 상태 혹은 갯수가 변경되었을 때 마다 notifyDataSetChanged() 을 호출하여 갱신을 하였었는데, 여러 아이템 중 1개만 상태가 변하거나, 증감이 될 때마다 전체 아이템을 갱신한다는 점에서 비효율적 이라는 생각을 가지게 되었습니다. 이런 비효율적인 방법을 개선을 하고 싶었고, 이미 많은 개발자분들이 느끼셨는지 해당 비효율적인 방법을 효율적으로 사용할 수 있도록 만들어 두셨고, 해당 글들도 매우 많이 작성되어 있었습니다. 덕분에 저도 해당 글들을 보면서 현재 진행하고 있는 프로젝트 내 RecyclerView 내 아이템을 효율적으로 표시할 수 있게 되었습니다. 왜 효율적이죠? notifyData..
-
의존관계역전원칙(DIP)과 의존성 주입(DI)프로그래밍 2024. 1. 4. 16:26
의존관계역전원칙이란? 위키백과에 따르면 객체 지향 설계의 다섯 가지 기본 원칙(SOLID) 중 D가 가르키는 원칙입니다. 위키백과를 참조하여 쉽게 말하면 소프트웨어 모듈들을 분리하는 특정 형식을 지칭합니다. 의존관계역전원칙을 따랐을 경우에 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전) 시킴으로 써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있습니다. 해당 원칙은 다음과 같은 내용을 가지고 있습니다 첫째. 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다. 둘째. 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다. 이 원칙은 '상위와 하위 객체 모두가 동일한 추상화에 의존해야 한다..
-
AVD Error while waiting for device 해결법Android Studio 2023. 12. 18. 15:11
안드로이드 스튜디오에서 작업을 하다가 avd 가 하기와 같은 오류가 발생하며 실행이 안될 경우 해결 방법입니다. 해당 사진과 ERROR을 보았을 경우 해결법은 매우 간단합니다. 1. android\avd\Pixel_2_API_33.avd(실행이 안되는 avd 명) 경로로 이동합니다. 2. 해당 경로에서 .lock로 끝나는 모든 파일을 삭제합니다. 3. 안드로이드 스튜디오에서 실행이 안되던 avd를 실행시킵니다.
-
자료구조 Part2CS 2023. 10. 17. 20:23
HashTable(HashMap) 1. HashMap은 비선형 자료구조 입니다. 2. 일정 크기의 배열을 생성한 후에 key 값을 Hash 함수를 통하여 배열의 index 로 변환하여, 해당 index 에 해당 key값과 value 값을 저장합니다. 3. 시간 복잡도 i번째 데이터에 접근(Access) : NONE / *O(N) -> key를 통하여 접근할 경우에는 O(1)의 시간 복잡도를 가지지만, 값을 이용하여 확인할 때는 O(N)의 시간 복잡도를 가집니다. key를 통하여 접근(containsKey) : key를 hash함수를 이용하여 변환하여 해당 인덱스를 바로 조회하기 때문에 O(1) 의 시간 복잡도를 가집니다. value를 통하여 접근(containsValue) : key와 달리 value 값..
-
자료구조 Part1CS 2023. 10. 16. 23:14
Array(배열)1. 메모리 상에서 데이터가 연속적으로 연결되어 있는 선형 자료구조 입니다. 2. 크기는 고정되어 있으며, 변경될 수 없습니다. 데이터의 삽입/삭제는 불가능합니다. 하기 표는 Int 형태의 배열을 표로 나타내본것 입니다. Int 는 4바이트 이기 때문에 4개의 byte 단위로 주소값을 가지고 있습니다. Boolean 의 경우에는 1개의 byte 단위로 주소값을 가지고 있습니다.0x6d5ab550a[]0x6d5ab550100x6d5ab5510x6d5ab5520x6d5ab5530x6d5ab554200x6d5ab5550x6d5ab5560x6d5ab5570x6d5ab558300x6d5ab5590x6d5ab5600x6d5ab5610x6d5ab562400x6d5ab5630x6d5ab5640x6d5a..
-
TECHIT 앱 스쿨 2기: Android 1기 후기[THEC!T] 앱 스쿨2기 : Android 2023. 9. 28. 17:54
안드로이드 앱 스쿨 과정은 저에게 부족했던 부분들을 채울 수 있었으며, 앞으로의 어떻게 나아가야하는지에 대하여 방향성을 알려준 과정이였다는 말을 먼저 하며 간략하게 후기를 작성해 볼 수 있도록 하겠습니다. 첫 번째로는 교육기간 동안 이론을 배웠던 기간을 말씀드리면 저의 경우 교육을 받기 전에 혼자 코틀린을 독학을 하면서 인프런 및 서적을 통하여 코틀린 문법 및 안드로이드에 대해서 공부하였었습니다. 하지만 스스로 why? 라는 질문에 대한 답을 찾기가 어려웠지만 교육기간동안 강사님께서 자세하면서 이해하기 쉽도록 자바, 코틀린, 안드로이드 문법에 대해서 알려주셨고, 잘 모르겠는 점에 대하여 질문을 드리면 다시 한번 알기 쉽도록 말씀해주셔서 혼자 독학을 하면서 채웠던 지식 내 슝슝 뚫려있던 저의 모자란 부분들..
-
안드로이드 스튜디오 RetrofitAndroid Studio 2023. 8. 10. 21:17
Retrofit 이란? 통신 라이브러리 중 가장 많이 사용되는 대표적인 라이브러이 입니다. REST API 통신을 위해 구현되었으며, Squareup사의 OkHttp 라이브러리의 상위 구현체 입니다. Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축되어 있습니다. AsyncTask 없이 Background Thread 실행 -> Callback을 통해 Main Thread에서 UI 업데이트 Retrofit 장점 1. 빠른 성능 : Asynctask를 사용하지 않고 자체적인 비동기 실행과 스레드 관리를 통해 속도가 많이 개선 2. 간단한 구현 : Retrofit에서는 Request, Response 설정 등 반복적인 작업을 라이브러리에서 넘겨서 처리하므로 작업량이 줄어들고 사용하기 ..