Swift Playgrounds에 바라는 개선점들

Scope.H·2024년 4월 5일
0

iPad에서 앱을 개발할 수 있는 길을 열어준 iPad용 Playgrounds.

평소에 iPad를 Mac보다 더 즐겨쓰는 필자도 이 앱 덕분에 간단하게 생각나는 아이디어를 iPad만을 이용해서 종종 옮겨보곤 한다.

다만, 여러 부분에서 좀 아쉬운 점이 있는데 iPad라 그러려니 싶어도 좀 이해가 안되는 것들이 몇 있다.

앱 배포의 문제

Playgrounds를 접하는 유저층들은 주로 코딩을 처음 접하거나, 혹은 간단하게 개인 프로젝트를 하거나, 간단한 앱을 만들어 지인과 공유하고 싶은 라이트 개발자들이 대부분일 것이다.

Apple에서 현재 제공하는 Playgrounds 결과물, 즉, 바이너리 앱의 배포 방식은 2가지이다.

  • Apple Developers 유료 계정을 이용한 App Store Connect 배포
  • Mac의 Xcode로 옮겨 빌드하기

각각의 장점과 단점을 살펴보자.


유료 계정을 이용한 App Store Connect 배포

iPad용 Playgrounds에서 만들어진 App을 직접 바이너리 형태로 공유하거나 배포하기 위해서는 App Store Connect에 올리는 방법밖에 없다.

→ App Store Connect를 통한 앱 제출 알아보기

확실히, App Store Connect를 이용해서 공유하면 훨씬 안전한 배포가 가능하고, TestFlight을 통해 다수의 사람들과 공유하여 사용할 수 있다는 장점이 있다.

그러나, App Store Connect에 앱을 제출하기 위해서는 유료 버전의 Apple Developers 계정 가입이 필수적이며, 비용은 1년에 약 12만원(USD $99)이다. 당연하지만 1년마다 갱신하지 않으면 인증서 만료로 인해 해당 앱은 사용 중지가 된다.

App Store에 앱을 제출하기 위해서 Playgrounds App을 만드는 개발자들이라면 문제가 되지 않겠지만, 그저 라이트한 앱을 소수/혼자 사용하기 위해 개발하는 개발자가 앱 하나 배포하자고 저 비용을 감내해야 한다는 것은 문제가 있다고 본다. 그 앱을 통해서 수익이 나는 것도 아닌데 말이다.


Mac의 Xcode로 옮겨 빌드하기

이 방법을 사용하면 유료 계정이 없더라도 빌드가 가능하다. macOS용으로 제공되는 Apple용 IDE인 Xcode를 사용하여 Playgrounds App 프로젝트를 불러와 빌드하는 것이다. 이 방법을 사용하면 사용 중인 Mac과 연결한 기기들에 대해 앱 배포를 진행할 수 있으며, 무료 계정이더라도 7일간은 갱신 없이 사용이 가능하다. (7일 이후에는 인증서 갱신을 위해 다시 빌드해야 한다)

단점은 Mac을 가지고 있어야 하며, 해당 프로젝트를 macOS로 옮겨야 하고, 혼자 쓸 때는 몰라도 두 명 이상이 쓰기에는 많은 애로사항이 있다는 점이다. (Mac과 연결된 기기만 배포가 가능하므로)


그나마 iPad에서 다른 사람과 앱을 공유하는 방법은, Playground 자체를 통째로 공유하는 것이다. 당연히 여기에는 소스 코드가 포함이 되며, 공유받는 사람은 iPad와 iPad용 Swift Playgrounds 앱을 보유하고 있어야 한다. 소스코드를 까보는 게 싫거나, 괜히 건드려서 오류가 나게 될까봐 신경 쓰이는 개발자라면 지인이 제발 소스를 건드리지 않기를 바라는 수밖에 없다. 또한, iPhone으로는 절대적으로 공유가 불가능하다. iPhone용으로는 Playgrounds 앱이 존재하지 않기 때문이다.

Apple의 확장성

Apple은 최근 EU의 반독점법 관련 제재에 따라 EU 지역 Apple 사용자들에 대한 Sideloading을 허용했다. 서드 파티 Marketplace 사용과 Webkit 기반이 아닌 다른 웹브라우저 사용 허가 등이 주요 항목이다.

최근 미국 법무부에서 Apple에 대해 반독점법 위반으로 고소를 했다는 소식이 들려왔다.
Swift Playgrounds 앱에서 앱 개발이 가능하게 만든 건 좋지만 그 앱을 자유롭게 사용할 수 있는 방법이 극히 제한적이라는 점은 솔직히 너무 아쉽다.

실제 Swift Playgrounds에서 앱을 미리보기로 실행해 보면, Playgrounds 내에서 실행되는 Preview Canvas의 형태가 아닌, 별도의 앱을 자체적으로 빌드하여 임시로 iPad에 설치하여 실행하고, 실행이 중지되면 해당 App을 비활성화하는 식으로 테스트 과정이 이루어지는 걸 확인할 수 있다.

즉, 온디바이스에서 빌드가 가능하다면, 임시로 실행하다가 숨기는 식으로만 할 게 아니라, 최종 단계에서 빌드된 앱을 사용할 수 있게 해 주면 되는 일 아닌가 싶다.

혹자는, “그럼 Mac 및 App Store 수익에 대한 타격이 있지 않겠냐”고 할 테지만, Playgrounds 자체에서 이미 사용할 수 있는 Package가 제한되어 있다. 라이트한 개발에 있어서는 충분하지만, Full Feature를 사용하려면 결국 Mac의 Xcode를 사용해야 한다.
또한, 그런 앱들은 애초에 App Store에 배포하려고 만드는 앱도 아닐 뿐더러 설령 그렇다 하더라도 App Store 심사에서 대부분 탈락하게 된다.
즉, 어느 쪽이든 수익에 타격은 없거나 극히 미비하다는 것이다.
반면, 사용자는 원하는 미니 앱을 심심풀이로 만들어보는 등 앱 개발의 진입장벽이 하나 없어지는 셈이니 Apple이 지향하는 More Creative 측면에서는 분명 더 많은 Plus가 될 것이라 생각한다.


Apple에 바란다

Playgrounds App에 대한 나의 희망사항은 아래와 같다.
1. 로컬 배포 기능을 추가한다.
2. 로컬 배포 시 발생할 수 있는 보안 문제에 대한 경고를 추가하여 사용자가 최종적으로 선택할 수 있게 한다. (이미 Shortcuts에서는 지원하는 기능이다)
3. AirDrop을 통한 iPhone, iPad로의 App 공유가 가능하게 한다.

이번 WWDC24에서 Swift와 관련된 내용이 얼마나 나올지 궁금해진다.

profile
개발자이고 싶은 미니 코딩쟁이... TIL 글을 주로 올립니다.

0개의 댓글