Android (16)


한국 천문 연구원 일몰 일출 공공데이터 API Android 연동 (XML)

한국 천문 연구원 일몰 일출 공공데이터 API Android 연동 (XML)

오늘의 프로젝트 개발안녕하세요! 오늘은 안드로이드 개발 중 많은 개발자들을 당황하게 만드는 공공데이터 포털의 XML API를 Jetpack Compose 환경에서 깔끔하게 연동하는 방법을 정리해 보려고 합니다.대부분의 현대 API는 JSON을 지원하지만, 한국천문연구원의 출몰시각 정보(getAreaRiseSetInfo) 같은 일부 구형 공공데이터 API는 _type=json 파라미터를 던져도 무조건 XML로만 응답을 줍니다.안녕하세요! 오늘은 안드로이드 개발 중 많은 개발자들을 당황하게 만드는 공공데이터 포털의 XML API를 Jetpack Compose 환경에서 깔끔하게 연동하는 방법을 정리해 보려고 합니다📄 일출 일몰 데이터 공식 문서 확인가이드 문서를 열어보면 제공기관 스펙상 응답 데이터가 JSO..

sealed class vs data class

sealed class vs data class

오늘의 개발 스터디 [Kotlin] sealed class vs data class 완벽 정리: 언제 무엇을 써야 할까?코틀린(Kotlin)으로 개발을 하다 보면 데이터와 상태를 다루는 일에 정말 많은 시간을 쓰게 됩니다. 이때 우리를 아주 편하게 만들어주는 두 가지 강력한 무기가 있죠. 바로 data class와 sealed class입니다. 이름만 보면 둘 다 무언가 데이터를 담거나 클래스를 묶어주는 것 같은데, 정확히 어떤 차이가 있고 어떤 상황에 어떤 것을 사용해야 할까요? 1. 데이터 본연의 역할에 충실한 data classdata class는 말 그대로 '데이터를 보유하는 것(Holding Data)'이 주 목적인 클래스입니다.자바(Java)에서 POJO(Plain Old Java Objec..

안드로이드 코루틴(Coroutines) 개념부터 실무 활용까지 완벽 정리

안드로이드 코루틴(Coroutines) 개념부터 실무 활용까지 완벽 정리

오늘의 개발 스터디 안녕하세요! 오늘은 안드로이드 비동기 프로그래밍의 핵심이자, 이제는 필수 역량이 된 코루틴(Coroutines)에 대해 알아보겠습니다.과거에는 RxJava나 AsyncTask(이젠 추억의 이름이죠..)를 주로 사용했지만, 구글이 코틀린을 공식 언어로 채택한 이후 이제 안드로이드 비동기 처리는 코루틴이 완전히 주도하고 있습니다. 왜 코루틴을 써야 하고, 어떻게 쓰는지 핵심만 쏙쏙 정리해 드릴게요!1. 코루틴(Coroutine)이란 무엇인가요?코루틴은 Co(함께, 협력동작) + Routine(루틴, 일련의 명령 회로)의 합성어입니다. 즉, "서로 협력하는 루틴"이라는 뜻을 가지고 있습니다.일반적인 함수(Routine)는 한 번 실행되면 끝날 때까지 멈추지 않고 쭉 실행(Return)됩니다..

freezed와 .g.dart, .freezed.dart 파일의 정체 완벽 정리

freezed와 .g.dart, .freezed.dart 파일의 정체 완벽 정리

오늘 개발 스터디 Flutter/Dart로 프로젝트를 진행하다 보면 *.g.dart나 *.freezed.dart 같은 생소한 파일들을 자주 마주하게 됩니다. 특히 상태 관리를 위해 freezed 라이브러리를 도입하면 필수적으로 보게 되는 파일들이죠.이 파일들은 왜 생성되는 것이며, freezed는 우리에게 어떤 편리함을 줄까요? 이번 글에서는 Dart의 코드 생성(Code Generation) 메커니즘과 freezed 라이브러리의 핵심 지식을 깊이 있게 살펴보겠습니다.1. 왜 freezed가 필요했을까? (Dart의 한계와 보일러플레이트)Java나 Kotlin, Swift 같은 모던 언어들과 달리, Dart(특히 초기 버전)는 데이터 모델 객체를 만들 때 개발자가 직접 작성해야 하는 반복적인 코드(보일러..

StateFlow vs SharedFlow 완벽 정리: 언제 무엇을 써야 할까?

StateFlow vs SharedFlow 완벽 정리: 언제 무엇을 써야 할까?

오늘의 개발 스터디 안드로이드 앱을 개발할 때 비동기 데이터 스트림을 다루기 위해 Kotlin의 Coroutines와 Flow를 정말 많이 사용하죠. 그중에서도 LiveData를 대체하며 단골 손님으로 등장하는 StateFlow와 SharedFlow!두 녀석 다 "Hot Stream"이라는 공통점이 있어서 처음 접하면 꽤나 헷갈립니다. 오늘은 이 둘의 차이점을 명확하게 정리하고, 실무에서 어떤 상황에 어떤 Flow를 선택해야 하는지 깔끔하게 정리해 보겠습니다.1. Hot Stream이란? (막간 개념 정리)StateFlow와 SharedFlow를 이해하려면 먼저 Hot Stream의 개념을 알아야 합니다.Cold Stream (일반 Flow): 소비자가 수집(collect)을 시작해야만 데이터를 생산합..

Android Rest API 연결 쉽게 하기 (1) ( Compose , Hilt 라이브러리 )

우선적으로 Hit 라이브러리 라는건 무엇이냐?Hilt는 Dagger를 기반으로 만들어진 Android 전용 DI 라이브러리입니다.프로젝트의 각 컴포넌트(Activity, ViewModel 등)에 필요한 객체를 외부에서 주입해 주므로, 코드의 재사용성을 높이고 모듈 간의 의존성을 줄여줍니다.1. 기존에 사용하는데는 문제가 없지만 Hilt 라이브러리 사용을 위해서 몇 가지 설정이 필요합니다. module / build.gradle.kts ※ 버전 필수로 맞추기 plugins { id("com.android.application") version "8.2.2" apply false id("org.jetbrains.kotlin.android") version "1.9.24" apply false..