Skip to content

나도 오픈소스 개발자? (jitpack 배포기)

HyeonSeongKang edited this page Aug 29, 2023 · 3 revisions

안녕하세요. 프론트엔드 팀의 강현성 입니다.

이번 프로젝트에서 '백카사전'이라는 기획이 있어 이 부분을 어떻게 라이브러리화 했는지 과정에 대해 공유하려 합니다.

📖 백카사전

백카사전은 TextView의 특정 키워드에 사용자 정의 스타일을 적용하고 클릭했을 시 콜백 함수를 리턴해 줍니다. 사용자는 이 콜백 함수를 받아 구현체를 작성하면 됩니다. (저희는 다이얼로그를 보여줬습니다.)

라이브러리 구현 및 배포 과정


🛠 구현 과정

🎯 목표

TextView의 확장함수로 특정 키워드에 특정 스타일을 적용한 뒤 클릭 시, 콜백 함수를 리턴한다.

📜 방법

  1. indexOf 함수를 사용하여 TextView의 텍스트에서 특정 키워드의 위치를 찾습니다.
  2. ReplacementSpan 사용하여 해당 키워드에 사용자 정의 스타일 적용합니다.
  3. ClickableSpan을 통해 클릭 이벤트 추가합니다.
  4. SpannableStringBuilder에 스타일과 이벤트 적용한 텍스트 저장 후 TextView에 설정합니다.

🔍 사용 클래스

  • SpannableStringBuilder:

    • 역할: 가변적인 문자열에 다양한 스타일과 속성 적용.
    • 특징: 하나의 문자열 안에서도 부분적으로 다양한 스타일 적용 가능.
  • ReplacementSpan:

    • 역할: 텍스트의 일부분을 재정의하여 그려줌.
    • 특징: 사용자 정의 그리기를 위한 고급 스타일링 적용 가능.
  • ClickableSpan:

    • 역할: 텍스트의 특정 부분 클릭 가능하게 만듦.
    • 특징: 텍스트의 일부에 클릭 이벤트 추가.

🚀 배포 과정

  1. 깃허브 저장소 생성:
  • 라이브러리를 호스팅하기 위해 전용 GitHub 저장소를 생성합니다.
  1. 라이브러리 설정:
  • build.gradle 파일에 라이브러리의 버전, artifactId, groupId 등 필요한 정보를 명시합니다.

  • 필요한 경우, .yml 파일 또는 pom.xml을 통해 추가 설정을 진행합니다.

  • pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.github.hyeonseongkang</groupId>
    <artifactId>baekcasajeon</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>
    <description>Baekcasajeon Library</description>
</project>
  • jitpack.yml

jdk:
  - openjdk17
before_install:
  - ./scripts/prepareJitpackEnvironment.sh
install:
  - FILE="-Dfile=baekcasajeon-release.aar"
  - mvn install:install-file $FILE -DgroupId=com.github.hyeonseongkang -DartifactId=baekcasajeon -Dversion=1.0 -Dpackaging=aar -DgeneratePom=true
  1. 라이브러리 코드 푸시:
  • 작성한 라이브러리의 코드와 설정 파일들을 깃허브 저장소에 푸시합니다.
  1. 릴리스 및 태그 생성:
  • 라이브러리의 버전을 관리하기 위해 GitHub에서 새로운 릴리스를 생성하고, 해당 릴리스에 태그를 부여합니다.
  1. JitPack 연동:
  • JitPack 웹사이트에 접속하여 깃허브 저장소 주소를 입력하고, Lookup 버튼을 클릭합니다.
  • 나타난 라이브러리의 릴리스 버전들 중, 배포하고자 하는 버전을 선택하여 Get it 버튼을 클릭합니다. 이 과정에서 JitPack이 라이브러리를 빌드하고 저장소로 호스팅합니다.
  1. Gradle 설정:
  • 프로젝트의 build.gradle 파일에 JitPack 저장소 주소를 추가합니다.
  • 라이브러리의 의존성을 추가하여 사용하고자 하는 프로젝트에도 동일한 설정을 반영합니다.

🔗 프로젝트 깃허브

Baekcasajeon


Clone this wiki locally