Show
Scriptable 은 자바스크립트를 이용한 위젯 만들기 앱입니다. 아이폰은 iOS14부터 본격적으로 위젯을 지원했지만, 아직 자유도가 높다고 하긴 힘든데요. Scriptable으로 더욱 자유로운 화면 구성과 기능을 담은 위젯을 만나봅시다. 목차
지금까진 달력을 위젯에 띄우고 싶을 때 특정 달력 앱을 개발한 사람이 제공하는 디자인 중에서 골라야 했습니다. 하지만 Scriptable에서 누군가 만들어 놓은 위젯을 골라 조금 수정하면 원하는 위치에 원하는 디자인으로 일정을 표시할 수 있습니다. 레딧의 Scriptable 서브채널 가 보면 아이디어를 많이 얻을 수 있어요. 또한 Shareable이라는 사이트에서도 코드를 얻을 수 있습니다. 처음 오신 분들을 위해 제가 Scriptable을 사용해 날씨-캘린더 위젯을 세팅한 과정을 정리해보았습니다. 2. Scriptable 앱 다운로드 – WEATHER CAL WIDGET BUILDER 설치먼저 앱스토어에서 Scriptable 앱을 다운로드합니다. 갤러리 탭에 가면 상단에 Weather Cal Widget Builder를 추천하고 있는데 그럼 소스 코드가 화면에 나타나는데, “Add to My Scripts”를 눌러 폰으로 코드를 내려 받읍시다. 이어서 우측 하단에 ▶ 버튼을 눌러 코드를 실행해보면, 처음이라 “배경부터 선택하라(choose a background)”고 뜹니다. Continue를 누르고 일단 Image from photos를 선택해서 대충 일단 아무 사진이나 깔아줍니다. 다크 모드 사진 따로 지정할 거냐고 물으면 No 선택. 이제 미리보기를 통해 위젯 모양을 구경하고, close를 눌러 창을 닫고, Done을 눌러 일단 빠져나가요. 본격적으로 위젯 활용을 위해 아이폰 홈화면에 위젯을 추가합니다. 저는 Scriptable 위젯을 큰 사이즈로 위 쪽으로 추가하였어요. 3. Weather Cal Widget Builder 배경 바꾸기보통 위젯을 넣고 바르게 스크립트를 연결했다면 아래와 같이 배경이 잘 적용되어 홈화면에 보이게 됩니다. 원하는 배경으로 다시 변경하는 건 간단합니다. 다시 Scriptable 앱 실행하면, Scripts 리스트에 Weather Cal Widget Builder 말고 “Weather Cal code”가 생성되었을 겁니다. 방금 전에 빌더가 만든 위젯 코드입니다. 실제 위젯의 코드는 “cal code” 안에 있고, 빌더를 실행해 손쉽게 세부 디자인을 수정할 수 있습니다. 이 놈은 지우지 말고 두세요. 대신 Weather Cal Widget Builder 를 누르면 메뉴 팝업이 뜹니다. 여기서 Change Background 메뉴로 들어가 쉽게 배경을 교체할 수 있어요. 보통 Image from Photos 항목을 통해 내 사진첩에 있는 사진으로 배경을 깔아주게 됩니다. 사진을 지정하면 다크 모드에는 다른 사진을 쓸 거냐고 한 번 더 물어오는데 귀찮으니까 No. 이제 위젯 기본 기능을 활용하면서 배경을 교체할 수 있습니다. 4. 위젯 배경 투명하게 만들기다음으로 위젯 배경을 투명하게 보이도록 만들어볼게요. 실제 배경이 투명해지는 것은 아니고 그렇게 보이도록 오려 붙일 겁니다. 1) 배경 위에 글자와 아이콘이 표시될테니까 좀 깔끔한 단색 계열의 배경 사진을 준비하고, 2) 위젯의 위치에 맞게 정확하게 배경을 잘라주는 작업이 필요합니다. 4.1. 스크린샷 확보하기우선, 적당한 배경화면을 구해서 아이폰 홈화면 배경으로 지정합니다. 저는 보라색 밤하늘이 있는 그림을 골랐습니다. 이제 배경 벽지를 오려내야 합니다. 아무 앱 아이콘이나 길게 눌러 편집 모드로 바꾼 뒤에 화면을 오른쪽으로 계속 넘겨서 아무런 앱도 표시되지 않는 빈 페이지가 보이도록 한 뒤, 이 상태를 스크린샷으로 저장합니다. 이제 위젯을 투명하게 보이는 것처럼 속이기 위한 배경 벽지가 마련되었습니다. 4.2. 위젯 배경 오려내기다음은 화면의 위젯 위치에 따라 정확히 위젯 모양으로 배경 사진을 오려내는 작업이 필요한데요. 초기에는 좀 복잡했지만 갤러리에서 이제 쉽게 도움을 받을 수 있습니다. Scriptable 실행 후 Gallery 탭에서 ‘Transparent & Blurred Widgets’ 를 찾아 Get 합니다. 이어서 스크립트를 실행합니다. Continue to select image .. 를 눌러서 아이폰에 있는 사진을 선택합시다. 우리는 이미 스크린샷을 찍어뒀으니까요. 아까 캡처한 사진을 선택합니다. 이후 위젯 사이즈를 물어보면 “Large”를 선택하고, 위젯 위치(position)를 물어보면 “Top”을 선택합시다. 물론 위젯 사이즈나 위치를 다르게 세팅중이시면 그에 맞게 선택하세요. Transparent 를 선택하면 그대로 미세하게 잘라 원래 홈화면 배경이 뒤에 깔리게 됩니다. 취향에 따라 블러 효과를 줄 수도 있습니다. 이후 “Export to the Photos app”을 눌러 오려낸 사진을 사진첩에 저장합니다. 4.3. 기존 위젯 배경에 맞춤 배경 적용이제 다시 Weather Cal Widget Builder으로 갑시다. 그리고 배경을 교체해야겠죠? 교체 방법은 위 3번 설명을 참고하여 아까 오려낸 사진을 직접 지정하면 되겠습니다. 그럼 아래와 같이 위화감 없이 배경이 아름답게 맞춰 들어갑니다. 위젯 배경이 투명한 것처럼 보이지요? 마음에 드시나요? 이제 이 상태에서 쓰셔도 됩니다. 5. 설정값 맞춤 적용환경설정 메뉴를 통해 나만의 화면 구성을 할 수 있습니다. 화면 표시 언어, 색상, 배치 등을 바꿀 수 있어요. Scriptable 실행 후, Weather Cal Widget Builder 를 누르면 Widget Setup 메뉴 팝업이 뜹니다. Edit Preference 항목을 선택해 다양한 값을 고쳐 봅시다. 정답은 없는데 제가 쓰는 거 기준으로 알려드릴게요. 5.1. 전체 설정(Overall settings)Overall settings부터 시작합시다.
5.2. 인삿말과 텍스트(localization)여러 상황별 인삿말과 단위 표시 텍스트를 지정합니다.
5.3. 텍스트 사이즈, 색상, 폰트Text sizes, colors, and fonts 설정 화면입니다. 이건 본인이 사용할 배경 사진에 따라 어울리게 수정하여 사용하면 되겠지요. Event title은 regular가 더 이쁜 거 같습니다. 디폴트 폰트의 경우 저는 14 포인트, 색상은 e4f7f9, regular 설정입니다. Capitalization은 대문자로 강제 전환 표시 기능으로, 기본은 사용하지 않음(none)으로 되어 있어요. 색상 코드는 color picker 기능 있는 아무 앱이나 사용하면 쉽게 알 수 있습니다. 대체로 배경 설정이나 화면 레이아웃 설정을 마친 뒤에 사용하다가 특정 정보 표시가 너무 크거나 작을 때, 가독성에 문제가 있을 때 이 메뉴에서 나중에 조정하면 되지 싶네요. 5.4. 날짜 표시 설정(date)위젯의 날짜 표시(Date) 관련 설정입니다.
largeDateLineOne(첫 번째 줄)의 형식을 “d”로 변경해서 오늘 날짜만 표시하도록 하고, 두 번째 줄은 “eeee”로 변경하여 요일을 줄여쓰지 않고 모두 쓰도록 합니다. 매뉴얼에 표시 형식에 따른 약어가 잘 정리되어 있습니다.
5.5. 일정 표시 설정 (events)Events 설정입니다. 일정은 아이폰 기본 캘린더에서 가져옵니다. 따라서 구글캘린더와 같은 외부 캘린더를 주로 사용한다면 아이폰과 일단 동기화 설정을 마쳐야 합니다.
5.6. 날씨 관련 설정 (Weather)Weather 메뉴입니다.
6. 아이템 레이아웃위젯 리스트에서 우측 상단 제가 현재 사용하는 코드는 아래와 같습니다. 보시면 금방 이해가 되실 거에요. 가로줄(row)이 하나 있고, 그 아래 세로열(column)을 하나 만든 다음에, 그 안에 오늘 날짜(date), 배터리(battery), 일정(events), 여백(space)을 삽입했습니다. 그리고 오른쪽 열(column)을 하나 더 만들면서 폭을 95로 고정했고, 현재 날씨(current)와 일간 예보(daily)를 차례로 넣었네요. 어떤 항목을 어떤 순서로 어떻게 배열할 것인지 마음대로 정할 수 있습니다. 다른 사용자가 올린 그림인데, 아래와 같이 만드려면 어떻게 해야 할까요? 수정된 코드는 아래와 같습니다. 가로행(row) 첫 번째에 column을 두 개 넣었고 오른쪽 열을 78로 고정했습니다. 두 번째 행(row)에 공간(space)를 한 번 더 삽입해서 일정이 위젯의 아래 부분에 더 붙도록 해서 시원한 개방감을 살렸네요. 일간예보(daily)는 지웠고, 환경설정에서 현재 위치 정보가 표시되도록 하여 도시 이름이 나오고 있습니다.
7. 예시제가 사용하고 있는 화면을 예시로 보여드립니다. 필요에 따라 레이아웃을 변경하세요. 8. 다른 사용자들의 Scriptable 위젯 사용 화면full-weatherline-widget 은 12시간, 일주일 단위의 날씨 예보를 꺾은선 그래프로 보여줍니다. Scriptable 서브 레딧에 방문하면 재밌는 코드와 배열 아이디어를 얻을 수 있습니다. 축구 스코어 표시하기, 코로나 확진자와 사망자 표시, 달의 위상 표시, 환율과 시스템 메모리 사용량 표시, 습관 추적하기, 매일 할일 기록, 삼성스타일 화면, 터미널 스타일로 각종 정보 표시 등등.. 국내에도 한국 기준 코로나 확진자 표시를 위젯으로 구현하신 분도 계시고, 픽셀 스타일로 가장 임박한 일정만 심플하게 띄워주는 위젯도 제작하신 분이 계세요. 9. 나오며Scriptable을 통해서 아이폰 첫 화면에 더 자유롭게 필요한 정보를 띄워놓을 수 있습니다. 다만 많은 정보를 표시하는 것이 반드시 생산성에 도움이 되는 건 아닐 거에요. (2020년 11월 작성. 2022년 10월 고침.) 🍋 내용이 유익했다면 이메일 주소를 적어주세요. 다음 글을 보내드립니다. |