Android 12

Calling Extension

들어가며 코틀린은 이미 정의된 클래스를 확장 시킬 수 있는 기능이 있다. 예를 들어서 아래와 같이 String 클래스에 원하는 메서드를 추가 할 수 있다. fun String.getFirst() = this[0] println("hello".getFirst()) //print 'h' 원리 원리는 생각보다 간단하다. 자바에서 static을 사용하여 기존 클래스를 입력받아 처리하는 메서드를 생성함으로써 사용자 입장에서는 기존의 클래스를 확장시킨 것처럼 보이게 하는 것이다. public static String getFisrt(String string){ return string[0];} Question? 그렇다면 만약 상속 관계에 있는 두 개의 클래스를 이용하여 아래와 같이 코드를 작성하면 어떤 문자열이 출..

Android/Kotlin 2021.08.19

[Kotlin] Extension Function

Basics Extension Function은 클래스를 확장한다. 클래스 밖에서 정의 되지만 regular 멤버로 클래스 내부에서 호출할 수 있다. fun String.getLast(number: Int) = this.get(this.length-1) class Test{ fun main(){ val c: Char ="abc".getLast() } }Receiver 확장 함수가 호출 될 때는 this가 reveiver로서 호출된다. 또한 기본적으로 this의 멤버 변수나 함수를 호출하기 위해서 일일이 this를 정의할 필요가 없다. fun String.getLast(number : Int)=get(length()-1)Import extension을 이용하기 위해선 import를 이용해서 명시해주어야 한..

Android/Kotlin 2021.07.19

[Android] - 라이브러리를 만들고 테스트해보기

들어가며 파이썬, 자바등의 많은 프로젝트에서는 이식성을 위한 코드의 집합인 패키지, 모듈이 있다. 당연히 안드로이드에도 이를 지원하는 AAR(Android Archive)가 존재한다. 공식 사이트에도 설명이 되어있지만 갱신되지 않거나 모호한 부분이 있어 차근차근 모듈을 만들고 테스트하는 방법에 대해서 알아보도록 하자. 안드로이드의 모듈은 코드뿐만 아니라 이미지, 텍스트 등의 데이터를 포함해서 부르기 때문에 여기선 라이브러리와 동일한 의미로 언급한다. 1. 새로운 모듈 만들기 우선 기존의 프로젝트에서 아래의 경로를 통해 새로운 모듈을 만든다. New Module을 클릭하면 여러가지 타입이 나오는데 간단한 AAR을 만들기 위해서 Android Library를 선택하고 next를 클릭한다. 다음에는 모듈이름과..

Android 2021.02.12

[Android] - Notification 알림을 사용해보자

들어가며 안드로이드의 가장 기본적인 알림을 사용해보자. 아마 프로젝트 하다가 어떻게 쓰는지 궁금한 사람들이 검색을 했을 테니 최대한 간결하게 코드를 통해 설명하겠다. 코드를 세세하게 찾아보고 싶은 사람은 android developers의 문서를 참조하기 바란다. 사용방법 1. Notification Channel만들기 각 어플리케이션에서 Notification알림을 실행하려면 우선 채널을 만들어야한다. 아래 코드를 복사해서 MainActivity에 추가하고 onCreate에서 해당 함수를 호출해주자 *채널명과 설명은 본인 어플리케이션에 맞게 설정해주자 private void createNotificationChannel() { // Create the NotificationChannel, but onl..

Android 2021.01.03

[Android] Context란? - 다른 액티비티의 변수,함수 호출

들어가며 안드로이드 코드를 작성하다보면 view를 다룰 때 꼭 한번 context를 parameter로 요청하는 경우가 있다. 그냥 단어만 알고있던 이것에 대해서 한 번 알아보고 어떤 쓸모가 있는지 알아보고 다른 인스턴스에 접근하는 방법을 탐구해보자. ( 인스턴스 접근방법을 알고 싶다면 맨 아래 문단을 참고하기 바랍니다. ) Context의 정의 위는 Android Developers에 게시된 문서의 정의부분이다. 읽어보니 안드로이드의 시스템 요소와 자원에 접근하기 위한 추상 클래스라고 한다. 문서를 조금더 찾아보니 Activity, Application, Service의 base class로 사용된다고 한다. 이를 알고 나니 기본적인 시스템 추상클래스라는 느낌을 알겠다. 용례 어플리케이션의 resour..

Android 2021.01.03

Kotlin - 2. Packages and Imports

들어가며 코틀린의 패키지 호출은 파이썬과 동일하므로 이를 안다면 굳이 아래의 내용을 볼 필요가 없습니다. 1.Packages 패키지는 다른 소스파일의 패키지를 호출하는 것을 의미합니다. 사용법은 간단하게 package로 호출하면 됩니다. package org.example fun printMessage() { /*...*/ } class Message { /*...*/ } // ... 2.Imports import지시어를 통해서 패키지 내부의 클래스를 따로 호출 할 수 있습니다. import org.example.Message // Message is now accessible without qualification import org.example.* // everything in 'org.exampl..

Android/Kotlin 2020.03.29

Kotlin - 1. 기본 타입(numbers, characters, booleans, arrays, and strings)

들어가며 이번 글에서는 처음으로 코틀린을 공부해보는 만큼 코틀린에 쓰이는 기본타입(numbers, characters, booleans, arrays, and strings)에 대해서 알아보도록 하겠습니다. 1. Numbers 1. 정수 1. 파이썬, javascript처럼 변수에 따로 타입을 선언하지 않음 2. 일반적인 정수를 저장하면 Int로 설정 3. Int의 범위 밖이나 뒤에 L을 추가하면 Long으로 설정 4. 변수이름 : 타입 = ? 구문을 통해서 직접 타입 설정 가능 val one = 1 // Int val threeBillion = 3000000000 // Long val oneLong = 1L // Long val oneByte: Byte = 1 2. 실수 val pi = 3.14 // ..

Android/Kotlin 2020.03.27

Android - Button & Toast Message

버튼으로 토스트 보여주기 버튼으로 토스트를 보여주기위해선 다음 3가지 단계가 필요합니다. 목차 1. 버튼 생성 2. 클릭시 실행할 함수 설정 및 생성 3. 클릭 함수에 토스트 메세지 설정 1. 버튼 생성 버튼을 생성하는 방법은 두가지 입니다. 첫번째는 간단하게 위젯 목록에 있는 버튼을 클릭후 배치하고싶은 화면으로 드레그합니다. 처음 접하는 분들은 이 방식이 아주 쉬울 것입니다. (단 드레그하여 위치를 지정할때는 Component Tree에 있는 레이아웃이 ConstantLayout 또는 Absolute Layout이어야합니다) 두번째는 화면 아래에 있는 Text 버튼을 누르고 Button을 직접 타이핑하는 것입니다. 화면을 표시하는 xml파일을 사용하면 버튼의 속성을 더 자세히 설정 할 수 있습니다. 만..

Android 2020.01.18

LinearLayout 정의 및 사용법

LinearLayout 정의 및 사용법 목차 LinearLayout의 특성 layout gravity gravity 1. LinearLayout이란 무엇이고 어떻게 사용할까? LinearLayout이란 가장 간단하면서 유용하게 쓰이는 레이아웃입니다. 대표적인 기능은 텍스트, 버튼같은 뷰를 단순히 가로나 세로 순서대로 배치할 때 자주 사용됩니다. 처음 사용할때 리니어 레이아웃에는 반드시 최소 3가지 조건을 명시해주어야 합니다. 1. 높이 2. 너비 3. 배치의 방향 (세로, 가로) 위 사진을 보면 android:orientation 에서 vertical로 설정해서 추가된 3개의 버튼이 수직으로 하나씩 배치가 된것을 볼수 있습니다. 가로로 설정하고 싶다면 vertical 대신 horizontal을 설정하면 ..

Android 2020.01.18

Android- 알림(Toast 커스터마이징 & Snackbar)

Toast & Snackbar 토스트메세지 정의 일반적으로 어떤 알림을 주기위해서 화면의 하단에 잠깐 보였다가 사라지는게 토스트메세지입니다. 여기서는 토스트메세지의 기본보다는 좀더 심화방법에 대해서 다루어 보겠습니다. 1.토스트 메세지의 위치설정 예시 코드를 통해서 설명하도록 하겠습니다. 1 2 3 4 5 6 Toast toast=Toast.makeText(getApplicationContext(),"위치가 바뀐 토스트",Toast.LENGTH_LONG); //기본적인 토스트 메세지를 만들어줍니다. toast.setGravity(Gravity.TOP|Gravity.LEFT,200,200); //setGravity( 처음 기준점, x축 offset, y축 offset)을 사용하여 위치조정 toast.sho..

Android 2020.01.18