이 영역을 누르면 첫 페이지로 이동
CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

페이지 맨 위로 올라가기

CodeJUN

심심해서 하는 블로그

Android

  • CodeJUN
Android Retrofit2 Request URL Path를 유동적으로..!

Android Retrofit2 Request URL Path를 유동적으로..!

2020.12.24
BASE URL은 같고, POST 시 요청하는 Request URL의 path 가 유동적으로 변하기 때문에 이에 맞게 변경 및 요청이 가야한다는 요구사항이 있었다. 문제 해결 접근 @GET 을 사용할 때 @Path 를 사용하여 request url 을 직접 설정할 수 있었기에 같은 방법으로 접근하였다. @GET("/info/{user}") fun getUserInfo( @Path("user") user: String ): Call 이런식으로 user 파라미터로 Codejun 을 전송하게 되면 request url 은 /info/Codejun 이 되어 request 한다. 그래서 post에서도 따라해봤다.. @POST("/{custom_uri}") fun requestData( @Path("custom_u..
[안드로이드 모듈] 외부 종속 라이브러리 같이 배포

[안드로이드 모듈] 외부 종속 라이브러리 같이 배포

2020.12.17
안드로이드 모듈(라이브러리)을 제작하고 배포하는 과정에서 모듈에서 사용했던 라이브러리를 외부 앱에서 불러올 수 없는 상황이 발생했다. 근데 이 라이브러리가 프로젝트 안에 aar 또는 jar의 형식으로 되어있는것이 아닌, implementation한 외부 종속 라이브러리 라는 점이다. 이를 해결하기 위해서는 외부 앱에서 내가 만든 라이브러리를 다운받아 sync 할 때 나의 라이브러리에서 사용된 외부 종속 라이브러리를 같이 다운받아 sync되게끔 해주어야 한다. 해결 방법은 아래와 같다. gradle파일에서 publishing할 때 사용했던 라이브러리들을 pom파일에 dependency 로 넣어주면 되는데, 아래 코드를 publishing하는 gradle에 추가하면 된다. pom.withXml { def d..
Android Studio 이전 버전 세팅 불러오는 방법

Android Studio 이전 버전 세팅 불러오는 방법

2020.08.13
Android Studio 4.1 베타를 쓰다가 업데이트가 있어 업데이트를 받았더니 기존의 keymap이 전부 바뀌었다.. Command + Delete를 누르면 라인 한 줄이 전부 사라지던 것이나, command + W를 누르면 탭이 닫히던 것, command + shift + f를 누르면 검색한거 찾아주는 단축키라던가.. 전부 이상한 것으로 변경되어 있었다. How to import settings from previous version Android Studio.. 검색..했는데.. 원하는 답변이 안 나온다. 정보력이 부족한 것이가.. 싶었으나, Android Studio에서 조금만 찾아보면 있던 것이라 없었다 보다 싶다. 그래서 기존에 쓰던 4.0(Stable) 버전에서 쓰던 환경을 그대로 가져오..
Cannot invoke setValue on a background thread 해결 방법

Cannot invoke setValue on a background thread 해결 방법

2020.08.03
AAC를 사용하면서 가끔 발생하는 오류이다. 보통 livedata 객체에 값을 넣을 때 발생한다. LiveData 객체에 값을 설정하는 방법이 두 가지가 있는데, setValue()와 postValue가 있다. 이 두 함수는 모두 LiveData객체에 값을 저장하는 역할을 한다. 이 두 함수를 구독하고 있는 옵저버가 있는 상태에서 사용하게 되면, value의 값이 변경되는 즉시 변경된 값을 받을 수 있다. 하지만 다른 점이 한 가지 있다. setValue()는 메인 쓰레드에서 바로 반영된다는 것이고, postValue는 백그라운드에서 반영된다. 따라서 해당 오류를 해결하기 위한 방법으로는, 간단하게 setValue 대신 postValue를 이용하면 된다.
RecyclerView에 줄 라인 추가하기(Divider)

RecyclerView에 줄 라인 추가하기(Divider)

2020.07.27
ListView와는 다르게 RecyclerView에는 기본적으로 line divider 가 존재하지 않는다. 따라서 RecyclerView에서 제공하는 addItemDecoration 함수를 사용해야 한다. 사실 이전에도 관련 글을 포스팅한 적이 있었는데 최근 들어 사용 언어를 Kotlin으로 갈아타게 되면서 코틀린 버전도 포스팅을 해볼까 한다.. 적용을 위해서는 DividerItemDecoration 클래스를 만들고 line으로 사용할 xml을 생성해주면 된다. 일단 line으로 쓰이게 될 line_divider.xml 을 drawable안에 만들어준다. 이렇게 되면 약간의 회색 줄이 생성된다. 이제 이를 사용할 class를 생성해보자. 클래스명은 원하는 대로.. class DividerItemDeco..
Layout Inspector로 레이아웃 디버깅하기

Layout Inspector로 레이아웃 디버깅하기

2020.06.01
지난주에 Android Studio 4.0이 Stable 채널에 업데이트되었습니다. 생각보다 새로운 기능들이 많은데, 앞으로 하나씩 포스팅해보도록 하겠습니다. 왜 항상 이 친구들은 좋은 기능 만들어 놓고 꽁꽁 숨겨두는지 모르겠습니다. 뭐 할때 쓰는 걸까 공식 문서에서는 Layout Inspector를 '레이아웃이 완전히 XML로 빌드된 것이 아니라 런타임에서 빌드되어 예상치 못한 방식으로 작동될 때 유용하다.' 라고 설명하고 있습니다. 제가 해석하기로는 아마 레이아웃 구성 시 XML코드로 짜는 것이 아닌 클래스를 통해 레이아웃을 구성하거나 값들을 변경하였을 때 예상치 못한 오류가 발생하는 경우(위젯이 사라지거나 이상한 곳에 배치되는 경우) 디버깅에 유용한 툴 정도로 해석했습니다. 레이아웃의 구성을 XML..
Android에서의 MVVM은 무엇이고 왜 사용하는가

Android에서의 MVVM은 무엇이고 왜 사용하는가

2020.04.06
이전 기록에서 아키텍처 개선을 위한 이야기를 했었다. 개선을 위한 컴포넌트(Component)들을 사용하고, MVVM 디자인 패턴을 적용하기로 했었다. 이번 기록에서는 이 MVVM 디자인 패턴이 무엇인지를 다뤄 볼 예정이다. 관심사 분리 초보 개발자들(본인)이 실수하는 많은 것들 중 하나는, Activity나 Fragment 클래스에 모든 코드를 작성하려 한다는 것이다. 때문에 앱의 동작 속도가 느려질 수 밖에 없고 유지보수가 어렵게 되는것은 덤이며 메모리 관리에도 많은 어려움이 발생한다. 따라서, 최대한 클래스의 의존성을 최소화 하는 것이 좋다. (추후에 의존성 주입에 대한 내용도 포스팅 할 예정이다.) 아직 초보인 본인이 봤을 때는 로직들을 분리하고 의존성을 최소화 하게 되면, 한 로직에서 문제가 발..
Android 아키텍처 컴포넌트를 사용한 구조 개선

Android 아키텍처 컴포넌트를 사용한 구조 개선

2020.04.03
Android는 데스크톱 앱과 실행 환경이 매우 다르다. 보통의 데스크톱 앱은 특정 작업 수행 중에 다른 작업을 수행해도 진행중인 작업이 사라지거나 중단되지 않는다. 그러나 Android는 OS의 매우 복잡한 구조 덕분에 앱에서 실행하던 작업이 중단되거나 다시 실행될 수 있다. 개발자는 이를 방지하기 위해 노력해야 한다. 우리는 이에 따라 권장하는 아키텍처를 구성하여 제작하면 사용자에게 좀 더 화려한 이용 경험을 제공해 줄 수 있을 것이다. 이번 기록에서는 아키텍처를 개선하기 전에 Android가 어떤 구성요소로 되어있고, 어떤 문제점이 있기 때문에 개선해야 하는지, 그리고 어떤 디자인 패턴을 사용하여 개선해야 할지를 알아보려 한다. 그래서 왜 개선이 필요한가? 우선, Android는 우리가 흔히 알고 ..
'onMessageReceived' overrides nothing 해결

'onMessageReceived' overrides nothing 해결

2020.03.30
FCM 버전을 오랜만에 업데이트 한 후 Gradle Sync를 돌리는데 자꾸만 에러가 난다. 고친 소스코드도 없는데... 해당 에러가 나는 부분은 다음과 같다. ... override fun onMessageReceived(remoteMessage: RemoteMessage?) { ... } ... override fun onNewToken(token: String?) { ... } override 쪽에서 에러가 난다. 전혀 문제가 없는 소스코드지만, 업데이트 이후 변경점이 있다. 그냥 null check 부분을 수정해 주면 된다. 아래와 같이.. ... override fun onMessageReceived(remoteMessage: RemoteMessage) { ... } ... override fu..
Biometric을 이용한 지문 인식 사용

Biometric을 이용한 지문 인식 사용

2020.03.20
Andorid API 23.. 즉, 마시멜로우 버전부터는 안드로이드 기기에 탑재되어 있는 지문인식 센서를 사용할 수 있게 되어있습니다. 그러나 28 버전인 Pie 버전부터 Deprecated 되었습니다. 이유는 최신 기종의 스마트폰은 다양한 생체 정보를 활용할 수 있는 센서들이 장착되어있기 때문입니다. 이에 따라서 Google은 지문 인식 뿐만 아니라 홍체 인식, 얼굴 인식 등의 정보를 활용할 수 있는 BioMetricPrompt를 제공합니다. BiometricPrompt를 사용하는 이유는 이 뿐만이 아닙니다. 이전의 안드로이드는 센서 정보만 제공했기 때문에 지문인증 레이아웃의 구성이 개발자나 디자이너에 따라 모두 달랐습니다. 하나의 통합된 레이아웃을 제공하는 iOS와는 전혀 달랐습니다. 이렇기에 사용자..
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (2)

Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (2)

2020.02.12
이전 글 보기 더보기 https://blog.codejun.space/75 이전 글에 이어서, 이번에는 Telegram Bot을 생성하고, Pipeline을 새로 작성하여 최종적으로 빌드된 apk가 Telegram Bot이 쏴줄 수 있도록 목표를 잡는다. Telegram Bot 생성 일단 Telegram에서 BotFather를 추가한다. Telegram의 Bot 생성 과정이 아주 잘 되어있기에 어렵지 않게 할 수 있으리라 예상한다. @BotFather 를 찾아 추가한다. 그 다음 /newbot 명령어를 통해 Bot을 생성하면 된다. Bot의 Token을 이용해서 Request 날립시다 봇 생성을 완료하면 위 사진 처럼 API에 접근 가능한 Token을 발급해준다. 이 Token을 통해 우리는 Pipeli..
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1)

Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1)

2020.02.10
참고 블로그: http://youknow.kim/2020/01/11/bitbucket-pipeline%EC%9C%BC%EB%A1%9C-android-apk-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0/ Bitbucket Pipeline으로 Android APK 빌드하기 – Youknow 본 포스팅에서는 Bitbucket 환경에서 Pipeline 기능을 사용하여 Android APK를 빌드하고 이를 Bitbucket Downloads 영역에 업로드하는 것을 다루고자 합니다. 젠킨스 CI 환경을 구축하는 방법도 있겠지만, 이미 Bitbucket을 사용하고 있다면 Bitbucket에서 제공하는 Pipeline 기능을 이용해보는 것도 좋겠다고 생각하여 찾아보게 되었습니다. App passw..
  • 최신
    • 1
    • 2
    • 3
    • 4
  • 다음

정보

CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

  • CodeJUN의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 방명록

카테고리

  • 분류 전체보기 (54)
    • Android (38)
    • BlockChain (4)
    • React Native (4)
    • 아두이노 (2)
    • 프로젝트 (6)

공지사항

  • 공지 - 블로그를 시작하며

태그

  • Firebase
  • c++
  • C
  • 안드로이드
  • Android
  • arduino
  • 아두이노
  • 강좌

나의 외부 링크

  • Github

정보

CODE_JUN의 CodeJUN

CodeJUN

CODE_JUN

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © CODE_JUN. Designed by Fraccino.

티스토리툴바