안드로이드

    웹뷰 PIP 자체 구현해보기 [ AOS 기능구현 ]

    앱 내부에서 동작하는 PIP를 구현해보았습니다. 제가 설계한 구성은 다음과 같습니다. MainActivity - ImageView(말티즈 이미지) - FragmentContainerView(웹뷰 표시할 FragmentContainer) WebviewLiveFragment - WebView(영상 스트리밍 웹뷰) *그냥 일반 웹뷰를 사용하셔도 무방합니다. - LinearLayout(PIP 제어 버튼) -- Button(Full) - 풀모드로 전환 -- Button(PIP) - PIP모드로 전환 -- Button(X) - (웹뷰 reload 기능으로 설정) 우선 저는 PIP모드를 ViewModel로 관리하기로 했습니다. class WvpipViewModel: ViewModel() { val pip: Mutab..

    Context :: 그래서 Context가 뭐라고? [ Deep in the AOS ]

    Context... Context... Context 안드로이드 앱 개발을 하다보면 Context를 많이 만나게 됩니다. 그런데 Context가 대체 뭐냐고 물어보면 나는 제대로 답하지 못했습니다. ??? : Context는 Context야 ~ Android Developers에서 Context를 뭐라고 설명하고 있을까요? Context는 앱 환경에 대한 전역 정보의 Interface입니다. Android 시스템에서 구현을 제공하는 Abstract Class입니다. Context는 앱 별 Resource와 Class 접근을 허용하며 Activity 시작, Intent 수신과 Broadcast 등의 Application 수준 작업의 호출이 가능합니다. 음... 바로 와닿지는 않았습니다. 🤨 (잘 몰랐기 때..

    RecyclerView :: Recycle Love you❤️ [ Deep in the AOS ]

    RecyclerView를 사용하면 대량의 데이터 세트를 효율적으로 표시할 수 있습니다. 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 RecyclerView 라이브러리가 필요할 때 요소를 동적으로 생성합니다. 이름에서 알 수 있듯 Recycler View는 이러한 개별 요소를 재활용합니다. 항목이 스크롤되어 화면에서 벗어나도 RecyclerView는 View를 제거하지 않습니다. 대신 RecyclerView는 화면에서 스크롤된 새 항목의 뷰를 재사용합니다. 이렇게 뷰를 재사용하면 앱의 응답성을 개선하고 전력 소모를 줄이기 때문에 성능이 개선됩니다. RecyclerView에서 레이아웃 계획 RecyclerView의 레이아웃은 LayoutManager 클래스를 통해 결정됩니다. RecyclerView..

    Intent :: 컴포넌트간의 통신을 맡은 중대한 녀석 [ Deep in the AOS ]

    Intent는 메시징 객체로 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있습니다. Intent가 구성 요소 사이의 통신을 하는 데 여러 방식이 있지만 기본적인 사용은 크게 세 가지로 나뉩니다. 액티비티 시작 Activity에서 새로운 Instance를 시작하려면 Intent를 startActivity()로 전달하면 됩니다. Intent는 시작할 Activity에 모든 필요한 데이터를 담습니다. Activity가 완료되었을 때 결과를 수신하려면 startActivityForResult를 사용하면 되는데 이는 Deprecated되었습니다. 🧐 왜 startActivityForResult를 Deprecated ? 1. AndroidX Activity와 Fragment에 도입된 Activity Re..

    Content Provider :: 앱 구성 요소 4대 컴포넌트 :: 갤러리에서 사진 가져오기 [ Deep in the AOS ]

    앱과 앱간의 데이터 연동을 목적으로 하는 컴포넌트 한 앱에서 다른 앱의 Data를 사용해야 하는 경우에 Content Provider를 이용합니다. ex) 카카오톡에서 사진을 전송할 때 갤러리 앱의 사진 데이터를 이용하는 경우 안드로이드 개발자 문서에는 이렇게 설명하고 있습니다. Content Provider는 중앙 저장소로의 데이터 액세스를 관리합니다. Provider는 Android 애플리케이션의 일부이며, 대게 데이터 작업을 위한 고유의 UI를 제공합니다. 그러나 Content Provider는 주로 다른 앱에서 사용하도록 설계되며, 이러한 앱은 제공자 Client 객체를 사용하여 제공자에 액세스합니다. 제공자와 제공자 Client는 함께 데이터에 일관된 표준 인터페이스를 제공하고, 프로세스 간 통..