프로그래밍/Android 140

[Retrofit] 안드로이드로 HTTP 통신하는 Retrofit 소개

Retrofit 안드로이드 앱을 개발하면서 백엔드는 거의 필수 요소가 되었다.백엔드를 개발할 줄 몰랐을땐 Firebase 처럼 손쉽게 백엔드 기능을 구현해주는 BasS를 사용했지만,요새는 Node.js를 이용해서 손 쉽게 백엔드 서버를 만들 수 있게 되었다. 2012년 부터 쭉- 나는 안드로이드와 REST API 서버 간에 HTTP 통신을 할때는 주로 AsyncTask를 사용 했었다.귀찮기는 했지만 그게 유일한 길인 줄 알았는데, 이번에 새로운 라이브러리를 하나 알게 되었다.바로, Retrofit이다. Async보다 성능이 뛰어나대서 다음 프로젝트에 바로 적용시킬 예정이다. 공식 홈페이지에 사용법이 친절하게 적혀있다. >> http://square.github.io/retrofit/친절하게 영어로...^..

안드로이드 구글 애널리틱스 (Google Analytics) 연동하기

안드로이드에서 구글 애널리틱스 연동하는 방법을 살펴보자!구글이 제공하는 시작 가이드가 있지만 가이드대로 했더니 약간 부족한 면이 있어 포스팅한다.구글 애널리틱스 콘솔 화면에서의 작업이 아닌 안드로이드 스튜디오에서 해야할 것들에 대해서 자세히 다룰 것이다. 구글 애널리틱스 콘솔에서 준비하기우선 analytics.google.com 에 접속하여 앱 데이터를 만든다.여기서 얻어야 할 것은 바로 UA-00000000-0 형태로 생긴 추적 코드다. AndroidManifest.xml 1234567891011121314 ... Colored by Color Scriptercs 안드로이드 스튜디오에 들어가서 프로젝트를 열고, AndroidManifest.xml 파일을 연다. 태그 아래에 인터넷, 액세스 네트워크 스테..

안드로이드 apk 용량 줄이는 효과적인 방법

>> https://blog.getsigneasy.com/engineering/signeasy-android-app-lighter/ 요약하면 이렇습니다. 디테일은 링크를 통해서 알아보세요! 최소한의 라이브러리 사용하기Google API의 경우에 v6.5 이상 부터 선택적으로 라이브러리를 포함시킬 수 있도록 했으니, 사용하는 종류만 골라서 사용하는 것이 좋다. ProGuard 사용하기ProGuard는 앱에서(라이브러리를 포함) 사용하지 않는 클래스나 메소드, 필드들을 지워주는 효과적인 툴이다.만약에 AppCompat-v7 또는 support library-v4를 사용하고 있다면 ProGuard파일에 아래의 2줄이 없도록 해야한다.-keep class android.support.v4.** { *; }-ke..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (4)

PHP 파일 공개PHP 파일은 어떻게 되어있는지 궁금해 하시는 분들이 많아코드를 첨부합니다. 저도 DB & PHP를 배우지를 않아서 인터넷 코드를 긁어서 만든거라 JSON 형태로 만든 아웃풋만 봐주시면 될 듯합니다!Android를 위한 JSON Parser는 구글링해서 쉽게 찾으실 수 있을 것입니다.물론 gson 같은 유명한 라이브러리도 있구요!

안드로이드 아름다운 인트로 화면 만들기

안드로이드 앱 시작시 로고가 잠깐 떴다 사라지는 화면을 본 적 있을 것이다.인트로 화면에서는 최근 안드로이드 M에서 등장한 퍼미션을 받을 수도 있을 것이고, 로딩바도 구현할 수 있을 것이다.오늘은 그 인트로 화면을 구현해보도록 하겠다.먼저, 해당 layout을 준비한다. 그냥 linearLayout에 이미지 하나 올린 거라도 괜찮다.그 화면을 activity_intro.xml 라고 가정하자. 다음은 IntroActivity.java 를 생성한다.IntroActivity.javaimport android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; /** * Created by..

안드로이드 앱 성능을 최적화 하는 방법 - (1) Render

다음은 Udacity의 Android Performance 강의를 듣고 정리한 내용이다.안드로이드 앱 성능은 가장 중요하다! 유저들은 앱이 느리거나 1초라도 버벅되면 당장 앱을 삭제할 수도 있다.그건 그 사람들의 인내심이 없기 때문이아니라 앱을 애초에 잘못만든 탓이다.나는 내 앱의 성능을 최적화하고 유저들에게 원활한 사용 경험을 제공하기 위해 강의를 수강했다. 첫번째 섹션은 Render 부분이다.안드로이드 기기의 CPU는 그려야 할 것들을 GPU로 보내GPU에게 이러 이러한 것들을 그리라고 명령한다.GPU는 drawable에 있는 파일들을 래스터화 시켜 그림을 그린다. Overdraw이럴때 발생할 수 있는 성능 낭비는 Overdraw가 있다.글자 그대로, 과잉으로 그림을 그린 것이다.태극기의 태극 문양을..

안드로이드 Fragment에 정보 전달하기

개발 중 나는 Fragment에 간단한 정보를 전달할 일이 있어 Fragment를 생성할 때 constructor를 추가하여 넣었던 적이있다. 그런데 빌드시 오류가 났다. non-default 생성자는 Fragment에서 허용되지 않는 듯 보였다. 예를 들어 사용자의 정보인 아이디를 보여주는 Fragment가 있다고 하자. 그렇다면 userId라는 String 타입 값을 Fragment에 넘겨줄 방법이 필요하다. 이때 Bundle을 이용하면 마치 Activity간 Intent처럼 넘겨줄 수 있다. Fragment fragment = new UserFragment(); // Fragment 생성Bundle bundle = new Bundle(1); // 파라미터는 전달할 데이터 개수bundle.putStr..

안드로이드 PHP GET 방식 통신에서 한글 깨짐(?) 해결

안드로이드와 PHP 연동시GET방식으로 한글을 넘겨 줄 때 일부 스마트폰에서 ??? 이렇게 물음표로 뜨는 경우가 있다.이때는 안드로이드에서 String을 보낼 때 해당 한글 부분을 utf-8 방식으로 인코딩 해주면된다. String url = "http://***.com/login/db_get_messages.php?receiver=" + URLEncoder.encode(userData.getUserData("uname"),"utf-8");

안드로이드 EditText를 이용해 리스트뷰 검색 기능 만들기

오늘은 EditText를 이용해 검색되는 리스트뷰를 만들어 보겠다.다음 GIF처럼 작동되는 것이고, 리스트뷰 아이템의 이름에 따라 검색이된다.나는 이번에 게임에나오는 포션들을 검색할 수 있는 것으로 예제를 만들어 보겠다. 준비물은 만들어진 ListView, ListView Item Layout, ListViewAdapter그리고 검색할 Activity다. ListView와 ListView Item Layout, 그리고 ListViewAdpater를 만드는 방법과동작하는 방식은 다른 강의에서 보시고! ㅎㅎ이 강의에서는 검색기능 구현에만 초점을 맞출 예정이다. 먼저 내 PotionListViewAdapter부터 보겠다.PotionListViewAdapter.java package com.lx5475.****..