안드로이드

안드로이드/활용

[Android] Jsoup으로 HTML 파싱하기

Jsoup Jsoup은 Java HTML Parser로서 HTML을 파싱할 때 주로 사용합니다. 크롤링과 관련한 프로젝트를 수행할 경우 유용하게 사용할 수 있습니다. Jsoup 사용하기 1. Manifest에 권한 선언 Jsoup을 사용하기 위해서 인터넷에 대한 권한을 추가합니다. 2. build.gradle에 의존성 추가 Jsoup을 사용하기 위해서 build.gradle에 Jsoup 라이브러리를 추가합니다. implementation 'org.jsoup:jsoup:1.15.3' 3. 데이터 클래스 작성 가져올 HTML에서 필요한 데이터를 파악해서 data class를 작성합니다. 뉴스 제목, 링크, 이미지 정보가 필요하다고 하면 다음과 같이 작성합니다. data class NewsModel( val ..

안드로이드/활용

[Android] Tikxml로 XML 파싱하기

Tikxml Retrofit을 사용할 시 보통 대부분 응답 결과가 JSON으로 오기 때문에 GsonConverter를 사용합니다. 하지만 국내 일부 공공데이터나 오래된 데이터는 XML 결과만 제공합니다. 과거에는 SimpleXML 라이브러리를 활용하여 XML 파싱이 가능했지만 현재는 deprecated된 상태입니다. 따라서, 같은 기능을 하는 XML Parser인 Tikxml을 주로 사용합니다. GitHub - Tickaroo/tikxml: Modern XML Parser for Android Modern XML Parser for Android. Contribute to Tickaroo/tikxml development by creating an account on GitHub. github.com R..

안드로이드/활용

[Android] Retrofit 사용하기

Retrofit Retrofit A type-safe HTTP client for Android and Java square.github.io Retrofit은 OkHttp와 동일하게 Square에서 만들어졌으며 OkHttp를 기반으로 더 Type-safe하고, 더 직관적으로 사용할 수 있는 라이브러리입니다. OkHttp는 AsyncTask로 서버와 통신을 하였는데 이는 시간이 많이 소요되고 구현이 어렵습니다. 하지만 Retrofit은 AsyncTask 없이 Background Thread 실행 -> Callback을 통해 서버와 통신을 하기 때문에 성능이 좋고 간편하게 사용할 수 있는 장점이 있습니다. Retrofit에서는 Annotation을 사용하기 때문에 코드 가독성이 뛰어납니다. 또한, 반복된 ..

안드로이드/활용

[Android] HttpUrlConnection과 OkHttp

HttpUrlConnection HttpsURLConnection | Android Developers developer.android.com HttpUrlConnection은 HTTP 통신을 위해 사용하는 가장 기본적인 클래스로 UrlConnection 클래스를 상속하며 abstract class입니다. HttpUrlConnection은 URLConnection 클래스와 마찬가지로 생성자가 protected로 선언되어있기 때문에 기본적으로는 개발자가 직접 HttpURLConnection 객체를 생성할 수 없습니다. 보통 Url 객체의 openConnection() 함수로 인스턴스를 리턴받아와서 사용하고 setRequestMethod() 함수를 통해 request 형식을 변경할 수 있습니다. HttpUr..

안드로이드/활용

[Android] Socket 통신

Socket Socket은 두 프로그램이 네트워크를 통해 서로 통신할 수 있도록 양쪽에 생성되는 링크의 단자입니다. TCP/IP Socket TCP는 두 프로그램 간 통신이 처음 시작될 때부터 끝날때까지 계속 연결을 유지하는 연결 지향(Connection oriented) 방식입니다. 스트림 소켓 방식 양쪽 어플리케이션 모두 데이터 주고 받기 가능 흐름 제어 등을 보장해주며 송신된 순서에 따른 중복되지 않은 데이터 수신 가능 IP와 포트 번호로 소켓을 연결하면 통신이 시작 byte 자료형으로 데이터 전송 TCP Client 구현 1. Socket에 서버 IP와 port 번호를 적어 객체를 생성하고 서버와 연결을 합니다. val socket = Socket("10.0.2.2", 8080) 2. 연결이 성공..

안드로이드/UI

[Android] View에 그림 그리기

View에 그림 그리기 안드로이드에서는 Bitmap 또는 Paint를 이용해 Canvas에 그림을 그리고 View에 적용할 수 있습니다. Canvas Canvas는 View의 그리드 표면, 뷰에 그림을 그릴 수 있는 도화지입니다. 이는 View 클래스의 onDraw() 메서드의 인수로 전달됩니다. 다음은 Canvas의 주요 메서드입니다. 메서드 이름 그리기 대상 void drawPoint(float x, float y, Paint paint) 점 void drawLine(float startX, float startY, float stopX, float stopY, Paint paint) 선 void drawCircle(float cx, float cy, float radius, Paint paint) ..

안드로이드/개념

[Android] @JvmOverloads

View의 생성자 View의 생성자에는 총 4가지가 있습니다. 종류 설명 View(Context context) 코드 상에서 View 객체를 생성할때 사용하는 생성자 View(Context context, AttributeSet attrs) XML로부터 View를 객체를 생성(inflate)할때 사용되는 생성자 View(Context context, AttributeSet attrs, int defStyleAttr) XML inflate + theme attribute로 기본 스타일을 적용할때 사용되는 생성자 View(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) XML inflate + theme attribute와 st..

안드로이드/UI

[Android] WebView 사용하기

WebView WebView는 앱 내에서 웹 페이지를 조회할 수 있게 해주는 뷰입니다. WebView 구현하기 1. Manifest에 권한 선언 WebView를 사용하기 위해서 인터넷에 대한 권한과 http 사이트를 접근하기 위한 설정을 추가합니다.

damon-911
'안드로이드' 카테고리의 글 목록 (7 Page)