본문 바로가기

전체 글

(70)
[18.12.30] 뉴스 크롤링 앱을 만들면서...(2) 구현하려고 했던 네이버, 다음 실시간 검색어 10개씩 보여주기 기능을 추가했다.하나의 액티비티에 두개의 리사이클러뷰 어댑터가 있다.MVP 패턴으로 짜놓은거라 어거지로 맞춰놨는데... 약간 이상한부분은 내 맘대로 바꿔버렸다. ㅋㅋㅋㅋ그리고 첫번째 삽질기로, 기존에 있는 Contract 인터페이스를 이용하려고 List 로 바꿔서 Any 자리에 IssueItem, NewsItem 을 대입하려고했으나, 코드에 빨간 밑줄이 생겼다. 방법으로 코틀린의 기능인 스타 프로젝션 이라는 것을 알게되었는데, 이게 뭔지 이해를 못했다. 일단 공식 문서 번역글을 포스팅 해놓긴 했는데.... 이걸 참고하자. https://kotlinlang.org/docs/reference/generics.html 오늘 바꾼 내용(구현한 것)-..
[18.12.26-27] 뉴스 크롤링 앱을 만들면서... 홈 화면에 네이버, 다음의 실시간 검색어를 10개씩 보여주려고 구현중이다.2개의 리사이클러뷰를 띄워주려고 했는데 생각해보니 리사이클러뷰와 어댑터는 1대1 매핑해야하는걸까?아직 리사이클러뷰를 확실하게 이해한 것 같지 않다. 그냥 되니까, 쓸줄만 알 뿐...서버에서 받고 어댑터에 set 하기까지, 무작정 코딩하는게 아니라 우선 생각을 좀 해봐야겠다지금 계속 바꾸는중인데,,, 설계 과정 없이 하다보니 진짜 중구난방으로 코딩하고 커밋도 애매해진다 ㅠㅠ시간이 너무 늦어져서 글로 정리하는중. 나는 급한 불을 꺼야할게있어서...^^ 바꾼 내용- 패키지 정리(어댑터 클래스에서 뷰홀더 분리, 어댑터 패키징)- BaseViewHolder 의 추상메소드 bind 파라미터 NewsItem -> Any 로 변경. 다형성을 이용..
[Android] android:src VS app:srcCompat app:srcCompat is the most foolproof method of integrating vector drawables into your app.Vector drawables allow you to replace multiple png assets with a single vector graphic, defined in XML. While previously limited to Lollipop and higher devices. app : srcCompat는 벡터 드로어블을 앱에 통합하는 가장 확실한 방법입니다. 벡터 드로어블을 사용하면 여러 png 애셋을 XML로 정의된 단일 벡터 그래픽으로 대체 할 수 있습니다. 이전에는 Lollipop 이상의 기기에만 사용할 수 있었습니다. As of..
[Java] Annotation, Annotation Processing, Reflection Annotation 자바 어노테이션(Java Annotation)은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종이다. 보통 @ 기호를 앞에 붙여서 사용한다. JDK 1.5 버전 이상에서 사용 가능하다. 본질적인 목적은 소스코드에 메타데이터를 표현하는 것. 단순히 부가적인 표현뿐만이 아닌 리플렉션을 이용하면 어노테이션 지정만으로도 원하는 클래스를 주입하는 것이 가능해진다. 참고 : Java Annotation이란?, Java - Annotation(어노테이션 활용 예제1), Java Annotation: 인터페이스 강요로부터 자유를…(어노테이션 활용 예제2), 깔끔한 정리 Annotation Processing 컴파일 단계에서 어노테이션만 가지고 자바코드를 만들어내는데 사용됨. Room, ..
[18.12.21] 깃헙블로그를 잃다 원래 처음엔 티스토리에 블로그를 시작했었다.사실 티스토리는 글쓸 때 네이버 블로그보다 좀 불편하다는 생각이 들었는데, 복붙하면 서식도 그대로 따라오고 뭔가 개발자들이 많이 쓰고 스킨도 괜찮아서 선택했었다.근데 깃허브에 잔디밭좀 심어보려고 깃헙블로그로 옮겼다. 포스팅만 해도 초록초록해져서 좋았다. hexo 테마도 적용하고 내 맘에 드는 블로그를 만들 수 있었다. 100% 만족하진 못했지만 반응형 웹에다가 마크다운 서식이 적용돼서 너무 편했다.근데 노트북을 바꾸면서 로컬 저장소를 밀어버렸는데 치명적인 실수를 했다. 깃헙에 올라가있는것만 있으면 되는줄 알았는데 그게 아니었다. clone 을 해보니 내가 원래 쓰던 로컬 저장소와는 다른 것을 알 수 있었다.그때야 깨달았다. deploy는 hexo에서 해주는거였고..
[Android] CoordinatorLayout 활용 내용 업데이트: 20.09.15 CoordinatorLayout 을 활용한 스크롤 이벤트 구현하기실행환경 : Android Studio 3.2API : API 24 Nougat test device : Galaxy Note 9 (API 28 Oreo) 출처 : material.google.com 스크롤 이벤트에 따라 부드러운 애니메이션과 함께 툴바가 사라지고 보여진다.이를 구현할 수 있는 기본 레이아웃은 바로 CoordinatorLayout 이다. 아래와 같이 app.gradle 에 디펜던시를 추가해주어야한다.원래는 support 라이브러리에 따로 존재했지만, androidx 로 업데이트 된 이후로 함께 포함되어있다. 두번째 줄에 있는 머티리얼 디펜던시를 추가해주지않으면, 코디네이터 레이아웃에서 세팅할 ..
[kotlin] TextView 에 밑줄긋기 첫번째 : string 리소스에서 지원하는 방법your string data underline 두번째 : 코드에서 입력하는 방법val text = SpannableString("your string data") category.setSpan(UnderlineSpan(), 0, text.length, 0)
[Android] 스플래시 화면 스플래시 화면스플래시 화면은 메인 화면이 보이기 전에 보이는 화면이다. (앱 최초 실행시 보이는 로딩화면) 이것도 화면 단위이므로 액티비티로 만들 수 있다.본 포스팅은 간단한 스플래시 화면을 구현하는 예제이다. 0. 스플래시 화면으로 사용할 액티비티 생성하기스플래시 화면을 위한 액티비티는 소스 코드를 만든 후 이 액티비티의 스타일을 지정해주면 된다.액티비티는 소스 코드(자바 클래스 파일)와 XML 레이아웃으로 구성할 수도 있지만 좀 더 가볍게 구성하기 위해 XML 레이아웃을 만들어 인플레이션하는 방식이 아닌 매니페스트에서 theme 속성으로 스타일을 지정하는 방식을 사용한다.스플래시 화면을 구현하는 방법은 여러가지가 있으나, cold start (기기 부팅 후 앱이 처음 실행되거나 시스템에서 종료한 후에..