개발/안드로이드271 안드로이드 컨스트레인트레이아웃. (Android ConstraintLayout) 출처 - https://recipes4dev.tistory.com/158 1. 안드로이드 레이아웃 작성. 안드로이드 앱을 개발할 때, UI 화면을 구성하는 작업은 보기만큼(?) 마냥 쉬운 일이 아닙니다. 특히 앱 개발 경험이 상대적으로 부족한 초보 개발자들에겐, 앱의 탐색 메뉴 구성과 컨테이너 선택, 그리고 각 화면에 들어갈 레이아웃과 뷰 위젯 등을 결정하는 일이, 비즈니스 로직(business logic)을 구현하는 작업보다 우선적으로 해결해야 할 과제로 여겨지기도 하죠. 게다가, 요구사항의 변경으로 인해 화면 요소의 배치를 빈번하게 수정해야 하는 일이 발생하면 UI 화면을 수정하는데에만 전체 개발 시간의 상당 부분을 소비하게 될지도 모릅니다. 그러므로 안드로이드 UI 컴포넌트의 종류와 특성, 사용법을.. 2019. 5. 31. Android ConstraintLayout 출처 - https://medium.com/@futureofdev/android-constraintlayout-%EC%89%BD%EA%B2%8C-%EC%95%8C%EC%95%84%EA%B0%80%EC%9E%90-62d2ded79c17 LinearLayout이나 RelativeLayout을 쓰다보면 ConstraintLayout을 왜쓰면 좋을지 궁금증을 가지게 됩니다. 저도 그랬고, 새로 학습해야해서 잠깐 미뤄뒀는데, 직접 써보니 이게 왠걸, 정말 재미있는 레이아웃입니다. ConstraintLayout을 쓰면서 어려웠던 부분 3가지를 설명 드리겠습니다. 제 설명만 들으면 ConstraintLayout 금방쉽게 쓰실 수 있을겁니다. 먼저, 제가 학습하면서 가장 도움이 되었던 출처를 알려드립니다. 안드로이드 .. 2019. 5. 31. Android Architecture Components - ViewModel 출처 - https://tourspace.tistory.com/27?category=788397 ViewModel class는 UI와 연관된 데이터를 스크린 가로세로 전환같은 변경 발생시에도 유지하도록 도와주는 class입니다. 예를들어 사용자 리스트를 보여주는 Activity나 fragment가 있다면, 이 데이터는 화면이 re-created 될때(사용자의 의도나, system에 의해서) 다시 re-fetch되야 하죠. 이전 UI의 상태를 저장하기 위해 onSaveInstanceState()을 이용하여 onCreate()에서 bundle로 받을수 있지만, 적은 데이타나 UI 상태를 저장하는 용도이며, 사용자 리스트 같은 큰 데이터를 저장하기엔 적합하지 않습니다. 다른 문제로, UI controller(.. 2019. 5. 29. Android Architecture Components - LiveData API 출처 - https://tourspace.tistory.com/26?category=788397 정의 및 기능 LiveData는 Activity나 Fragment의 수명주기에 따라 Observable한 data holder 클래스 입니다. 따라서 어떤 데이터의 실시간 변화에 따른 UI 업데이트가 필요할 때 사용합니다. Observer pattern을 사용하여, UI component가 data가 변화를 요청하여 변경점이 있으면 업데이트 하는것이 아니라, Data driven 방식으로 data가 변경되면 UI에게 업데이트를 알려주도록 합니다. 호출 관계가 뒤집힌것이죠. 특이한 점은 observer를 등록할때 LifecycleOwner (Activity나 Fragment)와 함게 pair로 등록하여, own.. 2019. 5. 29. Android Architecture Components - Handling Lifecycles 출처: https://tourspace.tistory.com/24?category=788397 [투덜이의 리얼 블로그] Android Architecutre component에서는 lifecycle을 다루기 위해서 새로운 방법을 제시합니다. Activity와 Fragment의 lifecycle에 따른 동작을 정의할 수 있는 class와 interface를 android.arch.lifecycle package를 제공합니다. 위치를 얻어오는 코드를 작성하는 예제를 통해서 어떻게 life cycle을 다루는지 알아보겠습니다. class MyLocationListener { public MyLocationListener(Context context, Callback callback) { // ... } voi.. 2019. 5. 28. Android Architecture Components - Room 출처: https://tourspace.tistory.com/28 [투덜이의 리얼 블로그] Room Persistence Library Room은 SQLite의 추상화 layer로 SQLite의 모든 기능을 활용하여 유연한 database 접근을 가능하게 한다. core Frameworkd이 raw SQL을 사용할수 있도록 지원하지만 low level로 접근 가능하고 다음과 같은 항목으로 인해 많은 공수가 들어간다 raw SQL은 complie time에 확인할 수 없기 때문에 데이터의 구조가 변경되는 경우 영향을 받은 SQL을 수동으로 수정해야하며, 이는 공수가 많이 든다. SQL 결과를 java object로 만들기위해 많은 상용구(상투적인) 코드들이 들어간다. Room의 3가지 component D.. 2019. 5. 28. ROOM 라이브러리 사용하기 , 코루틴 출처 - https://namget.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-ROOM-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%BD%94%EB%A3%A8%ED%8B%B4 안녕하세요 남갯입니다 오늘은 구글 JetPack componet에 포함된 ROOM에 대해 포스팅해보려고합니다. 스스로 정리해서 작성하는것이기때문에 틀린점이나 비판은 댓글에 달아주시면 달게받겠습니다. - JetPack component란? 구글 IO에서 62개정도의 작은 세션들을 공개했습니다 그 세션들의 집합을 Jetpack 이라하는데 , Android앱.. 2019. 5. 27. 버터나이프 추상화 출처 - https://black-jin0427.tistory.com/119 안녕하세요. 블랙진입니다. 안드로이드 개발을 할 때 이제는 너무나도 많이 쓰는 Butterknife 를 좀 더 멋지게 사용할 수 있는 방법에 대해 포스팅 해보겠습니다. 준비. app 단계의 build.gradle 설정 implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 최신 버전 및 사용법은 버터나이프 깃허브에서 확인해 주세요. 일반적인 설정 방법 Activity @Override protected void onCreate(@Nullable Bundle savedInstanc.. 2019. 5. 24. 이전 1 ··· 3 4 5 6 7 8 9 ··· 34 다음