코틀린에서 변수와 타입, 연산자를 다루는 방법 #2
·
[ Kotlin ]
인프런에서 제공하고 있는 강의를 보고 정리한 글입니다.코틀린에서 타입을 다루는 방법Kotlin 에서는 암시적 타입 변경이 불가능하다. 때문에 명시적으로 to변환 타입을 사용해야 한다. val number1 = 3 val number2 : Long = number1.toLong()변수가 nullable 이라면 적절한 처리가 필요하다. val number1: Int? = 3 val number2: Long = number1?.toLong() ?: 0L일반 타입에 대한 캐스팅은 ?fun printAgeIfPerson(obj: Any) { if (obj is Person) { // if obj is person type. java's instance of val perso..
코틀린에서 변수와 타입, 연산자를 다루는 방법 #1
·
[ Kotlin ]
인프런에서 제공하고 있는 강의를 보고 정리한 글입니다.변수 선언 키워드 - var 과 val 의 차이점바꿀 수 있는 키워드는 var 을 사용하고, 바꿀 수 없는 키워드는 val (read-only) 을 사용한다. 즉, var = variable , val = value 의 약자이다. 타입 명시를 원한다면 타입을 명시적으로 작성해줄 수 있다.var number1: Long = 10L변수를 만들고 초기값을 지정해주지 않는 경우는? 초기화되지 않은 변수를 사용하면, 컴파일 에러가 난다.val 컬렉션에는 element는 추가할 수 있다.모든 변수는 우선 val 로 만들고, 꼭 필요한 경우에만 var 로 변경하면, 코드가 깔끔해질 수 있다.Nullablenull 이 들어갈 변수가 있다면 타입? 을 사용한다.var..
Clean Code - 4장 주석
·
[ Review ]
Clean Code를 읽고 정리한 글입니다. 240313. 23:51 부정확한 주석은 없는 것보다 나쁘며, 주석을 가능한 줄이도록 끊임없이 노력해야 한다. 주석은 나쁜 코드를 보완하지 못함 코드로 의도를 표현하기 좋은 주석 법적인 주석 저작권 정보/ 소유권 정보는 필요한 주석이다. 정보를 제공하는 주석 // kk:mm:ss EEE, MMM dd, yyyy 형식 Pattern timeMatcher = Pattern.compile( "\\d*:\\d*:\\d* \\w*, \\w* \\d*, \\d*"); 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 결과를 경고하는 주석 TODO 주석 중요성을 강조하는 주석 공개 API에서 JavaDocs 나쁜 주석 주절거리는 주석 같은 이야기를 중복하는 주석 오해할 여..
Clean Code - 3장 함수
·
[ Review ]
Clean Code를 읽고 정리한 글입니다. 240312. 23:51 함수는 최대한 작게 만들기 함수는 작을 수록 좋다. if, else, while 문에 들어가는 블록은 한 줄이어야 한다는 말이다. 함수에서 한 가지만 처리 한 가지만 처리한다는 말 중에서 한 가지가 어디까지를 뜻하는지 모호할 수 있지만, 추상화 수준이 하나라면, 함수가 한 가지 일을 처리한다고 할 수 있다. 지정된 함수 아래에서 추상화 수준이 한 개인 단계만 수행한다면, 그 함수는 한 가지 작업만 한다고 할 수 있다. 함수당 추상화 수준은 하나로 하기 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 예를 들어서 .append() 의 경우, 추상화의 수준이 아주 낮지만, .render() 와 같은 경우는 추상화가 중간이..
Architecture Pattern과 Android App Architecture
·
[ Android ]
Architecture Pattern MVC, MVP, MVVM ViewModel 과 View가 1:N 이 가능함. View와 Model 사이의 의존성이 없고, ViewModel도 View에 의존성을 가지지 않음. 참조는 단방향적으로 일어나게 되는데, View > ViewModel > Model 순으로 일어나게 된다. Android App Architecture 내의 ViewModel은 MVVM 패턴의 ViewModel 과는 다르다. 3개의 Layer UI Layer Data Layer Support Library : API의 하위 호환성을 위함. - 문제점 : 최소지원 API 레벨 문제. 필요없는 라이브러리 추가. Androidx 체계의 도입. - 라이브러리의 기능별 분리 - 버저닝 방식의 변경 - 패..
News Application Clone #2
·
[ Jetpack Compose ]
https://www.youtube.com/playlist?list=PLzZEuVaFb9Exi-pc8qtHBrrLg8bUn-TP6 Jetpack Compose - MVVM - Clean Architecture News App "Building a Modern News App with Jetpack Compose, MVVM, and Clean Architecture." In this hands-on learning experience, you'll master the art of creating a fe... www.youtube.com OnBoardingPage 내의 하단에 있는 PageIndicator와 Button 나열하기 Row Compose를 불러오고, 이 Row Compose 내에 PageInd..
News Application Clone #1
·
[ Jetpack Compose ]
https://www.youtube.com/playlist?list=PLzZEuVaFb9Exi-pc8qtHBrrLg8bUn-TP6 Jetpack Compose - MVVM - Clean Architecture News App "Building a Modern News App with Jetpack Compose, MVVM, and Clean Architecture." In this hands-on learning experience, you'll master the art of creating a fe... www.youtube.com 상기에 기재된 강의를 보면서 정리한 글입니다. SplashScreen 만들기 SplashScreen을 Dark/Light Theme 에 맞춰서 변환 및 구현해보기. 1. ..
Jetpack Compose Basic #4
·
[ Jetpack Compose ]
Scaffold, Textfield, Button, 구조분해, SnackBar, 코루틴 Textfield의 value값이 동적으로 변화하려면? -> 변수화 해야함. Example setContent { val testValue = remember { mutableStateOf("") } Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { TextField( value = testValue.value, onValueChange = { testValue.value = it }, ) Button(onClick =..
Jetpack Compose Basic #3
·
[ Jetpack Compose ]
Navigation 1. dependency 추가 필요 // Navigation implementation("androidx.navigation:navigation-compose:2.4.0-alpha10") 2. naviController 값을 넘기고자 할 때, composable("third/{value}") 처럼, naviBackStackEntry 객체. 이 객체를 부르면, {value} 로 넘어온 것을 받을 수 있음. navController.navigateUp() : 뒤로 가기 3. Sample Code @OptIn(ExperimentalComposeUiApi::class) class MainActivity : ComponentActivity() { override fun onCreate(save..
Jetpack Compose Basic #2
·
[ Jetpack Compose ]
Textfield 1) Textfield의 value값이 동적으로 변화하려면, 변수화 해야한다. 2) Sample Code setContent { val testValue = remember { mutableStateOf("") } Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { TextField( value = testValue.value, onValueChange = { testValue.value = it }, ) Button(onClick = {}) { Text("click!") } } } But..
coding-wave
'분류 전체보기' 카테고리의 글 목록 (3 Page)