\-Android는 휴대할 수 있는 디바이스 기기를 위한 오픈소스 소프트웨어 스택\-데이터를 저장할 수 있는 자료구조의 종류 중 하나인 스택에 비유해 Android를 '오픈소스 소프트웨어 스택'이라고 부름 그렇다면, 오픈소스/스택 이라는 단어가 붙는 이유를 하나씩 알아
.
"마크(Mark)","태크(Tag)"로 둘러싸인 언어태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지문서의 골격에 해당하는 부분을 작성일반적으로는 데이터를 기술하는 정도로만 사용되기 때문에 프로그래밍 언어와는 구분됨 종류HTML : Hyper Text
val textView: TextView =findViewById(R.id.hello)findViewById가 id가 hello인 문자열과 동일하면서, 속성이textView인 view를 찾아서 리턴 hello(id에 따라 달라짐)
@color/지정이름@string/지정이름@style/지정이름@drawable/지정이름
Context는 애플리케이션 환경에 대한 글로벌 정보를 갖는 인터페이스(여기서의 인터페이스는 연결되는 부분.문법interface아님)이름 그대로 해석한다면 애플리케이션(객체)의 현재 상태의 맥락(context)를 의미. 컨텍스트는 새로 생성된 객체가 지금 어떤 일이 일
표준화,정형화된 하나의 프로그래밍 방식FrameWork은 틀작업. 프로그래밍할때 정해진 틀이 있는거임(개발하기 위해 지켜야 하는 툴)ex.안드로이드 스튜디오도서관에 있는 책은 다른 사람이 만든 정보인 것처럼 다른 사람이 만든 정보 모아둔게 라이브러리임 녹음파일재생하는
~메인 레이아웃에 버튼 하나 만들고 시작~최초 commit해서 sp1에 데이터 저장후,sharedPreference.getString("hello2", "데이터 없음") 로 한다면 hello11의 value값에는 데이터가 없으니 '데이터 없음'이 로그에 찍힐 것~메인
Server-Client(안드로이드 앱)에서 Server와 통신하는 네트워크 개념 살펴볼 것지금까지 sharedPreference를 통해 Local DB를 사용했지만 한계 존재동기화가 어려움사용자간 데이터 상호작용 불가해당 url로 연결함: url을 통해 요청을 보냄
Retrofit은 앱 개발 시 서버통신에 사용되는 HTTP API를 자바, 코틀린의 인터페이스 형태로 변환해 안드로이드 개발시 API를 쉽게 호출할 수 있도록 지원하는 라이브러리임예를 들어 https://\~~/user/{user}/repos 라는 HTTP A
ViewPager2는 기존 ViewPager라이브러리에 몇가지 기능을 추가하여 출시된, 화면을 슬라이드하는 애니메이션이 구현되어있는 안드로이드 Jetpack컴포넌트임기존 ViewPager의 불편한 점을 개선하고 좀더 다양한 슬라이드 애니메이션 기능이 있는 ViewPag
BottomNavigation 도큐먼트(https://developer.android.com/reference/android/support/design/widget/BottomNavigationView- 안드로이드 컴파일 버전 26.1.0 부터 추가되었고, c
안드로이드 지원 라이브러리Android support library는 표준 프레임워크 API(java API Framework)에서 사용할 수 없었던 손쉬운 개발 및 여러 기기에 걸친 지원을 위한 추가 편의 클래스 및 기능을 제공함하는 라이브러리 모음집이라고 생각하면됨
지금까지 텍스트 뷰에 문장을 넣기 위해 코드상에서 이런식으로 집어넣어야 했는데 이걸 XML코드에서 해결해 버리고 싶어서 나온게 데이터 바인딩임이렇게 하면 엑티비티에는 뷰 이동같은 로직을 위한 코드만 남게 되고 뷰와 관련된 작업은 레이아웃 파일에 정의되니까 좋음즉, 데이
SQLite 데이터베이스는 안드로이드에서 제공하는 관계형 데이터베이스이자 경령 데이터베이스다관계형 데이터 베이스는 테이블, 컬럼(속성), 레코드(로우,튜플)로 이루어져 있음SQL: RDB가 데이터를 조작, 제어하는 용도로 사용하는 언어SQL구문(쿼리): SQL언어로
VIEW: Activity, FragmentModel: Room이나 서버에서 데이터 처리하는 로직(Call해서 데이터 가져오기 등)Controller: 사용자의 이벤트를 처리하고 데이터를 xml에 꽂아주는 로직 화면에 보이는 애는 VIEW가 데이터는 MODERL이 그
Coroutine builderlaunchrunBlockingScopeCoroutineScopeGlobalScopeSuspend functionsuspenddelay()join()Structured concurrencyGlobalScope는 coroutine scope
객체지향 소프트웨어를 잘 설계하는건 어렵다. 특히 재사용할 수 있는 객체지향 소프트웨어를 만드는 것은 더 힘들다. 왜냐면, 설계를 할때는 지금 당장 갖고 있는 문제를 해결할 수 있어야 하는데 나중에 생길수 있는 문제나 요구사항들도 수용할 수 있도록 일반적이고 포괄적이어
라이브러리 적용 잘 하자. ViewModel에서 Hilt사용하려면 라이브러리 따로 implement해줘야하는거 잊지 말것build gradle상단에 plugin도 추가해야함project수준에서 classpath도 지정해야함HiltAndroidApp 만든 후 manife
안드로이드의 스레드는 크게 2종류입니다메인스레드(UI스레드): 1개만 존재백그라운드 스레드: 여러개 존재 가능네트워크 작업, 파일업로드와다운로드, 이미지 처리, 데이터 로딩같은 일을함메모리 이외의 다른 곳에서 데이터를 가져오는 작업은 백그라운드에서 실행하길 권장프로세스
비동기적인 데이터 스트림을 이용한 프로그래밍 기법이다.데이터(=스트림=이벤트의 나열)가 변경->데이터를 계속 전달반응형 프로그래밍에서는 모든 데이터를 "스트림"으로 본다.스트림이란시간순으로 발생하는 이벤트의 나열이다.스트림은 value, error, complete 의
모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있다. 프로젝트에서 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈이 다른 모듈을 종속성으로 사용할 수 있다. 각 모듈은 개별적으로 빌드, 테스트 및 디버그 할
✅문제 상황 spoonfeed를 리팩토링하면서 RecyclerView가 NestedScrollView안에 중첩되어 있을 경우, ViewHolder가 재활용되지 않는다는 문제점을 알게되었고, [문제의 원인/해결방안을 포스팅](https://velog.io/@dabin/