내부 저장소 , 외부 저장소 구분내부 저장소에서 파일의 입출력SharedPreferences가 무엇인지 알고 어떻게 사용하는 지 실습앱이 구동하면서 이미지를 보여주는 것 : 파일의 출력메모장 등의 앱에 내용을 기록하는 것 : 파일의 입력안드로이드는 리눅스 기반의 파일
UI화면 만들고 권한 요청하기카메라 및 촬영한 사진을 저장할 외부 저장소 권한을 요청하는 코드BaseActivity 상속 사용 - permissionGranted(), permissionDenied() 추상 메서드 사용!!MainActivity에서 카메라 앱 호출하
: 전세계를 대상으로 하루에 레슨 1개 수강시 챌린지 참여 인증이 되는 챌린지를 구현하기로 했다. 시차가 모두 다르기 때문에 챌린지 인증 시간을 KST로 잡았다. 각 나라 사람들에게 KST가 자정까지(=챌린지 당일 완료를 위한 시간)까지 얼마나 남았는지를 알려주기 위한
sharedPreferrence에 저장된 값 가져오기선언하기값 할당하기
'현재 시각' = 오늘을 기준으로 날짜 차이 계산하기!!today값을 구한다.계산할 날짜 값을 구한다 (event date)오늘날짜 - 이벤트날짜 차이를 계산한다.그 외에도 다른 방법도 있음. 코틀린 버전 심플(참고한 사이트)\[Kotlin] 코틀린 두 날짜간 차이 구
이슈발생액티비티를 실행했는데 포커스가 중간에 있는 리사이클러뷰로 설정되었다. 구조는 relative layout > recycler view 였는데, 갑자기 왜 그렇게 된건지는 모름.해결 방법: 자동 포커스 되는 것 막기.\*\*만약 구조상 감싸는 레이아웃이 없을 경우
컨페티는 라이브러리가 있어서 쓰면됨.https://github.com/DanielMartinus/Konfetti→ gradle 추가하고, import해서 (선언하고) 쓰라는대로 샘플코드 복사해서 사용하면됨.→ 커스텀 할 수 있는 거는 컨페티 색깔!! 자유롭게
startActivity : 새로운 액티비티 실행startActivityForResult : 새로운 액티비티 실행 + 결과값 전달 (쌍방향)즉, forResult를 쓰면 responseCode, resultCode를 통해 액티비티간의 상호 교류를 할 수 있다. 값을 받
안드로이드 버튼 selector 만들기android:state_pressed : 뷰가 눌렸을 때 (터치나 클릭이 발생했을 때)android:state_focused : 뷰에 포커스가 위치했을 때 (EditText를 입력할 수 있을 때)android:state_selec
액티비티(Activity) 화면 가로/세로 고정 방법: 안드로이드는 기본적으로 화면을 가로→세로 or 세로→가로 화면 회전 시 activity가 재실행된다. 이 경우 액티비티 데이터 초기화가 진행되어버린다.이를 방지하기 위해서 해결방법화면 고정 코드 : manifest
<안드로이드 개발자 문서 참고!>사용자가 이미 앱에 특정 권한을 부여했는지 확인하려면 (https://developer.android.com/reference/androidx/core/content/ContextCompat?hl=ko메서드에 권한을 전달.
Retrofit최신 버전 확인 : 깃허브 > TAGSTags · square/retrofit안드로이드 GRADLE 추가GSON 은 JSON이 STRING > OBJECT형식으로 변환하도록 도와주는데,CONVERTER-GSON 라이브러리를 추가하면 자동으로 바꿔줌!bo
Thread는 동시 실행하는 프로그래밍 기법을 추상화 한 것.Thread는 언제나 프로세스 내에서 종속적으로 실행됨.Thread는 Process의 자원을 공유 하지만 독립적으로 실행될 수 있음.Thread 내에서 생성한 자원은 해당 Thread에 종속적임!!<sp
LiveData는 Observer 패턴을 따르며 데이터의 변경이 일어날 때마다 콜백을 받아 원하는 동작을 실행시킨다.이때 LiveData의 값을 변경하게 해주는 함수가 setValue() 와 postValue() 이다.LiveData의 setValue() 와 postV
시스템 레벨의 서비스에 액세스하는데 사용됨.이 메소드를 사용하여 시스템 서비스의 인스턴스를 가져올 수 있다.예를 들어, Context.getSystemService(Context.WINDOW_SERVICE)를 호출하면 윈도우 매니저 객체를 반환합니다.안드로이드에서 사용
ViewModel과 AndroidViewModel은 Android 앱 개발에서 사용되는 두 가지 ViewModel 클래스입니다. 이 두 클래스 간의 주요 차이점은 다음과 같습니다:베이스 클래스:ViewModel: Android 아키텍처 컴포넌트 라이브러리의 일부로 an
Android 에서 Chrome Custom Tabs를 사용하여 웹페이지를 열고, 커스텀 아이콘 및 설정 추가하는 기능!CustomeTabsIntent.Builder() 를 사용하여 Chrome Custom Tabs 설정을 구성하는 빌더 생성.getBitmapFromD
안드로이드 앱을 만들 때 앱을 짜는 코드를 작성한다. 이 코드가 잘 작동하도록 도와주는 도구들이 있는데, 그중 하나가 Android Gradle Plugin(AGP) 이다.이 도구는 우리가 만든 코드를 앱으로 변환해준다.앱에는 때때로 "네이티브 라이브러리"라는 특별한
캐시와 인덱스를 무효화 하고 IDE를 재시작하여 다양한 문제를 해결하는데 도움을 준다.안드로이드 스튜디오는 프로젝트의 파일, 설정, 빌드 결과 등을 빠르게 접근하기 위해 캐시를 사용한다. 그러나 캐시가 손상되거나 오래되면 문제가 발생할 수 있음. \- 코드 변경이 제
✅ 일반 Repository vs Hilt Repository 차이점: 의존성 관리 방식과 테스트 용이성, 코드의 모듈화/유지보수성 측면에서 차이가 크다.항목 일반 Repository Hilt Repository📌
android hilt적용하려고 하니까, 무슨 모듈에 등록을해야한대. repositoryModule에 등록을해한대. 이게 무슨말인지 설명해줘! Hilt 를 Android 프로젝트에 적용할 때 @Binds를 사용하여 repository를 모듈에 등록한다.1\. Repo
내가 새로 구현한 NetworkResponseCallAdapter 는 반환타입이 Call<NetworkResponse> 인 Api 호출에만 적용이 된다. 다른 반환 타입을 가진 api들은 NetworkResponseCallAdapter의 영향을 받지 않고, R
Android 15(API 35)에서는 보안, 사용자 경험, 시스템 리소스 관리 등을 강화하기 위한 여러 변경사항이 적용되었습니다. 이 문서는 Android 15 대응을 위한 핵심 변경사항과 개발 시 유의할 점을 정리한 가이드입니다.⚒️ 변경 전: 강제 종료된 앱도 시