안드로이드를 실제 개발하다보면 이미지는 빠질 수 없는 요소인 것 같습니다.
심지어, 많은 여타의 어플레케이션을 보더라도 이미지 없이 단순한 텍스트로만 UI를 구성하는 어플리케이션은 보기 힘들지 않나요?

화면을 구성함에 있어 조금 더 생기있고, 화려해보이는 목적으로 사용되기도 하고,
혹은, 특정 상품을 팔기 위한 어플리케이션의 경우 상품에 대한 이미지는 필수 요소일 것으로 보입니다.
이러하듯, 이미지를 표출하기 위해서는 우리가 개발하는 어플리케이션에서 유저가 컨텐츠를 작성할 때 이미지를 등록 할 수 있는 무엇인가를 제공해주어야 합니다.

이번 포스팅에서는 제가 개발한 CroPicker라는 안드로이드용 이미지피커 라이브러리를 소개해드릴까 합니다.
라이브러리를 어떻게 작성하는지에 대해서는 기회가 된다면 다른 포스팅에서 제공할 수 있도록 포스팅 계획을 수립해 보겠습니다.
이번 포스팅에서는 머리아프게 하지 않고, 이러한 라이브러리도 있구나?를 알려드리기 위해 라이브러리를 소개하는 짧은 글을 작성해볼까 합니다.

Github

코드가 궁금하시거나, 결과물부터 보시고자 한다면 Github를 확인해주세요!
많은 질타와 조언도 부탁드립니다! 또한, 응원의 마음으로 Star도 눌러주신다면 더욱더 좋습니다!

영알못이라 번역의 도움을 통해 README를 작성했습니다.
원활한 리딩을 위해 README를 개선에 도움을 주시면 감사하겠습니다!!

CroPicker?? 이미지피커?? 그게뭔데?

저도 그렇게 수준높은 개발자가 아니므로, 정확한 용어인지는 모르겠지만,
흔히 개발자들 사이에서는 ImagePicker라고 불리우는 녀석이 있는데요!
간단하게 설명드리면 단순히 이미지를 선택할 수 있는 녀석정도로 이해하시면 될 듯 합니다.
그렇다면, CroPicker라는 녀석도 같은 기능을 하는 녀석이구나! 라고 이해되시겠죠?
CroPickerCro는 가상공간상의 제 닉네임 입니다. 왜 Cro가 되셨는지 궁금하시다면 개인적인 연락을…

CroPicker의 주요기능

이미 개발자라면 모두가 알고 있는 ImagePicker의 기능과 특별히 다른점은 없습니다.

  • 내장갤러리로 접근하여 앨범(Directory)의 정보를 가져오고 리스트로 표출합니다.
  • 앨범(Directory) 선택 시, 해당 앨범에 속해있는 이미지들을 가져오고 리스트로 표출합니다.
  • 이미지를 선택하여 원하는 이미지를 본인의 어플리케이션에 삽입할 수 있도록 지원합니다.

CroPicker를 개발하게 된 이유?

여기까지 보셨다면, 왜 별로 특별하지도 않은 라이브러리를 또 만들어내느냐 그냥 가져다쓰면되지? 하고 의문점을 남기실 수 있겠지만, 몇가지의 목적을 가지고 개발을 시작하였습니다.

첫번째, 수많이 배포된 여타의 라이브러리에서 내가 원하는 기능을 지원하는가? 였습니다.
하지만, 제가 원하는 기능을 충분히 포함한 라이브러리는 많았지만, 제가 원하는 모든 기능을 포함한 라이브러리를 찾기란 쉽지 않았습니다.
물론 여타의 수많은 라이브러리 중에 적당히 기능을 포함하고 있다면 Fork 받아 원하는 기능을 추가하고 수정하여 사용할 수 있겠지만,
어짜피 건들여야한다면? 이참에 나도 라이브러리라는거 한번 만들어보자! 라는 마인드의 시작이였습니다.
몰랐던 내용이 있으면 공부도하고 라이브러리도 한번 배포해보고 일석이조 아닐까요?

두번째, 저와같은 초급개발자도 라이브러리를 만들수 있을까? 라는 의문점이였습니다.
항상 남들이 만들어놓은 많은 라이브러리르 사용하면서 우와... 나도 이런 실력을 가지고 있으면 얼마나 좋을까?라는 부러움만 표출하고 있었는데요,
조금만 생각을 전환하니 나라고 못만들게 뭐있어?라는 생각이 들더라구요.

물론 실력이 좋으신 분이 보신다면 코드의 품질이 좋진 않을 수 있어, 조금은 부끄러움도 있었고 공개를 해야되나? 라는 고민도 많이 했었습니다.
하지만, 못하거나 모르는건 부끄러운게 아니라는 말이 있듯이, 나같은 초보개발자도 이런거 할 수 있어! 라는 것을 다른 분들에게 보여드리고 싶었습니다.

세번째, 어찌보면 행운인지 불행인지 모르겠지만 저는 4년이라는 짧다면 짧고 길다면 긴 개발생활을 현업으로 하는 개발자 입니다.
하지만 한번도 그토록 많은 분들이 말하는 사수라는 분은 존재하지 않았고, 제가 작성하고 있는 코드가 제대로된 코드인지도 알지 못한채 시간이 흘러왔습니다.
그러던 중, 남들보다는 늦게 GitGithub라는 녀석을 알게되었고, Github에 내가 짠 코드를 공개하면? 아무의견이 없을 수도 있는 슬픈 일이 발생 할 수 있지만,
혹시나 관심을 가져주는 분이 계시다면 그게 바로 나에게는 선배이자 네트워크 사수가 되지 않을까라는 생각이 들더라구요.
그래서, 이렇게 라이브러리를 공개 / 배포함으로써 잘못된 부분에 대한 질타를 받고 싶었습니다.
질타를 받아야 잘못된 코드인 것을 인지 할 수 있고, 개선해나갈 수 있으니까요!

마무리

어찌보면 푸념의 글이 될 수도 있을 것 같네요.
여튼 결론은! 초보개발자도 충분히 라이브러리를 만들 수 있고, 본인이 작성한 코드가 부끄러운 것이 아닌 한발짝 더 성장해나가는 과정으로 삼을수 있을 것 같다! 입니다.
초보개발자에게는 앞으로 더 배우고 성장할 일이 훨씬 많으니 본인의 실력에 좌절하지 말고, 자신감을 가지고 저처럼 라이브러리를 개발하거나 코드를 오픈하여 한발짝 더 성장하는 개발자가 됩시다!