안드로이드(Android) OS 업그레이드가 코앞으로 다가왔다. 누가(Nougat)라고 이름 붙여진 N OS도 이제 막바지다. 애로사항이라고 해야할까.. N OS를 작업하면서 있었던 이슈들을 정리해본다.Multi-window (멀티윈도우, 다중 창 모드)기존에 제공하던 LGE 자체 분할 윈도우 기능을 들어내고 N OS에서 제공하는 API를 사용하여 적용하였다.이번 OSU로인해 가장 많은 일을 하게 된 주요 사항이다. 우리처럼 규모가 좀 되는 회사가 아니면 복잡한 UI를 멀티윈도우에 맞춰 개발하기 쉽지 않을 것 같다. 게다가 초기의 developer preview들은 시도때도 없이 오동작을 하여서 개발과 테스트하기가 어려웠고 구글에 대해 이를 갈게 하는 원인이 되었다.이슈가 너무 많아 나열하기도 어려운데...
안드로이드 텍스트 뷰(TextView)는 화면 끝에 위치할 단어가 길어져 잘릴 것 같으면 그 단어를 자동으로 다음 줄로 줄바꿈 해 줍니다. 이 것을 Word wrap 또는 line wrap이라고 하죠. 그런데 표현할 뷰가 작은 경우 자동으로 줄바꿈 되어 보이지 않았으면 하는 때가 있어요. 그럼 아래와 같이 하면 잘 됩니다.myString.replace(" ", "\u00A0");출처의 작성자도 hack같은 코드라고 합니다만.. 가장 심플하면서도 만족스럽습니다. 모든 공백을 \u00A0으로 바꾸어 주는데요, u00A0은 No-break space 기호로, 스페이스로 보여지지만 워드 분리를 하지 않기 위한 용도로 사용합니다.Android M os에는 android:breakStrategy 옵션도 생겨서, 하..
소프트웨어 장인국내도서저자 : 산드로 만쿠소 / 권오인역출판 : 길벗 2015.09.25상세보기모 개발 커뮤니티 광고에 계속 등장하고 추천 글이 있어서 읽게 되었습니다. 장인 정신이라는 말을 개인적으로 좋아하기도 하고, 소프트웨어 개발은 각종 방법론보다는 개개인의 능력과 자세가 우선이라는 생각을 가지고 있어 관심 있게 보게 되었습니다.저자는 그동안 애자일이 가지고 있던 선입견을 극복하지 못한 원인에 대해 분석하고 이를 받아들이기 쉬운 소프트웨어 장인정신 선언으로 대체하려고 합니다. 예를 들면 '변화에 대응하는 것뿐만 아니라, 계속해서 가치를 더하는 것을,'이라고 말을 하는데, 계속해서 가치를 더한다는 것은 누구나 수긍하고 좋아하는 것이므로 쉽게 방향을 설정할 수 있고 이에 대한 세부 방법론으로 리팩토링이..
폴리글랏 프로그래밍국내도서저자 : 임백준출판 : 한빛미디어 2014.03.03상세보기'폴리글랏'은 다양한 언어를 말할 수 있는 능력을 말한다.폴리글랏 프로그래밍이란 하나의 언어로만 프로그래밍 하는 것이 아니라 여러 프로그래밍 언어를 사용할 수 있고, 이를 이용하여 프로그램을 작성한다는 의미이다. 현재는 정말 다양한 언어들이 나와 있고 서로 선택해 달라고 각축장을 벌이고 있다. 비즈니스 개발 전체를 삼켜버릴 듯했던 자바는 이제 조금씩 꺾여가고있고, 안드로이드에 의해 새로운 분야가 개척되는가 했더니 오라클과 구글의 싸움으로 앞을 알 수 없는 환경에 처해있다.올해부터 회사에서도 함수 지향 언어들에 대한 관심이 높아져 가고 있다. 나도 최근 Scala와 같은 언어들에 대해 공부를 하기도 했는데, 배우면 배울수록..
코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기국내도서저자 : 제프 앳우드(Jeff Atwood) / 임백준역출판 : 위키북스 2013.11.28상세보기StackOverflow의 그분께서 쓰신 책으로, 익히 잘 알려진 Coding Horror 블로그의 글을 엮은 책이다. '코딩 호러의 이펙티브 프로그래밍'이라는 책이 먼저 나왔는데, 그쪽은 좀 더 전문적인 글이고 이 책은 가볍게 읽을 수 있는 다양한 주제를 담고 있다.저자는 어떤 주제에 대해 항상 다른 시각으로 접근해 보려는 것 같다. 많은 에피소드들이 그러한 내용을 담고 있고, 그중 229페이지에 나와있는 열 개의 '무시무시한 아이디어'는 참 흥미롭다. 사람들의 직관에 어긋나는 요소들을 추출하여 StackOverflow를 만드는데 기반이 되는 원칙을 ..
가장 빨리 만나는 자바 8국내도서저자 : 카이 호스트만(Cay S. Hortsmann) / 신경근역출판 : 길벗 2014.05.19상세보기지난번 Yes24에 "소프트웨어 장인"책의 서평을 남기고 나서 출판사로부터 우수 서평으로 선정되어 책을 한 권 받았습니다. 책을 골라달라고 하여 이 책인 "가장 빨리 만나는 자바 8"을 골랐고 시간이 한참 지났지만 이제야 다 읽게 되었습니다.책 크기는 크지 않았습니다. 소설책만 한 판형에 장수도 250쪽 수준이라 부담스럽지 않아 좋았어요. 크기에 비해 내용이 만족스럽고 예제도 풍족하였습니다. 자바 8의 중요한 변경점인 람다와 스트림에 큰 할당을 하고 있지만 병행성 부분이나 Nashorn 자바스크립트엔진 등 기타 다양한 이야기들도 놓치지 않고 담고 있었습니다. 또한 Ja..
제가 사용하는 Bash shell alias를 공유합니다. 사용하는 리눅스 시스템에 맞춰 변경이 필요한 것도 있고 그렇습니다.alias vi='vim'alias c='clear'alias ll='ls -l'alias la='ls -A'alias l='ls -CF'alias dir='ls -al'alias lh='ls -lh'alias l='ls -CF'alias edb='vi ~/.bash_aliases'alias cd..='cd ..'alias ..='cd..'alias rd='rmdir'alias md='mkdir'alias cp='cp -i'alias mv='mv -i'alias rm='rm -i'alias tarc='tar czvvf'alias tarx='tar xzvvf'alias psa='ps..
Google IO 2014의 세션 중 하나로, 퍼포먼스 문제를 개발 문화로 만들어야 한다는 이야기를 하고 있다. 그래서 제목이 Perf(ormance) Culture이다. 인상깊게 본 것들이 많아 여기에 주요 포인트를 메모하고자 한다. 동영상은 아래에서 볼 수 있다.https://www.google.com/events/io/io14videos/711a595b-70ca-e311-b297-00155d5066d7퍼포먼스에 대해 항상 주목해야 할 세가지 주제Web 개발에 대해 포인트를 맞추고 이야기하지만 Android app에서도 동일하게 생각해볼 만 하다. 사용자가 접하는 것은 비슷하기 때문이다.Traffic statsdevices, geography, user journey : 다양한 기기, 사용자들의 물리..
안드로이드(Android)의 Fragment는 앱 개발에 항상 써 오고 있지만 왜 써야 하는지 이야기 해 보라면 잘 정리되지 않는다. 정리해 보도록 하자.장점 : 단점을 커버할 만한 몇가지 중요한 장점을 지니고 있다.디바이스 차이를 다루기 위해 태블릿은 커다란 화면을 가지고 있고 모바일에서 보여주던 그대로 보여줄 경우 넓은 화면을 제대로 활용하지 못한다는 느낌을 줄 수 있다. 때문에 이중 분할과 같은 형태로 카테고리 뷰와 컨텐츠 뷰를 보여준다던지 하는 방식으로 화면을 채워볼 수 있다. 이 때 사용할 수 있는 것이 Fragment이다. 간단히 말하자면 태블릿과 폰 간의 화면 크기 차이로 화면 영역을 Fragment로 분리하고 이를 조합하여 보여준다고 할 수 있다.화면 사이에 데이터 전달분리된 Activit..
TDD에서 개개의 단위 개발에 적용하는 방법론으로, 빠른 개발 + 빠른 피드백을 목표로 한다. 아래의 순서로 진행되고, 3번은 필요에 따라 하면 된다.Red - 테스트 케이스를 작성한다. 당연하게도 Fail이 발생한다.Green - 테스트를 통과하도록 빠르게 기능을 구현한다. YAGNI 원칙을 지킬 것.Refactor - 작성된 코드가 만족스럽지 않다면 리팩토링한다.이를 통해 얻는 것은 아래와 같을 것으로 생각된다.짧은 Cycle로 Feedback이 빨라진다.코드에 대해 판단하는 타이밍이 많아지게 된다. 계속적으로 리팩토링에 대해 고민하게 된다.기능이 동작하도록 재빨리 코드를 작성하고(폭탄돌리기 하듯), 편안한 마음으로 리팩토링을 한다.* YAGNI - You ain't gonna need it!필요 없..