https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-github-actions 읽으면서 정리. Github Actions는 code, pr, issue에서 사용할 수 있는 workflow다. workflow는 빌드, 테스트, 패키지, 릴리즈, 배포와 같은 커스텀 자동화 프로세스다. 이를 통해 CI/CD를 만들 수 있다. workflow는 Linux, macOS, Windows, Github server의 container에서 실행된다. 포크된 리포지토리에서는 기본으로 실행되지 않는다. Github marketplace에 action을 공유하고 사용할 수 있다. Github Actions에는 한번에 설정가..
(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에만 ..