# Skip – 단일 Swift 코드베이스로 네이티브 iOS 및 Android 앱 개발

> Clean Markdown view of GeekNews topic #16525. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16525](https://news.hada.io/topic?id=16525)
- GeekNews Markdown: [https://news.hada.io/topic/16525.md](https://news.hada.io/topic/16525.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-08-30T08:34:26+09:00
- Updated: 2024-08-30T08:34:26+09:00
- Original source: [skip.tools](https://skip.tools/)
- Points: 19
- Comments: 3

## Summary

Skip은 Swift 앱을 Android로 확장하여 두 플랫폼에서 네이티브 성능과 사용자 인터페이스를 유지할 수 있게 해주는 도구입니다. Xcode와 Android Studio를 모두 활용하여 개발자가 더 효율적으로 작업할 수 있으며, 오픈 소스 기반으로 투명성과 커스터마이징 가능성을 제공합니다. 또한, CI 친화적이며 테스트를 통해 플랫폼 간 동일한 성능을 보장합니다.

## Topic Body

- Skip은 Swift 앱 개발을 Android로 확장할 수 있게 해주는 도구  
- Swift와 Xcode를 사용하여 iOS와 Android에서 모두 네이티브 앱을 개발할 수 있음  
- Skip의 작동 방식  
  - Xcode에서 Swift 및 SwiftUI 앱을 개발하면, Skip Xcode 플러그인이 이를 Kotlin 및 Jetpack Compose로 변환  
  - 네이티브 성능과 사용자 인터페이스를 유지하면서 두 플랫폼에서 라이브러리나 전체 앱을 개발할 수 있음  
  
#### Skip 앱의 장점  
  
##### 진정한 네이티브  
  
- Skip 앱은 단순히 "네이티브처럼 보이는" 것이 아니라 실제로 네이티브임  
- iOS에서는 Swift와 SwiftUI, Android에서는 Kotlin과 Compose를 사용함  
  
##### 완전한 투명성  
  
- Skip을 사용하면 앱의 모든 부분이 개발자에게 노출됨  
- Swift 코드를 직접 Kotlin 소스 코드로 변환하여 검사하고 커스터마이징할 수 있음  
  
##### 경량성  
  
- SkipZero를 사용하면 iOS 앱은 Skip 프레임워크에 의존하지 않음  
- Android 앱은 몇 가지 Skip 오픈 소스 라이브러리만 필요함  
  
##### 메모리 효율성  
  
- 추가적인 관리 런타임이 없기 때문에 Skip 앱은 두 플랫폼에서 가능한 한 효율적임  
- iOS에서는 베어 메탈, Android에서는 ART 바이트코드를 사용함  
  
##### 이상적인 IDE  
  
- Skip의 IDE는 iOS 개발을 위한 최고의 환경인 Xcode임  
- Android 커스터마이징을 위해 생성된 코드를 Android Studio에서 직접 열 수 있음  
  
##### 완벽한 통합  
  
- Skip은 표준 Kotlin과 Compose를 생성하므로 Android 라이브러리와의 통합이 쉬움  
- 다른 Kotlin 및 Java 코드를 직접 호출할 수 있음  
  
##### 오픈 소스 기반  
  
- Skip의 트랜스파일러는 이야기의 절반에 불과함  
- iOS 앱 개발을 뒷받침하는 Foundation 및 SwiftUI와 같은 프레임워크가 Skip의 무료 오픈 소스 구현을 통해 Android에서도 사용 가능함  
  
##### CI 친화적  
  
- Skip은 단위 테스트도 변환함  
- 로컬 또는 원격으로 테스트를 실행하여 플랫폼 간 동일한 로직 성능을 보장할 수 있음  
  
##### 탈출 가능성  
  
- Swift 입력과 Kotlin 출력 모두 개발자의 소유임  
- Skip 트랜스파일러에 지속적으로 의존하지 않아도 됨  
  
#### GN⁺의 정리  
  
- Skip은 Swift 앱을 Android로 확장할 수 있게 해주는 도구로, 두 플랫폼에서 네이티브 성능과 사용자 인터페이스를 유지할 수 있음  
- Xcode와 Android Studio를 모두 활용하여 개발자가 더 효율적으로 작업할 수 있게 함  
- 오픈 소스 기반으로 투명성과 커스터마이징 가능성을 제공함  
- CI 친화적이며, 테스트를 통해 플랫폼 간 동일한 성능을 보장할 수 있음  
- 유사한 기능을 제공하는 프로젝트로는 Kotlin Multiplatform이 있음

## Comments



### Comment 28432

- Author: ing03201
- Created: 2024-08-30T10:07:46+09:00
- Points: 1

코드 난독화도 지원하게된다면 되게 좋을거같네요

### Comment 28424

- Author: godrm
- Created: 2024-08-30T09:39:41+09:00
- Points: 1

오호 흥미롭네요. 얼마나 어떻게 처리되는지 아직 전혀 모르겠지만 무모하면서도 재밌는 시도 같습니다

### Comment 28422

- Author: neo
- Created: 2024-08-30T08:34:27+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41384144) 
- **개인 앱을 Android로 이식하려는 경험 공유**
  - SwiftUI로 iOS 앱을 개발 중이며, Android 버전으로 이식하려고 React Native, Ionic, Ignite 등을 시도했으나 어려움이 있었음
  - Skip을 사용해보니 Swift 문맥을 유지하면서 하나의 언어로 앱을 작성할 수 있어 매우 만족스러움
  - 플랫폼별 코드 작성이 쉬우며, Android를 배우지 않고도 빠르게 앱을 실행할 수 있음
  - 전체 앱을 Skip으로 개발해 양쪽 앱 스토어에 배포할 계획임

- **Skip에 대한 우려 사항**
  - 오픈 소스 라이선스에 대한 의문 (GPL vs MIT)
  - 패키지 관리와 iOS/Android 분기 처리 방법에 대한 궁금증
  - Apple 서비스 API가 Android에서 어떻게 처리되는지에 대한 의문
  - 광고 및 인앱 결제 예제의 필요성

- **Skip의 의존성 관리에 대한 질문**
  - Swift PM 패키지를 Android 프로젝트에서 투명하게 사용할 수 있는지에 대한 의문
  - Kotlin이 Swift 라이브러리를 투명하게 호출할 수 있는지 궁금함

- **Skip의 타겟 시장에 대한 의견**
  - 주로 iOS 앱을 Android로 변환하려는 미국/유럽 기업을 대상으로 하는 제품으로 보임
  - Android가 주류인 다른 지역에서는 Flutter, React Native, Kotlin MP 같은 더 나은 프레임워크가 존재함
  - Skip의 트랜스파일링 문제와 유지보수의 어려움 지적

- **ChatGPT와 Claude를 사용한 코드 변환 경험**
  - SwiftUI 코드를 Kotlin, Jetpack Compose, Material3로 변환하는 데 성공적이었음
  - 생성된 코드가 거의 즉시 작동했으며, 스타일링/테마 수정만 필요했음

- **Skip 사용 경험 공유**
  - 몇 달간 사용해본 결과, 학습 곡선이 있지만 크로스 플랫폼 문제를 완전히 해결함

- **Skip의 문서와 트랜스파일링의 한계**
  - SwiftUI나 다른 핵심 라이브러리 사용 시 트랜스파일링의 한계가 있는지 궁금함
  - Xamarin 개발의 어려움과 유사한 문제 발생 가능성

- **Skip의 프레임워크 제한**
  - 대부분의 iOS 앱이 Apple 플랫폼 프레임워크를 사용하므로 Skip의 최소 구현이 제한적일 수 있음
  - StoreKit, WebKit, SafariServices, UserNotifications, CryptoKit 등의 현재 구현이 없음

- **기존 앱과 Skip 통합의 어려움**
  - 기존 SwiftUI + UIKit 앱과 Skip 통합이 어려운지에 대한 질문
  - 작은 또는 중간 크기의 앱이 Skip으로 마이그레이션된 예제 필요성

- **Skip의 성능 문제 해결**
  - 크로스 플랫폼 프레임워크의 성능 문제를 해결하는 데 큰 도움이 됨
