-
Sticky Header Recyclerview using ItemDecoration without library - 2 (Kotlin)Dev/android 2020. 5. 27. 00:18
자 라이브러리 없이 ItemDecoration을 사용해서 만드는 Sticky Header RecyclerView 2탄! 이전 포스팅 1탄은 여기 참조!! 지난 포스팅에서는 아이템 뷰 타입별로 뷰홀더에 바인딩을 했다면 이번엔 RecyclerView에 넣을 리스트를 만들어보자 지난 포스팅에 Activity에 Data 클래스를 타입으로 가진 List 만든것과 다른 리스트이다. 지금 만들 리스트는 여러 타입의 뷰를 아이템으로 가진 리스트이다. AdapterItem.kt data class AdapterItem(var type: Int, var objects: Data) Data 타입과 Int 타입의 매개변수를 가진 AdapterItem 이라는 data class를 만들어 준다. 이것은 지금 만들 리스트의 데이터..
-
Sticky Header Recyclerview using ItemDecoration without library - 1 (Kotlin)Dev/android 2020. 5. 26. 22:56
Sticky Header 란? 사용자가 페이지를 아래로 스크롤 할 때, 화면 상단에 고정된 뷰를 말한다. 검색해 보면 라이브러리 한 줄로 사용하기도 쉽게 해뒀지만, 각자의 상황에 맞게 커스텀 하려면 라이브러리는 불편하다 ItemDecoration을 커스텀 해서 고정할 헤더 뷰를 그리기로 했다. 아래는 예제 샘플이다. 바쁜 사람은 여기 를 눌러 소스를 보러 가시길... 아래 부턴 삽질 히스토리 사실 맨 위의 상단을 고정하는 건 검색해보면 되게 많이 나온다. 1. https://github.com/paetztm/recycler_view_headers paetztm/recycler_view_headers Simple Recycler View Section Header implementation - paetzt..
-
Glide로 서버에서 이미지를 받아 MenuItem의 아이콘 변경하기 (비트맵으로 변경하기)Dev/android 2020. 1. 14. 16:06
서버에서 이미지를 받아 ImageView에 적용하려면? Glide를 사용하면 쉽게 된다. 그런데 MenuItem에 넣으려면? MenuItem의 setIcon()은 Drawable을 받는다. 따라서 우리는 glide에서 받아온 이미지를 bitmap 타입에서 drawable 타입으로 변경해야 한다. 아래는 MenuItem에 버튼 만들기 예제이다. 안드로이드 새로운 프로젝트를 만든다. 이 예제에선 Navigation Drawer Activity 를 선택. 이렇게 우측 상단 메뉴 아이템을 누르면 Settings 라는 서브 메뉴가 나온다. 이제 메뉴아이템의 아이콘을 변경해보자 메뉴아이템은 res/menu/main.xml 에서 설정한다. 이미 되어있는 코드를 지우고 1 2 3 4 5 6 7 8 9 10 이렇게 넣어..
-
ImageView에서 background 와 src 의 차이Dev/android 2019. 12. 16. 13:54
둘 다 이미지를 뷰에 세팅한다. 하지만 둘의 차이를 알고 사용해야 정확한 UI를 제작 할 수 있다. background src 이미지가 이미지뷰 사이즈에 맞춰짐 이미지가 원래 크기대로 보임 패딩 값 적용 불가 패딩 적용 가능 background 는 말 그대로 배경이다. 이미지의 사이즈는 고려하지 않고 이미지 뷰의 사이즈에 맞춰 그림을 자동 조정한다. src는 전경 이미지다. 이미지를 원래 사이즈 그대로 올릴 수 있다.
-
WKWebView에서 쿠키 세팅하기Dev/iOS 2019. 11. 7. 10:57
swift를 배우지도 않고 갑자기 iOS 앱을 개발해야 했었다..ㅋㅋㅋ 하이브리드 앱이라서 웹뷰 하나 띄우면 되니깐 "일주일이면 충분하지?" 음... iOS 개발자에겐 넉넉한 시간이겠지만... 껄껄 예.. 하라면 해야죠 iOS9부터는 UIWebView 대신 WKWebView를 권장하고 있고, 12부터는 deprecated 돼서 WKWebView를 사용하는 것이 맞다고 판단. https://developer.apple.com/documentation/webkit/wkwebview WKWebView - WebKit | Apple Developer Documentation The methods of the WKNavigationDelegate protocol help you implement custom be..
-
OS버전 별 변경점Dev/android 2019. 8. 16. 01:18
내가 처음 프로젝트 맡은 앱의 minSdk가 킷캣이었기 때문에 킷캣 이후로 정리 Kitkat 4.4 ~ 4.4.4 레퍼런스 기기는 넥서스 5 기기화면 녹화기능 LED 플래시 사용 크롬 WebView 적용 Lolipop 5.0 ~ 5.1.1 머터리얼 디자인 64비트 CPU 지원 볼타 프로젝트 적용 배터리 성능 향상 Marshmallow 6.0 ~ 6.0.1 퍼미션 관리 NFC 내장 지문인식 앱 제어 Doze 모드 ApacheHttpClient 지원 중단 개발자에겐 크게 대응이 필요했던 버전이다. 키보드 개발 할 땐 서비스이기 때문에 신경 안썼는데, 일반 앱을 개발할 땐, Doze모드가 적용되서 백그라운드가 멈추기 때문에 이에 대응이 필요했다. 그리고 앱에서 사용하는 권한중에 사용자에게 물어봐야하는 권한이 ..
-
Java Garbage Collection에 대하여Study/면접준비 2019. 8. 14. 19:10
면접 단골 질문이라서 공부 할 겸 정리해보자... 어려워..ㅜㅜ 간단히 말하면 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능이다. GC는 힙 영역에서 이루어진다. JVM은 메모리의 구역을 나누어 GC를 진행한다. 메모리 구역을 크게 Young Generation, Old Genertaion, Permanent Generation 으로 나눈다. Young 영역은 Eden, 두개의 Survivor Space로 구성되어있다. 새로운 객체가 할당되면 Eden 구역에 할당 된다. Eden 구역이 가득차면 쓰이지 않는 객체를 마킹하고 GC를 한다. 여기서 발생하는 GC는 minor GC라고 한다. 이후 살아남은 객체들은 첫번째 Survivor(s0)로 이동한다. Eden구역과 s..
-
Activity 생명주기Study/면접준비 2019. 8. 14. 18:54
1. onCreate() 액티비티가 처음 실행될 때 호출된다. 레이아웃을 구성한다. 초반에 번들 값은 null이지만 액티비티가 강제종료되었다가 다시 실행되는 겨우 번들에는 이전 상태의 정보가 저장되어 있어 복구할 수 있다. (onSaveInstanceState, onRestoreInstanceState) 2. onStart() 화면에 보이기 직전에 호출된다. 리소스를 설정한다.(BroadCastReciever 등록) 3. onResume() 화면이 포커스를 얻기 전 호출된다. 화면 갱신 처리 4. onPause() 포커스를 잃었을 때 호출 된다. (예: 팝업이 떠서 액티비티의 일부를 가렸을 때) 이 후 다시 포커스를 찾게 되면 onResume으로 돌아간다. 데이터 저장, 스레드 중지 등의 처리는 여기서 ..