Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gradle Plugin 제작 실패기

Jimmy Kim
February 28, 2018

Gradle Plugin 제작 실패기

Gradle을 사용해서 빌드함에도 불구하고, 자세히 아는 경우는 드물다. 라이브러리 임포트 용도 외에도 다양한 기능 구현이 가능한 그래들 플러그인을 만들며 겪은 실패기를 가볍게 풀어낸 슬라이드. GDG Seoul Lightning Talk에서 사용된 슬라이드.

Jimmy Kim

February 28, 2018
Tweet

More Decks by Jimmy Kim

Other Decks in Programming

Transcript

  1. 왠 발표 주제 Gradle? - 빌드 툴킷으로 빌드 프로세스 자동화

    및 관리 - 하지만 자세히 아는 경우는 드뭄 - 의문 - Retrolambda, Fabric, Genymotion 플러그인은 어떻게 작동하는걸까? - 공유 해보자! - 실패기 공유 - 튜토리얼은 아님! 자료는 공유! - Gradle Plugin 을 만들어보고 싶은 분 - 같은 실수 방지 - 간접 프로젝트 홍보
  2. 만들고 싶었던 것? https://github.com/wotomas/ShieldAuto - 새 프로젝트 Proguard Config -

    노동, 의문의 버그, 등 - consumerProguardFiles - 지원 없는 라이브러리들 다수 - 집단 지성
  3. Gradle Plugin… How? - 가장 먼저 공식 문서 확인 -

    https://docs.gradle.org/current/userguide/custom_plugins.html - 기본적인 튜토리얼 - Hello World 는 하겠어! - 오픈소스: 구글 검색 - https://github.com/jonathanhood/gradle-plugin-example - 대부분 Groovy 로 제작 - 나는 Groovy 쓰기 싶어! - https://plugins.gradle.org/ - 그래들 공식 플러그인 포털
  4. Gradle Plugin… How? - 오픈소스: 깃허브 검색 - https://github.com/search?utf8=%E2%9C%93&q=gradle+plugin&type= -

    리스트를 보며 자바 예제 검색 - https://github.com/classmethod/gradle-aws-plugin 좋은 자바 참고 - 과거 세미나: 유튜브 검색 - https://www.youtube.com/results?search_query=gradle+android+plugin - Udacity 에서 제공하는 트랙 - Gradle Summit 2017: Genymotion 팀
  5. 가장 중요 - 반복, 반복, 그리고 또 반복 - 속독과

    정독 - 다양한 매체로 정보 접근 (덜 지루함) - 숙면
  6. 숙면 이후? - 플러그인으로 만드는 이유 - Reusability - 공유

    및 관리 - Testing - 독립적 테스팅 - Flexibility - 낮은 결함도로 자유로운 변경
  7. 시작은 해야 하는데.. - 익숙하지 않음 - 인풋은 언제 -

    프로젝트 코드 수정은 어떤 시점에 - Gradle Lifecycle - https://docs.gradle.org/current/userguide/build_lifecycle.html - Initialization, Configuration, Execution - 특정 Lifecycle 에서는 변경이 불가능한 변수들, 등 - 그래서 State Diagram 만듬 - 오로지 나를 위한
  8. 공개 후 피드백! - 공개 아이콘 사용 후 Thanks To

    추가 - 이름 추가하고 오픈! - GDG KR Slack Channel - AndroidDev Subreddit 추가 - https://www.reddit.com/r/androiddev/
  9. Honorable Mention “추가 되어있는 룰들 엉망이야!” “접근 방법이 마음에 안들어.

    라이브러리의 사용성에 따라 Proguard 세팅이 너무 다양해!” “마법적인 솔류션을 원하면 그냥 minify를 쓰지마! (위트)”
  10. 아차! - README.md 파일의 부실함 - 불친절한 설명 - Disclaimer

    부재 - Proof of Concept 이다 - 앞으로의 방향 - 책임 전가 - 테스팅, 차트, 자료 등 https://www.reddit.com/r/androiddev/comments/7tr64d/shieldauto_gradle_plugi n_for_better_proguard/