일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주택가 잠실새내
- 막내의막무가내 알고리즘
- 막내의막무가내 플러터
- 주엽역 생활맥주
- 부스트코스에이스
- 막내의막무가내 코틀린
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 프로그래밍
- 막내의막무가내
- 막내의막무가내 rxjava
- 막내의막무가내 안드로이드
- 막내의 막무가내 알고리즘
- 막내의막무가내 일상
- 프래그먼트
- 안드로이드
- 안드로이드 sunflower
- 막내의막무가내 코틀린 안드로이드
- 막내의막무가내 SQL
- 막내의막무가내 목표 및 회고
- 막내의막무가내 플러터 flutter
- 막내의막무가내 안드로이드 에러 해결
- 안드로이드 Sunflower 스터디
- 막무가내
- flutter network call
- 부스트코스
- Fragment
- 막내의막무가내 안드로이드 코틀린
- 프로그래머스 알고리즘
- 막내의 막무가내
- 2022년 6월 일상
- Today
- Total
목록막내의막무가내 안드로이드 (31)
막내의 막무가내 프로그래밍 & 일상
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cwZMiL/btqS3Il9cCv/uGx9wZQgSAwuz1OUtrgGDK/img.png)
[2021-04-27 업데이트] [개념(출처) 참고 및 공부자료들] thdev.tech/kotlin/2020/09/22/kotlin_effective_03/ data class를 활용하여 RecyclerView.DiffUtil을 잘 활용하는 방법 | I’m an Android Developer. thdev.tech velog.io/@l2hyunwoo/Android-RecyclerView-DiffUtil-ListAdapter [Kotlin Android] RecyclerView 어댑터의 데이터 빠르게 바꾸기 - ListAdapter와 DiffUtil 사용하기 RecyclerView 2탄! 빠른 데이터 교체를 원한다면 DiffUtil을 주저하지 말고 사용하세요 velog.io developer.android..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lCQeT/btqSX7fLOK1/FKUkkMhbETvyCwirqRZeUk/img.png)
[2021-04-05 업데이트] [2021.01.07 블로그 포스팅 스터디 여섯 번째 글] 안드로이드 11버전에서 여러 업데이트 사항 중 개인정보 보호 기능을 크게 세 파트로 나눴는데 1. 저장공간(Scoped Storage관련) 2. 권한(Permission) 3. 위치(Location) 입니다. 이 중 저번에는 밑 링크와 같이 1번 저장공간에 대해 알아보았는데 이번 포스팅에서는 2번과 3번 사항에 대해 복습 포스팅을 갖는 시간을 가지려고 합니다. youngest-programming.tistory.com/386 [안드로이드] Scoped Storage(범위지정 저장소) 정리 (Legacy Storage와 차이점 정리) 이전에 안드로이드 11에 대해 공부했던 내용 중 안드로이드 10에서 나온 거지만 1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzxuIA/btqJbnYIpRm/YOVdrVlfqDneUGTfrHiEyK/img.png)
[2021-04-14 업데이트] 안드로이드 status bar 를 투명처리하기 위해 구글링을 열심히 해보고 하란 걸 다했지만 나한테는 적용이 이상하게 되서 문제점이 많았습니다. (시간이 안보인다든지, 바텀네비뷰와 하단 기본바가 겹친다든지 등) 바텀네비, 기본배경색 등이 있어서 그런 것 같습니다. 특이케이스인듯.. 해결방법은 다음과 같이 했습니다. style 에 다음을 추가해주면 됩니다. statusBarColor -> 영어 그대로 상태바의 색상을 투명색으로 바꿔주고 windowLightStatusBar -> 마시멜로에서 windowLightStatusBar속성이 생겼다. 상태바의 백그라운드를 임의로 조절 할 수 있기때문에 아이콘의 색상이 문제가 제기되어 왔다. 흰색배경인 경우 아이콘의 색과 동일해지기 때..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/p89JK/btqGdMALvVa/B7haXDVq7Ajo3knfg6cclK/img.gif)
[2021-04-14 업데이트] Lottie 최신 코드는 가장 하단에 PS 부분에 있으니 참고해주세요 :) Lottie 사용법에 대해 간단하게 포스팅하는 시간을 가져 보겠습니다 ㅎㅎ Lottie 란 위 설명대로 어떤 네이티브 앱에서든 쉽고 높은 퀄리티의 애니메이션을 구현할 수 있게한 라이브러리입니다. 로띠에 대한 설명과 장점은 다음 사이트에서 더 자세하게 볼 수 있습니다. https://airbnb.design/lottie/ Lottie Easily add high-quality animation to any native app. Lottie is an iOS, Android, and React Native library that renders After Effects animations in real ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLv8hl/btqGew5eEll/KrUS8lnFS6Xz2lMz4hmeV1/img.gif)
[2021-04-14 업데이트] Collapsing Toolbar Layout 를 적용하기전에 샘플로 구현해보았습니다. CoordinatorLayout -AppBarLayout [이 레이아웃의 바로 밑 계층은 일반적인 레이아웃이랑 비슷하다. CollapsingToolbarLayout 을 위해 사용] --CollapsingToolbarLayout [접히는(스크롤에) 모션에 반응하여 나타나거나 사라질 레이아웃] ---ImageView, Toolbar [접히는(스크롤에) 모션에도 계속 남아 있을 툴바, 즉 CollapsingToolbarLayout 안에서 Toolbar안에 있는 것은 접혀도 뷰를 보존시킴] -NestedScrollView --ConstraintLayout [일반적인 레이아웃] -Floating..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ddT2NZ/btqFzGaFVev/bkm4OPKKPQxoPad8Mob43K/img.gif)
[2021-04-14 업데이트] 가장 하단에 PS 부분에 변경 후 코드를 참고해주세요 :) 최신코드입니다. 본 프로젝트 전에 적용하기 전 샘플 프로젝트로 잘 되나 바텀시트다이얼로그를 테스트해봤습니다. ㅎㅎ 바텀시트 다이얼로그 프래그먼트에서 아이템 선택시 기존 액티비티나 프래그먼트에서 콜백을 받아 액션을 취하게 하는 로직이 필요했습니다. 이전에도 사용해보긴 했는데 콜백이 필요한 경우는 첨이네염 구글링 해봤는데 그런 예제가 딱히 안보여 직접 구현해봤고 샘플로 포스팅합니닷 바텀시트 다일로그 콜백구현 과정입니다. 1. BottomSheetDialog 사용을 위해 추가합니다. implementation 'com.google.android.material:material:1.1.0' 2. 액티비티 코드입니다. 텍스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cUkfXC/btqFhmbhd3M/HNcKnoYoz6BmhFULktwHe0/img.png)
https://www.androidpub.com/277645 Scrollview 와 맨아래에 고정 Button 구현 안녕하세요 의외로 잘 안되는 부분이 있어 문의 드립니다. xml에서 맨아래 고정Button하나를 제외하고 윗부분은 Scrollview로 만들고 싶습니다. ... 머 이런구조가 될텐 www.androidpub.com 나중에 또 사용 시 볼려고 포스팅합니다. 위 사이트 참고 하단 고정 버튼쪽은 콘스트레인트 레이아웃으로 만들었습니다. [결과 화면] 댓글과 공감은 큰 힘이 됩니다. !
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/HWWeX/btqFaU08fPD/bZD99mbHloqxKR8Q7X1yG1/img.png)
[2021-04-13 업데이트] Jetpack 바텀네비게이션 뷰를 프래그먼트 아이디를 통해 Visbility를 컨트롤할 수 있는 방법에 대해 포스팅하려고 합니다. ㅎㅎ 보통 앱은 기본적으로 하나의 액티비티 안에 바텀네비게이션과 그 바텀 버튼에 해당하는 프래그먼트로 이루어져 있는 경우가 많습니다. 그리고 이 네비게이션에 해당하는 프래그먼트들에서 상세화면으로 가는 버튼을 누른다고 가정하면 Jetpack Navigation 기능을 사용해 다른 프래그먼트으로 이동할 수 도 있습니다. 이때 바텀네비게이션과 종속되어 있는 메인화면이 아닌 상세화면에서 프래그먼트는 바텀 네비게이션이 불필요할겁니다. 이것을 컨트롤하기위한 방법을 Jetpack Navigation 다음 문서에서 확인할 수 있었습니다. https://dev..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ym2v8/btqE9ekJ3e2/bUbp7XKbJOXUfQkx9lapHk/img.png)
[2021-04-13 업데이트] Jetpack 의 바텀 네비게이션 뷰를 쓰면서 내가 눌렀을 때와 안눌렀을 떄 selector로 설정한 대로 아이콘이 안나왔었습니다. (바텀 네비게이션에서 기본으로된 색상 설정등 이 우선시 되었기 때문입니다.) [menu] [selector] [bottom navi view] app:labelVisibilityMode="unlabeled" (bottom naviagation view 에서 title로 지정한 텍스트가 안보이게함(전 뷰에 글자가 달려있었기 때문에 이것을 활성화 시켰습니다.) 결론 부터 말하면 binding.mainBottomNavigation.itemIconTintList = null 를 해주면 된다. private fun initNavigation() { v..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Zpj1x/btqEBd711Zu/sxKJxPz5aa7S9jROLK7Rtk/img.png)
[2021-04-07 업데이트] 매번 공지사항 들어가서 보기 귀찮아서 공지사항 앱을 1차로 만들어봤습니다. 추후 시간이 될때 클릭시 웹이 아닌 앱내에서 웹뷰로 띄워주거나 커뮤니티 기능도 추가해볼까 합니다. -> 업데이트 완료! MVVM 아키텍처를 적용 및 학습을 위해 대학교 공지사항 토이프로젝트를 만들어봤었는데 그것에 대해 복습 및 정리 해볼려고 합니다. API 를 사용한 것이 아니라 Jsoup 을 통해 크롤링하여 데이터를 가져온 것이기 때문에 레트로핏은 사용하지 않았습니다. 저도 배워가는 입장이라 수정이 필요한 부분을 지적해주시면 감사하겠습니다. 그래서 전체적인 프로젝트 구조는 다음과 같습니다. MVVM 의 장점과 단점은 다음과 같습니다. 장점: 뷰와 모델간의 의존성이 없고 MVP 패턴처럼 V-VM이 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHiIcD/btqEinpiXY9/pFV0NuqEsY5rxbrUNVnWJk/img.png)
다음과 같이 안드로이드 스튜디오에서 duplicate class intelij 어쩌구라면서 무수히 많은 에러가 떴습니다 해결방법은 다음과 같습니다. configurations { implementation.exclude group: 'org.jetbrains', module: 'annotations' } 를 app 수준 gradle에 android{} 안에 넣어주면 됩니다. 감사합니다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c2Pb0V/btqDOJfKcRG/PwvoghokCQDHcEMnyrOEO0/img.png)
[2021-03-30 업데이트] 안드로이드 코틀린 Jetpack 라이브러리들에 대해 공부중이고 Jetpack Naviagtion 중 Bottom navigation 을 프로젝트에 간단하게 적용해볼려 하고있습니다. 보면서 도움이 되는 사이트를 기록합니다. 0. 공식문서 https://developer.android.com/guide/navigation/ 탐색 | Android 개발자 | Android Developers Android Jetpack의 탐색 구성요소를 사용하여 앱에서 탐색 구현 developer.android.com 1. 코드랩 https://codelabs.developers.google.com/codelabs/android-navigation/index.html?index=..%2F..%..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhL0UJ/btqDInZcyeD/1bWepJsAWDDJHVMsvScTt1/img.png)
[2021-04-13 업데이트] 예전에 별모양 차트에 관해서도 포스팅 기록이 남긴적이 있는데 이번에는 원형차트 예제 코드에 대해 포스팅을 할려고합니다. 먼저 MPAAndroidChart 라이브러리를 사용하므로 디펜던시를 추가해줍니다. allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } } } implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' xml 입니다 세팅하는 코드입니다 크게 xml, yValues(ArrayList) -> dataSet(PieDataSet), pieData(PieData) 세 단계로 구현됩니다. animateY() 함수를 통해 차트가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rxGs3/btqDMImA3jG/xtPBBrktFquCbPyhdQw1q0/img.png)
[2021-04-13 업데이트] val dataSet: PieDataSet = PieDataSet(yValues, "도시별 확진자 상위 5곳") with(dataSet){ sliceSpace = 3f selectionShift = 5f setColors(ColorTemplate.JOYFUL_COLORS) } 위와 같은 코드에서 setColors 에서 다음과 같은 에러가 났었습니다. 코틀린에는 없는 vararg 를 매개변수로 받게 setColors 함수는 구현되어 있는데 ColorTemplate.HOYFUL_COLORS 는 List를 반환해주었기 때문입니다. 자바라면 list를 vararg(가변인자)로 알아서 받아주는 걸로 아는데 코틀린은 그렇지 않습니다. 해결방법은 다음과 같습니다. 앞에 *를 붙여주면 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/clKjll/btq2ryPN3Mr/Srzy8O2ILKk0UlzVvNKMCK/img.png)
[2021-04-13 업데이트] 나중에 재활용 할 수 도 있을 것 같아 기록합니다. 흠.. import android.content.Context import android.content.SharedPreferences object PreferenceManager { private const val MOVIE_SEARCH_APP = "MOVIE_SEARCH_APP" const val AUTO_LOGIN_KEY = "AUTO_LOGIN_KEY" private fun getPreferences(context: Context): SharedPreferences { return context.getSharedPreferences(MOVIE_SEARCH_APP, Context.MODE_PRIVATE) } fun ..