블로그 이전

삼성서울병원의 회진용 태블릿 앱 개발중 진료과별 기본 이미지 업로드를 위해 상하 스크롤처럼 동작하지만, 스크롤을 막아두고 버튼을 누르면 페이지 이동이 되는거처럼 보이는 레이아웃를 만든적이 있다.

예시를 들기엔 생각이 잘 나지 않지만 회원가입에서 이런식의 레이아웃을 본적이 있는거 같았다.
꼭 이전 절차를 해야 다음으로 넘어가는 그런 느낌?

앱 개발을 끝낸 후 그 레이아웃을 라이브러리로 Github에 올렸었다.
대단하진 않지만 언젠간 배포도 하고 기능 업데이트를 해야지 생각만 하고 미루다 드디어 시도했다.

작동

일단 작동 방식은 다음과 같다

ViewGroup으로 ScrollPager를 넣고 그 안에 자식 View들을 넣은 다음, ScrollPager의 함수인 scrollToView()를 호출하면 해당 View로 Scroll이 된다.(파라미터로 이동할 View를 넣어주면 된다)

라이브러리 배포

라이브러리 배포는 jitpack을 이용했다

jitpack은 따로 등록 필요없이 바로 업로드가 가능하지만 이용자가 setting.gradle에
maven { url 'https://jitpack.io' } 를 추가해줘야 한다.

build.gradle 수정

먼저 모듈 level의 build.gradle에 id 'maven-publish' plugin을 추가해준다.

그리고 베포할 라이브러리의 모듈 level의 build.gradle 최상위에 아래처럼 추가적으로 넣어줘야한다.

afterEvaluate {
    publishing {
        publications {
            // Creates a Maven publication called "release".
            release(MavenPublication) {
                // Applies the component for the release build variant.
                from components.release

                // You can then customize attributes of the publication as shown below.
                groupId = 'com.github.djawnstj'
                artifactId = ''
                version = '1.0.0'
            }
            // Creates a Maven publication called “debug”.
            debug(MavenPublication) {
                // Applies the component for the debug build variant.
                from components.debug

                groupId = 'com.github.djawnstj'
                artifactId = 'final-debug'
                version = '1.0.0'
            }
        }
    }
}

위처럼 넣으면 의존성주입 할때 url이

'com.github.djawnstj:ScrollPager:1.0.0' 

이렇게 만들어진다.

jitpack.yml 파일 생성

project 최상위에 jitpack.yml 파일을 만들어

jdk:
  - openjdk11

이 두줄을 넣어준다.

Github Release

작업한 내용을 github에 push하고

페이지 우측에 나오는 Releases - new release 를 누른다.
태그를 고르면 되는데(없으면 생성) 이 태그가 라이브러리 의존성 url의 가장 우측에 붙는 태그이다. (이걸 몰랐던 나는 v1.0.0 으로 만들었다,,,)

title 과 discription 을 적고 등록을 했다면 모든 사전작업이 끝났다.

Jitpack 등록

Jitpack 페이지에 들어가서 라이브러리 레포 링크를 넣고 Look up을 누르면 등록된 태그가 나오고 원하는 태그 옆에 Get it을 누르면 수분 이내 등록이 완료된다.

배포 후

이렇게 내 첫 라이브러리 배포를 성공적으로 마쳤다.
진짜 별거 아닌 레이아웃이지만 첫 라이브러리이고 배포까지 이루어졌다는게 너무 신기하고 뿌듯하긴 하다.

이젠 업데이트를 하고 업데이트 버전을 다시 배포하는 작업이 남았다.
업데이트는 아마
1. View를 추가하면 자동으로 ScrollPager 크기에 맞게 설정됨(강제적으로)
2. ViewGroup이 자식으로 들어오면 Exception
3. tab layout 과 연동
이 작업을 할듯하다.


참고
라이브러리 출시법 및 팁 - @thevlakk

profile
이용자가 아닌 개발자가 되자!

0개의 댓글