일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- log
- layout_constrainedWidth
- gradle plugin
- SSAID
- findNavController
- studywithme
- 기기고유값
- DataBinding
- Retrofit2
- todo
- Android
- layout_constrainedHeight
- multipart
- DialogFragment
- Navigation
- Load failed
- BottomSheetDialogFragment
- json
- kotlin
- ThreeTen Backport
- Lifecycle
- 생명주기
- RecyclerView
- Room
- Popup menu background color
- NumberPIcker
- WorkManager
- http
- 화면 회전
- Collections Function
- Today
- Total
목록분류 전체보기 (31)
chacha's
아래에서 사용된 코드는 Github 에서 확인하실 수 있습니다. - Implement a Click Listener with RecyclerVIew and DataBinding 👆 DataBinding을 사용할 때, RecyclerView에 ClickListenr를 추가하는 방법 1. 어댑터 클래스가 있는 파일에서 clickListener 클래스를 만듭니다. class SleepNightAdapter() : ListAdapter(SleepNightDiffCallback()) { ... } /** * click 을 감지하고 클릭과 관련되어 처리해야 데이터를 fragment 에 전달합니다. * click event 가 발생할 때마다 이를 fragment 에 알리는 * 아래의 Callback method 는 ..
목차 Working with the AppBar - Docs App bars: top - material.io 를 참고하여 작성한 게시글입니다. App bars: top ToolBar Menu in Fragment 개발자를 위한 레시피 - 안드로이드 액션바(ActionBar) 기본 사용법 을 참고하였습니다. 1. res/menu 폴더에 menu 리소스 파일을 생성해줍니다. 여기서 showAsAction 속성에 따라서 AppBar에 어떻게 보여질지가 결정됩니다. 속성 설명 app:showAsAction="always" 을 항상 AppBar의 액션으로 표시해줍니다. app:showAsAction="never" AppBar의 액션으로 표시하지 않고 오버플로우 메뉴에 표시 app:showAsAction="ifR..
목차 Android Architecture Components Advanced Navigation Sample - Github BottomNavigationView - Getting Started With Navigation Component - Youtube Null NavHostFragment/NavController with FragmentContainerView - stack overflow Using Bottom Navigation - material.io Integrate the Navigation component - Docs 위의 내용을 참고하여 작성하였습니다. BottomNavigationView 🚨 UI 주의사항 Bottom Navigation UI를 사용할 때 주의해야 할 사항이 있습..
찰스의 안드로이드_보일러플레이트 코드란?을 참고하였습니다. 보일러 플레이트 코드(Boiler Plate Code)란? 특정한 기능을 구현한 것을 최소한의 변경으로 여러 곳에서 재사용할 수 있으며, 반복적으로 비슷한 형태를 띄는 코드를 의미합니다. 가장 대표적인 예로는 변수에 대한 getter/setter 메서드가 있습니다. 아직 정확한 의미는 모르겠지만 개인적으로는 일종의 템플릿이라고 생각합니다. 알고리즘 문제를 예로 생각해보면 BFS의 경우 개념적으로는 현재 위치에서 인접한 노드들을 탐색하는 그래프 탐색 방법입니다. 코드를 작성하는 방면에서 생각해보면 Queue라는 자료구조를 이용하여 현재 인접한 노드들을 삽입하여 다음 탐색에 이용하는 방법을 기본 틀로서 자주 이용합니다. 이렇듯 어떠한 기능을 구현하는..
ADB(Android Debug Bridge)는 애뮬레이터나 기기에 명령을 보낼 수 있도록 하는 Command line tool입니다. ADB 사용하여 프로세스 강제 종료하기 Terminal에서 abd가 있는 폴더로 이동합니다. 애뮬레이터를 사용하여 앱을 실행합니다. 사용 중이던 앱을 백그라운드로 보냅니다. ( 앱을 실행 중일 때 home 버튼을 누르면 앱을 백그라운드로 보낼 수 있습니다. ) Terminal에 아래와 같은 명령어를 입력하여 adb를 실행합니다. 아래의 명령어는 Android OS가 앱의 실행을 멈추듯이 동작합니다. ADB를 path에 추가하기 만약 adb 파일이 있는 폴더로 이동하지 않고 Terminal에서 바로 사용하고 싶다면 path에 파일 경로를 추가해주어야 합니다. 1. ADB ..
목차 🥾 Timber의 장점 클래스 이름을 기반으로 자동으로 tag를 생성하기 때문에 수동으로 생성할 필요가 없습니다. APP APK 릴리즈 할 때 로그 출력을 방지할 수 있습니다. 충돌 보고 라이브러리와 쉽게 통합이 가능합니다. 코드가 간결해집니다. 💻 사용 방법 1. build.gradle(Module:app)에 Timber 라이브러리 추가하기 implementation 'com.jakewharton.timber:timber:4.7.1' 2. Application class 만들기 앱 전체에서 logging library를 사용할 것이기 때문에 application class가 필요합니다. 또한 다른 어떤 것보다 Timber가 먼저 초기화되기 원하기 때문에 이를 사용합니다. ( apllication ..
목차 Stage of the activity lifecycle, Lifecycles and logging을 참고하였습니다. 아래에서 사용된 코드는 github에 올려두었습니다. Android Lifecycle을 이해한다는 것은 Android 개발자에게 중요한 사항입니다. 라이프사이클(lifecycle)과 관련된 코드 배치, 객체 초기화 등을 이해하면 앱의 안정성과 성능을 향상시킬 수 있습니다. 애플리케이션을 개발할 때 우리는 "기기의 화면이 회전하거나 앱이 백그라운드로 배치되는 동안 어떤 정보가 유지되어야 하는가?", "어떤 뷰를 초기화 및 참조해야 하는가?", "코드를 구조화할 때 어떤 것을 고려해야 할 다른 사항이 있는가?" 등 라이프사이클과 관련된 여러 사항들을 생각해야 합니다. 예를 들어 어떤 앱..
목차 시중에 나와있는 앱을 보면 복잡하게 이루어진 경우가 대부분으로 하나의 화면이나 두 개의 버튼으로 이루어진 화면처럼 간단하게 이루어진 앱을 찾아보기는 힘듭니다. Navigation은 화면을 구성하는 과정에서 도움이 되는 Android Jetpack Component 입니다. 기존에 방법보다 신경써야 할 부분도 많이 있지만 시각적으로 view가 어떻게 연결되어 알 수 있기 때문에 도움이 됩니다. 만약 navigation graph를 봤을 때 모든 화면을 연결하는 선이 스파게티처럼 복잡하게 이루어져 있다면 사용자가 앱을 사용할 때 머릿속에 이러한 그림을 그려가며 앱을 사용해야 한다는 것을 의미합니다. 몇 개의 화면으로만 이루어져 있는 앱이더라도 navigation을 봤을 때 복잡하다면 사용자 또한 그렇게..
Costraint Layout을 사용하면 내포된 view group 없이 평면 뷰 계층 구조로 크고 복잡한 레이아웃을 만들 수 있습니다. 모든 view가 형제 뷰와 부모 레이아웃 간의 관계로 표현된다는 점에서 Relative layout과 유사하지만 Relative layout보다 유연하며 사용하기 쉽습니다. Constraint Layout으로 거의 모든 레이아웃을 만들 수 있지만, 15개 미만의 적은 요소를 배열하거나 하나의 복잡한 layout에 여러 개의 view group을 배열하는 경우에 가장 적합합니다. 만약 view의 좌표를 지정하지 않는다면 view는 parent view의 top-left를 기준으로 ( 0,0 ) 위치에 나타날 것입니다. Constraint Layout을 사용하는 이유 다양..
목차 Android Kotlin Fundamentals - Data binding basics 를 참고하여 작성한 게시글입니다. Data Binding Android는 activity나 fragment 코드에서 view를 참조하기 위해서 보통 findViewById를 사용하여 Id를 찾아야합니다. 이 경우 런타임(runtime)에 view 계층을 탐색하여 찾는 것입니다. 따라서 뷰 계층이 깊어질수록 찾는데 더 오랜 시간이 걸리므로 유저가 앱을 사용할 때 반응을 느리게 할 수 있는 요소가 됩니다. ( findViewById를 사용하면 view가 호출될 때마다 runtime에 view를 찾습니다. ) DataBinding을 사용하면 이를 해결할 수 있습니다!!! DataBinding을 사용하는 경우 컴파일 ..