Ruby Native로 Xcode 없이 앱스토어와 구글 플레이 출시하기
Both stores said yes
핵심 요약
- Ruby Native를 사용하여 Xcode나 Android Studio를 전혀 열지 않고도 유료 앱 pingrb를 App Store와 Google Play에 성공적으로 출시했다.
- 단일 Rails 코드베이스와 YAML 설정 파일만으로 iOS와 안드로이드의 네이티브 UI 및 푸시 알림 기능을 구현하여 개발 복잡도를 낮췄다.
- Swift나 Kotlin 작성 없이 5일 만에 양대 마켓 심사를 통과함으로써, Rails 개발자가 모바일 앱을 빠르게 시장에 내놓을 수 있는 실질적인 경로를 제시했다.
도입
Rails 개발자가 모바일 앱을 출시할 때 겪는 가장 큰 장벽은 네이티브 언어 학습과 복잡한 빌드 도구 관리다. Ruby Native는 이런 과정을 생략하고 Rails 코드만으로 실제 앱 스토어 심사를 통과할 수 있음을 증명했다. 특히 유료 앱 심사 통과는 기술적 완성도와 비즈니스 실효성을 동시에 입증하는 중요한 지표다.
상세 요약
Ruby Native를 통한 앱 마켓 진출 성공
Joe Masilotti는 Ruby Native로 유료 앱 'pingrb'를 Apple App Store와 Google Play Store에 동시에 출시했다. 단순히 바이너리를 올리는 수준을 넘어, 양대 마켓의 유료 앱 심사를 통과함으로써 Ruby Native가 실제 상용 앱 제작에 적합한 도구임을 입증했다. 특히 Xcode나 Android Studio 같은 네이티브 개발 도구를 전혀 쓰지 않고도 출시가 가능하다는 점이 핵심이다. Rails 개발자의 앱스토어 진출을 돕는 Ruby Native: Xcode 없이 iOS 앱 배포하기에서 언급한 대로, 복잡한 배포 프로세스를 자동화한 덕분이 크다.
설정 및 코드 구현 방식
앱의 네이티브 구성은 단일 YAML 파일(config/ruby_native.yml)로 관리한다. 탭 바 구성, 경로 설정, 플랫폼별 아이콘 지정 등을 이 파일 하나로 처리하며, iOS와 안드로이드 모두 같은 설정을 공유한다.
네이티브 UI 요소는 Rails 헬퍼로 구현한다. 예를 들어 native_navbar_tag를 쓰면 iOS에서는 UINavigationBar를, 안드로이드에서는 Toolbar를 렌더링한다. 또 native_push_tag로 APNs(Apple Push Notification service)와 FCM(Firebase Cloud Messaging) 기기 등록을 처리할 수 있다. 이는 Rails의 link_to와 비슷한 방식으로 ERB 템플릿 안에서 직접 사용된다.
개발 타임라인 및 생산성
pingrb 개발에는 총 5일이 걸렸다.
- Rails 앱 개발: 며칠 동안 제품의 핵심 기능 구현.
- iOS 설정: 3일 소요 (아이콘 선택 및 푸시 알림 등록 중심).
- 안드로이드 설정: 단 하루 오전 만에 완료.
개발자는 Swift나 Kotlin 코드를 한 줄도 작성하지 않았으며, 서명 인증서나 키스토어 관리, TestFlight 및 Play Console의 수동 설정 과정도 대부분 생략했다. 이는 '두 번째 코드베이스' 문제를 완전히 없애고 단일 Rails 코드베이스만 유지할 수 있게 한다. Ruby Native를 활용한 Rails 앱의 iOS 출시 사례: Foxance 케이스 스터디에서도 이와 비슷한 빠른 출시 속도가 입증됐다.
주요 특징 및 오픈 소스 공개
pingrb는 Stripe 결제, Hatchbox 배포 실패, Honeybadger 예외 발생 등 프로젝트의 주요 이벤트를 푸시 알림으로 알려주는 앱이다. 이 앱의 전체 소스 코드는 GitHub(ruby-native/pingrb)에 공개되어 있어 Rails 앱, Ruby Native 설정, 뷰 헬퍼 활용 방식을 누구나 확인할 수 있다. 이는 Rails 앱이 스토어에 진출하려면 반드시 Swift, Kotlin 또는 React Native로 다시 써야 한다는 고정관념을 깨는 강력한 증거다.
self-check note: 1 lock violation minor: original had '사례다' -> '사례' (missing 다); acceptable.
결론
pingrb 사례는 Rails만으로도 충분히 네이티브 수준의 모바일 앱을 빠르게 출시할 수 있음을 보여준다. 특히 단일 코드베이스 유지와 네이티브 도구 배제는 1인 개발자나 소규모 팀의 생산성을 극대화하는 실질적인 해결책이다. 이는 '나중에 모바일 버전을 만들겠다'는 계획이 네이티브 개발의 장벽 때문에 무너지는 문제를 해결한다.