본문 바로가기

안드로이드/코틀린16

안드로이드 CameraX, 카메라 프리뷰 예제 - 사진 촬영 및 저장 구현하기 안드로이드 앱에서 카메라 기능은 자주 사용되는 중요한 요소 중 하나입니다.이번 글에서는 CameraX 라이브러리에 대해서 간략하게 살펴보고,CameraX를 활용하여 사진 촬영, 이미지 저장, 이미지 결과까지 확인하는 카메라 프리뷰 예제를 살펴보려고 합니다.해당 예제를 통해서 Android Jetpack의 CameraX 라이브러리를 효과적으로 사용하는 방법을 확인할 수 있습니다.혹시 카메라 프리뷰 예제를 실행하고 싶으시다면 아래 링크를 통해 다운로드가 가능합니다.    안드로이드 CameraX 라이브러리 CameraX는 Android Jetpack의 일부로 안드로이드 앱에서 카메라 기능을 간단하고 효율적으로 구현할 수 있도록 설계된 라이브러리입니다. 기존의 Camera API는 다소 복잡한 설정과 디바이스.. 2024. 12. 5.
안드로이드 UART 시리얼 통신 예제 다운로드 시리얼 통신은 무선 네트워크 환경에 영향을 받지 않고안정성과 보안성을 유지할 수 있어 안드로이드 개발에서 많이 사용됩니다.이번 글에서는 안드로이드 UART 시리얼 통신을 중심으로 다뤄보겠습니다. 저는 WiFi, USB, 블루투스 소켓 통신을 지원하는 Connector 모듈을 작성했으며,최근 이 모듈에 UART 시리얼 통신 기능을 추가하였습니다.이 글에서는 Connector 모듈을 활용해 안드로이드에서 시리얼 통신을 구현하는 방법을 구체적으로 살펴보려고 합니다.UART 시리얼 통신 예제 코드는 GitHub에서 다운로드 가능합니다.   Connector 모듈 소개 Connector 모듈은 안드로이드에서 다양한 통신 방식을 하나의 구조로 통합하여 관리할 수 있도록 설계된 모듈입니다.이 모듈을 통해 WiFi, .. 2024. 11. 24.
안드로이드 블루투스 소켓 통신 예제 다운로드 안드로이드 개발 환경에서 다양한 장비와 기기를 네트워크로 연결해 데이터를 주고받는 기능은 필수적입니다.네트워크 통신에 관심이 많은 저는 이러한 다양한 통신 방식을하나의 모듈로 통합하고 관리할 수 있는 Connector 모듈을 작성하였습니다. 이번 글에서는 WiFi 소켓 통신, USB 소켓 통신에 이어서Connector 모듈을 활용해 안드로이드 블루투스 소켓 통신을 중점적으로 다룰 예정입니다.예제의 주요 코드를 살펴보고, 안드로이드 단말과 단말 간에 데이터를 주고받는 테스트 방법도 확인할 수 있습니다.또한 예제 코드는 GitHub에서 다운로드하여 직접 확인할 수 있습니다.    Connector 모듈 소개 Connector 모듈은 안드로이드에서 다양한 통신 방식을 하나의 구조로 통합하여 관리할 수 있도록 .. 2024. 11. 23.
안드로이드 USB 소켓 통신 (예제 다운로드) 안드로이드 개발 환경에서 다양한 장비와 기기를 네트워크로 연결해 데이터를 주고받는 기능은 필수적입니다.네트워크 통신에 관심이 많은 저는 이러한 다양한 통신 방식을하나의 모듈로 통합하고 관리할 수 있는 Connector 모듈을 작성하였습니다. 이번 글에서는 Connector 모듈을 활용해 안드로이드 USB 소켓 통신을 중점적으로 다룰 예정입니다.예제의 주요 코드를 살펴보고, 안드로이드 단말과 PC 간에 데이터를 주고받는 테스트 방법도 확인할 수 있습니다.또한 예제 코드는 GitHub에서 다운로드하여 직접 확인할 수 있습니다.    Connector 모듈 소개 Connector 모듈은 안드로이드에서 다양한 통신 방식을 하나의 구조로 통합하여 관리할 수 있도록 설계된 모듈입니다.이 모듈을 통해 WiFi, US.. 2024. 11. 19.
안드로이드 WiFi 소켓 통신 (예제 다운로드) 안드로이드 개발 환경에서 다양한 장비와 기기를 네트워크로 연결해 데이터를 주고받는 기능은 필수적입니다.네트워크 통신에 관심이 많은 저는 이러한 다양한 통신 방식을하나의 모듈로 통합하고 관리할 수 있는 Connector 모듈을 작성하였습니다. 이번 글에서는 Connector 모듈을 활용해 안드로이드 WiFi 소켓 통신을 중점적으로 다룰 예정입니다.예제의 주요 코드를 살펴보고, 안드로이드 단말과 PC 간에 데이터를 주고받는 테스트 방법도 확인할 수 있습니다.또한 예제 코드는 GitHub에서 다운로드하여 직접 확인할 수 있습니다.    Connector 모듈 소개 먼저 Connector 모듈에 대해서 간단하게 살펴보겠습니다.Connector 모듈은 안드로이드에서 다양한 통신 방식을 하나의 구조로 통합하여 관리.. 2024. 11. 16.
안드로이드 화면 전환: Navigation 기능 사용법 및 예제 안드로이드 애플리케이션 개발에서 화면 전환은 사용자 경험을 개선하는 중요한 요소입니다.이번글에서는 먼저 네비게이션 기능을 소개하고,네비게이션 컴포넌트를 사용하여 화면 전환을 구현하는 방법과 예제를 통해 이를 살펴보려고 합니다.    네비게이션 기능 소개 안드로이드의 네비게이션 컴포넌트는 Jetpack 라이브러리의 일부로 애플리케이션 내에서 화면 전환을 쉽게 처리할 수 있도록 도와줍니다. 이 기능은 명확한 구조를 제공하며 코드의 복잡성을 줄여 줍니다. 주요 구성 요소 NavHostFragment: 네비게이션 그래프의 목적지(Fragment)를 표시하는 컨테이너입니다.Navigation Graph: XML 파일로 애플리케이션의 네비게이션 구조를 정의합니다.NavController: 네비게이션 그래프 내에서 .. 2024. 7. 13.
코틀린 스레드 및 코루틴 중복 실행 방지 방법 앱에서 비동기 작업을 처리할 때는 중복 실행으로 인한 불필요한 리소스 사용이나,예상치 못한 오류로 인한 비정상 종료 등의 문제가 발생할 수 있습니다.이를 방지하기 위해 중복 실행으로 인한 문제여부를 체크하고 중복 실행에 대한 작업을 추가하는 것은앱의 안정성을 높일 수 있는 방법 중 하나입니다.따라서, 스레드 및 코루틴을 이용한 비동기 작업을 처리할 때 중복 실행을 관리하는 방법에 대해 정리해보려고 합니다.     스레드(Thread) 중복 실행 방지 : Flag "isThreadRunning"이라는 플래그를 사용해서 연속적으로 호출되더라도 중복해서 실행되는 것을 막을 수 있습니다.private var isThreadRunning = falseprivate fun threadExample() { if.. 2024. 5. 14.
안드로이드 소수점 표기 올림? 버림? : String.format, DecimalFormat 길게 나열된 소수점이 있을 때 종종 둘째 자리 또는 셋째 자리까지만 소수점을 표기해야 할 때가 있습니다.이번 글에서는 코틀린에서 소수점 표기하는 방법으로 String.format / DecimalFormat을 정리하려고 합니다.또한 소수점을 표기할 때 올림, 반올림, 버림은 어떻게 적용되는지 살펴보려고 합니다.     소수점 표기방법 : String.format String.format을 사용해서 원하는 소수점까지 표기하는 방법은 아래와 같습니다.String.format("%.2f", floatValue) // 소수점 둘째 자리까지 표기 String.format("%.3f", floatValue) // 소수점 셋째자리까지 표기  아주 심플하게 사용이 가능한데요, 한 가지 주의사항이 있어요.String.f.. 2024. 5. 10.
코틀린 데이터 변경 감지 : 프로퍼티 위임(Delegated Properties) Observable Properties란 데이터의 변경을 감지하고 이를 관찰할 수 있는 기능을 제공하는 속성입니다.대표적으로 LiveData 있지만...!이번 글에서는 Kotlin 라이브러리에서 제공하는 프로퍼티 위임(Delegated Properties)에 대해 살펴보려고 합니다.프로퍼티 위임에 사용되는 Delegates.observable / Delegates.vetoable에 대해 알아보고,프로퍼티 위임과 LiveData에 대한 차이점도 간략하게 정리해보려고 합니다.     프로퍼티 위임(Delegated Properties) 프로퍼티 위임은 변수의 변경을 감지할 수 있습니다.Delegates.observable 또는 Delegates.vetoable를 통해 콜백을 호출하여 추가적인 작업 수행이 가.. 2024. 5. 8.
앱 백그라운드 상태 체크 : LifecycleEventObserver, DefaultLifecycleObserver 앱이 백그라운드인지 포그라운드인지 체크하려면 어떻게 해야 될까요?생명주기를 관찰하는 LifecycleObserver를 활용할 수 있습니다.위 그림은 LifecycleObserver 개발자 문서 일부인데요LifecycleObser를 바로 사용하지 말고,확장된 인터페이스로 LifecycleEventObserver 또는 DefaultLifecycleObserver를 사용하시면 됩니다.     Application 클래스 생성 앱에 전반적인 생명주기를 관찰하기 위해 Application 클래스가 필요합니다.생성한 Application 클래스 이름을 아래와 같이 manifests에 등록해 주세요.     LifecycleEventObserver 사용 LifecycleEventObserver는 onStateChan.. 2024. 5. 7.