Android Studio에서 vim 사용하기

vim과 visual editor가 서로 다른 선택지였을 때, 나는 vim의 필요성을 느끼지 못했다. visual editor가 편했으니까. 그런데, 최근에 visual studio를 쓰면서 ‘vim의 간단한 기능들을 쓰면 편할 텐데…’라는 생각이 들었고, 찾아보니 vim처럼 사용할 수 있는 플러그인이 존재했다. 이미지에 보이듯이 JetBrains에서 만든 IdeaVim이다. 이를 설치하면 vim처럼 편집이 가능하며, vim 설정에 가서 단축키를 IDE의 기능을 쓸지, Vim에서 정의된 기능을 […]

작업하던 프로젝트 Github에 올리기

1. github에서 repository 생성 github 사이트의 대시보드에서 new 버튼을 눌러 새로운 git repository를 생성한다. github의 새로운 프로젝트 생성화면은 다음과 같다. 입력란에 빨간줄을 쳐놨는데, repository이름을 입력하고, 프로젝트를 공개할지여부를 Public/Private로 선택한다. 그 아래로, README 파일 및 .gitignore, license파일들을 자동생성해주는 옵션이 있는데, 작업중인 소스코드를 올리려는 경우, 충돌이 있을 수 있으니 다 비워주고 추가하지 않는다. 마지막으로 Create repository 버튼을 […]

Android : Navigation

시기상으로 너무 늦게작성되는 포스팅인데… 지금 시점이라면, Jetpack Compose에서 Navigation의 사용을 설명해야 하나, 내가 아직 잘 모르고 XML도 혼용해서 사용중이라서 XML사용하는 Fragment들간의 Navigation을 설명하는 포스팅을 올린다. Principles of Navigation Navigation의 구현 이전에, 지켜져야 하는 디자인 원리를 짚고 넘어가자. 다음의 Principles of Navigation은 Navigation component를 쓰지 않더라도 지켜져야 한다. Navigation component를 사용하는 경우 지원되는 내용이기도 하다. 시작 […]

Android의 시간에 대해

일단, 날짜 년, 월, 일, 요일에 대해선 자세히 다루지 않는다. Date라는게 참 복잡 미묘한 놈이라서. 이 녀석을 제외하면 좀 단순해지는데, 나는 항상 System.currentTimeMillis() 만 이용해왔다. 이건 뭐 다들 알겠지만, 1970년 1월 1일 자정을 기준으로 현재까지 흐른 시간을 milliseconds로 돌려준다. 대부분의 경우 이걸로 해결이 되긴 하는데, 타이머를 만들면서 좀 더 유용한 것들이 있더라. 이에 대해 잘 […]

Godot 3D rendering #4 : Geometry Transforms

앞에서 레이 트레이싱에 대해 개념적으로만 간단히 알아봤다. 레이 트레이싱이 현실의 빛을 시뮬레이션 하는 방법이기 때문에, 이론적으로는 가장 명확하고 단순하겠지만, 엄청난 계산량으로 인해 리얼타임 렌더링에서 사용하기엔 제한적이다. 일반적인 리얼타임 렌더링은 두단계로 나뉠 수 있는데, 첫번째로 Geometry Transform들을 통해서 3D 공간의 오브젝트를 스크린 스페이스로 옮겨오면서 어떤 부분들이 보여지는지 판단하는 과정이 필요하고, 두번째로 이렇게 옮겨온 오브젝트를 스크린의 각 […]