Uknow's Lab.
article thumbnail
안드로이드 무선디버깅 (Wireless Debugging)
프레임워크/Android 2023. 10. 25. 01:43

안드로이드 스튜디오에서 애뮬레이터로 애플리케이션을 실행할 수 있지만, 저는 애뮬레이터보다는 실제 스마트폰에서 테스트 및 디버깅하는 것을 선호합니다. 하지만 실제 스마트폰에서 디버깅을 하기 위해 USB 케이블을 연결하기엔 다소 번거로운 감이 있는데요. WiFi가 제공되는 환경이며, PC와 동일한 네트워크망을 사용중이라면 다행이도 무선 디버깅이 가능합니다. * 아래 내용은 Android 11 이상 기준입니다. 개발자 모드 ON 유/무선에 상관없이 디버깅을 위해서는 개발자모드가 활성화 되어있어야 합니다. [설정 앱] -> [휴대전화 정보] -> [소프트웨어 정보] -> [빌드 번호]를 5번 클릭하면 개발자 모드가 활성화됩니다. PC 스마트폰 페어링(Pairing) 및 연결(Connect) [설정 앱] -> [..

article thumbnail
[안드로이드] 버튼 색상 혹은 drawable이 적용되지 않는 현상
프레임워크/Android 2023. 3. 29. 22:01

안드로이드를 시작할 때 많은 사람들이 한 번 겪는 버튼에 색깔이나 drawable이 적용되지 않는 증상이죠. 백그라운드 속성을 지정해줬으나, 안드로이드 기본 테마 특유의 그 보라색이죠. 여기엔 두 가지 해결방법이 있습니다. AppCompatButton 사용 Button을 androidx.appcompat.widget.AppCompatButton 으로 지정해주면 background 속성이 잘 적용됩니다. Theme 변경 혹은 themes를 AppCompat으로 변경하면 됩니다. 왜 적용이 안되지? 기본 버튼이 듣질 않는 이유는 안드로이드 프로젝트를 만들었을 때, 기본적으로 MaterialComponents 테마로 적용되있기 때문입니다. MaterialComponents의 버튼은 자체적으로 backgroun..

article thumbnail
[안드로이드/코틀린] 리사이클러뷰(RecylcerView)에 아이템 클릭 리스너 넣기
프레임워크/Android 2022. 12. 26. 15:22

리스트뷰와 리사이클러뷰의 아이템 클릭 리스너 ListView에 아이템 클릭 이벤트 리스너를 넣는 것은 꽤 간단했습니다. 그냥 버튼 클릭 리스너를 다는것과 같이 setOnItemClickListener를 달아주면 되니까요 하지만 RecyclerView 안에는 어떠한 itemClickListener를 찾아볼 수 없었습니다. 이는 아이템뷰를 재사용(Recylce)하는 리사이클러뷰의 특성 때문입니다. 뷰를 재사용하기 때문에, 리스트뷰보다 적은 리소스를 사용하며, 더 유연하고 자유롭지만, 마찬가지로 뷰를 재사용하기 때문에, 아이템을 클릭했을 때 이벤트를 처리하기가 어렵다고 하네요. 하지만, 방법이 없는것은 아닙니다. 저희가 직접 아이템 클릭 리스너를 구현하여 넣어주면 되니까요. 참고로 본 포스팅에서 사용하는 리사..

article thumbnail
[안드로이드] Cause: not a valid name: 에러 해결
프레임워크/Android 2022. 11. 29. 13:42

잘 되던 얘가 갑자기 안되기 시작했다. not a valid name이라는 처음보는 에러인데, 나 혼자만이 아닌 다른 팀원들과 같이하는 학부 프로젝트이기 때문에, 다른 팀원들이 뭔가를 잘못 건들였나 하는 생각에 깃허브 로그를 뒤적거리며 찾던 중, 다른 팀원이 id에 한글을 넣어버렸던것 (...) 영어로 바꾸니 잘 된다. 나중에 만나면 꿀밤 한대 때려줘야겠다....

article thumbnail
[Android/안드로이드] 지도 특정 시, 도에 색 칠하기 / 통계 지도 만들기
프레임워크/Android 2022. 10. 8. 22:16

모바일 앱이나 웹을 서비스 할 때, 서비스에 따라 지도에 통계치를 표기할때와 같이 지도의 색을 칠해야 할 때가 있습니다. 처음 시, 도 등 특정 지방자치단체에 색을 칠해야 함을 알았을 때, 어떻게 해야하나... 많은 고민이 있었고 3대 지도 API인 네이버, 카카오, 구글 지도 API에 삽질도 좀 하다가, 스택 오버플로우도 꽤나 많이 기웃거렸던 기억이 납니다. Javascript 관련 예제는 꽤 많은데 안드로이드 관련 예제는 별로 없어서 꽤 애먹었습니다 ㅎㅎ.... 결과적으로 지도에 색을 칠하는 것 자체는 지도 API는 별 필요가 없고 지도 svg 파일 하나와 VectorChildFinder 라이브러리면 됩니다. 지도 SVG 파일 준비 먼저 바탕이 될 지도 svg 파일 하나를 준비합니다. 구글링을 해봤더..

article thumbnail
[안드로이드] Build was configured to prefer settings repositories over project repositories but repository 'Google' was added by build file 'build.gradle' 에러
프레임워크/Android 2022. 7. 10. 20:59

파이어베이스를 추가하려고, 구글 가이드라인을 따라 Android의 build.gradle에 넣으려 했는데, 위와 같은 오류가 뜨더군요. 찾아보니, 안드로이드 스튜디오 Aritcle Fox 이상의 버전부터는 setting.gradle에 추가를 해야 한다 합니다. 안드로이드 스튜디오는 버전이 바뀔때마다 뭔가 조금씩 바뀌는데, 개발자 입장에서는 잘되던 놈이 안되니 매번 당황스러움을 느끼네요 허허...

article thumbnail
[안드로이드/코틀린] 리사이클러뷰(RecyclerView) 사용법 및 예제
프레임워크/Android 2022. 6. 20. 22:06

리사이클러뷰(RecyclerView) 리사이클러뷰는 안드로이드에서 리스트를 만들기 위해 사용되는 뷰 입니다. 리스트를 만들기 위해 사용된다는 점에서 리스트뷰(ListView)와 비슷하지만, 뷰를 재활용(Recycler)한다는 점에서 리스트뷰보다 더 개선된 형태입니다. 하지만, 뷰를 재활용 하기 때문에 각 뷰의 내용을 담아둘 뷰 홀더(View Holder)가 필요합니다. 아이템 레이아웃 만들기 item_recycler_view.xml 아이템의 각 행을 담을 레이아웃을 만듭니다. 데이터 클래스 만들기 data class BoardItem(val time: String, val title: String, val name: String) 리스트의 각 아이템의 내용이 담길 데이터 클래스를 하나 만듭니다. 저는 예..

article thumbnail
[안드로이드] This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2021.2.1 or newer. 오류 및 해결
프레임워크/Android 2022. 6. 20. 00:54

집에 와 깃헙에 올려두었던 저장소를 클론하고, 해당 프로젝트를 열었더니 빨간줄이 날 반겨주었다. 대충 IntelliJ(혹은 안드로이드 스튜디오)가 이 프로젝트를 열 수 없으니, 2021.2.1 버전이나 그보다 더 최신버전으로 업데이트 한 후에 열라는 것 같다. 학교 연구실 컴퓨터에서 최신버전의 안드로이드 스튜디오를 사용해 프로젝트를 생성하고, 집에서 개인 노트북으로 하려니 버전이 맞지 않아 발생한 오류였다... ㅠㅠ 뭐... 귀찮지만 별 수 없으니 안드로이드 스튜디오를 업데이트를 해주도록 하자 안드로이드 상단 툴바의 Help - Check for Updates를 누른다. 그러면 이러한 창이 뜰 것이다. 뜨지 않는다면 우측의 팝업창 형태로 새로운 버전이 감지되었다고 뜰 것이다. Update and Rest..

[안드로이드] 코틀린 뷰 바인딩 (View Binding)
프레임워크/Android 2022. 4. 17. 21:15

뷰 바인딩(View Binding)은 코틀린 코드 상에서 findViewById를 통해 일일히 뷰를 찾아줄 필요 없이, 코틀린 코드 상에서 레이아웃에 더 쉽게 접근할 수 있도록 해주는 기능입니다. 뷰 바인딩 적용 방법은 아래와 같습니다. build.grandle 에 아래 코드 삽입 buildTypes { buildFeatures { viewBinding true } } build.grandle의 buildTypes 부분에 위 코드를 삽입합니다. 코틀린 코드 상에서 xml 참조하기 액티비티는 보통 Kotlin(Java) 파일과 xml 파일이 쌍을 이룹니다. LoginActivity.kt 과 이에 대응되는 레이아웃 파일인 activity_login.xml이 있고, 여기에 뷰 객체인 btn_login을 생성하..

article thumbnail
[모바일 앱 개발] 네이티브, 모바일 웹 앱, 하이브리드, 크로스플랫폼, 무슨 차이일까?
프레임워크/Android 2022. 2. 16. 00:36

안녕하세요. 오늘은 모바일 어플리케이션 개발 방법에 관한 이야기를 해볼까 합니다. '모바일 어플리케이션 개발 방법'이라 하면 여러가지가 떠오르실 텐데요. 언어적 측면에서 생각한다면 Java, Kotlin, Objective - C, Swift가 떠오르시는 분이 계실테고, IDE 관점에서 생각하신다면 안드로이드 스튜디오와 Xcode가, 소프트웨어공학 관점에서 본다면 설계부터 기능명세서, 유지보수 등을 떠올리실 분들도 있겠지요. 그 중에서도 오늘 이야기하고 싶은 주제는 바로 '플랫폼 시각에서 바라본 어플리케이션 개발 방법' 입니다. 스마트폰 플랫폼의 경우 애플의 iOS와 구글의 Android로 양분되어 있습니다. 그에 따라 스마트폰 애플리케이션 역시 iOS와 Android를 각각 개발하고 서비스해야 하지요...