본문 바로가기

반응형

안드로이드

(22)
[Android]Otto(Event Bus) 간단 사용법 앱을 개발하다보면 한 액티비티에서 변경된 결과를 다른 액티비티나 프래그먼트에 알려줘야할 상황이 많이 있습니다.static함수를 사용하거나 handler, interface 등을 통해 구현할 수 있지만, 저처럼 게으른 사람은 그것조차 귀찮습니다. 이런 귀차니즘을 해결할 수 있는 라이브러리가, Square에서 만든 Otto라는 이벤트버스 계열 라이브러리입니다. 단순하게 설명하면, 이벤트를 변경하는 곳에서 어떤 이벤트를 던지고 처리할 곳에서 이벤트를 받아서 작업을 하는 것입니다. 아래는 아주 간단하게 작성한 예제입니다. 우선 Gradle에 Otto 라이브러리를 추가합니다. 1compile 'com.squareup:otto:1.3.7'cs Otto를 관리하는 싱글톤을 만듭니다. 12345678910public ..
[Android]Retrofit2 간단 사용법 안드로이드에서 http 통신을 하기 위해서는 웹서버와의 통신을 위한 HttpUrlConnection이 필요하고, 추가적으로 메인쓰레드에서는 네트워크 작업을 할 수 없기에 추가적으로 AsyncTask가 필요했습니다. HttpUrlConnection을 수행하는 별도의 클래스는 한번 작성 후 두고두고 Ctrl+C, Ctrl+V 를 통해 재활용할 수 있지만,통신을 할 때마다 비동기 작업을 위한 AsyncTask를 만드는 작업은 수고스럽습니다. 하지만 Retrofit을 이용하면 웹서버와의 통신이 간편해집니다. 자잘한 설명 대신 사용법으로 바로 넘어가겠습니다.해당 소스코드는 github 아이디를 검색하여 해당 아이디의 repository 리스트를 가져오는 코드입니다. 먼저 gradle에 추가합니다. 12compil..
[Android]안드로이드 스튜디오 3.0 레이아웃 프리뷰 렌더링 에러 안드로이드 스튜디오 3.0 정식 버전이 출시되었습니다. 다만 업데이트를 하고 난 후에 레이아웃 프리뷰가 렌더링이 되지 않는 경우가 있다고 합니다. 저 역시도 업데이트를 하니 렌더링이 되지 않았습니다. 해결하기 위해 저는 .android 폴더를 삭제 한 후 안드로이드 스튜디오를 삭제 후 재설치를 하니 레이아웃 프리뷰가 정상적으로 렌더링이 되는 것을 확인할 수 있었습니다. 혹시 다른 방법으로 해결하신 분들이 계시면 댓글에 남겨주시면 같은 증상을 겪는 분들에게 많은 도움이 될 것 같습니다.
[Android]버터나이프(Butter Knife)의 @OnTextChanged로 EditText 변경 이벤트 탐지 안드로이드 앱을 개발하시는 분이라면 거의 대부분 알고 계시는 버터나이프(Butter Knife)@BindView 어노테이션을 이용해서 findViewById의 반복 사용을 제거해주고,@OnClick 어노테이션으로 클릭 이벤트를 대체해주고,@BindString, BindColor 어노테이션으로 리소스의 값들도 쉽게 가져올 수 있는정말 정말 유용한 라이브러리입니다. 이 3가지 외에도 @OnTextChanged 어노테이션이 있습니다.이름 그대로 텍스트가 변경되는 이벤트를 대체해줍니다. 보통 EditText의 값이 변경되는 이벤트는 addTextChangedLister 리스너와 TextWatcher 인터페이스를 사용합니다. 12345678910111213141516editText.addTextChangedLis..
[Android]이메일&비밀번호 정규식 // 이메일 정규식 public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); // 이메일 검사 public static boolean validateEmail(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.find(); } //비밀번호 정규식 public static final Pattern VALID_PASSWOLD_REGEX_ALPHA_NUM = Pattern.compile("^..
[Android]투명도, 알파값 정리 100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% — 9E 61% — 9C 60% — 99 59% — 96 58% — 94 57% — 91 5..
[Android]현재 날짜(년-월-일-시-분-초) 구하기(SimpleDateFormat) // 현재 날짜(년/월/일 시/분/초) public String doYearMonthDay() { SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd-HH-mm-ss-SSS", Locale.KOREA); Date date = new Date(); String currentDate = formatter.format(date); return currentDate; } 원하시는 날짜 형식으로 입력하여 사용하시면 됩니다.
[Android]안드로이드 앱 마켓 버전 체크 현재 앱이 업데이트가 필요한지 아닌지 판단하기 위해서는 플레이스토어에 현재 앱의 버전이 몇인지 알아내야합니다. 아래의 코드는 플레이스토어에서 등록된 앱의 최신 버전을 가져오는 코드입니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051public class MarketVersionChecker { public static String getMarketVersion(String packageName) { try { Document doc = Jsoup.connect("https://play.google.com/store/apps/details?id=" + packageName).get()..

반응형