Before 2022 64

FCM 푸시 구현하기 - 준비 작업

파이어베이스 콘솔 사이트의 Project Overview -> 설정 -> 프로젝트 설정 화면 아래의 내 앱에서 google-services.json을 다운 받아서 안드로이드 스튜디오 프로젝트의 app 하단에 파일을 카피한다. 카피가 완료 되었다면 각 build.gradle에 아래와 같은 내용을 삽입하고 동기화한다. Project // dependencies classpath 'com.google.gms:google-services:4.2.0' // all projects repositories { jcenter() google() .... } app apply plugin: 'com.google.gms.google-services' // dependencies implementation 'com.goog..

Before 2022/Android 2019.04.09

Jsoup를 활용한 게티이미지 썸네일 크롤링

해당 사이트의 썸네일 이미지를 크롤링하여 파일로 저장하는 방법을 적어두려한다. Collaboration ストックフォトと画像 | Getty Images 複数素材のダウンロード 複数の素材をダウンロードするには、該当する絞り込み機能のフィルターをオンにしてください。 www.gettyimages.co.jp 구조를 파악하기 위해 일단 F12를 클릭한다. 구조를 파악해보자면, 썸네일 이미지들을 클래스 이름이 search-results인 section 태그가 감싸는 형태이며 각각의 썸네일 이미지 태그는 img src="...." 형식으로 되어있는 것을 볼 수 있다. 소스는 아래와 같다. import org.jsoup.Jsoup import org.jsoup.select.Elements import java.io.File im..

내부 클래스와 중첩 클래스의 차이점

public class Test { private int i = 0; // 내부 클래스(Inner) // 외부 클래스의 필드나 메소드를 자유로이 이용 가능하나 // 외부 클래스가 인스턴스화 된 이후부터 동작한다. class inner { void add() { System.out.println(++i); } } // 중첩 클래스(Nested) // 외부 클래스의 static 영역에만 접근 가능함. // 외부 클래스를 인스턴스화 하지 않아도 바로 사용 가능한 내부 클래스(간편함) // Builder 패턴의 Builder class static class nested { static int j = 0; static void add() { System.out.println(++j); } } public sta..

퍼미션 체크(권한 허용 요청) 커스텀 리스트 뷰 리팩토링

기존에 작성한 퍼미션 체크 커스텀 리스트 뷰(링크)가 자잘한 오류가 발생했고 또한 상세한 설명이 붙여지지 않았다. 아래에 새로 리팩토링한 코드로 다시 쓴다.(기존 XML은 동일함) * RecyclerView로 적용하고자 하는 사람을 위해 기존 소스에 ViewHolder 패턴을 추가하였다. 1. Adapter public class PermissionAdapter extends BaseAdapter { private ArrayList permissionItems = new ArrayList(); public PermissionAdapter(Context context) { for (PermissionType permissionType : PermissionType.values()) { Permission ..

Before 2022/Android 2019.03.15