RallyDestinations 이번 코드랩에서 배울 내용 Basics of using Jetpack Navigation with Jetpack Compose Navigating between composables Integrating a custom tab bar composable into your navigation hierarchy Navigating with arguments Navigating using deep links Testing navigation 샘플 프로젝트는 네비게이션이 되고 있지만, 사실 컴포즈 네비게이션을 사용한 구현이 아니다. 이를 컴포즈 네비게이션으로 구현해보자. Migrating to Compose Navigation 점진적으로 마이그레이션을 해보자! 의존성 추가 해주기..
AdvancedStateAndSideEffectsCodelab 1. 어떤 내용을 배울까? Introduction 젯팩 컴포즈의 State 와 Side Effects 에 대한 고급 개념을 실습해봤다. 로직이 사소하지 않은 stateful 한 컴포저블의 state holder 를 만드는 방법을 다룬다. 컴포즈 코드에서 코루틴과 suspend 함수를 사용하는 방법과 어떻게 다양한 유즈케이스를 위해 side effects 를 트리거하는지 알아 보았다. 미완성된 프로젝트 하나를 통해 점차적으로 개선하면서 완성하여 아래와 같은 앱을 완성하려고한다. 참고로 코드랩에 기본적인 테스트 코드가 작성되어 있기 때문에, 코드랩 중간 중간 테스트를 돌려보면서 잘 돌아가나 보도록 하자. (시간 나면 해보기) Displaying ..
[Android] 해상도별 drawable 이미지 리소스 추가하기 (hdpi, mdipi, xhdpi, xxdpi, xxxdpi) 안드로이드 개발 시, 이미지 (png 등) 리소스를 추가할 때, 여러 해상도에서 깨지지 않는 화질의 이미지를 표현하고자 할 때 dpi 별 이미지를 추가하는 방법을 알아보겠습니다. hdpi, mdpi, xhdpi, xxdpi 등 4개의 각각 해상도의 png 를 디자이너로 부터 제공받았고 이를 수동으로 추가하는 방법입니다. 먼저 drawable 폴더로 이동합니다. 프로젝트 네비게이션 탭에서 drawable 폴더 우클릭 후, open in finder 를 통해 해당 폴더로 바로 이동할 수 있습니다. 그럼 위와 같이 drawbla 이 존재하는 것을 볼 수 있습니다. 없으면 위와 동일..
1. 안드로이드 리사이클러뷰와 그리드 레이아웃 매니저를 이용한 해상도별 item 그리기 프로젝트를 진행하며 마주친 문제인데, 리사이클러 뷰 에서 여러 종류의 아이템(헤더, 아이템카드, 푸터)을 뿌려주고 있는 상황이며, 가이드로 나온 디자인은 특정 해상도에서 아이템 뷰를 다르게 보여주기를 원하고 있었습니다. 아래는 디자인 가이드 예시 입니다. 리사이클러 내부에 들어가는 아이템이 한 가지 종류가 아니라 위 디자인 가이드를 보시면 알겠지만 최 상단에는 타이틀 헤더(Header)가 최 하단에는 푸터(Footer)가 붙어있는 상황입니다. 기본적으로 사용하고 있었던 LinearLayoutManager 를 걷어내고 GridLayoutManager 를 사용해야 함은 얼추 알고는 있었는데, 아이템 타입이 여러개 일 때는..
1. 안드로이드 중고 거래 앱 만들기 (With kotlin) 코틀린으로 안드로이드 중고 거래 앱을 만들어 보았습니다. 사용자는 이메일과 비밀번호로 회원가입 및 로그인 하게 되며 이후 물건과 가격 물건 사진으로 게시글을 등록할 수 있으며 제품마다 상품 게시자와 채팅할 수 있는 채팅방 목록과 채팅 또한 구현합니다. 프래그먼트뷰를 사용해서 하단의 메뉴바를 통해서 fragment 를 전환하는 방식으로 앱을 동작합니다. 파이어베이스 storage 기능을 사용하여 이미지를 업로드하고 실제로 받아와서 게시글 목록에 뿌려주는 작업 또한 실습해 보았습니다. 또 사용자는 중고 판매 게시글을 올릴때 플로팅 액션 버튼을 사용해서 제품 게시글을 올릴 수 있습니다. 주요 기능 이메일로 회원가입 및 로그인/로그아웃 사진 포함 중..
1. 안드로이드 간단 전자 액자 앱 만들기 With 코틀린 이번에 만들어본 안드로이드 어플리케이션은 유저가 선택한 사진을 페이드-인,아웃 효과를 적용시켜 보여주는 기능을 가진 앱입니다. 특징은 아래와 같습니다. 해당 앱을 만들어 보면서 익혔던 내용을 기록하고자 포스팅하였습니다. 특징 및 기능 안드로이드 Permission(권한) 사용 하여 엑티비티에서 외부 저장소에 접근 유저가 스마트폰에 저장된 저장소의 사진을 선택 (SAF, Storage Access Framework) 뷰 에니메이터를 사용해서 페이드-인,아웃 처럼 보이도록 설계 1.1. 개발 시 사용한 기술 및 학습내용 Layout 이 가로로 표시 되도록 설정 (사진 액자) Android Permission 사용 View Animation 사용 Ac..
1. 안드로이드 계산기 어플 앱 만들기 with 코틀린 이번에 진행한 프로젝트는 안드로이드 계산기 어플리케이션 만들기입니다. 간단하게 사용자가 입력한 식을 연산할 수 있고 계산 기록을 확인할 수 있는 기능을 가진 앱을 만들어보았습니다. 특징 사용자가 입력한 식 더하기, 빼기, 곱하기, 나누기, 나머지 연산 식 Clear 기능 계산 히스토리 확인 가능 및 기록 초기화 기능 room을 사용한 로컬 DB: 종료 후 재실행 하여도 계산 기록 저장 사용된 프로젝트 전체 코드는 저의 깃허브 저장소에서 확인이 가능합니다. 마찬가지로 이번 글에서도 프로젝트를 진행하며 작성된 모든 코드를 기록하는 방식이 아닌 제가 느끼기에 생소한 기술들이나 참신했던 코드 위주로 요약해서 다음에 참고해서 개발이 가능하도록 작성하도록 하겠..
1. 코틀린 프로그래밍 환경 구축 코틀린 프로그래밍을 위해 실행 환경과 IDE를 설치하는 내역을 정리해드리려고합니다. 그 전에 앞서 간단하게 코틀린에 대해서 소개하고 넘어가도록 하겠습니다. 본 내용은 Doit 코틀린 도서를 기반으로 학습하며 작성했음을 밝힙니다. 1.1. 코틀린에 대해서 코틀린은 인텔리제이로 유명한 젯브레인사가 개발한 언어로 구글의 안드로이드 개발언어로 공식 발탁되었습니다. 코틀린을 사용하면 아래의 플랫폼에서 개발이 가능합니다. 코틀린/JVM : 자바 가상 머신에서 동작하는 앱을 개발할 수 있음 코틀린/JS : 자바스크립트로 웹 앱을 개발할 수 있음 코틀린/Native : LLVM 컴파일러를 이용한 다수 플랫폼을 상대로 앱을 개발할 수 있음 위에 나열한 것 처럼 JVM, JS, Nativ..
오늘은 코틀린에 있는 정수 타입(형식)과 실수 타입(형식)에 대해서 알아보도록 하겠습니다. 다른 언어와 비슷한 점도 있으나 다른 점 또한 존재하므로 한 번에 설명드리도록 하겠습니다. 그럼 바로 예제 코드를 보시죠. 🧊 예제 코드 예제 코드입니다. fun main(args:Array):Unit { val a:Byte = 125 val b:Short = (100 + 200) * 100 //30000 var c:Int = 12_4354_6538 //가시성 향상 표기법 c = 0xFF_88_88 //0x는 16진수 c = 0b01010010_01100011_01110101_01000101 //0b는 2진수 //8진법은 지원x var d:Long = -543_7847_3984_7238_4723 //자동 Long ..
[Android] 전면광고 설정방법 (안드로이드) 이번 글에서는 안드로이드 어플에서 전면광고를 설정하는 방법을 간단하게 포스팅 해보도록 하겠습니다. 우선 적용하고 싶은 안드로이드 어플리케이션에서 광고단위를 추가해줍니다. 이 때 형식은 전면광고 생성해주시면되겠습니다. 이후에 생성된 광고코드를 복사하셔서 안드로이드 스튜디오에서 적용하여 코딩하면되겠습니다. 아래는 코드 내용입니다. 전면광고는 InterstitialAd를 정의해서 사용해야합니다. (42번줄) 참고로 위 코드에서 빨간 영역의 코드만 있으면 전면광고를 설정할 수 있으니 해당 부분만 참고하시면 되겠습니다. 특정 버튼을 누르거나 이동할 때 적용해주기위해서 저는 예시로 (82번줄)에서 move버튼의 클릭리스너로 설정을 해준 모습입니다. 예시 코드에서는 ..