(https://kotlinlang.org/docs/reference/data-classes.html 읽으면서 정리) Data를 보관하기 위해서 class를 만든다. 이 class의 함수는 종종 데이터로부터 기계적으로 파생된다. 코틀린에서는 이를 data class라고 하고 data라는 마크를 붙인다. data class User( val name: String, val age: Int ) 컴파일러에서 자동으로 다음과 같은 멤버를 추가한다. equals(), hashCode() toString() - "User(name=John, age=42)" componentN() 함수 (프로퍼티매핑) copy() 생성된 코드의 일관성과 의미있는 동작을 위해 다음과 같은 조건을 충족해야 한다. primary cons..

지난 30일동안 이전에 안드로이드로 만들었던 앱을 flutter로 새로 만들었다. 바로 성경앱이다. 이 앱은 2012년 1월에 안드로이드앱으로 만들어서 2014년까지 유지보수를 했었다. 당시 안드로이드에서는 제대로 된 ebook 리더도, 쓸만한 성경앱도 없었기 때문에 안드로이드 개발 연습도 할 겸 필요한 앱도 만들겸 만들었던 것 같다. 성경 - Google Play 앱 간단한 성경앱입니다. 읽기 쉽고, 원하는 구절을 쉽게 찾을 수 있습니다. 웹버전도 있어요. - http://holybible.joostory.net 문의나 제안 있으시면 메일로 보내주세요. - email : holybible@joostory.net play.google.com 안드로이드 폰을 사용하면서 이 앱을 잘 사용하다가 아이폰을 사용..
react를 사용하는데 redux는 필수적인 요소라고 할 수 있다. 이제는 다른 방법들도 많은 것 같지만 결국 redux와 같이 app 전체에서 공유하는 공통 state를 사용하는 것은 비슷하다. import React, { Component } from 'react' import { connect } from 'react-redux' import { changeName } from './actions' @connect(state => ({ name: state.name }), dispatch => ({ handleChangeName: (name) => { dispatch(changeName(name)) } })) class MyComponent extends Component { constructor(..
React Hooks는 functional component를 사용할 수밖에 없다. 애초에 그러려고 만든 거니까. 그동안 redux와 react를 connect하기 위해서 hoc를 사용했는데 decorator를 사용했었다. import React, { Component } from 'react'; import { connect } from 'react-redux'; @connect(state => ({ name: state.name })) class MyComponent extends Component { render() { const { name } = this.props; return ( {name} ); } } export default MyComponent; 이 decorator는 class에만 ..
이 발표를 보고나서 Dan Abramov에게 묘한 매력을 느꼈다. 영어도 잘 못하면서 팔로우를 시작했다. Reactjs에 대해서 이런저런 것을 많이 보게 되었다. 그리고 어느 덧 발표했던 기능이 정식출시했다. 이름은 React Hooks다. 기본 개념 Hooks소개의 Motivation에도 말하고 있지만 Hooks의 기본 목적인 간결함이다. 다음의 코드는 Hooks를 사용한 코드다. import React, { useState } from 'react'; function Example() { const [count, setCount] = useState(0); return ( You clicked {count} times setCount(count + 1)}> Click me ); } 이 코드가 얼마나 ..