-
Notifications
You must be signed in to change notification settings - Fork 0
나도 오픈소스 개발자? (jitpack 배포기)
HyeonSeongKang edited this page Aug 29, 2023
·
3 revisions
안녕하세요. 프론트엔드 팀의 강현성
입니다.
이번 프로젝트에서 '백카사전'이라는 기획이 있어 이 부분을 어떻게 라이브러리화 했는지 과정에 대해 공유하려 합니다.
백카사전은 TextView의 특정 키워드에 사용자 정의 스타일을 적용하고 클릭했을 시 콜백 함수를 리턴해 줍니다. 사용자는 이 콜백 함수를 받아 구현체를 작성하면 됩니다. (저희는 다이얼로그를 보여줬습니다.)
TextView의 확장함수로 특정 키워드에 특정 스타일을 적용한 뒤 클릭 시, 콜백 함수를 리턴한다.
-
indexOf
함수를 사용하여 TextView의 텍스트에서 특정 키워드의 위치를 찾습니다. -
ReplacementSpan
사용하여 해당 키워드에 사용자 정의 스타일 적용합니다. -
ClickableSpan
을 통해 클릭 이벤트 추가합니다. -
SpannableStringBuilder
에 스타일과 이벤트 적용한 텍스트 저장 후 TextView에 설정합니다.
-
SpannableStringBuilder:
- 역할: 가변적인 문자열에 다양한 스타일과 속성 적용.
- 특징: 하나의 문자열 안에서도 부분적으로 다양한 스타일 적용 가능.
-
ReplacementSpan:
- 역할: 텍스트의 일부분을 재정의하여 그려줌.
- 특징: 사용자 정의 그리기를 위한 고급 스타일링 적용 가능.
-
ClickableSpan:
- 역할: 텍스트의 특정 부분 클릭 가능하게 만듦.
- 특징: 텍스트의 일부에 클릭 이벤트 추가.
깃허브 저장소 생성:
- 라이브러리를 호스팅하기 위해 전용 GitHub 저장소를 생성합니다.
라이브러리 설정:
-
build.gradle
파일에 라이브러리의 버전,artifactId
,groupId
등 필요한 정보를 명시합니다. -
필요한 경우,
.yml
파일 또는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>
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
라이브러리 코드 푸시:
- 작성한 라이브러리의 코드와 설정 파일들을 깃허브 저장소에 푸시합니다.
릴리스 및 태그 생성:
- 라이브러리의 버전을 관리하기 위해 GitHub에서 새로운 릴리스를 생성하고, 해당 릴리스에 태그를 부여합니다.
JitPack 연동:
- JitPack 웹사이트에 접속하여 깃허브 저장소 주소를 입력하고,
Lookup
버튼을 클릭합니다. - 나타난 라이브러리의 릴리스 버전들 중, 배포하고자 하는 버전을 선택하여
Get it
버튼을 클릭합니다. 이 과정에서 JitPack이 라이브러리를 빌드하고 저장소로 호스팅합니다.
Gradle 설정:
- 프로젝트의
build.gradle
파일에 JitPack 저장소 주소를 추가합니다. - 라이브러리의 의존성을 추가하여 사용하고자 하는 프로젝트에도 동일한 설정을 반영합니다.
- FE - 나도 오픈소스 개발자? (NPM 배포기)
- FE - 합성 컴포넌트에 스토리북 한 스푼 🥄
- FE - Tailwind CSS 찐하게 사용해보기
- AOS - 안드로이드 네트워크 연결
- AOS - API 요청에 따른 동적 탭 생성
- AOS - 나도 오픈소스 개발자? (jitpack 배포기)
- AOS - 폭죽 애니메이션
- AOS - 가이드 모드 애니메이션
- AOS - 뷰모델과 애니메이션을 같이 사용했을때의 ISSUE
- BE - 무중단 배포에 대해 알아보자!
- BE - 더 무중단스러운 배포를 위한 graceful shutdown
- BE - 쿼리 최적화에 대해 알아보자!
- BE - 실전, 쿼리 가속도 업!