전체 글

안드로이드 공부 중인 컴붕이 블로그입니다.
· 프로젝트
WAP에서 진행하는 랜덤 개발 챌린지에 참가하게 되었다! 랜덤 개발 챌린지는 참가자가 주제를 선정하고, 랜덤으로 배정받아 개발하는 챌린지이다. 내가 배정된 주제는 "취업"이였고, 현재 상황에서 산업기능요원을 준비하고 있는 나에게 필요한 어플리케이션을 개발하고 싶었다. 그래서 IT산업기능요원 채용 플랫폼 WANTED를 이은 (kid)NAPPED를 기획하게 되었다. 사실 어느정도 생각은 하고 있던 프로젝트여서, 문제 없이 금방 개발할 수 있을 것 같았다. 그 API를 자세히 보기 전까지,, 병무청에서는 병역일터 채용공고 API를 제공하고 있다. 해당 API는 현재 산업기능요원 및 전문연구요원을 모집하고 있는 회사의 공고를 확일할 수 있는 공공 API이다. 이번 포스팅에서는 해당 공공 API를 사용하면서 발생..
· Android
이번 게시글에서는 이전 게시글의 DateTime API를 이어서 설명한다. 이번 포스팅에서는 Instant, DateTimeFormatter, Kotlinx-DateTime API를 소개한다. Instant : 기계 관점에서 시간과 날짜 인간은 더 식별 가능하게, 더 기억하기 쉽게 날짜와 시간을 년도, 월일, 시분초와 같은 단위로 나누어 생각한다. 그럼 기계도 이렇게 저장할까? 당연히 아니다. 그럼 기계 관점에서 어떤 표기가 가장 효율적일까? 아마도 십진수를 이진법으로 변환하듯, 꾸준히 증가하는 연속된 시간에서 하나의 지점을 큰 수로 표현하는 것이 이상적일 것이다. Java에서는 Instant를 제공하여, Instant를 통해 기계관점에서 친화적인 시간과 날짜를 표기할 수 있다. 자세하게 Instant는..
· Android
어플을 개발할 때 많은 상황에서 시간을 활용해야 하는 순간이 발생한다. 이 때 우리는 DateTime API를 사용할 수 있다. DateTime 이전에 사용했던 Date, Calendar 라이브러리의 문제점과 DateTime 라이브러리를 소개한다. Date, Calendar vs DateTime Immutable Type 기존 Date, Calendar 라이브러리는 가변 클래스였다. 가변성은 날짜와 시간 같은 요소에서 좋지 않으며, 유지 보수를 어렵게 한다. DateTime은 불변 타입을 제공함으로써, 안전하게 사용할 수 있도록 설계되었다. Thread Safety Date, Calendar 라이브러리는 동시성 문제를 가지고 있었고, 이를 위해 추가적인 코드를 작성해야만 했다. DateTime은 불변 타..
· Kotlin
제네릭은 나중에 지정할 타입에 대해 작동하는 코드를 의미한다. 타입을 미리 정해놓지 않았기 때문에, 더 일반적인 코드로 작성할 수 있게 한다. 아래의 예시를 통해 제네릭스를 알아보자 기존에 여러 타입에 대해 작동하는 코드를 작성할 때는 상속을 활용하여 구성할 수 있다. 이는 기반 클래스로부터 파생된 클래스를 활용하는 방법이다. open class Pet class Dog : Pet() class Cat: Pet() private fun eat(pet: Pet){ println("Taste is good") } fun main(){ eat(Dog()) eat(Cat()) } 아래와 같이 Cat과 Dog을 같은 기반 클래스 Pet을 상속받게 함으로써, 여러 타입에 대해 작동하는 코드를 구성할 수있다. 그러나..
· Android
선언형 UI Compose로 변경됨에 따라, 명령형 UI에서 선언형 UI로 변경되었다. 앞에서 이야기한 선언형 UI는 어떤 것이며, 명령형 UI와 어떤 차이점이 있을까? 기존 안드로이드 개발에서 데이터의 State가 변경되는 경우, findViewById를 통해 직접 Elements에 접근하여 setText, setImage와 같은 명령어를 사용하여 State를 직접 변경해야 했다. (ViewBinding 및 DataBinding도 개념은 같다.) 하지만 컴포즈는 선언형 UI이다. UI의 최종형태를 기술하면, 프레임 워크가 자동으로 관리한다. 구체적으로, 프레임워크가 데이터의 상태가 변하는 경우 Elements의 State를 업데이트하는 것이 아닌 화면 전체를 다시 그린다. 모든 화면을 그리는 것이 아닌..
· Android
안드로이드의 Paging3 라이브러리는 다양한 소스로부터 대용량의 데이터를 효율적으로 관리하고 가져오는 Android Jetpack의 라이브러리이다. Paging3를 사용하면 로컬이나 네트워크로부터 페이지 단위의 데이터를 가져올 수 있다. 이번 포스팅에서는 Paging3 소개와 예제를 통해 Paging3의 사용법을 소개한다. 페이징 라이브러리의 장점 페이징된 데이터는 인-메모리 캐싱하며, 이를 통해 빠른 응답과 버벅거림 없이 데이터를 불러올 수 있다. 페이지의 끝에 도달하면 데이터를 요청하고 불러오는 리사이클러 뷰 어댑터를 제공한다. 중복된 요청을 막을 수 있어, 사용자의 대역폭과 시스템 리소스를 절약할 수 있다. 코틀린으로 구성되어 있어, 모든 코틀린 및 Jetpack 라이브러리와 완벽한 호환이 가능하..
정자이노
EveryAndroid