본문 바로가기

반응형

분류 전체보기

2018년 돌아보기, 2019년 앞으로 가기 벌써 2018년이 끝나가네요!!! 글 포스팅 완료 할때는 2019년이 됐을거 같네요. 이글은 2년에 걸친 포스팅이 되겠군요 :) 연초에 계획한 일 다 이루시고, 알 찬 한해를 보내셨나요? 저에게 2018년은 의미 있는 한해가 되었네요. 새로운 시도를 하고, 생각하고, 많은 것을 배울 수 있는 한 해였습니다. 개인프로젝트 - 작심삼일 초심을 잃지 않고 3일 목표달성이라는 성공의 반복으로 즐거움과 동기부여를 주어 목표를 달성 할 수 있도록 도와주는 서비스를 만들고 싶었습니다. 물론 저에게도 필요하여 개인프로젝트를 진행하여 출시 하였습니다. 출시 이후 업데이트가 늦긴 했지만, 디자인 변경과 실행 누적일 기능을 적용하여 업데이트 하였습니다. 15분 전공 모임2018년에 최고의 수확이라면 15분 모임에 참석한게 .. 더보기
[Kotlin] RecyclerView 샘플 안드로이드 사용하면서 가장 많이 사용하는 위젯 중 하나는 RecyclerView 일 것 입니다. 자바로 손 쉽게 만들던 RecyclerView를 막상 Kotlin 공부하면서 구현하려니 순간 막막해지는 경험이 있어서 샘플을 정리 하려 합니다. 1. 샘플이니 Activity에 RecyclerView만 보여줄 것 입니다.. activity_main.xml 2. Activity 에서 kotlin extensions을 사용하여 별도의 findViewById 없이 View를 사용할 수 있습니다.RecyclerView 에 Adapter 와 LayoutManager를 지정해 줍니다. 자바에 비해서 참 심플해 졌습니다. MainActivity.ktclass MainActivity : AppCompatActivity() .. 더보기
[31 Days Of Kotlin - 1일차] let, apply, with, run 코틀린 학습 중에 Android Developer 트위터에서 게시한 [31 Day Of Kotlin] 을 학습 하고 있습니다. (https://twitter.com/i/moments/980488782406303744) 1일차로 let, apply ,with, run 에 대해서 정리 하겠습니다. 코틀린에서 기본으로 지원하는 기능으로 잘 사용하면 간결하고 간편하게 코드를 작성 할 수 있다. 각각 함수 안에서 this와 it 이 바라보는 값과, return value 에 대해 주의깊게 봐야 한다. 안드로이드 스튜디오에서는 친절하게 함수 안에서 사용할 수 있는 변수 들과 리턴되는 정보에 되해서 가이드 해주고 있다. 1. let this - 함수가 선언 된 클래스를 나타냅니다it - let 을 호출한 변수를 가르.. 더보기
New Components in Design Support Library v28 Material Design을 도와주기 위해 제공 되었던 Android Disign Support Libray가 v28이 공개 되었습니다. 현재는 alpha3 버전으로 사용할 수 있습니다. v28 에서 어떤 컴포넌트가 추가 되었고 어떻게 사용 되는지 알아 보겠습니다. 현 시점 최신 버전인 alpha3 버전으로 작성합니다. 업데이트 되면서 api들이 바뀌는 부분이 보이고 있습니다. 준비 과정1. App 레벨의 build.gradle 에 정의implementation 'com.android.support:design:28.0.0-alpha3' 2. Material Style 정의 이제 준비 되었으니 각각의 컴퍼넌트를 추가하면서 살펴 보겠습니다. Material Button Icon 이미지를 텍스트와 함께 넣.. 더보기
하루 15분 독서 6기 후기 (1~101일) 하루 15분 전공 공부팀에서 진행 중 독서 모임 6기 모집을 알게 되어서 참여 하게 되었습니다. (전공방도 원조는 독서방에서 영감으로 시작된것으로 알고 있습니다) 하루 15분 전공 공부팀 후기(1~100) 보러가기!! 어려서 부터 책읽기는 별로 좋아하지 않아서, 책읽는 능력(?)이 많이 떨어집니다.ㅠ 제대로 책을 읽기 시작한 건 군대에 있을 때 읽기 시작한거 같습니다. 이전에도 출퇴근 하면서 간간히 책을 읽고 있었으나, 한달의 책 한권 읽기 힘들었습니다. 독서모임에 시작하면서 출근하는 시간은 책 읽는 시간을 정하고 책을 읽고 인증하기 시작했습니다. 정해진 시간에 책을 읽겠다는 나와의 약속을 하고 하루하루 지켜 나가니 책 한권 읽는데 약 10일 정도 소요 되는건 확인 할 수 있었습니다. 예전에 사서 묵혀 .. 더보기
ImageView ColorFilter 로 이미지 색변경하기 이미지 선택,클릭 효과를 주기 위해서 xml selector 로 처리 하거나 코드 상으로 리스너에서 직접 설정을 합니다. 주로 가이드 상 이미지를 미리 제공 받아서 리소스를 추가된 상태로 작업을 하였습니다.. 이미지를 다운로드 받아서 써야 하는경우에 어떻게 처리 해야 할까요?? 상태에 따라 이미지를 변경 하려면 변경할 이미지를 미리 다운로드 받지 않고 사용 하려면 다운로드, 캐시 등의 문제로 동작이 어색 할 수 있습니다. ImageView 에 준비된 ColorFilter 를 사용하면 쉽게 이미지 컬러를 변경 처리 할 수 있습니다. https://developer.android.com/reference/android/graphics/PorterDuff.Mode PorterDuff.Mode 에 정의된 값을 .. 더보기
하루 15분 전공 공부팀 후기 (1~100일) 시작우연히 하루 15분 전공 공부방 모임을 접하고 100일간 지속 한 후기 입니다. 15분 공부방은 매일 15분 이상 씩 전공공부 하고 인증하는 방식으로 진행하고 있다. 진행매일 15분 이상을 목표로 하고 카톡으로 아래 기록 형식으로 인증하고 서로 응원해주면서 진행 하였다. 개발자들이 모여서 각자 관심있는 모바일, 웹, 블록체인 등 다양한 분야에 대해서 공부하고 정보 공유를 활발히 하였다. 무엇이든 목표를 가지고 매일 실행한다는건 참 어려운일이다. 15분이라는 시간은 책상에 앉아서 컴퓨터를 키고 공부를 시작 할 수 있게 해주는 매력적인 시간이었다. 추가적으로 다른분들의 진행 상황을 보면서 무의식적으로 경쟁의식이 생기고 자극이 되서 더 열심히 하게 되는 효과가 있었다. 물론 하루도 안쉬고 100일간 진행한.. 더보기
[Fresco] gif 로드 시 java.lang.IllegalStateException: Width or height is too small. 이슈 Fresco 1.5.0에서 특정 gif 이미지 로드시 [java.lang.IllegalStateException: Width or height is too small.] 에러 발생 하며 앱이 강제 종료 되는 문제가 리포트 되었다. 확인해 보니 문제되는 gif 파일의 속성을 보면 전체 헤더의 width, height 보다 각각 이미지(Frame) 의 width, height 값이 큰 경우 발생하고 있다.gif 속성은 아래와 같은 형식으로 되어 있다.xxxxx.gif ㄴ width, ㄴ height... Frame1 ㄴ width ㄴ height Frame2 ㄴ width ㄴ height..... 이 이슈는 Fresco Github에 리포트 되어, 현재 수정된 것으로 보인다. (https://github.c.. 더보기
[Marshmallow] 권한 요청 방법 우선 안드로이드M 이 공개 되면서 여러 변경되거나 추가된 내용 중에서 개인적으로 개발자가 가장 신경써야 할 부분은 "권한"에 대한 부분이라고 생각되어 퍼미션에 대해 제일 먼저 다루겠습니다. Android Developer우선 자세한 내용은 Android Developer 사이트에서 자세히 설명해 주고 있고, 안드로이드M에 대해서는 무려 한글페이지를 제공해 주고 있습니다!!!!!!!!!!!!!!!http://developer.android.com/intl/ko/preview/features/runtime-permissions.html 안드로이드M 이하 버전의 경우 특정 기능을 사용하기 위해서 만 정의 하고 설치 시 안드로이드 인스톨러에서 사용자에게 고지 하도록 되어 있습니다.시 안드로이드 인스톨러에서 사용.. 더보기
Service binder 한 process정보 얻어오기 Service 에서 bind를 제공 할 경우 bind요청하는 App의 PackageName 정보를 가져오는 방법입니다. int nCallingPid = Binder.getCallingPid(); Log.e("TEST", "nCallingPid = " + nCallingPid); ActivityManager localActivityManager = (ActivityManager)getSystemService("activity"); PackageManager localPackageManager = getPackageManager(); PackageInfo localPackageInfo = null; List localList = localActivityManager.getRunningAppProcesses(.. 더보기

반응형