안드로이드(5)
-
단방향 데이터 흐름의 이해
Compose의 중요한 키워드인 State를 이해하려면 먼저 기존의 View System의 흐름을 알아야 합니다. 기존의 View System은 아래와 같은 흐름을 갖고있었죠. 사용자가 버튼을 클릭 -> click event가 발생 -> event handler가 상태를 업데이트 -> 상태와 관련된 ui가 새로 업데이트됨 좀더 구체적인 예제로 알아볼까요? 구조화되지 않은 상태 사용자가 이름을 입력하면 바로 화면에 "Hello 이름"이 출력되게 하려고 합니다. 구현하는 한가지 방법은 TextView에 이벤트 콜백을 바로 추가하는 것이죠. viewBinding을 사용한다면 아래코드처럼 될것입니다. class HelloCodelabActivity : AppCompatActivity() { private lat..
2021.11.21 -
[안드로이드] WebViewClient와 WebChromeClient
웹뷰를 구현하기 할때 WebView객체를 만들게 되는데요, 단순히 WebView객체만 생성하면 화면만 보여질 뿐 웹뷰 속 버튼이나 다른 기능들은 동작하지 못합니다. 웹뷰 속 버튼을 앱에서 제어하기 위해 필요한 구현체들이 바로 WebViewClient와 WebChromeClient입니다. WebViewClient와 WebChromeClient 먼저 WebViewClient와 WebChromeClient 이 둘의 차이를 알아봅시다. WebViewClient는 웹페이지를 로딩할때 생기는 콜백함수들로 구성되어 있습니다. 반면 WebChromeClient는 웹페이지에서 일어나는 액션들에 관한 콜백함수들로 구성되어 있습니다. 예를들면 웹에서 새 창을 띄우려하거나 파일을 첨부하는 경우가 있습니다. 아래는 각 클래스에..
2021.11.01 -
[ACC] 데이터 바인딩 기초
ACC(안드로이드 아키텍처 컴포넌트)에서 가장 인기있는 패키지 중 하나인 '데이터 바인딩'을 소개합니다. 데이터바인딩을 이용하면 액티비티 코드를 간결하게 줄일 수 있습니다. 기존에는 아래와 같이 findViewById()를 여러번 호출해야 했습니다. Button button; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); } 하지만 데이터바인딩을 이용하면 위 코드를 xml에서 대신 처리해주면서 액티비티에서 했던 ui작업이 아주 간단하게 바뀝니다. 사용방법부터 ..
2021.02.14 -
[Android Jetpack] LiveData 사용방법
observable을 모르신다면 이 글을 먼저 추천드려요! 2021/01/31 - [바삭바삭 IT/디자인패턴] - [디자인패턴] Observer? Observable? [디자인패턴] Observer? Observable? 안드로이드의 라이브데이터가 구현한 패턴, Observer에 대해 알아봅시다. 우선, 디자인패턴이란 소프트웨어에서 반복되는 문제상황에 대한 해결책입니다. 개발자가 앱이나 시스템을 디자인할때 kimdabang.tistory.com LiveData는 observable data holder class, 관찰가능한 데이터들을 담는 클래스라는 뜻 입니다. LiveData는 일반적인 observable과는 달리 생명주기를 인식합니다. 즉 앱의 컴포넌트들(액티비티, 프래그먼트, 서비스 등)의 생명주..
2021.01.24 -
Recycler View 제대로 이해하기 - RecyclerView lifecycle
안드로이드에서 리스트뷰는 많은 데이터들을 일렬로 나열해주는 우리가 자주 볼수있는 화면입니다. 그러나, 매번 스크롤할때마다 새 항목을 만들고 뷰를 생성하는게 비용이 커서 리소스 소비에 그다지 좋지 않다고 할 수 있습니다. 목록의 양이 많으면 그만큼 리소스를 많이 사용하게 되고, 앱의 성능을 저하시키게 되죠. RecyclerView가 나오기 전까지 오랫동안 고민되어 왔던 문제들이였습니다. Google은 2014년 롤리팝 출시와 함께 RecyclerView를 공개했습니다. RecyclerView의 아이디어는 간단했습니다. 사용자가 스크롤할때마다 뷰가 생성되는게 아니라 뷰는 처음 한번만 생성되고 필요할때마다 재사용하는 방법입니다. 뿐만 아니라 전에 ListView에 없던 LayoutManager, ItemDec..
2020.11.24