반응형
SMALL

Android 22

Android 권한 받고 유저 핸드폰 번호 가져오기(feat. Kotlin)

AndroidManifest.xml  안드로이드 앱에서 권한을 체크하고,필요한 경우 권한을 요청하는 기능을 제공하는 유틸리티 객체 생성. Permission.ktobject Permission { fun checkAndRequestPermissions(activity: Activity, permissions: Array, requestCode: Int): Boolean { val permissionNeeded = permissions.filter { ContextCompat.checkSelfPermission(activity, it) != PackageManager.PERMISSION_GRANTED } return if (..

Android 2024.07.29

Android studio 버전 다른거 여러개 깔기

https://developer.android.com/studio/archive Android 스튜디오 다운로드 자료실  |  Android Studio  |  Android Developers이 페이지에는 Android 스튜디오 출시 관련 다운로드 자료실이 포함되어 있습니다.developer.android.com 깔고 싶은 버전은 여기서 찾으면 됨..꼭 영어로 보세요 한글을 안나옴 원하는 버전 찾아서 깔았으면 잘되는지 실행해보고 잘되면 다른 버전 깔러 고고 https://www.jetbrains.com/ko-kr/toolbox-app/?source=post_page-----7002e6437a85-------------------------------- JetBrains Toolbox App: 도구를 간..

Android 2024.07.26

[삽질] Dialog 커스텀해서 쓰기 ! (input있는 dialog)

졸업 프로젝트에서 어쩌다보니 전반적인 XML 구현을 하게 되었다. 얼마 안되는 화면이지만 까다로웠던 부분이 꽤 있었따. 그중에서 제일 기억에 남는 Dialog 이번 프로젝트에서 핵심은 링크를 저장할때, 링크에 제목과, 설명, 그리고 태그를 달 수 있따는 것이다. 태그를 달면 태그별로 링크들을 모아볼 수 있다. 자세한 설명은 프로젝트 뽀개기 포스팅에서 .. 아무튼 태그 창을 클릭하면 dialog가 나오고 태그를 선택할 수 있고, ADD버튼을 누르면 새로운 태그를 추가하는 방식이었다. material Design의 builder을 이용해서 간단하게 구현하였는데 PM님께서 태그를 추가하는 방식이 상당히 비효율적이라고, 창 한켠을 새로운 태그를 받는 곳으로 바꿔주실 수 있냐고 여쭤보셨다.. 처음에는 할게 산더미..

Android 2024.06.12

[삽질] Recycler View 값이 없을 때 안보이게 하기

?? 바텀 네비게이션 왜저래 고치고 왔다 ㅎㅎ 우리 프로젝트는 링크 저장을 편하게 해주는 어플이다.  링크를 저장할때 저장했던 맥락을 기록할 수 있고 관련해서 태그도 달 수 있다. 그리고 태그 별로 링크(훅)을 모아서 볼 수도 있따. 홈뷰 형식은 리사이클러 뷰 안에 리사이클러 뷰를 삽입하였다.. 매일 매일 직접 앱을 써보며 테스트를 하던 중   태그가 없을때 잘 나오던 훅이   이런식으로 빈값이 태그로 인식되어 리사이클러 뷰에 보이고 있었다. 기존 코드는 태그리스트에 아무런 값이 없을때 GONE을 사용해서 화면에 안보이게 하고 있었다. 그런데 API가 바뀌면서 뭐가 잘못되었는지 저렇게 ""값이 전달되어 태그에 나오고 있었따. 1. 태그리스트 값이 비어 있으면 null값 전달하기 APIServiceMaga..

Android 2024.06.08

Room

Room 을 사용하면 SQLite를 활용하면서 원활한 데이터베이스 액세스가 가능하도록 SQLite의 추상화 계층을 제공한다. 추상화 ? 복잡한 시스템을 단순화하고 중요한 정보만을 노출하여 불필요한 세부 사항을 감추는 방법데이터 추상화: 데이터 구조와 관련된 복잡성을 숨기고 데이터를 처리하는 방법을 정의합니다. 예를 들어, 객체 지향 프로그래밍에서 클래스는 데이터 추상화의 한 형태입니다. 클래스는 데이터(속성)와 데이터를 처리하는 메서드(함수)를 포함하며, 외부에서는 이 클래스의 내부 구현 세부 사항을 알 필요 없이 클래스의 인터페이스(메서드)를 통해 상호작용할 수 있습니다.제어 추상화: 특정 작업을 수행하는데 필요한 제어 흐름을 단순화합니다. 예를 들어, 함수를 사용하여 특정 작업을 수행하는 코드를 함수..

Android 2024.06.04

코루틴

스레드 (Thread) 스레드는 프로그램 범위 내에서 예약하고 실행할 수 있는 코드의 최소 단위.. 멀티스레딩을 지원함으로써 사용자에게 원활한 실행을 제공한다. 하지만 한정된 시간안에 UI를 준비하고 그려야하는데 이것이 복잡해지면 앱이 멈춰버린다. 또한 여러 스레드가 동시에 메모리의 동일한 값에 액세스하려고 할 때 경합 상태가 발생할 수 있다. 그래서 스레드를 직접 사용하는 것을 권장하지 않는다. 코틀린 코루틴(Kotlin Coroutine)  백그라운드 작업을 위한 스레드를 만들고 사용하는 것은 android에서 이루어지지만 코틀린은 동시 실행을 더 유연하고 쉽게 관리할 수 있는 코루틴도 제공한다.  코루틴 기능1. 상태를 저장하여 중단했다가 재개할 수 있음2. 코루틴은 실행되거나 실행되지 않을 수 있..

Android 2024.05.24

동기 / 비동기

동기(synchronous)동기 작업은 연산이 완료될 때까지 해당 작업을 호출한 스레드가 기다리는 방식이다. 즉, 작업이 완료될 때까지 다음 작업이 시작되지 않는다. 안드로이드에서는 주로 UI 스레드(Main Thread)에서 실행된다. 동기 작업의 예로는 파일 읽기/쓰기, 네트워크 요청 등을 들 수 있다.특징:블로킹(Blocking): 작업이 완료될 때까지 다른 작업을 차단한다.직관적: 코드가 순차적으로 실행되므로 이해하기 쉽다.잠재적 성능 문제: 긴 시간이 걸리는 작업(예: 네트워크 요청)을 UI 스레드에서 동기적으로 실행하면 애플리케이션이 응답하지 않을 수 있다. 비동기(asynchronous)비동기 작업은 작업을 요청한 후 그 결과를 기다리지 않고, 다른 작업을 계속해서 수행하는 방식이다. 작업이..

Android 2024.05.20

Json / 직렬화 / 역직렬화

serialization : 직렬화 객체를 json 포맷으로 바꾼다 => 직렬 json 데이터를 받아올 때, 객체로 변환해야 한다. => 역직렬화 Gson -> Java 100%https://github.com/google/gson GitHub - google/gson: A Java serialization/deserialization library to convert Java Objects into JSON and backA Java serialization/deserialization library to convert Java Objects into JSON and back - google/gsongithub.com dependencies { implementation 'com.google.code..

Android 2024.05.16

Android 리사이클러뷰

RecyclerView는 데이터 목록을 아이템 단위의 View로 생성해서 화면에 표시하기 위해 Adapter를 사용합니다. Adapter에 의해 생성된 View 객체를 어떤 방식으로 나열할지 결정하기 위해서 Layout Manager를 이용합니다. 끝으로 Layout Manager가 제공하는 형태로 Adapter가 생성한 View를 ViewHolder 객체에 저장되어 화면에 표시하게 됩니다. https://meal-coding.tistory.com/29 [Android] 홍드로이드 기초 강의 - 리사이클러뷰(RecyclerView)1. 안드로이드 리사이클러뷰(RecyclerView) "수많은 데이터의 집합을 지정된 영역 내에서 유연하게(flexible) 표시되도록 만들어주는 위젯"입니다. 안드로이드 개발..

Android 2024.05.06

[삽질][Kotlin] Android Studio Google Social Login

플젝에서 공유 기능을 넣는다하여 소셜로그인이 필요하게 되었다. 프론트 팀원과 나 모두 처음이었기 때문에 서로 시도해보고 취합하기로 했는데 새벽에 오기가 발동해 혼자서 다 해버렸다. https://www.youtube.com/watch?v=H_maapn4Q3Q https://visualandroidblog.blogspot.com/2023/04/google-sign-in-firebase-android-kotlin-tutorial.html Step-by-Step Guide: Google Sign-In with Firebase in Android Studio Using Kotlin Securely implement Google Sign-In with Firebase in Android Studio using K..

Android 2024.04.07