일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- hilt
- imeOptions
- 백준 14501
- 최단경로
- EditText
- 완전탐색
- 지능형 기차2
- val
- 스카이라인 쉬운거
- 오르막수
- Kotlin
- 2501
- 백준
- BuildConfig
- 자바
- Parcelable
- Parcelize
- 조합
- 백준 퇴사
- BFS
- 프로그래머스
- SWEA
- EditorInfo
- 시뮬레이션
- 약수 구하기
- dfs
- 순수함수
- 순열
- java
- Android
- Today
- Total
목록안드로이드 (12)
안드 공부를 해볼까?
1. 개요 프로젝트를 할때마다 편하게 쓰는 Hilt를 더 배우고 싶어 DI부터 다시 정리할려고 합니다. 본 포스트는 드로이드나이츠 2020, 옥수환 님의 Hilt 강의를 보며 작성하였습니다. 2. 본문 2-1. DI란 무엇일까? DI(Dependency Injection)은 의존성 주입을 뜻합니다. /** DI가 없는 코드 */ class MemoRepository{ private val db = SQLiteDatabase() fun load(id : String){...} } /** DI를 한 코드 */ class MemoRepository(private val db : SQLiteDatabase){ fun load(id : String) {...} } 2가지 코드 모두 db를 사용할 수 있습니다. 그..
1. 개요 프로젝트 중 팀원이 오류를 해결하지 못해 같이 코드를 봤는데 Databinding을 처음 하는 사람이라면 헷갈릴만한 오류같았다. 쉽지만 확실하게 집고 가면 좋을 것 같아 정리를 한다. 2. 본문 지금하고 있는 프로젝트의 BaseFragment다. onCreateView를 보면 binding 초기화 부분이 DatabindngUtil.inflate로 해놨다. 하지만 xml은 Databinding 설정을 하지 않았다. 이러면 binding 객체를 초기화하지 못한다. 윈도우에서는 Alt + Enter를 누르면 바로 Databinding 셋팅을 해주는 명령어가 나온다. 반드시 Databinding을 사용한다면 설정해주자.
1. 개요 해커톤 때 갑자기 BuildConfig가 인식하지 못하는 경우가 생겼다. gradle에서 오류가 난건지 팀원이 굉장히 힘들어하며 고쳐서 건들지 말라고 했던 기억이 있다... 지금 하는 프로젝트에서도 똑같이 나오길래 적어보자 한다. 2. 본문 팀원이 작성한 코드인데 정확히 어떤것인지 모르고 디버깅할 때 사용하면 좋다고 한다.. if문에 있는 BuildConfig가 가끔 인식이 안되는 경우가 있는데 일단 순서대로 해보자. 2-1. import 잘 됐는지 확인하기 해당 BuildConfig는 자기 패키지 이외에 다른 것도 정말 많이 있다. 혹시 다른 것이 import 된건지 확인해보자 2-2. 만능 도구, Clean Project, Rebuild 사실 이건 안드로이드 개발하면서 많이 사용해보지 않았..
1. 개요 프로젝트 같이하는 형이 Parcleable의 메소드를 전부 구현해둔 것을 보았다. 사실 저 메소드들이 정확이 뭘 하는지는 모르겠지만 간단하게 사용할 수 있는 방법이 있어서 사용해보도록 하자 2. 본문 다음과 같은 Parcelable 처리해준 data class가 있다고 하자. 분명 어노테이션으로 처리해줬는데 가끔 오류가 난다. 그럴때는 모듈단위 gradle에 들어가서 3개를 추가해준다. id 'kotlin-android' id 'kotlin-kapt' id 'kotlin-parcelize' 필자는 kotlin-parcelize가 없어서 어노테이션을 해줘도 인터페이스에 있는 메소드를 전부 구현했어야 했다. 해당 코드를 추가하니 바로 인식이 됐다.
1. 개요 요즘 프로젝트를 하고 있는데 프레임워크의 사용법보다 아키텍쳐의 구조를 중점적으로 보고있습니다. Clean Architecture를 활용하는데 각 레이어마다 Model이 있는게 이상해서 같은 팀 선배에게 물어봤고 해답을 얻어 정리하고자 합니다. 왜 각 계층마다 Model이 있는지, 그냥 Data 레이어에서 받은 것을 사용하면 안되는지를 알아보고 이를 어떻게 활용하는지 보겠습ㄴ디ㅏ. 2. 차례 - 각 계층마다 Model을 사용해야할까? - 그렇다면 어떻게 사용하지? 필자가 프로젝트를 하며 느낀점을 위주로 작성했습니다. 굉장히 주관적(?)이니 틀린게 있으면 댓글을 남겨주세요. 3. 본문 1. 각 계층마다 Model을 써야하나? 사실 이게 제일 궁금했습니다. '어차피 우리는 서버에 있는 테이블 기준으..
1. 개요 사이드 프로젝트 중, View의 Background를 코드로 적용해야할 일이 있었다. 기존 코드인 resource.getDrawable()로 가져올려고 했는데 Lint 오류가 나서 찾아본 결과 새롭게 나온 것이 있었다. 2. 본문 우리가 기존 사용했던 getDrawable를 통해 가져오는 방법이다(context가 필요하다) 하지만 이렇게 구현하면 Lint오류가 나오게 된다. @SuppressLint("UseCompatLoadingForDrawables") API 21부터는 context.getDrawble이 deprecated 됐다고 한다. 우리는 이제 ResourceCompat.getDrawable(context.resources, R.drawable.file_name, theme)로 구현을..
1. 개요 안드로이드를 개발하며 아키텍처 패턴을 처음 적용한 것이 MVC 패턴이였습니다. 간단하면서도 개발하기 쉬워 자주 사용했는데 MVVM을 처음 사용해보고 이제는 바꿔야 한다고 생각했습니다. 정리도 하면서 개발에 더 도움이 되기 위해 글을 작성해보려 합니다. 2. 목차 1. MVC 2. MVP 3. MVVM 4. 정리 각자의 설명과 동작 순서, 장단점을 위주로 작성하였습니다. 마무리로 총 정리를 하고 어떤 패턴을 사용해야하는지 분류했습니다. 3. 본문 본문에 들어가기 전에 MVC, MVP, MVVM 이 단어들의 공통된 부분이 존재합니다. 바로 'M', 'V'입니다. M = Model(표현하고자 하는 데이터) V = View(UI, 화면에 표시되는 요소) 이 2가지는 반드시 필요한 존재입니다. 2개가 ..
1. 개요 개발을 하다가 TabLayout의 Tab을 디자인할 일이 생겼다. 프로젝트를 하면 많이 했다고 생각했는데 할 때마다 계속 전 프로젝트를 봐서 발전이 없는 것 같아 정리를 하고자 한다. 2. 목록 - TabLayout 설명 - Tab Custom * Indicator * Tab Text TabLayout의 설명을 자세히 하기보단 사용하는데 중점을 두고 포스팅을 했다. 설명은 개발자 문서를 보는 것을 추천한다. 3. 본문 1. TabLayout TabLayout은 말 그대로 Tab을 사용하는 레이아웃이다. Tab을 누르면 그 상황에 맞게 작동을 하고 주로 ViewPager를 연동해서 사용한다. 소스코드를 보면 TabLayout 내부에 TabItem이라고 만들어 놨다. 이것이 TabLayout을 선..