분류 전체보기 230

안드로이드 개발자의 2022년 되돌아보기

늦은감이 있지만 2023년을 맞아서 2022년을 돌아보려한다. https://choi-dev.tistory.com/148 2021년을 돌아보며 2022년을 고민해보기. 2021년이 지나서 2022년이 됐습니다. 2021년에 이루고 싶었던것들을 다 이루진 못했지만 나름 만족스러운 한 해였습니다. 회사에서 많은 프로젝트를 하고 그 프로젝트를 통해 고객들이 신기해하는 choi-dev.tistory.com 작년에 내가 적었던 글이다. 배움의 깊이를 더해보려고 했었고 5가지의 여러 목표를 세웠다. 사실 모두 이뤘는지는 모르겠다. 노력은 했지만 아직 부족한 부분이 많은 거 같다. 작년에 얻은 것들 1. 코틀린 언어에 대한 학습은 작년이나 올해나 꾸준히 되어야한다고 생각하고 있기에 올해도 꾸준히 공부할 예정이다. 사..

잡담 2023.01.13

새로운 프로젝트의 시작

끝? 시작? 리드펫이 끝나고 나서 배포는 했지만 운영은 실질적으로 힘들다는 결론을 팀 내부에서 내리고 프로젝트가 마무리 됐다. 아쉬움과 후련함이 교차했지만 아무래도 살아있는 서비스를 계속 만들지 못했다는 아쉬움이 가장 컸던 것 같다. 그래도 이렇게 끝내려고 시작한건 아니니까 라고 생각하곤 새로운 서비스를 만들 준비를 했다. 뉴 페이스 같이 개발하던 안드로이드 개발자분은 다른 IT 개발 동아리에 참가하게 되셔서 잠시 Dev6 개발에서 빠지셨고 디자이너분도 다른 프로젝트에 참가 하셔서 함께하지 못하게 됐다. 기존 팀원의 결원으로 인해 새로운 팀원이 필요했고 수소문 끝에 현재는 실력있는 기획자, IOS 개발자, 디자이너분이 합류하셨다. 특히 우리팀에는 기획자라는 포지션이 없고 내가 리딩을 하다보니 팀내 기획력..

Dev6 2023.01.13

[이펙티브 코틀린] 2. 변수의 스코프를 최소화하라.

상태를 정의할 때는 변수와 프로퍼티 스코프를 최소화 하는것이 좋음 최소화하지 않으면 아래와 같은 단점이 있다. - 프로그램을 추적하고 관리하기 쉬워짐. - 스코프 범위가 너무 넓으면 다른 개발자에 의해서 변수가 잘못 사용될 수 있음. - 프로그램을 읽고 이해하기에 어려워짐 변수는 읽기 전용 또는 읽고 쓰기 전용 여부와 상관없이 변수를 정의할때 초기화되는 것이 좋다. 여러 프로퍼티를 한번에 설정할 경우에는 구조분해 선언을 활용하자 프로퍼티보다는 지역 변수를 사용하는 것이 좋다 캡처링에 유의하자. val primes : Sequence = sequence { var numbers = generateSequence(2) { it + 1 } while(true){ val prime = numbers.first(..

Effective Kotiln 2023.01.13

[이펙티브 코틀린] 1. 가변성을 제한하라

코틀린의 요소 중 일부는 상태를 가진다. 상태라는건 상황에 따라 값이 변화할 수 있는 것을 의미한다. 대표적으로 var 프로퍼티와 mutable 객체가 있다. 시간 변화에 따라 변하는 요소를 표현할 수 있는것은 유용하지만 여러가지 고려할 점이 생긴다. 1. 프로그램을 이해하고 상태 추척하는것이 어려워진다. 2. 가변성을 가지고 있으면 코드의 진행을 추론하기 어려워진다. 3. 멀티스레드 일때 동기화의 문제를 만날 수 있다. 4. 테스트하기가 어려워진다. 변경되는 값이 많을수록 여러 케이스를 테스트 해야한다. 5. 상태 변경이 일어나면 이 상태를 사용하고 있는 곳에 지속적으로 알려주는 번거로움이 생긴다. 예를 들면 이런 상황이다. suspend fun main() { val lock = Any() var n..

Effective Kotiln 2023.01.08

플러터의 GetX ?

플러터의 다음 포스팅으로 자주 쓰는 위젯을 적으려고 했는데 사실 워낙 많은 위젯이 있고 모든걸 다 적는건 시간도 시간이고 그때그때 찾는게 더 효율적일거 같다는 생각이 들어서 많은 사람들이 잘쓰고 있고 유명한 오픈소스 위젯? 들에 대해서 적어보려고 한다. 이번 포스팅은 GetX다. 1. GetX란 뭘까? 전 포스팅에서 말했던 state (상태) 라는 개념을 관리하기 위해 많이쓰이고 있다. 다시 정리하면 Flutter를 위한 state 관리 라이브러리다. 플러터에서는 GetX ,BLOC, Provider 등을 상태관리로 많이 쓰고 있는데 그 중에서 GetX가 상대적으로 사용하기 편하고 또 강력해서 많이들 사용한다. 2. GetX는 상태관리말고도 이것저것 해준다. 라우팅 (화면 전환 애니메이션도 제공) 의존성..

Flutter 2023.01.08

Dev6 의 첫 시작 _ 리드펫

0. 시작 혼자서 제대로 완성은 못해도 끄적끄적 생각나는 아이디어를 코드로 만드는걸 좋아했던 나는 혼자 이렇게 만들지말고 나 말고 서버 개발자, 디자이너 , 웹개발자, ios 개발자들을 모아서 팀을 만들고 같이 하나의 목표를 위해 개발해보고 싶다는 생각이 들었다. 다른 개발자들과 소통하는걸 바랬던것도 있지만 동료가 있다면 혼자서는 해내지 못하는 일을 해낼 수 있다는 믿음 때문이였다. 서비스를 만드는 사람들이 최소 6명은 있으면 좋겠다는 생각에 생겨난 Dev6. 얼굴도 모르는 사람들을 인터넷으로 찾고 찾아서 팀을 꾸렸고 생각하고 있었던 아이디어를 듣고는 좋다며 같이 해보자고 흔쾌히 동의해준 동료들과 함께 프로젝트가 시작됐다. 1. 좋았던 점 일단 사람들이 좋았다. 어느하나 설렁설렁 하는 사람이 없었고 서로..

Dev6 2022.11.10

플러터의 위젯이란?

플러터의 동작 원리에 대해 말하려면 위젯의 대한 설명을 먼저 하고 넘어가야한다. 1. 플러터는 곧 위젯의 집합이다. 플러터 프로젝트를 생성해보면 웹이나 Rn 와 비슷하게 코드가 생겼는데 뷰 계층 을 이루고 있다. 플러터는 위젯이라는 개념이 존재하는데 이 위젯은 버튼, 이미지, 텍스트 등등 작은 컴포넌트를 의미한다. 이것들을 조합하고 계층을 만들어 프로젝트를 구성해간다. 심지어 스타일과 애니메이션 까지고 모두 위젯이다. 2. 위젯의 사용 예시 위젯은 앱 화면의 모든 정보를 정의하는데 쓰이고 있다. 예를들어 Row 라는 위젯은 Row( childern : [ ] ) 이런식으로 적으면 childern 안에 들어있는 위젯들을 가로로 정렬한다는 의미가 된다. 그리고 또 Row( mainAxisAlignment :..

Flutter 2022.11.06