분류 전체보기
-
MVVM 패턴 + databinding + Room DB + recyclerview 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 6. 15. 11:04
이번 예제는 MVVM 패턴 + AAC(databinding + Room DB) + recyclerview를 적용시켰다. 아래에 있는 링크로 MVVM + Databinding 예제와 Room DB 예제를 먼저 학습한다면 이해하기 더욱 쉬울듯 싶다. 참고 : 1. MVVM 예제 2. Room 예제 해당 예제는 사람 이름과 무력 지력을 추가 시키면 Room DB에 데이터가 들어가고 해당 내용을 자동적으로 ViewModel과 LiveData를 통해 데이터를 업데이트 하는 방식으로 구성해보았다. 아래 그림에서 Remote Data Source만 제외된 예제라고 볼수 있다. 결과 스크린샷 프로젝트 구성 Dependency 추가 1. build.gradle (app) 2. build.gradle (project) R..
-
(AAC) Room DB안드로이드 학습/Android 기술면접 대비 코드 2023. 6. 14. 10:59
차례: 1. Room 라이브러리란? 2. SQLite과 Room 3. 기본 구성요소 4. 코드 예제 1. Room 라이브러리란? Room 라이브러리는 JetPack이라는 구글에서 제공하는 안드로이드 컴포넌트 라이브러리 모음중에 AAC에 속하는 라이브러리이다. (참고: 링크) 스마트폰의 Local DB에 데이터를 저장하기 위해 사용하는 라이브러리이다. 원래 Room 데이터베이스 라이브러리가 나오기전에는 SQLite를 사용해서 내부 DB를 만들어 데이터를 저장했었다. 2. SQLite과 Room 기존에 사용해왔던 SQLite 몇가지 단점들이 존재한다. 생각해보면 잘쓰고 있었으면 굳이 다른게 나올 이유가 없긴 하다 Query의 유효성 검사 기능을 제공하지 못했던 점 Scheme가 바뀔 때 자동적으로 업데이트를..
-
Jetpack - AAC안드로이드 학습/Android 기술면접 대비 2023. 6. 13. 13:31
차례: 1) Jectpack이란? 2) AAC(Android Architecture Components)란? 3) MVVM 구조 1. Jetpack이란 구글 developer사이트에 보면 Jetpack을 이렇게 설명하고 있다. "Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음입니다." (참조 : 구글 developer 페이지) JetPack은 구글에서 제공하는 안드로이드 컴포넌트 라이브러리 모음이다. Jetpack을 통해 좀 빠르고 질 좋은 앱을 개발하는데 많은 도움이 된다. 2. AAC(Android Architecture Components)란? Jetpack은 그림에서..
-
Activity와 Fragment 그리고 생명주기안드로이드 학습/Android 기술면접 대비 2023. 6. 12. 21:56
차례: 1. Activity란? 2. Fragment란? 3. Fragment 와 Activity의 차이점? 4. Activity 생명주기 5. Fragment 생명주기 1. Activity란 : Activity는 Android의 4대 Component중 하나로 사용자에게 실제로 보이며, 사용자와 상호작용하는 화면을 말한다. Activity는 하나 이상의 View또는 ViewGroup을 반드시 가지고 있어야 하며, 한 번에 하나의 Activity만 Disaplay할 수 있다. 더보기 여기서 View와 ViewGroup이란 안드로이드 화면은 view와 viewgroup 구성되어 있다. 안드로이드 앱을 실행시켰을 때 화면에 보이는 모든 요소는 뷰(view)라고 볼 수 있다. View를 담아 화면에 적절히 배..
-
ANR이란안드로이드 학습/Android 기술면접 대비 2023. 6. 12. 10:31
ANR이란 ?? ANR(Application Not Responding)은 안드로이드 운영 체제에서 발생하는 오류 상태를 나타냅니다. 안드로이드 애플리케이션이 일시적으로 응답하지 않고 멈춰있는 상태를 의미합니다.ANR이 발생하는 상황 :Android에서는 Activity Manager 및 Window Manager 시스템 서비스에서 애플리케이션 응답성을 모니터링합니다. Android는 다음 조건 중 하나를 감지하면 애플리케이션에 대해 ANR 대화상자를 표시합니다. 입력 이벤트: 앱이 입력 이벤트(예: 키 누름 또는 화면 터치)에 5초 이내에 응답하지 않은 경우 (5초)키 이벤트인 볼륨, 메뉴, 백 키의 경우는 눌리고서 5초 이상 지연 시 바로 ANR을 발생시킨다.터치 이벤트는 경우가 다르다. 한번 터치로..
-
Android Service안드로이드 학습/Android 기술면접 대비 2023. 6. 12. 09:49
차례 : 1. Service란? 2. Service와 Thread의 차이점 : 3. Service 종류 4. Service 생명주기 5. Intent Service란? 6. Service vs IntentService 안드로이드 기술 면접 질문들을 인터넷에서 찾다가 (Android) Service vs IntentService, 이 두부분의 차이점을 설명해 보라는 질문에서 턱 막혔다. Service 부분도 학습을 했으나 잊어버린 부분도 있기 때문에 Intent Service와 같이 정리할겸 정리해본다. 1. Service 란?? Service는 백그라운드 작업을 위한 애플리케이션 구성 요소이다. Service는 독자적인 생명주기를 가지고 있다. (Activity나 Fragment와는 다른 생명주기를 가지..
-
Broadcast Receiver 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 6. 11. 09:03
BroadCast의 기본 설명 링크 Broadcast Receiver에서 받을수 있는 이벤트가 너무 많기 때문에 그중 일부를 알아보자면 아래와 같다.Broadcast Receiver에서 받을수 있는 이벤트:더보기ACTION_BOOT_COMPLETED부팅이 끝났을 때 (RECEIVE_BOOT_COMPLETED 권한등록 필요)ACTION_CAMERA_BUTTON카메라 버튼이 눌렸을 때ACTION_DATE_CHANGEDACTION_TIME_CHANGED폰의 날짜, 시간이 수동으로 변했을때 (설정에서 수정했을때)ACTION_SCREEN_OFFACTION_SCREEN_ON화면 on, offACTION_AIRPLANE_MODE_CHANGED비행기 모드ACTION_BATTERY_CHANGEDACTION_BATTERY..
-
간단한 MVVM 패턴 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 6. 7. 21:23
기본적으로 MVC나 MVP 패턴 같은 의존성을 없애기 위해 Databinding을 적용 시켰고 LiveData도 적용시켰습니다. 삼국지 영웅 뽑기를 주제로 선정! 1.build.gradle android { ... 생략 ... buildFeatures { dataBinding = true } } 먼저 build.gradle 파일에 dataBinding을 사용하겠다는 선언 추가 2. Character.kt data class Character(var name: String, var strength: Int, var intelligence: Int) 삼국지 인물의 이름, 무력, 지력을 넣은 data class. 'data class' 로 지정해주면 알아서 getter setter method 지원!!! 3...
-
Android 런타임 ART 및 Dalvik안드로이드 학습/Android 기술면접 대비 2023. 6. 5. 18:26
Android 런타임(ART)은 Android의 애플리케이션 및 일부 시스템 서비스에서 사용하는 관리형 런타임입니다. ART와 그 전의 Dalvik은 원래 Android 프로젝트용으로 특별히 제작된 것입니다. 안드로이드는 처음 자바 기반으로 개발할수 있는 환경을 만들었다. 그러면 왜 JVM을 안쓰고 따로 런타임을 사용하는 것인지 궁금할수 있다. (JVM 내용 보러가기) 다른 블로그에 찾아보니 2가지 정도의 문제점이 있었다고한다. (1) 라이센스 문제 아무래도 자바라는 언어가 안드로이드에서 개발한 것이 아니기 때문에 라이센스 문제가 있다고 한다. (2) 메모리 효율성 JVM은 스택 기반 모델로 많은 메모리를 요구하지만 DVM은 레지스터 기반 모델로 적은 메모리에 최적화 되어 있다. (JVM에 비해 명령이 ..
-
카카오 로그인앱 만들기/앱 학습 자료들 정리 2023. 6. 3. 00:22
구글 로그인에 이어서 카카오 로그인도 추가 시켜줄 예정이다. 먼저 해야 할 일은 카카오 개발자 사이트에서 앱 등록을 하는 것이다. 카카오 개발자 사이트 https://developers.kakao.com/ 1. 카카오 개발자 사이트 세팅 a) '내 애플리케이션' 에서 애플리케이션 추가 b) 플래폼에서 안드로이드 등록 : 일단 두번째 (마켓 URL) 는 비어놓고 세번째 (키 해시)는 Kakao SDK로 디버그, 릴리즈 키 해시 확인 (아래 코드부분에 추가) c) 동의 항목 설정 (내 애플리케이션>제품 설정>카카오 로그인>동의항목) 저는 닉네임과 카카오 계정 정보만 사용할 것이기 때문에 이 2가지만 설정 2. 코드부분 a) settings.gradle pluginManagement { repositories..