목록Android (51)
NOW OR NEVER
Activity 개념 앱의 경우 웹과 다르게 사용자와 앱의 상호작용은 같은 곳에서 이뤄지지 않는다. 그래서 동일한 입력을 하더라도 항상 동일한 출력을 하지 않는다. 예를 들어 홈 스크린에서 이메일 앱을 열면 이메일 목록이 보이며 반대로 sns앱을 사용하다가 이메일 앱을 열면 바로 이메일을 작성하는 화면이 보인다. 앞서 설명한 과정을 용이하기 위해 설계된 것이 Activity이다. 사용자와의 앱 상호 작용의 진입점 역할 : 한 앱이 다른 앱을 호출할 때 호출하는 앱은 해당 앱의 다른 액티비티를 호출하며, 앱을 원자적인(원자적인 : 여러 단계로 나눠지지 않고, 중간에 다른 프로세스가 간섭하지 않는 하나의 단위로 수행되는 연산) 전체로 호출하지 않는다. UI를 구성할 수 있는 창 제공 : 일반적으로 앱의 하나..

의존성, 주입에 대해 알기 Android에서 의존성 주입(Dependency Injection)을 간소화하는 라이브러리 프로젝트에서 수동 의존성 주입을 수행하는 번거로움을 줄인다. 수동 의존성 주입을 수행하려면 모든 클래스와 해당 의존성을 수동으로 생성하고, 컨테이너를 사용하여 의존성을 재사용하고 관리해야 함 Hilt는 프로젝트 내의 모든 Android 클래스에 대한 컨테이너를 제공하고 그 수명주기를 자동으로 관리하여 앱에서 DI(Dependency Injection)를 사용하는 표준 방법을 제공 의존성 주입(Dependency Injection): 의존성 주입은 객체 지향 프로그래밍에서 사용되며, 어떤 객체가 다른 객체에 의존할 때, 이 의존성을 코드 외부에서 주입하는 방법을 의미. 이를 통해 객체 간..

개요 하는 이유 : 카카오 지도 API Key를 숨기기 위해 목표 : local.properties의 값을 manifest에 할당하기 및 BuildConfig 파일에 저장하기 방법 0. local.properties에 사용하고자 하는 값 저장하기 manifestPlaceholder를 통해 manifest에서 사용 할 API Key라면 !!!절대!!! 따옴표 붙여서 작성하지 마세요 : 따옴표로 넣어서 저장하면 api와 통신할때 따옴표도 같이 들어가기 때문에 Autentication 오류가 납니다. 1. 앱 수준 build.gradle 파일에서 local.properties 파일을 Properties 객체로 만들어 값 가져오는 코드 작성 // local.properties 파일을 Properties 객체로 ..
Time Picker 목표 : 5분 단위로 interval 설정 첫 번째 시도 방법 (실패) xml 파일 자체에서 android:minuteInterval 속성으로 5 설정 안드로이드 12부터 구현이 가능한 속성이라 실패하나 싶어 앱 수준 그래들 파일에서 targetSdkVersion을 31 이상으로 설정해봤는 데 안됐다. -> 코틀린 코드로 직접 구현해야겠다는 생각이 들었다,,, 두 번째 시도 방법(성공) 5분 단위 배열 생성해서 분 선택 spinner에 적용시키기 padStart(문자열 길이, 늘어난 길이만큼 추가할 문자열) -> 예를 들어 값이 3인 문자열을 padStart(2,'0') 한다면 03으로 반환 fragmentMakeScheduleBinding.run { makeScheduleTimeP..

- File - Local History - Show History 순으로 들어가면 파일 변경 이력을 시간 별로 볼 수 있다 - 코드 계속 고치다가 오류가 나서 뒤로 가야 할 순간이 왔었는 데 깃에도 안올린 상태여서 너무 필요했었다,,, 아무리 귀찮아도 깃에 올리는 것을 생활화 하자

JUnit 자바에서의 단위테스트를 위한 프레임워크 https://developer.android.com/training/testing/unit-testing/local-unit-tests?hl=ko 순서 1. app 수준 gradle에 해당 구문 depencies 블럭 안에 추가 testImplementation 'junit:junit:4.13.2' 2. 보는 기준을 Tests로 설정한 다음 src/test/java에 테스트 클래스 추가 3. 테스트 클래스에 테스트 할 메서드 작성 어노테이션 @Test: 테스트 메서드를 정의할 때 사용하는 어노테이션 @Before: 테스트 메서드 실행 전에 실행할 코드를 포함하는 메서드에 지정되는 애너테이션입니다. 초기화 작업에 사용 @After: 테스트 메서드 실행 후..

tools:context 제거 바꿔주니 빨간 줄도 안뜬다 구글링 하면서 참고하면서 똑같이 따라해보고 내 코드에 맞게 적용하는 과정 속에서 발생했다. 찾아본 결과 tools 는 레이아웃 에디터에서 레이아웃 디자인을 미리 볼 때 사용되는 것이므로. 실제 앱을 실행할 때는 사용되지 않으니 삭제하거나 수정해도 무방하다.

갑자기 프로젝트 중 main activity가 인식이 안돼서 찾아본 방법 앱 설정에서 해당 프로젝트 앱 삭제하기 Manifest 내 작동되지 않는 activity 태그 속성 android:name =“패키지명.MainActivity”로 설정하기 앱 수준 그래들에서 applicationId 확인하기 ‘package 패키지명’ 을 인식 안되는 activity 코드 파일 맨 위에 작성하기 내 경우는 마지막 방법으로 해결되었다. Import 구문 수정하다가 모르고 삭제해버린 것 같다. 해당 방법들 중 하나씩 선택해서 해보는 것을 추천한다. 이제 빨간 줄도 안뜬다!
MVVM 구조 개발 패턴 구조 종류 중 하나 코드를 다 나누자 화면에 보이는 요소들이 수시로 바뀔 때 쓰면 좋다 fragment 하나에서 했던 일은 다 나눠서 할 수 있게 앱 수준 gradle에 databinding{ enabled = true } 추가 View Model 새로고침 기능, 채팅 앱 등을 만들 때 채팅 내용은 수시로 업데이트 되기에 viewModel 구조로 쓰는 것이 좋다 눈에 보이는 화면의 데이터를 viewModel에서 관리 값이 변경되면 viewModel 안 감시자(observe)가 발동 화면을 구성하기 위해서 어떤 view들이 필요한 지 인지하고 있어야 한다. 데이터를 셋팅하는 곳 model : 애플리케이션에서 사용되는 모든 데이터를 담을 클래스들을 정의 UI 요소에 설정할 값을 관리..

Firebase 안드로이드 연동 쉬움 어플리케이션 기능 구현에 집중할 수 있다 Cloud Storage(=Storage) 파일을 저장하기 위한 용도 사진 등을 올려놓고 사용할 수 있다. Firebase 초기 설정 프로젝트가 바뀔 때마다 설정해줘야 한다. 1. 프로젝트 생성 2. FireBase console 접속 : https://console.firebase.google.com/ 로그인 - Google 계정 이메일 또는 휴대전화 accounts.google.com 3. 프로젝트 만들기 : 프로젝트 이름 입력 후 기본으로 되어 있는 설정 그대로 계속 눌러서 생성 4. 안드로이드 아이콘 클릭 5. 앱 관련 사항 작성 SHA-1 필요한 경우에만 입력(API 추가할 때 필요할 때 입력 요한다고 함 그때 가서 ..