본문 바로가기

개발일기/스타일판다7

realm 적용하기 이 번 프로젝트부터 splite 대신 realm을 적용해 보기로 했다. 적용해서 사용해본 결과 너무 편함!! 일단 코드가 너무 간결해 졌다. 우선 realm을 적용하기 위해서는 아래와 같이 gradle 설정이 필요하다. 프로젝트의 gradle 파일에 아래의 정보를 추가한다. buildscript { repositories { jcenter() } dependencies { classpath 'io.realm:realm-gradle-plugin:1.1.1' }} app의 gradle 파일을 수정한다. apply plugin: 'realm-android' ...dependencies { .... compile 'io.realm:android-adapters:1.3.0' ....} proguard는 따로 설정.. 2016. 8. 7.
HASH TAG 사용하기 요새 SNS들을 보면 해시태그(#blurblurblur~)를 많이 사용하는 것을 볼 수가 있다. 나 역시 이번 앱에 해시태그를 적용해 보기로 한다. 우선 cliackablespan을 상속 받는 클래스를 선언한다. (각각의 hash tag마다 클릭을 가능하게 하기 위함) 해당 클래스에 listener를 달아서 클릭했을 시, 해당 listener로 클릭한 단어를 보내주도록 구현하였다. 그럼 이제 이 클래스를 이용해서 hash tag를 어떻게 쓰는지 살펴보자. 간략하게 함수 기능을 요약하자면, #문자를 가진 단어를 가져와서 해당 단어의 start와 end를 각각 저장한다.이렇게 저장된 tagStart와 tagEnd를 가지고 SpannableString 객체를 만든 후 그 결과 콘텐츠를 textView에 뿌려줌.. 2016. 6. 28.
retrofit 적용하기 기존의 개인 프로젝트였던 '싸다구'에서는 네트워크 통신을 위한 라이브러리를 volley를 사용해왔다. 하지만 이번 '스판다'는 기존 걸 그대로 copy 해서 쓰는 건 성격 상 맞지 않아서 많이들 쓰고 있는 retrofit을 적용해 보기로 했다. 우선 retrofit과 volley의 큰 차이를 두자면 retrofit은 restful api에 좀 더 초점을 둔 방식이라고 할까?retrofit에서는 해당 프로토콜과 그에 따르는 파라미터를 interface로 명시를 해줘야 하는 특징을 가지고 있다. 그럼 이제 retrofit을 한 번 적용해서 데이터를 가져와 보자. 아래와 같이 gradle에 라이브러리를 추가해 준다. retrofit에서는 수신된 JSON을 객체로 자동 변환해주는 GSON도 많이 쓰는데 이것도 .. 2016. 6. 27.
결국 picasso로... Glide 사용 중에 문제가 발생되서 결국에는 해결 방법을 못찾고 picasso를 사용하기로 결정.. 기존 Glide 라이브러리와 설정을 다 걷어내고, picasso를 적용했다. 아래와 같이 gradle 추가. dependencies { .... compile 'com.squareup.picasso:picasso:2.5.2'} ProGuard 추가 -dontwarn com.squareup.okhttp.** 사용법은 Glide 만큼이나 간단하다. Picasso.with(getContext()).load("image url"). error(R.mipmap.no_photo). resize(400, 400). centerInside(). into(imageView); 기존에 Glide에서 구현했었던 Circle.. 2016. 6. 23.
Glide custom cache 적용 Glide로 이미지 로딩을 잘 해나가고 있는 도중에, 간헐적으로 아래 그림과 같은 문제점이 발생했다. 스크롤을 할 경우 간헐적으로 위의 그림 처럼 이미지를 못 가져오는 것이다!! cache를 적용하고 있지 않았는데(default 캐시가 적용되고 있다고 어디서 들은 기억이 남) glide에 custom으로 캐시를 적용해 보기로 했다.MyGlideModule.java 파일을 만들어서 프로젝트에 추가했다. public class MyGlideModule implements GlideModule { private final int maxMemory = (int)(Runtime.getRuntime().maxMemory() / 1024); private final int cacheSize = maxMemory / .. 2016. 6. 21.
Facebook으로 로그인하기 이번에 개발하는 앱은 Facebook 로그인 기능을 넣어보기로 했다. Facebook 로그인 기능을 넣음으로써 사용자 분석도 해보고 싶은 욕망이 예전부터 꿈틀댔었기에... 각설하고, Facebook sdk를 어떻게 사용해서 로그인 하는지를 살펴보자. 우선 Facebook sdk를 사용하려면 Facebook 개발자 센터에 가서 등록을 해주어야 한다. Facebook 개발자 센터 우선 Facebook sdk를 사용하려면 Facebook 개발자 센터에 가서 등록을 해주어야 한다. 해당 사이트 들어가면 오른쪽 상단에 메뉴가 있고 해당 메뉴 안에 앱 추가라는 항목이 존재한다. 해당 항목을 클릭해서 추가하려는 앱 정보를 기입하면 된다. 해당 항목을 완료하면 AppID가 생성되고 이렇게 생성된 AppID를 코드에 작.. 2016. 6. 14.
Glide 사용하기 기존에는 웹 상에 있는 이미지를 가져오기 위해서 Volley의 ImageLoader를 사용했었는데 이번에는 Glide를 사용해 보기로 하였다. (하도 좋다 좋다 그래서) 아래와 같이 gradle에 glide 주소를 추가해 준다. dependencies { .... compile 'com.github.bumptech.glide:glide:3.7.0' ....} 위와 같이 작성해주고 아래 처럼 사용하면 된다. 참 간단하다. Glide.with(this).load('imageurl').into('imageview'); Glide 해당 github에 들어가보면 proguard를 설정해주는 항목도 볼 수가 있는데 이 부분도 설정 해주면 좋다.proguard-rules.pro 파일을 열고 아래와 같이 기입해주자. .. 2016. 6. 13.