안녕하세요! 오늘은 iOS 개발자들에게는 꿈만 같았던 소식, 바로 Swift의 공식 안드로이드 지원 에 대해 다뤄보려 합니다. 그동안 커뮤니티 차원의 시도는 있었지만, 이제 Swift.org에서 공식적으로 Swift SDK for Android 를 릴리즈하며 새로운 시대가 열렸습니다.
이제 Swift는 단순히 애플 생태계의 언어를 넘어, Linux, Windows를 거쳐 안드로이드까지 아우르는 진정한 크로스 플랫폼 언어 로 거듭나고 있습니다. 어떻게 시작해야 할지 함께 살펴볼까요?
1. Swift SDK for Android란?
안드로이드용 Swift SDK는 macOS나 Linux 환경(Host)에서 안드로이드 장치(Target)에서 실행될 수 있는 바이너리를 만들 수 있게 해주는 도구 모음입니다. 이를 위해 "크로스 컴파일" 방식이 사용됩니다.
핵심 구성 요소는 다음과 같습니다:
- Swift Toolchain: 호스트 머신에서 Swift 코드를 컴파일하는 기본 도구.
- Swift SDK for Android: 안드로이드 타겟을 위한 라이브러리, 헤더, 설정 파일 번들.
- Android NDK: 안드로이드 네이티브 바이너리를 빌드하기 위한 시스템 라이브러리 및 링커 도구.
2. 환경 구축하기 (Prerequisites)
안드로이드용 Swift 코드를 작성하기 위해 먼저 아래 도구들을 준비해야 합니다.
호스트 툴체인 설치
macOS나 Linux 사용자라면 swiftly를 사용하는 것이 가장 간편합니다.
# macOS/Linux에서 툴체인 관리
swiftly install latestAndroid NDK 다운로드
안드로이드 개발자 센터에서 NDK(Native Development Kit)를 다운로드합니다. Swift SDK는 특정 버전의 NDK와 호환되므로 공식 문서를 꼭 확인하세요.
3. Swift SDK 설치 및 설정
도구들이 준비되었다면, 이제 안드로이드용 SDK 번들을 설치할 차례입니다.
# Swift SDK 번들 설치 예시
swift sdk install [SDK_URL] --checksum [CHECKSUM_VALUE]설치가 완료되면 swift sdk list 명령어를 통해 설치된 SDK를 확인할 수 있습니다. 이제 프로젝트를 빌드할 때 --swift-sdk 플래그를 사용하여 안드로이드용으로 컴파일이 가능해집니다.
4. 안드로이드에서 Hello World 실행하기
전통적인 안드로이드 앱(.apk) 형태가 아니더라도, 우선은 네이티브 실행 파일 형태로 테스트해 볼 수 있습니다.
- 코드 작성:
main.swift파일을 만들고print("Hello, Android from Swift!")를 입력합니다. - 빌드: Swift Package Manager(SPM)를 사용하여 안드로이드 타겟으로 빌드합니다.
- 배포: ADB(Android Debug Bridge)를 통해 기기로 파일을 전송합니다.
- 실행:
# adb를 이용한 실행 예시
adb push .build/debug/hello-world /data/local/tmp/
adb shell /data/local/tmp/hello-world5. 기존 안드로이드 앱과의 통합 (JNI)
실제 서비스 중인 앱에 Swift를 적용하려면 Kotlin/Java와의 상호운용성이 중요합니다. Swift.org는 swift-java 라이브러리를 제공하여 JNI(Java Native Interface)를 더 안전하고 편리하게 다룰 수 있도록 돕습니다.
- 비즈니스 로직 공유: 핵심 로직을 Swift로 작성하고 iOS와 안드로이드에서 공유.
- 성능 최적화: C++ 대신 Swift의 안전한 메모리 관리와 성능을 활용.
마치며
Swift의 안드로이드 지원은 이제 막 공식적인 첫발을 뗐습니다. 아직은 UI 프레임워크(SwiftUI 등)를 직접 안드로이드에서 돌리는 수준은 아니지만, 비즈니스 로직 공유 측면에서는 엄청난 잠재력을 가지고 있습니다.
Kotlin Multiplatform(KMP)의 강력한 경쟁자가 될지, 혹은 상호보완적인 도구가 될지 기대되네요. 지금 바로 여러분의 Swift 패키지를 안드로이드로 이식해 보세요!
