Android

⛔ 문제사항레트로핏을 연습하는 과정에서 BuildConfig를 찾을 수 없다는 에러가 나타났다.✅ 해결방안해결방법은 비교적 간단한데, build.gradle 파일에서 buildConfig 값을 true로 지정해주고android { namespace = "com.example.myApplication" compileSdk = 34 ... 중략 buildFeatures{ buildConfig = true //여기 viewBinding = true }} gradle.protperties 파일에 값을 또 하나 추가해주면 된다.android.defaults.buildfeatures.buildconfig=true 이렇게 추가해도 안 된다? 안드로이드 스튜디오를 한..
⛔ 문제사항코틀린으로 함수형 프로그래밍을 해보자! 라는 과제에 맞추어 기존에 진행 했던 프로젝트를 리팩토링 하는 겸, 함수로 분리할 수 있는 것들을 최대한 분리하는 과정에서 마주친 문제다.// 달력 다이얼로그 출력private fun dialogCalendar(dateText: String) { val calendar = Calendar.getInstance() val year = calendar.get(Calendar.YEAR) val month = calendar.get(Calendar.MONTH) val day = calendar.get(Calendar.DAY_OF_MONTH) val listener = DatePickerDialog.OnDateSetListener { _..
⛔ 문제사항xml내부에 재사용되는 UI를 include하여 코드를 작성하고 있는데 자꾸 이런 에러가 발생했다.✅ 해결방안원인은 include한 코드와 include 내부 xml 코드의 id값이 달라서 발생하는 문제였다.이렇게 include한 바깥 Activity xml과 내부 Layout xml의 id값을 맞춰주면 해당 에러는 사라지게 된다.그런데, 나는 한 가지 더 문제가 있었는데 바로 include한 TabLayout에서는 id값을 맞춰주어도 에러가 발생한다는 것이었다.원인은 바로 tabItem에 id값을 주어서였는데, tabItem은 원칙적으로 id값을 주지 못하는 게 원인으로 보인다. (버그일수도)id를 사용해서 tabItem값에 접근할 수 없기 때문에 아래 코드처럼 getTabAt 메소드에 in..
⛔ 문제사항fakeDataList.forEachIndexed { idx, itm -> if (idx == position) { fakeDataList.removeAt(idx) mainAdapter.notifyItemChanged(idx) }}forEachIndexed를 통해 List 안의 값을 삭제하려고 했는데, 이 코드가 동작하기만 하면 앱이 강제 종료 되며 java.util.ConcurrentModificationException 과 같은 에러가 나타났다.✅ 해결방안원인은 List나 Map과 같은 컬렉션을 수정하는 도중에 다른 스레드에서 동시에 컬렉션을 수정하려고 해서 그러는 것인데, 쉽게 말하자면 List는 수정되었는데 수정되기 이전의 List에서 forEach가 계속 수행 되고 있기 때문이다...
· Android
0️⃣ Lottie Animation?로티 애니메이션은 개발자들이 손쉽게 애니메이션을 구할 수 있는 방법이다. mp4나 gif보다 용량도 적고 조작하기도 쉬운 파일로서 json 또는 lottie 자체 애니메이션 파일로 제공되곤 한다. 무료 로티 애니메이션, 모션 그래픽을 위한 모든 플러그인과 도구를 한 곳에 - 로티파일즈/LottieFi로티파일즈/LottieFiles는 오픈소스 애니메이션 포맷 로티를 제공하는 세상에서 가장 큰 무료 플랫폼입니다. 웹, iOS, 안드로이드, 윈도우를 위한 모션 그래픽 작업을 지원하는 플러그인과 툴을 통lottiefiles.com게다가 공식문서가 정말 잘 되어있어서 어떤 플랫폼에서든 공식 문서 하나만 보면 다 적용하며 따라할 수 있다! 이것이 정말 큰 장점인 것 같다. 덕분..
· Android
이미지를 둥글게 만드는 경우는 정말 정말 많다! 필수 기능 중 하나라고 봐도 무방할 정도다. 저렇게 둥근 이미지들이 잔뜩 들어갈 때는 어떻게 만들면 좋을까?1️⃣ res/drawble 폴더에 background 생성이렇게 xml 파일을 생성하여 아래코드처럼 작성하면 된다. 두 가지 방법 모두 잘 작동한다. android:shape="oval" props 값을 주게 되면 손쉽게 원형을 생성할 수 있다.  shape 태그 안에 태그를 줌으로 인해서 View의 radius 값을 줄 수 있는데 이때에는 내가 radius를 주려고 하는 원래 View와 dp값을 잘 맞춰주어야한다. 이 점을 유의하자.2️⃣ layout 폴더 내의 xml파일에서 background 적용하기이렇게 background옵션에 방금 dra..
· Android
0️⃣ 안드로이드를 사용해본 사람으로서... 지금이야 아이폰을 쓰고 있지만 사실 안드로이드 휴대폰을 사용한지 정말 오래됐다. 10년 넘게 사용하던 Android를 바꾸게 된 계기는 정말 의아하게도 아이패드와의 연동성 때문이었는데 iCloud의 편리함에 깜빡 속아 넘어가게 된 것이다...  아이폰이 갤럭시보다 더 예쁘다, 성능이 좋다 등등의 말들은 제법 많이 들어봤을 것이다. 예쁜 것은 주관적인 것이고 성능은 분명 수치에 기반한 말일테니 철썩 같이 믿고 아이폰을 처음 사용 했을 때의 실망감은 이로 말할 수 없을 것이다. 버그가 나고 렉이 걸리는 부분이 갤럭시와 조금 다를 뿐이지 아이폰이라고 버그가 없는 게 아니었기 때문이다. 그러면서 점점 느끼게 된 점은 '아하, Android나 iOS나 사용자 입장에선 ..
⛔ 문제사항이 Warning 문구는 단순히 텍스트를 하드코딩하지 말란 이야기인데, 단순히 TextView에서만 이러는 건 아니고 Button 등 텍스트가 들어가는 모든 위젯에서는 이러는 것 같다. 전부터 이 거슬리는 워닝을 해결하고 싶었는데 드디어 해결 방법을 알게 되었다!✅ 해결방안res/values/strings.xml 파일 내부에 텍스트를 직접 선언해주고, 다시 파일로 돌아와 내가 하드코딩 했었던 텍스트를 지우고 key 값을 넣어주면 끝이다! 안드로이드가 이렇게 하드코딩을 막는 이유는 다국어지원을 위해서라고 한다. 쉽고 유익한 해결방법...
· Android
0️⃣ HTML과 XML이 왜 궁금한데? 본격적으로 안드로이드 공부에 앞서 간단히 강의를 들으며 XML로 UI를 그리니 '어라? 뭔가 HTML이랑 유사한 것 같은데?' 라는 생각이 들었다. MVVM 패턴처럼 UI코드와 로직코드가 나뉘어져 HTML 내부에 직접 인라인 CSS를 작성하는 듯한 느낌을 가장 많이 받았다. 물론 안드로이드를 배우다보면 이 생각의 옳고 그름을 알 수 있겠지만 XML과 HTML이 어떻게 다른지에 대해 궁금해진 계기는 이렇다.1️⃣ HTML이란?HTML은 Hypertext Markup Language 의 약자로 웹페이지가 어떻게 구조화되어 있는지 브라우저가 알 수 있도록 하는, 웹 브라우저를 위한 마크업 언어 이다. 이 HTML은 단순히 텍스트 파일에 불과하고 구조를 설계해주는 언어이..
⛔ 문제사항강의를 들으며 모든 코드를 따라친다 해도 에러가 발생하기 마련인데, 그래도 놓친 부분이 없이 Run을 누르자마자 이러한 에러가 발생하며 앱이 이유없이 꺼졌다. ✅ 해결방안앱이 꺼진 이유는 바로 TODO 를 삭제하지 않았기 때문이다. 주석으로 되어있는 TODO가 아니라서 그런 것 같다... 앞으로 잘 삭제하고 코드를 실행하자.❗출처참고 사이트 : https://wise-99.tistory.com/43 [코틀린] kotlin.NotImplementedError: An operation is not implemented: Not yet implemented코틀린으로 앱을 만들면서 발생한 오류다. 오류가 발생한 부분은 32번 라인이다. 파이어베이스에 연동해서 데이터를 가져오려고 onDataChang..
깨비도
'Android' 카테고리의 글 목록 (2 Page)