본문 바로가기

분류 전체보기

[Android Weekly][#344] 효율적인 LiveData와 ViewModel 테스팅 원본 : https://android.jlelse.eu/effective-livedata-and-viewmodel-testing-17f25069fcd4Architecture Components 와 그것들을 실행할 방법에 관해 써놓은 글이 많이 있고, 테스트 능력을 향상 시켜줄 혜택 중 하나를 가지고 있다.자 그럼, 실제로 어떻게 향상시키지? 한번 살펴 보자.Architecture Components는 Google I/O 2017에서 소개되어 졌고, 그것들은 Android 개발 세계에서 뚜렷한 향상을 의미 했다. 수 년을 걸쳐 익힌 최고의 연습들은 대부분의 공통된 문제들이 바뀌어졌고, 탄탄한 가이드(opinionated guide)를 나오게 했다.View와 ViewModel은 LiveData를 통하여 연결.. 더보기
[Android] Preferencefragment deprecated 설정 화면을 개발할 때, PreferenceFragment를 많이 사용 했습니다.PreferenceActivity에 PreferenceFragment를 설정하는 형태 였죠.class SettingsActivity : PreferenceActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) fragmentManager.beginTransaction() .replace(android.R.id.content, SettingFragment()) .commit() } class SettingFragment : PreferenceFragment() { override fun onCreateP.. 더보기
[Android Studio] [Kotlin] Wild param 방지 ktlint에서 검증을 할 경우 wild param을 사용하지 말라고 되어 있지만,그게 하고 싶어서 하는게 아니라 자동으로 import를 시키면IDE에서 알아서 Wild Param을 넣어버린다.Wild param은 아래와 같이 import를 *로 묶어서 사용한 경우를 말합니다.Android Studio에서 Wild Param을 방지하는 방법을 공유하고자 합니다.1. Android Studio -> Prefrences 탭을 연다.2. Editor -> Code Style -> Kotlin3. 아래 화면 같이 Use impor with '*' when at least 100 names used 로 설정위와 같이 설정 하면 적어도 100개 이상 똑같은 패키지에서 import를 할 시 Wild Param을 사용.. 더보기
[Kotlin] [ktlint] BUILD FAILED ktlint에 대해 궁금하신 분은 커리님이 작성해 놓으신 블로그를 보시면 됩니다.https://www.androidhuman.com/lecture/kotlin/2016/09/06/ktlint_on_android/ktlint는 코딩 스타일을 검토해주는 오픈 소스 입니다.https://github.com/shyiko/ktlintktlint 실행하면 아래와 같이 빌드 실패라는 화면을 보게 된다.Ktlint 관련 이슈가 목록에 나오지만, 저 같은 경우 왜 ExecException이 발생하는지 원인을 알고 싶었습니다.이 글을 쓰는 이유도 혹시 저같이 바보(?) 같은 생각을 하시는 분들이 있으실까봐 공유 드립니다.ktlint에서 알려준 이슈를 전부 수정 해라!!!그럼 위와 같이 BUILD SUCCESSFUL 이라는.. 더보기
[Kotlin] For loop vs Foreach Kotlin 에서 반복문을 사용할 때 For loop를 쓸 것인지, 아니면 Foreach를 쓸 것인지 고민한 적이 있으신 분은아래 내용을 참조 하면 좋을 듯 하다.1. IntRange를 사용한 경우는 For loop2. Collection (Sequence나 list등)을 사용한 경우는 Foreach3. 반복문 사이에 continue 나 break를 사고자 할 경우는 For loop참고 : https://medium.com/@elye.project/kotlin-for-loop-vs-foreach-7eb594960333여기서 추가 사항!Android 테스트를 하다가 Foreach 를 사용 했을 때, 분명 전체 반복은 돌았는데 Log로는 몇개만 찍혀서 나오는 경우를 본 적이 있다.예를 들어 List에 데이터.. 더보기
[Android] build gradle failed to resolve ## 현재 오류 발생 및 해결은 Android Studio 3.2 버전에서 발생함.갑자기 어느 순간에 ' failed to resolve' 라는 에러와 함께 특정 라이브러리가 로딩이 되지 않는다는 Gradle 에러를 볼 수 있다.이럴 경우 혹시 아래와 같이 build.gradle 파일이 되어 있지 않은가 확인 해보세요.또는 jcenter()가 포함되어 있는지 체크해보세요.# build.gradlebuildscript { ... repositories { google() jcenter() ... }... }allprojects { repositories { google() jcenter() ... }}jcenter() 에서 특정 라이브러리를 받아오지 못하는 에러가 발생한게 원인이었습니다.https://ww.. 더보기
[Spring] Eclipse - BeanCreationException 발생 Injection of autowired dependencies failedSpring을 빌드 한 후, 위와 같은 에러가 본적이 있으면 ...아마 혹시 멘붕 오신 상태 아니신가요?^^;크게 잘못된 부분이 없는데 빌드가 되지 않고 답답할 수도 있습니다.우선 아래에 몇가지만 체크해 보세요.http://ceaserdev.tistory.com/entry/Spring-BeanCreationException-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95http://mkil.tistory.com/301등등... 구글에 검색하면 여러 정보가 있다.저 같은 경우는.m2 폴더를 삭제 하고 발생 했다.m2 폴더는 캐시 폴더라 문제가 없을 줄 알았는데..Eclipse m.. 더보기
[Kotlin] View Height, Width 변경 Kotlin의 Extension 기능을 이용하면 쉽게 View에 크기를 조절할 수 있다./** * Extension method to set View's height. */ fun View.setHeight(value: Int) { val lp = layoutParams lp?.let { lp.height = value layoutParams = lp } }/** * Extension method to set View's width. */ fun View.setWidth(value: Int) { val lp = layoutParams lp?.let { lp.width = value layoutParams = lp } }http://kotlinextensions.com/#view위 두 함수를 추가 해놓은 .. 더보기