안드로이드와 앱/안드로이드 12

SharedPreferences

Preference 프로그램의 설정 정보(사용자의 옵션 선택 사항 이나 프로그램의 구성 정보)를 영구적으로 저장하는 용도간단한 정보들을 저장할 때 사용(예 : 알림설정 true/false)하며 보통 여러개를 저장한다. XML 텍스트 파일에 키-값 세트로 저장  SharedPreferences 클래스 Preferences의 데이터를 관리하는 클래스응용 프로그램 내(현 어플리케이션) 액티비티 간 공유. 한 액티비티에서 수정 시 다른 액티비티에서도 수정된 값 확인응용 프로그램의 고유한 정보이므로 외부에서는 읽을 수 없다.         String, Boolean, Int, Long, Float  타입의 저장 및 복원한개의 파일 : getPreferences 액티비티 클래스에 정의된 메소드이므로 액티비티 인스..

Retrofit

API Application Programming Interface 서버가 클라이언트에게 자원을 잘 활용할 수 있도록 제공하는 인터페이스 interface  ᖜ ‿ᖜ  인터페이스 interface의 사전적 의미의사소통이 가능하도록 만들어진 접점       REST API Representational State Transferᖜ ‿ᖜ  Representational State Transfer의 사전적 의미대표하는 상태 전송 HTTP URI를 통해 서버와 클라이언트가 통신하는 아키텍쳐자원을 명시하고 HTTP Method로 해당 자원에 대한 CRUD 명령을 적용 HTTP Method GET서버에게 데이터를 달라는 요청(열람)할 때 사용HEADGET과 같지만 서버가 응답할 때 Body 없이 Header만 리턴..

알림 Notification

알림 Notification이란?앱의 UI와 별도로 사용자에게 앱 관련정보를 보여주는 기능 표시형식위치별 알림 표시형식상태 표시줄 : 아이콘알림 창 : 자세한 항목.  상태 표시줄에서 아래로 스와이프하면 열어 볼 수 있으며 세부정보 확인,  제공되는 경우 추가 콘텐츠와 작업 버튼이 표시, 문자 답장처럼 바로 간단한 작업 가능(Android 7.0부터), 확장뷰로 긴텍스트, 이미지, 버튼, 프로그래스바 등 추가가능앱 아이콘 : 배지(Android 8.0부터) 잠금 화면(Android 5.0부터)알림채널에서 잠금화면 알림 설정가능(Android 8.0부터)잠긴 기기의 알림에 보안 레이어를 추가해 잠금 해제해야 하는 옵션 설정가능(Android 12부터) 페어링된 웨어러블에도 표시 앱이나 사용자가 닫을 때까지..

프래그먼트 Fragment

정의 안드로이드 애플리케이션의 UI 부분을 모듈화한 사용자 인터페이스   특징 독립불가 : 액티비티 위에서 동작하므로 액티비티와 분리되어 동작할 수 없다. 재사용성 : 하나의 액티비티에 여러 개의 프래그먼트를 조합하여 창이 여러 개인 UI를 구축할 수 있고, 하나의 프래그먼트를 여러 액티비티에서 재사용할 수 있다. 빠르고 효율적 : 액티비티로 화면을 넘기는 것보다 프래그먼트로 일부만 바꾸는 것이 자원 이용량이 적어 속도가 빠르다. ᖜ ‿ᖜ 그렇다면 액티비티는 프래그먼트를 붙여놓기 위한 그저 배경인가?탭레이아웃같은 전역 요소는 액티비티에 배치해야 한다. 목적에 따라 액티비티와 프래그먼트 중 적합한 곳에 배치하며 적절히 사용할 것. ViewPager2화면을 스와이프하면 탭과 함께 움직이는 뷰. 액티비티안에 ..

안드로이드 앱개발 숙련 강의 [View Binding, Adapter View, RecyclerView, Fragment, Dialog, Notification]

뷰 바인딩 View Binding모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성. 레이아웃 파일의 이름을 기반으로 한 바인딩 클래스를 자동생성. 인스턴스는 해당 레이아웃에 ID가 있는 모든 뷰의 직접 참조 포함 findViewById와 비교Null 안전성 Null Safety앱이 레이아웃의 각 뷰를 직접 참조할 수 있게 해주는 안전한 코드를 자동으로 생성null로 인한 오류, 즉 뷰가 아직 화면에 나타나지 않았는데 그 뷰를 사용하려고 할 때 생길 수 있는 문제들을 예방  레이아웃에 버튼이 있어야 하는데 아직 버튼이 생성되지 않았다 -> 안전하게 처리레이아웃의 일부만 뷰가 있다 -> 해당 뷰가 '가능성 있는 null'(Nullable)임을 알림타입 안전성 Type Safety뷰의 타입과 바인딩 ..

안드로이드 앱개발 4주차 강의 [액티비티]

액티비티 Activity사용자가 직접 상호작용하는 창 windowsetContentView()를 통해 XML을 UI로 설정  안드로이드 4대 컴포넌트액티비티 Activity서비스 Service : 백그라운드에서 오랜 시간 동안 실행되어야 하는 작업을 수행하는 역할브로드캐스트 리시버 Broadcast Receiver : 앱이 안드로이드 시스템으로부터 발송되는 다양한 이벤트, 정보를 받을 수 있게 해주는 역할콘텐트 프로바이더 Content Provider : 앱 간 데이터 공유할 수 있게 해주는 역할생명주기와 콜백메소드 onCreate()호출시기 : 액티비티 생성시 호출특징 : 필수이며 생명주기 단 한번만 수행구현사항 : 레이아웃, 뷰, 바인딩, 설정 등 값 초기화나 시작로직. setContentView같은..

안드로이드 앱개발 3주차 강의 [UI]

UI UserInteface XML Layout Editor : 드래그 앤 드롭 방식. WYSIWYG(what you see is what you get) 에디터XML 코드 : 태그나 속성을 코드로 직접 입력하는 방식. Copy & paste를 이용한 편집이 효율적    뷰 View 안드로이드 앱의 UI를 구성하는 기본 단위View클래스는 모든 UI 컴포넌트들의 부모 클래스이다.  위젯 Widget : View의 서브 클래스, 앱 화면을 구성하는 시각적인 모양을 지닌 UI요소 레이아웃 Layout : ViewGroup의 서브 클래스, 뷰를 포함하면서 정렬하는 기능을 지닌 UI요소해상도는 부록에 정리되었다.   위젯 Widget TextView 화면에 text 표시 EditText 입력이 가능한 Text ..

안드로이드 앱개발 강의 부록

안드로이드 앱개발 1~2주차 강의 부록  안드로이드 플랫폼      Linux커널 ART(안드로이드 런타임)는 스레딩 및 하위 수준의 메모리 관리와 같은 기본 기능에 Linux커널을 사용 Android가 Linux커널의 주요보안기능을 활용, 다양한 하드웨어 디바이스 드라이버 제공  HAL(하드웨어 추상화 계층) 상위 수준의 JavaAPI 프레임워크에 기기 하드웨어기능을 노출하는 표준인터페이스 제공 프레임워크 API기기가 하드웨어에 액세스하기 위해 호출을 수행하면  Android시스템이 해당 하드웨어 구성 요소에 대한 라이브러리 모듈을 로드  Android런타임 Android 버전5.0 (API레벨21)이상 : 각 앱이 자체 프로세스 내에서자체 ART 인스턴스로 실행 ART는 DEX파일을 실행하여 저 용량..

안드로이드 앱개발 1 ~ 2주차 강의 [개요 ~ 프로젝트]

안드로이드 Android휴대전화를 비롯한 휴대용 장치를 위한 운영체제, 미들웨어, 사용자 인터페이스, 표준 응용 프로그램을 포함하고 있는 모바일 운영체제이자 모바일 플랫폼  모바일 플랫폼 : 모바일 운영체제 + 애플리케이션 프레임워크모바일 운영체제 : 모바일기기에서 실행되는 운영체제. 앱 실행을 쉽게 해준다.운영체제(Operating System) : 시스템 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위해하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어 애플리케이션 프레임워크 : 앱 개발을 쉽게 해준다.  안드로이드 에코 시스템 : 단말제조사, 앱개발자, 이동통신사가 함께 만든 생태계로 점유율을 높일 수 있는 이유 중 하나 2005년 구글이 안드로이드를 인수하고 2008년 오픈..

사전캠프 3주차 강의 [MBTI 테스트]

요약사전준비 : 그라데이션 배경, 뷰페이저, 질문지xml : 코드와 팔레트로 화면 생성, 라디오그룹 생성kotlin : 뷰페이저 관련, 질문 응답처리, MBTI 테스트 완성 후 사용문제해결 및 회고  1. 사전준비 1.1 그라데이션 배경 만들기 로 그라데이션 색깔 2개를 입력하면 된다.   1.2 Viewpager 준비하기1.2.1 라이브러리 추가 : Gradle - build.gradke.kts(Module:app) - viewpager2추가 - Syncimplementation("androidx.viewpager2:viewpager2:1.0.0") 1.2.2 어답터adapter : java - New - Kotlin class - ViewPagerAdapter.kt 생성뷰페이저를 상속받아 만드는..