일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- T자형인재
- 안드로이드
- 프래그먼트
- 좌식테이블
- 아비투스
- 함수형 프로그래밍
- 목적중심리더십
- 소프시스 밤부 좌식 엑슬 테이블
- 캐치마인드
- 베드트레이
- 한달어스
- 커스텀린트
- 베드테이블
- 1일1커밋
- 한달독서
- 소프시스
- 어떻게 나답게 살 것인가
- 한달브런치북만들기
- 리얼하다
- 브런치작가되기
- 끝말잇기
- 테트리스
- 슬기로운 온라인 게임
- 재택근무
- 북한살둘레길
- 한단어의힘
- 자취필수템
- 목적 중심 리더십
- 면접
- 지지않는다는말
- Today
- Total
목록안드로이드 (164)
정상에서 IT를 외치다
안녕하세요. 블랙진입니다. How Android Draws Views 일부를 번역한 글입니다. How Android Draws Views 엑티비티가 포커스를 받게되면, 레이아웃을 그리기 시작합니다. 안드로이드 프레임워크는 그림을 그리기 위한 순서를 수행하지만 엑티비티는 계층 레이아웃의 루트 노드를 공급받아야만 합니다. 그리기는 레이아웃의 루트 노드 부터 시작하며 레이아웃 트리를 측정하고 그려야 합니다. 각 뷰 그룹은 자식 뷰가 그러질 책임을 갖고 뷰는 자기 자신을 그립니다. 왜냐하면 전위 순회 트리(traversed pre-order tree)구조 이기 때문에 부모 뷰는 자식 뷰 보다 먼저 그려집니다 출처 : 위키피디아 레이아웃은 두 가지 패스 과정을 통해 그립니다. : Measure Pass(측정 패스..
안녕하세요. 블랙진입니다. 지난 시간 Room 을 사용한 MVP 예제에 대해 포스팅을 했습니다. 이번에는 Dagger 을 사용해 코드를 다음어 보겠습니다. 1. dagger 라이브러리 추가 dagger 버전은 링크에서 확인해 주세요. 포스팅 기준 최신 버전은 2.22.1 입니다.// dagger implementation "com.google.dagger:dagger:$daggerVersion" implementation "com.google.dagger:dagger-android:$daggerVersion" implementation "com.google.dagger:dagger-android-support:$daggerVersion" kapt "com.google.dagger:dagger-androi..
안녕하세요. 블랙진입니다. 안드로이드 프로가드 설정하기 두번 째 포스팅 입니다. 지난 포스팅이 궁금하신 분은 이곳을 클릭해 주세요 :) 서론 안드로이드 개발을 하다보면 다양한 라이브러리를 사용하게 됩니다. 이에 맞춰 프로가드 또한 추가 설정을 해주어야 하는데요. 이번 포스팅에서는 가장 많이 사용하는 Retrofit2, Gson, Glide 3개의 라이브러리를 어떻게 설정 해야하는지 살펴보겠습니다. 1. Retrofit2 Sqare 에서 만든 네트워크 통신 라이브러리 입니다. 프로가드를 설정해 주지 않으면 앱에서 동작을 하지 않게 되는데요. 친절하게도 Retrofit 홈페이지에 Proguad 설정하는 법이 나와있습니다. 홈페이지 하단부로 내려가면 아래와 같은 글이 있습니다. this file 이 보고 싶으..
안녕하세요. 블랙진입니다. 서론 안드로이드 배포 경험이 있으신 분은 Debug 용으로 컴파일 하다가 배포할 때는 Release 용으로 APK 를 만드셨을 겁니다. 하지만 배포를 하다보면 Debug 버전에서 문제가 없었더라도 Release 버전으로 배포했을 때 문제가 터진 경험이 있으실 겁니다. 그렇기에 최종 배포 전에는 Release 용으로 APK 를 뽑아 테스트를 해야되는데 이는 개발자로서 불편한 일입니다. Release 로 컴파일 하기 몇가지 설정을 통해 Release 로 컴파일 할 수 있는 방법이 있습니다. 0. 배포시 필요한 Keystore 파일을 app 폴더안에 넣어줍니다. 저는 app 폴더안에 'test.keystore' 파일을 넣어주었습니다. (파일명은 본인의 keystore 을 그대로 사용..
안녕하세요. 블랙진 입니다. 안드로이드 스튜디오에서 사용하는 단축키를 정리해 보았습니다. 특히 제가 정말 자주 쓰는 단축키는 빨간색으로 표시했습니다. (MAC 사용자이기 때문에 MAC 단축키를 기준으로 정리한 점 양해 부탁드리겠습니다.) 1. 코드 정리 ctrl + alt + o : 불필요한 import 문 제거 사용하지 않은 import 문을 한번에 없애주는 단축키 입니다. 위에 보이는 회색 import 문을 단축키 한번으로 제거해줍니다. Alt + Ctrl + I : 들여쓰기 정리 Alt + Cmd + L : 전체 코드 들여쓰기 정리 2. 커서 이동 Cmd + fn + 상,하 : 보이는 화면의 최상단, 최하단 이동 Shift + 화살표 : 블록처리 하면서 이동 Cmd + 좌,우 : 해당 라인의 끝으로..
안녕하세요. 블랙진입니다. IDE(통합개발환경)에서 코딩 속도를 높여주는 코드 템플릿이 있습니다. 그동안 몰라서 못 사용했던 꿀팁 Live Templates 과 Postfix Completion 에 대해 포스팅 해보겠습니다. Live Templates 이란? 안드로이드에서 많이 사용하는 Toast 를 순식간에 작성하는 모습이 보이시나요? Live Template 을 사용하면 자주 사용하는 코드를 쉽고 빠르게 작성할 수 있습니다. 한가지 예를 더 보겠습니다. 많이 사용하는 for 문 또한 빠르게 작성되는 모습을 보고 계십니다 @_@ (이제 당신은 Live Templates 을 사용하고 싶어집니다) 누군가가 봤을 때 "이 개발자 코딩좀 하나보네?" 라는 마음이 확 들것 같이 않나요? (저만 그런걸까요.. ?..
안녕하세요. 블랙진입니다. 2019 드로이드 나이츠에서 우연찮게 코드 리뷰 받을 수 있는 기회가 생겨 MVP 기본 예제 - Room 활용 예제를 리뷰받아 보았습니다. 구글에서 제안하는 MVP 에 맞게 잘 작성했는지 요청을 드렸는데요. 이때 받은 피드백을 반영하여 새로 다듬은 MVP에 대해 포스팅하겠습니다. - 2019 드로이드 나이츠 후기는 여기서 확인할 수 있습니다 :) MainPresenter MainPresenter() { this.api = GithubApiProvider.provideGithubApi(); this.disposable = new CompositeDisposable(); } MainPresenter(MainContract.View view, GithubApi api, UserDao..
Zip, CombineLater, WithLatestFrom 예제 살펴보기/** * Zip */ Observable.zip( Observable.just(1, 2, 3), Observable.just(10, 20, 30), Observable.just(100, 200, 300), Observable.just(1000, 2000, 3000), object : Function4 { override fun apply(t1: Int, t2: Int, t3: Int, t4: Int): Int { return t1 + t2 + t3 + t4 } } ).subscribe({ Dlog.d("$it") }){ Dlog.e(it.message) }.also { compositeDisposable.add(it) } /** ..
안녕하세요. 블랙진입니다 이번 포스팅은 레이아웃을 좀 더 효과적으로 그릴 수 있는 태그인 include, viewStub 그리고 merge 에 대해 알아보겠습니다. include 재사용 하고 싶은 컴포넌트를 레이아웃에 넣을 때 include 태그를 사용합니다. 예를 들어서 상단바와 같이 재사용하는 컴포넌트를 적용할 때 유용합니다. 상단바를 include 태그를 사용해서 적용하는 예제를 준비해봤습니다. include_top_bar.xml 위와 같이 actionBarSize 높이에 textView 1개를 가진 레이아웃을 그렸습니다. 이걸 activity_main.xml 에 include 해보겠습니다. activity_main.xml 태그를 사용해 간단히 추가해줄 수 있습니다. MainActivity.clas..
안녕하세요. 블랙진입니다. Bitmap을 내부저장소(Cache)에 저장하고 불러올 수 있는 예제를 준비해보았습니다. 1. 저장소? 안드로이드는 크게 두가지 저장소를 가지고 있습니다. 1-1 내부저장소 해당 어플리케이션만 읽고 쓸 수 있으며 어플리케이션이 삭제되면 같이 지워집니다. 여기에는 임시 파일을 저장하는 캐시와 데이터베이스를 저장하는 파일 그리고 기타 파일을 저장할 수 있는 영역으로 나뉩니다. 1-2 외부저장소 외부저장소는 다른 어플리케이션이 접근할 수 있는 영역입니다. 이는 고유영역과 공용영역으로 나뉘게 되는데 고유영역은 어플리케이션이 삭제되면 함께 지워지지만 공용영역은 어플리케이션이 삭제되어도 데이터는 남아 있습니다. (공용역역은 일반적으로 단말기의 외장 SD 카드를 지칭하지만, 단말기에 따라서..