본문 바로가기

Develop/Android19

[Android] Dokka 문서화 총 정리 (+with 자동 배포) 내가 참여했던 프로젝트 에서 컴포넌트를 모아둔 파일을 문서화하기로 하였다.그래서 문서화를 하기 위해 노션, 깃허브 위키 등 다양한 방법을 떠올렸다.하지만 위의 방법들은 매번 글을 쓰며 관리를 해줘야 하는 단점이 있었고, 이에 반해 주석만 달아도 자동으로 배포되는 기능이 있어, 이를 도입하고자 했다.바로, Dokka이다. Dokka란, Kotlin 코드를 문서화하기 위한 툴이다.KDoc 언어로 작성하면 된다. Dokka 사용먼저, Dokka를 사용하기 위해 라이브러리를 추가해준다.[versions]dokka = "1.9.0"[plugins]dokka = {id = "org.jetbrains.dokka", version.ref = "dokka"} 이를 project 그래들 파일에 추가해준다.plugins .. 2024. 8. 12.
[Android] 카카오 소셜 로그인 구현하기 (Kakao SDK) 프로젝트 에서 나는 온보딩 구현을 담당했다.온보딩에서는 크게 소셜 로그인과 필터링 설정 기능이 들어가 있다. 그 중, 소셜 로그인은 카카오 소셜 로그인으로 구현했다. 그래서 내가 카카오 소셜 로그인을 했던 과정을 전부 설명하도록 하겠다. 카카오 애플리케이션 등록먼저 Kakao Developers에 접속한다.https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 로그인 후, 내 애플리케이션으로 들어가 애플리케이션을 추가해준다. 이때 뜨는 창에서 프로젝트의 아이콘과 이름을 작성해주면 애플리케이션이 생성된다... 2024. 7. 6.
[Android] 멀티 모듈로 프로젝트 초기세팅하기 (VersionCatalog, KSP) 이번에 리드 안드로이드 개발자로 참여한 에서 프로젝트 초기세팅을 담당하게 되었다.그래서 나는 Clean Architecture를 기반으로 멀티 모듈을 사용해 프로젝트를 세팅하고자 했다.그 과정을 이제부터 소개하겠다. Multi Module멀티 모듈이란, 말 그대로 하나의 애플리케이션을 여러 개의 독립적인 모듈(Module)로 나누어 개발하는 방식을 말한다.멀티 모듈을 사용하면 각 모듈마다 기능이 독립적으로 존재하기 때문에 개발하기 용이하다. 더불어 각 모듈에 대한 의존성 분리도 명확해지기 때문에 이를 도입하고자 했다. 안드로이드 스튜디오에서 멀티 모듈을 만드는 방법은 그리 어렵지 않다.아래 루트를 따라서 클릭해주면 된다.app 모듈 우클릭 > New > Module각 모듈마다 알맞는 템플릿을 선택해 준다.. 2024. 7. 1.
[Android] Nullable, NonNull, Kotlin scope function [Android] Nullable, NonNull, Kotlin scope function 안드로이드 발표🤖 velog.io Null Kotlin의 특징 중 '안전한 코드를 작성할 수 있다'가 있다. 안전한 코드를 지원하는 이유는 코틀린이 널 안전성을 지원하는 언어이기 때문이다. 널 허용과 널 불혀용을 구분해서 선언할 수 있다는 것이 특징이다. 그렇다면 Null이란 무엇일까?🤔 🚨객체가 선언되었지만 초기화되지 않은 상태이다. 객체는 주소가 저장되며 이 주소로 메모리에 접근해서 데이터를 이용한다 null은 객체가 주소를 가지지 못한 상태로 null인 상태의 객체를 이용하면 널 포인트 예외(NullPointException) 발생시킨다. ➕이해하기 쉽게 수학의 집합 개념으로 비유해보자면 0은 0만을 원소로 .. 2024. 1. 23.
[Android] 아키텍처 패턴 [Android] 아키텍처 패턴 아키텍처 패턴 뿌시기! velog.io MVC Model(모델): 데이터 로직을 처리하는 부분 View(뷰): 사용자에게 보이는 UI 부분 Controller(컨트롤러): 사용자의 입력을 받고 처리하는 부분 MVC는 가장 기본적인 패턴이라고 할 수 있다. 사용자의 액션을 Controller로 받고 Model을 업데이트 한다. Controller는 Model을 나타낼 View를 선택하고 View는 이를 이용해 화면에 나타낸다. 그럼 이를 코드로 알아보자!😆 비밀번호 4개를 입력했을 때 언락(unlock)이 됐다는 텍스트를 표시하는 예시이다. 여기서 MainActivity가 Controller의 역할을 한다. MainActivity.kt 파일입니다. // Controller .. 2024. 1. 23.
[Android] 코루틴과 Channel [Android] 코루틴과 Channel Channel 개념 알아가기 velog.io 코루틴 지난 코루틴에 대한 설명 👉 https://comyou.tistory.com/58에 이어 코루틴이 코드 속에서 어떻게 쓰이는지 추가 설명을 해보겠다! IntelliJ에서도 코루틴에 진입할 수 있다. 아래 보이는 runBlocking은 CoroutineScope이기 때문에 launch를 실행할때 GlobalScope가 필요없다. import kotlinx.coroutines.* fun main() { runBlocking { launch { delay(2000) println("Hello") } launch { delay(1000) println("World!") } } } 이렇게 코드를 짜면 출력값은 World!.. 2024. 1. 23.
[Android] 코루틴이란? 💡블로그 이동 원래 Velog에 Android 관련된 글을 썼었는데 하나로 통합하는 게 좋을 것 같아서 Tistory에 통합하려고 합니다! 아래는 링크는 본문입니다. [Android] 코루틴이란? 코루틴 개념 뿌시기!👊 velog.io ANR 문제란? 코루틴을 알아보기 전에 ANR을 먼저 알아보도록 하자. ANR은 액티비티가 응답하지 않는 오류 상황을 의미한다. 액티비티를 작성할 때 ANR을 고려하지 않으면 앱이 수시로 종료될 수 있다. 액티비티가 사용자 이벤트에 5초 이내에 반응하지 않으면 ANR 오류가 발생한다. 시스템에서 액티비티를 실행하는 수행 흐름을 메인 스레드 또는 화면을 출력하는 수행 흐름이라는 의미에서 UI 스레드라고 한다. ANR 문제를 해결하는 방법은 액티비티를 실행한 메인 스레드 이외.. 2024. 1. 23.