분류 전체보기: 247개의 글
안드로이드에서는 Activity간 Data 공유를 Intent라는 객체를 사용해서 구현한다. Intent는 명시적 Intent와 암시적 Intent가 있다. Intent에 대한 자세한 설명은 제외하고 이번 포스팅에서는 Intent를 사용해서 Activity간 Data 공유하는 방법을 설명한다. PutActivity에서 이름, 나이 입력 후 Data객체 생성 후 GetActivity로 Data를 전송한다고 가정하자1. PutActivity (데이터 전송 화면)Data.java?12345678910111213141516package com.woniper.example; import java.io.Serializable; public class Data implements Serializable { publi..
안드로이드에서 Selector를 xml로 만들어서 Button이나 ListView 등 클릭 이벤트가 들어가는 View에 적용할 수 있다. 기본으로 제공하는 View를 특별히 커스텀하게 사용하지 않는 이상 기본 제공하는 Selector기능을 사용할 수 있지만, View를 커스텀하게 사용하는 경우가 대부분이기 때문에 Selector를 사용해야한다. 예를 들면 Button을 눌렀을때(pressed)와 누르지 않았을 경우(nonPressed)에 이미지, 또는 색을 다르게 구분하고 싶을때 사용하는 것이 바로 Selector이다. 1. Drawable 폴더 생성안드로이드 프로젝트를 생성하면 기본적으로 drawable 폴더는 추가 되어 있지 않기 때문에 사용자가 추가해 주어야한다. res폴더 밑에 drawable 디..
이번 포시팅은 앱의 로딩 화면을 몇초 동안 띄우고 그 후에 앱을 사용할 수 있는 것이다. 예를 들면 아래와 같이 국민앱인 카카오톡과 같이 카톡을 처음 실행하면 아래 이미지가 로딩된 후 카톡을 사용할 수 있다. 로딩의 장점이라면 로딩하는 시간동안 앱의 기본 설정을 셋팅 할 수 있고, 홍보(?) 효과도 있는것 같다. 자 이제 소스를 보자 레이아웃은 다른 activity 레이아웃과 같이 로딩하고 싶은 이미지로된 레이아웃을 하나 만든다. ?1234567891011121314151617181920212223242526import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;im..
AsyncTask는 handler와 thread 사용을 편리하게 사용하기 위해 만들어진 클래스이다. 한 클래스 안에서 Ui작업과 비즈니스 로직 처리가 모두 가능하기 때문에 간편하다. 하지만 하나의 객체로 재사용이 불가능한 엄청난 단점이 있지만 객체를 새롭게 생성해서 사용하면 된다. 하지만 메모리 효율이 그만큼 나빠 질 수 있다는점. 사용하는 방법은 아래 코드를 보면 대충 이해가 갈것이다. 사용예는 엄청나게 많이 쓰인다. 다운로드나 로그인, 등등 UI와 로직이 같이 실행되야 되는 부분은 거의 모두 AsyncTask를 사용한다고 보면 된다. AsyncTask는 내부 클래스를 사용해서 구현해야된다. 구글 레퍼런스 문서에도 그렇게 나와있다. 내가 생각되는 이유는 간단하다. 내부클래스로 구현함으로써 메모리를 절약..
이전 글에서 흐름제어에 대해 알아보았습니다. 이번에는 흐름제어에서 반복문을 좀 더 유연하게 사용할 수 있게 하는 break와 continue에 대해 알아보겠습니다. 먼저 간단하게 개념에 대해 이야기하겠습니다.break는 멈춘다는 의미로 가장 가까이에 있는 반복문을 멈추고 밖으로 나가는 명령어입니다.continue는 계속한다는 의미로 반복문의 한 사이클을 중간에 멈추고 다음 사이클을 실행하라는 명령어입니다. 간단한 예로 시작 하겠습니다.for (i in 1..3) { for (j in 1..3) { println("${i} * ${j} = ${i * j}") } } i가 1부터 3까지 반복하면서j가 1부터 3까지 반복하면서${i} * ${j} = ${i * j}를 출력하는 코드입니다. 그러면 중간에 변화를..
이번에는 흐름제어에 대해서 알아보겠습니다. 흐름제어에는 제어문에 해당하는 if, when이 있고 반복문에 해당하는 for, while이 있습니다.자바와 다른점은 switch가 보이지 않고 새로운 when이 생겼다는 것입니다. 제어문이란 조건이 참이면 해당 분기로 들어가서 코드를 수행하는 것이고반복문이란 조건이 참이면 해당 분기로 들어가서 코드를 수행하고 조건이 거짓이 될 때 까지 코드를 반복해서 수행하는 것입니다. if는 총 3개의 형태를 가지고 있습니다.ifif...elseif...else if...elseif는 ()안에 조건이 참일 경우에 {}안에 코드를 실행하는 조건문입니다.if else는 바로 위의 if나 if else가 거짓이고 ()안에 조건이 참일 경우에 {}안에 코드를 실행하는 조건문입니다...
이번 글은 콘솔에서 데이터를 입력 받는 부분에 대해서 알아 보겠습니다. 사용자로부터 데이터를 입력 받기 위해서는 Scanner 객체에 System.in(InputStream)을 넣어서 생성한 인스턴스를 사용해야합니다. System.in은 키보드와 연결 된 자바의 표준 입력 스트림으로 사용자가 키보드를 통해 입력한 데이터를 컴퓨터를 통해 프로그램에 전달해주는 역할을 합니다. Scanner객체는 System.in을 통해 전달 된 데이터를 언어의 기본타입으로 변환해주는 역할을 합니다. 위에 설명했던 내용들을 Kotlin 코드로 아래와 같이 나타낼 수 있습니다.import java.util.Scanner fun main(args: Array){ val sc: Scanner = Scanner(System.`in`..
이번에는 Kotlin에서 속성을 어떻게 선언하고, 어떤 타입들이 있는지 알아보겠습니다.(출처: https://kotlinlang.org/docs/reference/properties.html) Kotlin 공식사이트에 나와있는 문서를 가져왔습니다. 속성은 var과 val 두가지로 선언할 수 있으며 var은 변수, val은 상수입니다.한마디로 var은 read와 write가 가능하지만 val은 read-only입니다. Java에서는 PropertyType propertyName순으로 와야 했지만Kotlin에서는 그 반대로 propertyName이 먼저오고 뒤에 :을 붙인 다음 PropertyType이 나옵니다.또한 속성값을 초기화 하거나 getter를 지정해 준다면 PropertyType은 생략할 수 있습..
우선 Kotlin을 사용하기 위해 JetBrains 홈페이지에 들어가서 IntelliJ IDEA를 설치해보겠습니다.Windows: https://www.jetbrains.com/idea/download/#section=windowsMac: https://www.jetbrains.com/idea/download/#section=mac Linux: https://www.jetbrains.com/idea/download/#section=linux 저는 맥북을 사용해서 macOS로 설치하는데 OS에 맞는 것을 다운받아주면 됩니다. 우리는 Kotlin만 사용하면 되니까 Community로 다운받아 줍니다. 다운받아서 설치하고 실행하면 아래와 같이 로딩화면이 나오고 아래와 같은 화면이 나오면 정상 동작입니다. 자 ..
Kotlin JetBrains사에서 2011년 7월에 처음 공개 되었고 2016년 2월 15일에 1.0버전으로 릴리즈 되었습니다.https://en.wikipedia.org/wiki/Kotlin_(programming_language) Kotlin 정적타입 프로그래밍 언어로 불리며 JVM위에서 동작하는 언어입니다. 그리고 2017년 5월 17일 Google I/O Kenoty에서 Google은 Kotlin을 안드로이드에 정식 지원하겠다고 발표를 했습니다. https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/https://youtu.be/EtQ8Le8-zyo?t=8m44s 물론 그 전에도 Android Studio에서 Kotli..