안드로이드/Kotlin 9

[Kotlin] Alert Dialog 다이얼로그 띄워보기

개인 프로젝트를 진행중 간단한 Content를 한 줄을 입력하고 싶은데 Activity나 Fragment로 이동하기에는 한 줄만 입력하기에 효율적이지 않다고 생각이 되었기 때문에 어떻게 하면 좋을지 생각해보고 검색하다가 Alert Dialog를 사용하면 좋겠다라고 생각이 들었습니다! 그래서 이번 포스팅에는 Alert Dialog에 대해서 공부해보겠습니다. 우선 Alert Dialog가 무엇인지 가장먼저 Android 개발자 사이트에서 확인해보겠습니다. https://developer.android.com/guide/topics/ui/dialogs?hl=ko 대화상자 | Android 개발자 | Android Developers 대화상자는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는..

[Kotlin] Password 정규식

개인 프로젝트중 회원가입 관련해서 비밀번호를 어떻게 처리 해야하는지 의문이 들었습니다. 우리가 보통 회원가입을 하게되면 아이디 또는 이메일을 입력 후 비밀번호를 입력하는데 비밀번호를 생성할때 '영문포함 8글자이상', '영문, 특수문자 포함 10글자 이상' 등등의 정규식을 통과 후 알맞게 비밀번호가 입력이 되었다면 회원가입이 진행되었습니다. 이번 포스팅에는 비밀번호 입력 시 정규식을 어떻게 사용할 것 인지 공부 해보겠습니다. Pattern compile(String regex) : 주어진 정규표현식으로부터 패턴을 만듭니다. matcher(CharSequence input) : 대상 문자열이 패턴과 일치할 경우 true를 반환합니다. asPredicate() : 문자열을 일치시키는 데 사용할 수있는 술어를 ..

[Kotlin] Splash Screen(로딩 화면) 만들어보기

Splash Screen이란 어플을 실행시켰을 때, 로딩 중 일때 화면에 표시되는 이미지 또는 로고를 말합니다. 이러한 화면은 우리가 사용하는 앱의 대부분에서 적용되어 있습니다. 카카오톡, 페이스북, 인스타그램 등등 어플을 처음 실행하게 되면 위와 같이 각 어플의 로고 또는 이미지들을 애니메이션처럼 보여주는 것을 볼 수 있습니다. 이러한 로딩화면(Splash Screen)을 간단하게 만들어 보겠습니다. 1. Splash Screen Activity생성하기 우선 Splash Screen을 만들 Activity를 생성합니다. new -> Activity -> Empty Activity 선택을 해주고 이름은 SplashActivity라고 생성합니다. 2. activity_splash.xml 생성한 layout..

[Kotlin] Toolbar Custom해보기

우리가 자주 사용하는 카카오톡이나 인스타그램, 페이스북의 가장 상단을 보게되면 로고 또는 타이틀과 함께 아이콘이 있는것을 볼수 있습니다. 위와 같이 각 어플마다 toolbar들이 커스텀되어 있는것일 확인할 수 있습니다. 안드로이드 프로젝트를 처음 시작하게되면 기본적으로 Actionbar가 적용되어 있습니다. 기본적으로 적용되어 있는 Actionbar를 Custom해보도록 하겠습니다. 우선 툴바(Toolbar)는 안드로이드 5.0 (API Level 21)부터 추가된 위젯(Widget)으로, 앱에서 가장 중요한 액션 또는 가장 자주 사용되는 액션들을 제공하는 앱바(AppBar)를 만들 때 사용합니다. Toolbar는 위에 설명대로 안드로이드 5.0부터 새로 추가된 위젯입니다. 1. 기본 Actionbar의..

[Kotlin] Splash 화면 만들기

핸드폰에 있는 앱들을 켜보면 대개 앱 로고와 앱 제목이 나오고 몇초뒤에 메인화면으로 전환이 되는 것을 볼 수 있습니다. 이 화면을 Splash이라고 합니다. 1. Splash Activity 생성 우선 Splash화면으로 사용할 Activity를 생성합니다. 2. Splash Activity Class생성 Splash 화면을 구현하기 위해 Splash Activity Class를 생성합니다. Splash 화면은 메인 화면으로 넘거가기 전에 앱을 실행시키자 마자 나오는 화면으로, 일정 시간이 지나면 메인 화면으로 전환되도록 구현합니다. class SplashActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) ..

[Kotlin] var와 val의 차이점

Kotlin이라는 언어를 사용하다 보면 가장 당연하게 쓰는 var, val이 있습니다. Java에서는 새로운 변수를 만들 때 int num = 1; 위와 같이 [타입] [변수이름] = [할당될 값 or 인스턴스] 입니다. 하지만 Kotlin에서는 var num1 = 1 val num2 = 2 처럼 Java 문법과 다르게 [타입] 자리에 val또는 var이 들어가게 됩니다. 이 둘의 차이는 간단합니다. val(value)은 한 번 선언하면 값이 바뀌지 않습니다(JS의 const) var(variable)은 한 번 선언한 이후 값을 바꿀 수 있습니다.(JS의 let) 여기서 둘 다 값을 수정하게되면 var num1 = 1 val num2 = 2 num1 = 3 // 통과 num2 = 4 // 에러 val은 ..

[Kotlin] 데이터 클래스(Data class)

class Person (var name: String, var age: Int, var sex: String) fun main() { val person1 = Person("Alice", 20, "female") println(person1) // -> Person@71be98f5 } Data Class Kotlin은 기존의 Java Data Class보다 손쉽게 Data Class를 정의할 수 있습니다. class Person (var name: String, var age: Int, var sex: String) fun main() { val person1 = Person("Alice", 20, "female") println(person1) // -> Person@71be98f5 } Person ..

[Kotlin] View Binding

뷰 바인딩의 필요성 - 뷰의 요소를 불러오기 위해서 findViewById를 사용한다. - kotlin-android-extensions를 사용하면 findViewById를 생략하고 간편하게 쓸 수 있다. - 문제는 서로다른 xml에서 id를 동일하게 사용할 수 있기 때문에 kotlin-android-extensions를 통하면 코드가 헷갈릴 수 있다. - 그래서 구글에서는 android studio 4.1부터 kotlin-android-extensions의 지원을 중단하고 뷰 바인딩을 사용하도록 안내하고 있다. 뷰 바인딩? - 뷰 바인딩을 활성화하면 각 xml파일에 대해 ViewBinding 클래스를 상속받는 개별 뷰 바인딩 클래스가 자동으로 생성된다. - onCreate() 안에서 뷰 바인딩 클래스의..

[Kotlin] lateinit과 by lazy

늦은 초기화 코틀린에서는 변수 선언을 먼저하고 초기화는 뒤로 미루는 기능들을 제공한다. 초기화를 늦추면 좋은 점이, 사용할지 모르는 데이터를 미리 초기화할 필요가 없어서 성능 향상에 도움이 된다. 만약 예를 들어서 어떤 계산 결과값이 필요해서 변수 a를 사용할 예정인데, a의 첫 상태를 정의하기 어려울 때 어떻게 하는것이 좋을까? var a: String? = null 어차피 이후에 분명 사용할 녀석인데 굳이 위험하게 초기상태로 null로 고정을 해주어야 하나? 라는 것이다. 이럴때를 위해 제공되는 문법이 lateinint과 by lazy이다. lateinit lateinit을 사용하면 변수의 값을 지정하는 작업을 뒤로 미룰 수 있다. Nullable 하지 않은 변수를 선언하면서 Assign 하는 작업을..