분류 전체보기 471

부모 레이아웃과 자식 레이아웃의 클릭 리스너 트리거 - DuplicateParentState

부모 레이아웃과 자식 레이아웃에 동일한 클릭 리스너 적용하기 하위 레이아웃의 클릭 반응이 상위 레이아웃에 동일하게 클릭 리스너가 적용하기 위해서 DuplicateParentState 속성을 추가해 줘야한다.android:duplicateParentState="true"참고 : https://stackoverflow.com/a/8050279/3897810 구현에 따른 생각 과정 :나의 경우, 위와 같은 버튼을 만들었다. 중간의 사진을 제외하고는 레이아웃으로 쪼개서 구현하였기 때문에 레이아웃이 파편화 되어있다.그런데 저 버튼 전체가 클릭 리스너 반응이 적용되야 했다. 그런데 레이아웃이 파편화 되어있기에 하나씩 id 를 부여하고 리스너를 줘야하는가 라는 생각을 했고, 아니다라는 생각으로 해당 레이아웃을 구현한..

Dev/Android 2018.03.13

이 앱은 기기에 최적화되어 있지 않을 수도 있습니다.

이 앱은 기기에 최적화되어 있지 않을 수도 있습니다 안드로이드 태블릿 최적화 방법 ** 해당 글은 개발자적 관점에서 올린 해결 방법입니다 기기 최적화에 대한 해결 방법 2가지1. APK가 일반적인 태블릿 화면 밀도에 최적화된 맞춤 드로어블 애셋이 있어야 한다.https://developer.android.com/develop/quality-guidelines/tablet-app-quality.html#use-tablet-icons 2. 태블릿 스크린샷이 업로드 되어야 한다.

Dev/Android 2018.03.12

알고리즘 공부 하려고 덤볐으나.... 넘어졌다.

HackerRank 알고리즘은 별도의 노력이 없으면 자라나지 않는다 라는걸 다시(?) 느꼈다.아마도 알고리즘 훈련이 되어있다면 더 효율적인 코드를 짤 수 있을것이다. 그러나 굳이 알고리즘 훈련을 하지 않더라도 상용 서비스할 수 있는 서비스는 만들 수 있다. 그렇게 알고리즘 훈련 없이 회사에서 코드를 열나게 짜도 효율적이거나 빠른 퍼포먼스를 내는 실력이 늘지 않는다.별도의 노력이 필요하다. https://www.hackerrank.com/

Log 2018.03.09

회사에서 만든 앱을 출시하다.

회사에서 기존에 서비스하던 어플리케이션 외에 처음부터 작업해서 만든 어플리케이션을 오늘 출시했다.감회가 새로운 오늘이다. 처음부터 만들었지만 세상에 나오지 못한 어플도 있었지만, 이번에는 출시까지 했다. 나름 기간이 충분하지는 않다고 느꼈지만, 어플은 무사히(?) 나왔다. 경험 및 시간의 부족으로 인해서 어느 정도의 버그가 나올꺼지만 앞으로 계속 수정해나가면 된다고 생각한다. 완벽하면 좋겠지만, 부족한 부분은 시간과 경험 그리고 노력으로 매꿀뿐이다. 그나저나 출시했으니, 일단은 수고했다. 그리고 화이팅!

Log 2018.03.09

주니어 개발자 취업을 위한 이력서, 포트폴리오 (펌)

주니어 개발자 취업을 위한 이력서, 포트폴리오 자료 자료출처 : https://www.facebook.com/devmode3/posts/1892029734174750 야놀자 개발자가 구직하는데까지 후기 (유용우) https://goo.gl/a52xhg 배달의 민족(우아한형제들)에 구직한 SI 개발자 (이종립) https://goo.gl/eskjZa 신입 개발자를 위한 이력서 작성요령 https://goo.gl/fv2auv 신입 개발자를 위한 이력서 & 포트폴리오 작성요령2 https://goo.gl/PV88PD 포트폴리오를 만들 때 주의해야 할 점 https://goo.gl/i6m8bQ 개발자 자기소개서 쓰는 법 (국민대 이민석 교수님) https://goo.gl/2oobL9 개발자 기술인터뷰 문제 및 ..

Dev/참고 2018.03.09

MediaProjection 는 null 검사가 필요하다.

MediProjection Null Check after take a Permission Dialog Event MediaProjection 사용법은 *참고 -> http://thdev.tech/androiddev/2016/04/09/Android-MediaProjection-Exmple.html확인이 가능하다. 여기서 나는 사용자에게 권한 획득 여부를 묻는 다음 단계에서 "취소" 를 눌렀을때 발생한 에러에 대한 내용을 기록한다. mediaProjection = projectionManager.getMediaProjection(resultCode, data);if (mediaProjection != null) { mediaProjection.registerCallback(new MediaProjectio..

Dev/Error 2018.03.08

3/7 - #android, #webview

- Android Webview Cache 삭제webView.clearCache(true);webView.clearHistory(); webView.loadUrl(authorizeURL); 참고 : https://stackoverflow.com/a/31950789/3897810 - Android PDF파일 다른앱으로 전송하기File outputFile = new File(filePath);Uri uri = FileProvider.getUriForFile(ReportActivity.this, "com.example.test.provider_paths", outputFile);// API Level 24 버전부터 특정 파일이나 폴더를 다른 앱으로 전달하려면 FileProvider 를 사용해야 한다.// Ur..

Dev/Search Keyword 2018.03.07

10진수를 2진수로 - 입력값을 진법수에 맞게 출력

입력받은 숫자를 원하는 진법의 수로 변환 * Language : Java int input = 133; // 입력값int number = 2; // 진수int temp = 0;int divide = input; List numberList = new ArrayList(); while (divide != 0) { temp = divide % number; numberList.add(temp); divide = (divide - temp)/number;} List reverseNumberList = new ArrayList();for (int i = numberList.size(); i>0; i--) { reverseNumberList.add(numberList.get(i-1));}

Dev/Algorithm 2018.03.07

RxJava - 스케줄러

RxJava 의 스케줄러 - 계산 스케줄러 / Schedulers.computation() : 일반적인 계산작업 - IO 스케줄러 / Schedulers.io() : 네트워크상의 요청, 파일 입출력, DB쿼리 등... - 트램펄린 스케줄러 / Schedulers.trampoline() : 새로운 스레드를 생성하지 않고, 현재 스레드에 무한한 크기의 대기 행렬(Queue)를 생성 아래 글 출처 : http://reactivex.io/documentation/ko/scheduler.html스케줄러Observable 연산자 체인에 멀티스레딩을 적용하고 싶다면, 특정 스케줄러를 사용해서 연산자(또는 특정 Observable)를 실행하면 된다.ReactiveX의 일부 Observable 연산자는 사용할 스케줄러를..

Dev/Rx 2018.03.07