Swift Stream IDE v1.17.0를 공개했음. 이제 Swift만으로 완전한 Android 앱 개발이 가능해짐
XML, Java, Kotlin을 전혀 건드리지 않아도 됨. 내부적으로는 내가 만든 SwifDroid 프레임워크가 Android 생명주기, Activity, Fragment, UI 위젯(Material, Flexbox 등)을 처리하고 Gradle 의존성도 자동 관리함
Swift 코드를 컴파일해 Android Studio에서 바로 실행 가능한 프로젝트를 생성함. 툴과 프레임워크 모두 MIT 오픈소스 라이선스로 공개함
흥미로움. Swift 개발자에게 필요한 Android 경험과, Android/Kotlin 개발자에게 필요한 Swift 경험의 교차점이 궁금함
XML, Java, Kotlin을 안 건드린다고 했는데, Android 경험이 전혀 없는 Swift 개발자도 성공적으로 앱을 만들 수 있는지 궁금함
또, 현재와 내년 기준으로 Kotlin이나 Flutter 앱 중 몇 퍼센트 정도를 Swift로 작성할 수 있을지도 알고 싶음
Swift의 강점 중 하나는 C/C++ 라이브러리와의 상호운용성임. 보통 SwiftPM이나 Bazel 의존성으로 제공되는데, SwiftPM 의존성은 어떻게 처리하는지 궁금함
Java/Kotlin 코드를 Swift로 바인딩하는 방식이 궁금함
우리는 비슷한 일을 Swift 대신 Rust로 시도 중임
축하함. 나도 Swift로 개발 환경을 통합하려고 생각 중이었는데, 정말 멋진 작업임
이런 시도는 결국 JNI를 거쳐야 하기 때문에, API의 80%가 Java로만 노출된다는 점에서 한계가 있음
이런 프로젝트는 항상 흥미롭지만, 결국 누수된 추상화(leaky abstraction) 문제에 부딪히게 됨
마찬가지로 iOS에서는 Objective-C를 알아야 하고, Windows에서는 .NET/COM을 알아야 하는 것처럼 말임
요즘은 Apple 생태계에서도 Swift와 Objective-C를 둘 다 다뤄야 성공할 수 있음
Unity 쪽 경험으로 보면, C#에서 C로의 마샬링은 부드럽지만 Swift는 훨씬 손이 많이 감
새로운 프레임워크마다 따로 대응해야 하는 현실임
플랫폼 간 공통 언어(Swift나 Kotlin)를 쓰는 건 겉보기엔 좋아 보이지만, 실제로는 기대만큼 효율적이지 않다고 생각함
결국 두 개의 코드베이스를 유지하게 되고, 차이점과 우회로가 많아져서 그냥 각자 언어를 즐기며 쓰는 게 낫다고 봄
대부분의 개발자는 여러 언어를 배우며 커리어를 쌓고, 전환도 어렵지 않음. 개인적인 의견이지만 프로젝트 자체는 훌륭하다고 생각함
그래도 이런 시도 덕분에 한 플랫폼에 익숙한 엔지니어가 다른 플랫폼에서도 일할 수 있게 됨
나도 예전에 Java로 Android 네이티브 앱을 만들려고 몇 달 공부했지만 즐겁지 않아 포기했음 완전한 네이티브 개발을 선호하는 편이고, 수십 년간 크로스플랫폼 프레임워크를 써봤지만 큰 성공을 거둔 적은 없음
언어 전환에는 항상 맥락 전환 비용이 따름. Swift와 PHP를 오가며 개발할 때마다 문법 실수를 자주 함
언어는 금방 배워도, SDK·표준 라이브러리·프레임워크는 숙련까지 오랜 시간이 걸림
이런 프레임워크들은 단순한 기능 개발은 빠르지만, 플랫폼 특화 기능을 쓰려 하면 오히려 방해가 됨
특히 요즘은 AI 도구 덕분에 단순 작업 속도가 이미 빨라져서, 전체 개발 시간 절감 효과가 크지 않음
앱이 사실상 웹앱 수준이라면 몰라도, 그렇지 않다면 추천하지 않음
Kotlin과 Swift는 매우 비슷하고, 차이가 있는 부분은 오히려 추상화하지 않는 게 낫다고 생각함
Swift가 언어적으로는 더 낫다고 보지만, KMP가 더 오래되고 안정적이라 실제로는 그쪽을 쓸 듯함
여러 언어를 아는 건 오히려 자유로움을 줌
하지만 특정 대기업 생태계에 더 종속되는 건 꺼려짐
게다가 Swift는 개인적으로 불편한 언어라, 굳이 다른 플랫폼에서도 쓰고 싶지는 않음
Skip과 비교하면 어떤지 궁금함
이 프로젝트는 iOS SwiftUI 코드를 Android로 옮기는 게 아니라, Android 전용 Swift 개발에 초점을 둔 듯함
그게 더 나은 앱 품질로 이어질 수 있을지, 실제 사례가 있는지 알고 싶음
Android Studio나 IntelliJ를 안 써도 된다는 점만으로도 큰 개선이라고 생각함. 멋진 일임
Android를 피하려고 Xcode를 쓰는 건, 염산을 만지는 것과 비슷한 선택 같음
Gradle도 피할 수 있는지 궁금함. 그 의존성 관리 악몽을 건너뛰는지 알고 싶음
쿠키 동의창이 유럽 법규에 부합하지 않는 느낌임
왜 모바일 개발은 PC보다 이렇게 불편한지 모르겠음
왜 모바일에서 어셈블리로 Hello World 하나 만드는 것도 이렇게 어려운지 궁금함
만들 수는 있음. 하지만 PC에서 어셈블리로 Hello World 만드는 것만큼 고통스러운 일이라 아무도 하지 않음
Android 개발을 한동안 쉬었는데, 요즘 상황을 정리해보면
예전엔 iOS는 Swift, Android는 Java였고
지금은 Java 대신 Kotlin, 그리고 Flutter나 React Native 같은 크로스플랫폼 프레임워크가 생겼음
Swift on Android는 이런 것처럼 또 다른 추상화 레이어인지, 아니면 네이티브에 가까운지 궁금함
결국 가장 빠른 건 네이티브 코드 아닌가?
React Native는 웹뷰 기반이 아님. JSX를 SwiftUI/Kotlin UI 코드로 변환하는 네이티브 번역 계층임
개인적으로는 Flutter를 선호함. 많은 Android 네이티브 개발자들도 Flutter가 Android 개발의 미래일 수 있다고 말함
관련 토론은 이 Reddit 스레드 참고
이 프로젝트는 SwiftCrossUI나 Skip과는 다른 접근임
SwiftCrossUI와 Skip은 SwiftUI를 그대로 여러 플랫폼에서 돌리지만,
SwifDroid는 Android 전용 UI를 Swift로 작성하는 것임
Android의 View 시스템과 API를 직접 사용하면서, Java/Kotlin/XML 없이 완전한 Android 앱을 Swift로 만드는 게 목표임
즉, “한 번 작성해 어디서나 실행”이 아니라, Android 네이티브 경험을 Swift로 구현하는 방향임
Hacker News 의견들
Swift Stream IDE v1.17.0를 공개했음. 이제 Swift만으로 완전한 Android 앱 개발이 가능해짐
XML, Java, Kotlin을 전혀 건드리지 않아도 됨. 내부적으로는 내가 만든 SwifDroid 프레임워크가 Android 생명주기, Activity, Fragment, UI 위젯(Material, Flexbox 등)을 처리하고 Gradle 의존성도 자동 관리함
Swift 코드를 컴파일해 Android Studio에서 바로 실행 가능한 프로젝트를 생성함. 툴과 프레임워크 모두 MIT 오픈소스 라이선스로 공개함
XML, Java, Kotlin을 안 건드린다고 했는데, Android 경험이 전혀 없는 Swift 개발자도 성공적으로 앱을 만들 수 있는지 궁금함
또, 현재와 내년 기준으로 Kotlin이나 Flutter 앱 중 몇 퍼센트 정도를 Swift로 작성할 수 있을지도 알고 싶음
우리는 비슷한 일을 Swift 대신 Rust로 시도 중임
이런 시도는 결국 JNI를 거쳐야 하기 때문에, API의 80%가 Java로만 노출된다는 점에서 한계가 있음
이런 프로젝트는 항상 흥미롭지만, 결국 누수된 추상화(leaky abstraction) 문제에 부딪히게 됨
마찬가지로 iOS에서는 Objective-C를 알아야 하고, Windows에서는 .NET/COM을 알아야 하는 것처럼 말임
Unity 쪽 경험으로 보면, C#에서 C로의 마샬링은 부드럽지만 Swift는 훨씬 손이 많이 감
새로운 프레임워크마다 따로 대응해야 하는 현실임
플랫폼 간 공통 언어(Swift나 Kotlin)를 쓰는 건 겉보기엔 좋아 보이지만, 실제로는 기대만큼 효율적이지 않다고 생각함
결국 두 개의 코드베이스를 유지하게 되고, 차이점과 우회로가 많아져서 그냥 각자 언어를 즐기며 쓰는 게 낫다고 봄
대부분의 개발자는 여러 언어를 배우며 커리어를 쌓고, 전환도 어렵지 않음. 개인적인 의견이지만 프로젝트 자체는 훌륭하다고 생각함
나도 예전에 Java로 Android 네이티브 앱을 만들려고 몇 달 공부했지만 즐겁지 않아 포기했음
완전한 네이티브 개발을 선호하는 편이고, 수십 년간 크로스플랫폼 프레임워크를 써봤지만 큰 성공을 거둔 적은 없음
언어 전환에는 항상 맥락 전환 비용이 따름. Swift와 PHP를 오가며 개발할 때마다 문법 실수를 자주 함
언어는 금방 배워도, SDK·표준 라이브러리·프레임워크는 숙련까지 오랜 시간이 걸림
특히 요즘은 AI 도구 덕분에 단순 작업 속도가 이미 빨라져서, 전체 개발 시간 절감 효과가 크지 않음
앱이 사실상 웹앱 수준이라면 몰라도, 그렇지 않다면 추천하지 않음
Swift가 언어적으로는 더 낫다고 보지만, KMP가 더 오래되고 안정적이라 실제로는 그쪽을 쓸 듯함
하지만 특정 대기업 생태계에 더 종속되는 건 꺼려짐
게다가 Swift는 개인적으로 불편한 언어라, 굳이 다른 플랫폼에서도 쓰고 싶지는 않음
Skip과 비교하면 어떤지 궁금함
이 프로젝트는 iOS SwiftUI 코드를 Android로 옮기는 게 아니라, Android 전용 Swift 개발에 초점을 둔 듯함
그게 더 나은 앱 품질로 이어질 수 있을지, 실제 사례가 있는지 알고 싶음
Android Studio나 IntelliJ를 안 써도 된다는 점만으로도 큰 개선이라고 생각함. 멋진 일임
쿠키 동의창이 유럽 법규에 부합하지 않는 느낌임
왜 모바일 개발은 PC보다 이렇게 불편한지 모르겠음
왜 모바일에서 어셈블리로 Hello World 하나 만드는 것도 이렇게 어려운지 궁금함
Android 개발을 한동안 쉬었는데, 요즘 상황을 정리해보면
예전엔 iOS는 Swift, Android는 Java였고
지금은 Java 대신 Kotlin, 그리고 Flutter나 React Native 같은 크로스플랫폼 프레임워크가 생겼음
Swift on Android는 이런 것처럼 또 다른 추상화 레이어인지, 아니면 네이티브에 가까운지 궁금함
결국 가장 빠른 건 네이티브 코드 아닌가?
개인적으로는 Flutter를 선호함. 많은 Android 네이티브 개발자들도 Flutter가 Android 개발의 미래일 수 있다고 말함
관련 토론은 이 Reddit 스레드 참고
이 프로젝트는 SwiftCrossUI나 Skip과는 다른 접근임
SwiftCrossUI와 Skip은 SwiftUI를 그대로 여러 플랫폼에서 돌리지만,
SwifDroid는 Android 전용 UI를 Swift로 작성하는 것임
Android의 View 시스템과 API를 직접 사용하면서, Java/Kotlin/XML 없이 완전한 Android 앱을 Swift로 만드는 게 목표임
즉, “한 번 작성해 어디서나 실행”이 아니라, Android 네이티브 경험을 Swift로 구현하는 방향임
Swift에서 HTTP 요청과 JSON 파싱을 관용적으로 처리하는 방법이 궁금함