개발자 이야기

오픈소스의 활용 본문

개발이야기

오픈소스의 활용

프란5 2015. 11. 19. 10:19
반응형

어디선가 봤던것같은.. 익숙한 UI/UX.. 



 













이것은 모두 오픈소스이다.


https://github.com/wasabeef/awesome-android-ui



UI/UX가 개발에 상당부분 차지하다보니, 예전부터 부담이 되어왔다. 만드는것도 부담, 고쳐달라면 더 부담.

요즘은 오픈소스가 워낙 깔끔하게 잘 만들어져있고, 

안드로이드 스튜디오의 개발환경이 그것을 잘 쓸수 있도록 갖춰져 있다보니,

누구나(!) 손쉽게 적용이 가능하다.


인테리어 관련앱을 조사하다가, 1위앱을 파해쳐보니 오픈소스가 70%를 차지할정도로 비중이 컸다.

70%중 60%는 UI/UX관련 코드였고, 10%정도만이 기능(otto-EventBus, volley-ImageLoader)에 관련된 코드였다.


EventBus는 Event를 정리하기 어려운 상황(ex. Event발생후 다수의 Activity에 알려야 될때)을 정리할수 있다.

나는 지금까지 Observer로 처리를 했는데, 이것을 변형한게 아닌가 싶다.


ImageLoader는 이미지를 병렬로 요청해서 처리하는 라이브러리이다.

여러개의 이미지를 불러와서 처리하는건 손이 많이 가는 작업이다.

1. 기본적으로 이미지를 불러오기 위해 통신을 할때는 백그라운드로 실행하여, 화면이 freezing이 되는걸 막아야한다.

2. 여러개의 이미지를 불러올때는 순차적으로 가져오면 오래걸리므로 스레드를 사용해야한다.

3. 불러와야 되는 이미지가 100개라고 100개를 한번에 요청하면 안된다. 5개씩 10개씩 끊어서 스케쥴링을 해야한다.

4. 스레드를 사용하면 가져온 순서가 정해지지않아, 성공한 요청과 실패한 요청을 구분해야한다.

5. 이미지를 가져오면 그것을 화면에 뿌려주고, 그 요청은 종료하고 다른 요청을 추가로 처리하면서, 5개나 10개를 유지해야한다.


6. 실패한 요청은 다시 요청해야한다.

등등..


volley 라이브러리를 사용하면, 20여줄만 추가해서 처리가 가능하다.

나는 얼마전까지 직접만든 라이브러리를 사용해왔다. 쩝.


경험만 있다고 그것을 고수했다간 오히려 생산성이 떨어진다.

개발자는 계속 시대에 맞게 자신을 바꿔야한다.


반응형