본문 바로가기

전체 글

(70)
[Kotlin]코틀린을 이용한 안드로이드 프로그래밍 실습 03 열거형 CIRCLE, TRIANGLE, RECT, POLYGON 을 만들고탑레벨의 열거형 데이터 5개를 가지는 immutable 리스트(initDataList란 이름의 리스트) 1개를 생성하고, draw 와 printInfo 라는 인터페이스 메소드를 가진 IShape 인터페이스를 만들고, IShape 을 상속한 Circle, Triangle, Rect, Polygon를 x, y, w, h 를 가지는 데이터 클래스로 만들고 인터페이스 메소드를 오버로딩한다. 해당 클래스는 생성자를 private 으로 하고 동반객체를 통해 팩토리 메소드 제공한다.오버로딩하는 메소드에서는 어느클래스에서 어떤 함수가 호출되었는지를 출력하게 한다.initDataList 에 들어있는 열거형 타입에 맞는 클래스를 생성해서 도형 리스트..
[Kotlin]코틀린을 이용한 안드로이드 프로그래밍 실습 02 탑레벨의 숫자 데이터 10개를 가지는 immutable 리스트 2개를 생성하고,리스트 2개를 인자로 받아 같은 인덱스의 값을 비교하여 큰 값만 새로운 리스트에 넣어 리턴하는 탑레벨 함수를 만들고 (두개의 리스트의 크기가 다르면 null 리턴) 리턴받은 리스트의 값들을 인덱스와 함께 출력한다. (idx : value)1. 새로운 테스트 코틀린 파일을 생성한다. 2. 값 비교는 if 표현식으로 탑레벨의 max 함수를 작성한다. 3. 리턴 받는 List는 탑레벨의 lateinit 으로 작성한다. 또한 이 변수는 작성한 함수 안에서 접근하지 않고 리턴된 리스트만 받는다. # 객체지향 프로그래밍- PIE 1. Polymorphism(다형성) * overloading : 같은 이름의 함수(연산자)를 다른 타입으로 ..
[Kotlin] 코틀린을 이용한 안드로이드 프로그래밍 실습 01-2 fun main(args: Array) { println("Hello, world!")} - fun: 함수임을 나타내는 키워드- main: 함수 이름 ( 여기서는 엔트리포인트가 되는 메인 함수)- class 필요 없음 – 탑 레벨 함수 정의 가능.- (args: Array): 함수인자 "변수명: 타입" - println("Hello, world!"): System.out.println을 println으로 간단하게 사용 표준 자바 라이브러리 함수를 간소화해주는 wrapper를 제공- ; (세미콜론) 불필요 * 이후 예제는 안드로이드 스튜디오에서… 현재 안드로이드 스튜디오에서 직접 코틀린 메인 실행 안됨. (버그)실제 안드로이드 예제전까지 유닛테스트의 테스트로 예제 실행 # Kotlin 파일- 일반 파일과 ..
[Kotlin] 코틀린을 이용한 안드로이드 프로그래밍 실습 01-1 # 준비- 강의자료 : https://github.com/zoops/2018-kotlin-lecture- Kotlin 공식 홈페이지 : http://kotlinlang.org/- HAXM : 안드로이드 에뮬레이터 가속(속도 빨라짐)- Kotlin 웹 IDE : https://try.kotlinlang.org/ # IDE : Android Studio- 2.x 까지는 별도로 Kotlin 플러그인 설치 필요- 3.x 부터는 불필요(자동 설치)- 최소 버전 Lollipop 부터 지원# 개요- Kotlin은 JVM 위에서 돌아감(바이트코드로 변환->자바코드로 변환) JVM 위에서 돌릴 수 있는 모든 언어는 Kotlin으로 변경 가능! ex) Android(Java), Spring, sublet, java scr..
[Android] Navigation drawer (바로가기 메뉴) - DrawerLayout : 다른 레이아웃이나 다른 뷰를 담을 수 있는 레이아웃 중 하나- include 태그 : 중복되는 xml 레이아웃 그대로 집어넣기.- NavigationView : 바로가기 메뉴의 화면 레이아웃(사용자 프로필, 메뉴들 보이는 레이아웃) 0. navigation drawer는 대부분 모든 화면에 적용. 액티비티로 구성한다면 모든 레이아웃에 적용시켜야하기 때문에 엄청난 중복이 발생함. 그래서 모든 화면을 fragment로 구성하는 것이 바람직한 방법. 1. 액션바 없애기- styles.xml 에서 테마 추가- manifest 에서 테마 변경 2. 레이아웃 구조- DrawerLayout- - CoordinatorLayout- - - AppBarLayout- - - - Toolbar-..
[Android] ViewPager + TitleStrip(타이틀스트립) 뷰페이저를 슬라이드하면 알아서 위에있는 타이틀이 바뀐다.저것이 바로 타이틀스트립!이번 부스트코스 강의를 보고 처음 들어본것이다. - 타이틀스트립 기능 : 현재 보여지고 있는 화면이 전체 프래그먼트 중 어느 것인지 알 수 있음. 타이틀스트립은, 뷰페이저 안에 child view로 선언 가능하다. 그리고 어떤 텍스트를 보여줄지는 뷰페이저 어댑터 클래스에서 getPageTitle 메소드만 오버라이드 해주면 된다. @Nullable @Override public CharSequence getPageTitle(int position) { return (position + 1) + "번째탭"; } 그럼 끝! 다음으로 탭스트립이다. 타이틀스트립과 디자인이 약간 다르다.그리고 차이점은 클릭하면 탭처럼 전환된다는 것. ..
[Android] ViewPager + Tab 사진 크기 지못미.. 이번에 들은 강의는 탭 만들기. 예전에 막 하다가 해본 것 같은데, 이번 강의를 들으면서 다시 정리해보려고한다. 위 캡쳐에 보이는 것 처럼, 액션바 밑에 탭이 있는데 탭을 누르면 화면이 전환되는 기능을 구현할 것이다. 자세히 공부한적은 없지만, 탭 부분도 하나의 레이아웃인줄 알고있었다.하지만 그게 아니라, 액션바 밑에 붙이는 것이었다. (어째 프리뷰에서 안보이더라) 지난번 포스팅에서와 같이 액션바를 직접 커스텀하는걸 했었는데, 마찬가지로 탭도 그냥 액션바에 붙여주기만 하면 되는것이다.이를 구성하기 위해서는 외부라이브러리를 추가해주어야한다.build.gradle에서implementation 'com.android.support:design:27.1.1'을 추가해주면 되지만, 딸깍딸깍으..
[Android] Time to String 및 시간순으로 정렬하기 거창하게 Time to String 이라고 했지만... 그냥 방금, 몇분전, 몇시간전 나타내주는 거 구현하는 방법이다. # 시간(long)을 String으로 만들어 줄 클래스 만들기. package com.onedelay.mymovie.utils; public class TimeString { public static final int SEC = 60; public static final int MIN = 60; public static final int HOUR = 24; public static final int DAY = 30; public static final int MONTH = 12; public static String formatTimeString(long regTime) { long c..