Programming
-
개요 안드로이드 앱을 개발하다 보면, Activity는 피할 수 없는 핵심 구성 요소입니다. 사용자와 상호 작용하는 한 화면을 담당하는 Activity는 앱의 중심이며, 그 생명주기를 이해하고 관리하는 것은 효율적이고 사용자 경험이 좋은 앱을 만드는 데 있어 필수적입니다. 이 포스트에서는 Activity의 주요 개념과 생명주기를 알아보고, 이를 관리하는 방법에 대해 살펴보겠습니다. 생명주기 안드로이드 Activity의 생명주기는 Activity가 생성되고, 사용되며, 종료되는 과정을 설명합니다. 이는 여러 콜백 함수를 통해 관리되며, 각 콜백은 Activity의 특정 상태에 응답합니다. 예를 들어, onCreate()는 Activity가 처음 생성될 때 호출되며, 여기에서 기본적인 설정과 UI 초기화를 ..
[Android/Jetpack] Activity개요 안드로이드 앱을 개발하다 보면, Activity는 피할 수 없는 핵심 구성 요소입니다. 사용자와 상호 작용하는 한 화면을 담당하는 Activity는 앱의 중심이며, 그 생명주기를 이해하고 관리하는 것은 효율적이고 사용자 경험이 좋은 앱을 만드는 데 있어 필수적입니다. 이 포스트에서는 Activity의 주요 개념과 생명주기를 알아보고, 이를 관리하는 방법에 대해 살펴보겠습니다. 생명주기 안드로이드 Activity의 생명주기는 Activity가 생성되고, 사용되며, 종료되는 과정을 설명합니다. 이는 여러 콜백 함수를 통해 관리되며, 각 콜백은 Activity의 특정 상태에 응답합니다. 예를 들어, onCreate()는 Activity가 처음 생성될 때 호출되며, 여기에서 기본적인 설정과 UI 초기화를 ..
2023.07.27 -
파이프 연산자는 함수들을 조합하거나 적용할 때 사용되는 연산자다. 복잡한 함수를 쉬운 함수로 표현할 수 있게 도와준다. |> 연산자 시그니처는 다음과 같다. apR : a -> (a -> b) -> b apR x f = f x 첫번 째 인자를 받는다. 두번 째 인자를 함수로 받는다. 인자로 받은 함수에 첫번 째 인자를 전달하여 함수의 결과를 반환한다. 활용 예시로 사칙연산 함수가 있다고 가정하자. 수식 (3 + (1 - 2))*3 / 24 를 위 사칙연산 함수로 표현하면 다음과 같다. result = division 24 (multiply 4 (add 3 (minus 2 1))) 1.5 : Float 가독성이 상당히 떨어진다. 이를 쉽게 표한하기 위해 |> 연산자를 사용하면 다음과 같다. result =..
[Elm] 함수 파이프 연산자 (Pipe Operator)파이프 연산자는 함수들을 조합하거나 적용할 때 사용되는 연산자다. 복잡한 함수를 쉬운 함수로 표현할 수 있게 도와준다. |> 연산자 시그니처는 다음과 같다. apR : a -> (a -> b) -> b apR x f = f x 첫번 째 인자를 받는다. 두번 째 인자를 함수로 받는다. 인자로 받은 함수에 첫번 째 인자를 전달하여 함수의 결과를 반환한다. 활용 예시로 사칙연산 함수가 있다고 가정하자. 수식 (3 + (1 - 2))*3 / 24 를 위 사칙연산 함수로 표현하면 다음과 같다. result = division 24 (multiply 4 (add 3 (minus 2 1))) 1.5 : Float 가독성이 상당히 떨어진다. 이를 쉽게 표한하기 위해 |> 연산자를 사용하면 다음과 같다. result =..
2020.11.24 -
Union Type은 타 언어의 Enum Class와 비슷하다. Elm 에서 Union Type을 Tag 라고도 부른다. 선언 방법 type Answer = Yes | No 활용 예시 respond : Answer -> String respond answer = case answer of Yes -> "Good" No -> "Bad" > respond Yes "Good" : String > respond No "Bad" : String 포함 하기 Union Type은 관련된 정보를 포함할 수 있다. type Answer = Yes | No | Other String Other 태그는 String을 포함한다. 정의되었던 respond 함수를 다음과 같이 호출할 수 있다. respond : Answer ->..
[Elm] 유니온 타입 (Union Type)Union Type은 타 언어의 Enum Class와 비슷하다. Elm 에서 Union Type을 Tag 라고도 부른다. 선언 방법 type Answer = Yes | No 활용 예시 respond : Answer -> String respond answer = case answer of Yes -> "Good" No -> "Bad" > respond Yes "Good" : String > respond No "Bad" : String 포함 하기 Union Type은 관련된 정보를 포함할 수 있다. type Answer = Yes | No | Other String Other 태그는 String을 포함한다. 정의되었던 respond 함수를 다음과 같이 호출할 수 있다. respond : Answer ->..
2020.11.24 -
익명 함수 \x -> x + 1 \x y -> x + y \x y -> [x, 1, y, 2] 백슬래시와 화살표 사이에 함수의 인자들, 화살표 오른편에는 함수의 내용 활용은 다음과 같이 한다. > (\x y -> x * y) 2 3 6 : number x와 y를 곱하는 익명 함수에 x 값에 2, y 값에 3을 대입하여 결과 6이 된다. 이름 정의된 함수 add : Int -> Int -> Int add x y = x + y 인자로 받는 Type들과 결과 Type을 첫줄에 기입한다. 이를 Elm 에서 시그니처라고 불린다. 다음 줄 에 함수의 내용을 기입한다. 다른 언어와 다르게 공백 만으로 함수의 인자를 전달한다. 풀어서 쓰면 아래와 같다. Kotlin add(2, 3) Elm ((add 2) 3) add..
[Elm] 함수 (Function)익명 함수 \x -> x + 1 \x y -> x + y \x y -> [x, 1, y, 2] 백슬래시와 화살표 사이에 함수의 인자들, 화살표 오른편에는 함수의 내용 활용은 다음과 같이 한다. > (\x y -> x * y) 2 3 6 : number x와 y를 곱하는 익명 함수에 x 값에 2, y 값에 3을 대입하여 결과 6이 된다. 이름 정의된 함수 add : Int -> Int -> Int add x y = x + y 인자로 받는 Type들과 결과 Type을 첫줄에 기입한다. 이를 Elm 에서 시그니처라고 불린다. 다음 줄 에 함수의 내용을 기입한다. 다른 언어와 다르게 공백 만으로 함수의 인자를 전달한다. 풀어서 쓰면 아래와 같다. Kotlin add(2, 3) Elm ((add 2) 3) add..
2020.11.24 -
변수 선언 기본 방법 > a = 5 5 : number > a = True True : Bool > a = "Hi" "Hi" : String > a = [1, 2, 3] [1,2,3] : List number Variable Name = Value Elm은 Kotlin처럼 Smart Casting이 되므로 간단하게 변수를 선언할 수 있다. 변수 선언 제한적인 방법 > a: Int | a = 5 | 5 : Int Variable Name: Type Variable Name = Value 변수 선언 시 Type에 맞는 Value를 선언해야한다. Type에 맞지 않는 Value를 선언 시 오류가 발생한다. > a: Int | a = True | -- TYPE MISMATCH -------------------..
[Elm] 변수 (Variable)변수 선언 기본 방법 > a = 5 5 : number > a = True True : Bool > a = "Hi" "Hi" : String > a = [1, 2, 3] [1,2,3] : List number Variable Name = Value Elm은 Kotlin처럼 Smart Casting이 되므로 간단하게 변수를 선언할 수 있다. 변수 선언 제한적인 방법 > a: Int | a = 5 | 5 : Int Variable Name: Type Variable Name = Value 변수 선언 시 Type에 맞는 Value를 선언해야한다. Type에 맞지 않는 Value를 선언 시 오류가 발생한다. > a: Int | a = True | -- TYPE MISMATCH -------------------..
2020.11.20 -
bindClass 사용 시 해당 ObervbleStyleClass를 List로 보관 후 View onUndock 시 dispoe() 로 리스너를 해제해야 릭 발생하지 않는다.
[TornadoFx] bindClass Memory LeakbindClass 사용 시 해당 ObervbleStyleClass를 List로 보관 후 View onUndock 시 dispoe() 로 리스너를 해제해야 릭 발생하지 않는다.
2020.05.28 -
package jihun import javafx.scene.control.Button import javafx.scene.control.Label import javafx.scene.control.TextField import javafx.scene.layout.AnchorPane import tornadofx.App import tornadofx.View import tornadofx.launch fun main(args: Array) { launch(args) } class MyApp : App() { override val primaryView = MainView::class } class MainView : View() { override val root: AnchorPane by fxml("/..
[TornadoFX] 온도 단위 예제package jihun import javafx.scene.control.Button import javafx.scene.control.Label import javafx.scene.control.TextField import javafx.scene.layout.AnchorPane import tornadofx.App import tornadofx.View import tornadofx.launch fun main(args: Array) { launch(args) } class MyApp : App() { override val primaryView = MainView::class } class MainView : View() { override val root: AnchorPane by fxml("/..
2018.11.06