※ Aritra Roy의 미디엄 글 EveryThing You Need To Know About Memory Leaks In Android Apps 를 번역/요약한 글입니다. Java에서는 가비지 콜렉터가 메모리 관리를 해주지만 안드로이드에서 메모리 누수 문제를 겪지 않는 프로그래머는 없을 듯 합니다. 이 글은 가비지 콜렉터의 컨셉을 쉽게 이해할 수 있고 저자의 그 동안의 경험으로 메모리 누수를 예방하는 체크리스트를 제공해주어서 번역하게 되었습니다.메모리 누수는 많은 개발자들에게 다루기 힘들어하는 컨셉입니다. 그들은 어렵고 시간 소모적이고 지루하고 불필요하다 느끼지만 전부 틀렸습니다. 제대로 알게 되면 확실히 좋아하게 될 겁니다.가비지 콜렉터는 친구이지만 아닐때도 있다.자바는 강력한 언어입니다. C나 C..
Medium에 Aritra Roy의 글을 요약한 내용입니다.2017년 안드로이드 개발자들을 위한Google I/O 초점이 점점 로우엔드 디바이스에서도 잘 동작할 수 있는 하이퀄리티 앱을 만드는 방향으로 이동하고 있다. Google I/O 는 많고 뛰어난 것들을 안드로이드 세상에 약속했다. 놀라운 개발 툴 그리고 서비스들이 있다. 전 보다 더 좋아진 Firebase, 그리고 이젠 오픈소스!Firebase는 작년 Google I/O에서 발표했는데 1년사이 어마어마한 인기를 얻고 있다. (작년이라니..!) 놀라운 심풀함, 확장성, 쉬운 사용이 그 이유다.몇 가지 클라인트 SDK가 깃헙에 공개되어서 이제 그 내부를 확인하고 공헌할 수도 있다.Firebase Phone Authentication이 릴리즈 되었다...
이 글은 안드로이드 개발자 블로그 (Android Developers Blog) 에서 게제한 글을 번역한 것입니다.2017년 구글 I/O에서 발표한 라이프사이클 관리를 위한 안드로이드 아키텍처 컴포넌트를 포함한 새로운 피처를 소개하고 있습니다.안드로이드와 아키텍처안드로이드 OS는 넓은 범위의 기기들이 잘 동작하도록 앱을 만들 수 있는 강력한 기반을 제공한다. 그리고 우리는 복잡한 라이프사이클 그리고 추천 아키텍처의 부족 등의 개발자 피드백을 들었다. 우리는 더 쉽고 즐겁게 탄탄한 앱을 만들면서 개발자들이 혁신적인 분야에 집중할 수 있도록 할 필요가 있다. 요즘 우리는 아키텍처 컴포넌트의 프리뷰와 함께 안드로이드 앱 아키텍처의 가이드를 발표하고 있다. '바퀴를 다시 만들기'보단 인기있는 안드로이드 라이브러..
어느 순간부터 코틀린으로 짠 오픈소스가 눈에 보이고 굳이 찾아보지 않았는데 여기 저기서 코틀린에 대한 언급이 되면서 언젠가 한번은 확인을 해봐야 겠다 생각했다. (불행히도 그 말은 절대 확인하지 않는다와 일치한다) 그러다가 Android Weekly #256 에서 이 글을 보게 되었는데 Java와 비교해서 코틀린이 가지는 장점과 Java에서의 구현 방법의 비교가 잘 되어 있어 코틀린을 처음 접하는 안드로이드 개발자, 코틀린의 장점을 알고자 할 때 유용하다 생각이 들었다. [번역] Kotlin vs. Java: 커머셜 안드로이드 프로젝트를 위한 코틀린 사용으로부터 첫번째 영감(아래 참고 문헌 링크를 번역 및 요약한 글입니다.)안드로이드 개발에서 Kotlin은 스위프트가 Objective-C에 비교되는 것과..
안드로이드에서 커스텀 폰트를 사용할 수 있는 라이브러리는 생각보다 많다. 가장 대표적인 라이브러리는 Calligraphy인데 여러 폰트 라이브러리들이 지향하는 방향은 다르고 내 프로젝트에 적합한 라이브러리도 때에 따라 다르다. 그래서 또다른 폰트 라이브러리 Typekit과 Calligraphy의 사용법과 특징을 분석해보는 것이 이 글의 목적이다. Typekit 라이브러리 시작하기안드로이드 애플리케이션의 기본 폰트를 빠르게 바꿀 수 있도록 돕는 라이브러리다. 커스텀뷰나 현재 xml 레이아웃 파일에 태그를 추가할 필요도 없다. application 클래스를 빠르게 설정해서 폰트를 변경할 수 있다.방법1. 의존성 설정하기app의 build.gradle 파일에 typekit 의존성을 설정한다.dependenci..
Gradle 의 장점과 단점Gradle은 JVM기반의 빌드 도구이자 강력한 의존성 관리 시스템이다. Maven, Ant 보다 빌드 로직을 커스터마이즈하기 더 편하고 같은 코드 베이스에서 여러 버전의 앱을 빌드할 수도 있다. 하지만 빌드 시간이 꽤나 많이 걸리는 문제가 있다. Gradle 버전이 올라가면서 빌드 시간을 단축시키는 성능도 같이 향상되었지만 설정을 잘만 이용하면 더 효율적으로 빌드 할 수 있다.프로젝트 Build 시간 확인gradle 빌드 명령을 활용해서 빌드 시간을 측정할 수 있다. ./gradlew build --profile위에서 --profile명령은 각 Task 실행에 소요된 시간을 측정하고 데이터를 HTML파일로 덤프하라는 뜻이다. 결과물은 /프로젝트 폴더/build/reports/..
Android의 애너테이션 사용법(Android Support Annotations 라이브러리를 활용한 결함 탐지 에서 요약한 글입니다. 상세한 설명은 링크에서 확인하실 수 있습니다.)Java에서는 API의 의도를 애너테이션으로 명시해 결함 탐지에 활용하는 기법이 발달했다고 한다.애너테이션은 Java표준 정의는 아니여서 FingBugs, Checker Framework 같은 도구에서 제공하는 애너테이션을 사용하거나 직접 선언해야 한다.하지만 안드로이드 개발 환경인 Intellij IDEA는 별도로 애너테이션 패키지 라이브러리를 IDE에 제공한다.Android 환경은 일반적인 Java 환경보다 잠재적 문제의 소지가 많은데 그 원인중 하나는 성능상 이점을 위해 Enum, EnumSet보다 프리미티브 타입을 ..
웹을 크롤링하는 비즈니스 아이디어를 가지고 있다면 한 번쯤 봉착하는 문제인 “크롤링은 합법인가?”에 대한 질문을 하게 된다. 이커머스 사이트에서 상품 정보를 크롤링하는 것이 합법인가에 대한 질문에서 Quora에서의 답변들은 기본적으로 크롤링 또는 스크래핑 자체가 불법이지는 않다는 의견이다. E-Commerce의 상품을 크롤링해 가격을 비교하는 것이 합법이냐의 질문에 윈도우 쇼핑으로 사람들이 검색을 하고 가격 분석을 하듯이 그 과정을 자동화시켰을 뿐이라는 것이다. 그렇기 때문에 크롤링하는 사이트에 허락을 받을 필요는 없다고 한다. 또한 현재에 이미 많은 가격 비교 사이트들이 존재한다. 만약 이것이 불법이었으면 이런 사이트들이 현재 존재하지 않을 것이다. 사실 크롤링이 합법이냐에 대한 문제는 2000년 초부..
혹시 Proguard로 난독화하고 릴리즈한 APK를 실험해보았는지 의심해보자!혹시 Retrofit을 쓰고 있다면? 어제 오후 Google Play Store에 1차 배포를 완료한 후 신나게 퇴근하고 집에 들어와 배포 버전을 다운받으니 앱이 시작하자마자 죽어버리는 도저히 이해할 수 없는 일이 또 하나 늘었다.앱은 그다지 복잡한 기능도 가지고 있지 않았고 심지어 켜자마자 인트로 페이지에서 죽어버려서 디버깅을 하느라 애를 먹었는데 신기하게도 한번 죽고 나면 그 다음은 죽지 않고 인트로 페이지에서 멈춰 있었는데 (이때 초기에 세션 정리하는 로직이 서버로 아예 오지 않아 Retrofit을 의심했었는데! 바보같이!)다행히 몇 시간의 삽질과 소 뒷걸음질치듯 우연찮게 건드려본 곳에서 원인을 발견했다. 일단 첫 번째 의..
앱을 배포하기 전에 디버깅용 앱에서 Facebook 인증을 하기 위해서는 debug.keystore를 이용해 키 해시를 생성하면 됩니다. 이 해시 키를 사용하면 구글 플레이 스토어에 올린 앱을 받는 경우 비공개 알파버전이라 하더라도 인증이 되지 않습니다. 구글 플레이에 올려진 앱은 릴리즈 버전으로 생성한 keystore로 검증되어있기 때문입니다. 따라서 배포 버전에서 Facebook 인증을 하기 위해서는 릴리즈 버전을 배포할 때 사용한 keystore를 이용해 키 해시를 생성하고 Facebook 개발자 콘솔에 등록해주어야 합니다. 만약 keystore 위치를 /Users/imcreator/MY_KEY.jks 라고 한다면 터미널에서 1keytool -list -keystore /Users/imcreator..
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 공존이 필요해요
- node.js
- React Native
- multiDex issue
- 쉽게 말하는법
- MVP
- git ssh 연동
- release build issue
- retrofit
- 최은영작가님
- 스크럼
- git 실수
- 소프트웨어 공학
- 구독료 계산기
- 이미지 여백주기
- egghead
- 시간 관리
- Android
- patch-packages
- 창의성을 지휘하라
- 소름돋는필력
- 이미지 일괄 변경
- 애드 캣멀
- iterms
- 그리고 상상력
- go
- 좋은 습관이란
- 안드로이드
- gradle
- 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함