분류 전체보기262 [Android] Jetpack Compose란 Jetpack Compose는 구글에서 개발한 모던한 안드로이드 개발을 위한 선언형 UI Toolkit이다.2021년 8월에 1.0.0 스테이블 버전이 정식 출시되었으며, 공식적으로 프로덕션에 적용 가능하게 되었다.원래 안드로이드 개발에서는 앱의 레이아웃(UI)을 표현하기 위해 xml을 사용해왔다. xml로 레이아웃을 먼저 작성한 뒤, 자바/코틀린 코드에서 레이아웃의 구성 요소(View)들을 호출해서 소통하는 방식이다. 하지만 이러한 방식에는 몇몇 근본적인 문제점이 존재했다.Java/Kotlin 코드와 높은 의존성을 가짐이미 완성된 앱에서 버튼을 하나 빼고 싶다고 하자. 단순히 xml을 수정해서 버튼을 지우면 될 것 같지만, 해당 버튼과 연결된 Java/Kotlin 코드를 함께 삭제하지 않으면 오류가 발.. 2023. 9. 18. 명령형 프로그래밍 vs 선언형 프로그래밍 우선, 두 프로그래밍 패러다임의 차이점을 이해하기 전에 각각의 프로그래밍에 대한 개념을 이해하고자 한다. 명령형 프로그래밍 (Imparative Programming) 컴퓨터 과학에서 명령형 프로그래밍(命令型 프로그래밍, 영어: imperative programming)은 선언형 프로그래밍과 반대되는 개념으로, 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임의 일종이다. 자연 언어에서의 명령법이 어떤 동작을 할 것인지를 명령으로 표현하듯이, 명령형 프로그램은 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것이다. 글들을 읽다보면, 이해가 갈법하면서도, 잘가지 않는다. 가장 이해하기 쉽게 생각하면, 명령형 프로그래밍은 "HOW"를 제시한다. 우선 예시 코드를 보자. /.. 2023. 9. 18. [Android] LiveData란? 1. LiveData란?LiveData는 Data의 변경을 관찰할 수 있는 Data Holder 클래스이다.일반적인 Observable과는 다르게 LiveData는 안드로이드 생명주기(LifeCycle)을 알고 있다. 즉, 액티비티, 프래그먼트, 서비스 등과 같은 안드로이드 컴포넌트의 생명주기(LifeCycle)를 인식하며 그에따라 LiveData는 활성상태(active)일 때만 데이터를 업데이트한다.여기서 활성상태란 STARTED 또는 RESUMED를 의미한다. 또한 LiveData 객체는 Observer 객체와 함께 사용된다. LiveData가 가지고 있는 데이터에 어떠한 변화가 일어날 경우, LiveData는 등록된 Observer 객체에 변화를 알려주고, Observer의 onChanged() 메.. 2023. 9. 13. [Android] okHttp vs Retrofit OkHttp vs Retrofit둘 다 같은 회사(Square)에서 만든 HTTP 통신 라이브러리이다. OkHttp는 REST API, HTTP 통신을 간편하게 구현할 수 있도록 여러가지 기능을 제공한다. 그리고 이러한 OkHttp를 기반으로 Type-safe하고, 더 직관적으로 사용할 수 있도록 인터페이스로 만들어진 게 Retrofit이다. 따라서 완전히 다르진 않지만, 지원 기능과 용도 면에서 어느정도 차이가 있다.Retrofit이 OkHttp보다 Type-safe한 이유?: 개발자가 Json의 Raw한 문자열을 잘못 파싱할 수도 있는 문제를 줄여준다. 또한, 직접 파싱할 필요가 없기 때문에 코드가 간결해지고 편리하다는 장점까지 있다. 다음과 같은 장점의 이유로 OkHttp보다 Retrofit이 더 .. 2023. 9. 13. [Android] MQTT 통신 MQTT란? MQTT(Message Queueing Telemetry Transport)는 2016년 국제 표준화된 발행(Publish)-구독(Subscribe) 기반의 메시지 송수신 프로토콜로 최소한의 전력과 패킷으로 통신합니다. 따라서 IOT와 모바일 어플리케이션 등의 통신에 매우 적합한 프로토콜입니다. TCP/IP 프로토콜 위에서 동작하지만 가벼우면서도 많은 통신 제약을 해결할 수 있기에 모바일과 IoT 같은 환경에서 어울려 사용하기 좋습니다. MQTT구조 MQTT는 HTTP, TCP등의 통신과 같이 클라이언트-서버 구조로 이루어지는 것이 아닌, Broker, Publisher, Subscriber 구조로 이루어집니다. Publisher는 메시지(데이터)를 발행하는 역할 Subscriber는 메세지.. 2023. 9. 11. [Android] Firebase Crashlytics 적용하기 Firebase Crashlytics에 대해 간단히 소개하자면 “앱이 비정상적으로 종료되었을 때 개발자에게 알려주는 일종의 오류 보고 도구”이다. 그리고 공식 문서에서는 아래와 같이 소개한다.실시간 비정상 종료 보고 도구인 Firebase Crashlytics는 실제 사용자에 미치는 영향을 기반으로 가장 심각한 비정상 종료의 우선순위를 지정하고 문제를 해결하는 데 도움을 줍니다.https://firebase.google.com/products/crashlytics?hl=ko Firebase Crashlytics | 강력한 Android 및 iOS 비정상 종료 보고 솔루션Android 및 iOS 실시간 비정상 종료 보고 도구인 Firebase Crashlytics는 실제 사용자에 미치는 영향을 기반으로 가.. 2023. 9. 11. 이전 1 ··· 22 23 24 25 26 27 28 ··· 44 다음