- Framework native đa nền tảng cho phép phát triển ứng dụng iOS và Android từ một codebase duy nhất dựa trên Swift và SwiftUI
- Từ phiên bản Skip 1.7, mọi hạn chế về giấy phép đã được gỡ bỏ, chuyển thành công cụ mã nguồn mở hoàn toàn mà ai cũng có thể sử dụng miễn phí
- Engine cốt lõi
skipstone đã được công khai trên GitHub, cung cấp mã nguồn mở cho các chức năng build chính như tạo dự án, chuyển đổi, đóng gói
- Người dùng trả phí hiện tại sẽ được tự động chuyển sang chương trình tài trợ, và có thể hỗ trợ dự án thông qua tài trợ cá nhân hoặc doanh nghiệp
- Lần công bố này là bước ngoặt nhằm xây dựng hệ sinh thái dài hạn lấy cộng đồng làm trung tâm và mang lại trải nghiệm native thực sự
Tổng quan
- Kể từ khi ra mắt năm 2023, Skip đã phát triển với mục tiêu cho phép đồng thời phát triển ứng dụng iOS và Android bằng mã Swift và SwiftUI
- Ban đầu bắt đầu từ trình chuyển mã Swift-to-Kotlin và hỗ trợ API SwiftUI cơ bản
- Sau đó hỗ trợ biên dịch native cho Android thông qua việc thành lập Swift Android Workgroup và công bố Swift Android SDK
- Hiện tương thích với hàng chục framework tích hợp và hàng nghìn gói Swift, đồng thời cung cấp triển khai SwiftUI độc lập hoàn chỉnh nhất
Giới hạn của công cụ phát triển trả phí
- Cho đến nay, Skip yêu cầu thuê bao trả phí và khóa giấy phép, và chỉ các nhà phát triển cá nhân có doanh thu dưới một mức nhất định mới được dùng miễn phí
- Tuy nhiên, phần lớn nhà phát triển kỳ vọng công cụ miễn phí, và các IDE chủ chốt như Xcode, Android Studio cũng được cung cấp miễn phí
- Tồn tại lo ngại về tính bền vững đối với công cụ trả phí và đóng
- Nếu công ty ngừng hoạt động hoặc bị mua lại, sẽ có rủi ro khó duy trì các ứng dụng của nhà phát triển
- Để giải quyết điều này, Skip chuyển sang nền tảng hoàn toàn miễn phí và mã nguồn mở, cho phép cộng đồng độc lập duy trì công nghệ
Những thay đổi
- Từ Skip 1.7, khóa giấy phép, bản dùng thử và EULA đều bị bãi bỏ
- Người dùng hiện tại: không cần khóa giấy phép sau khi nâng cấp
- Người dùng mới: có thể build ngay lập tức
- Mã nguồn mở hóa engine Skip
skipstone
- Bao gồm các chức năng build cốt lõi như tạo và quản lý dự án, plugin Xcode và SwiftPM, chuyển đổi iOS→Android, đóng gói tài nguyên, cầu nối JNI, chuyển mã nguồn, đóng gói ứng dụng, xuất dự án
- Kho lưu trữ công khai trên GitHub: https://github.com/skiptools
- Chuyển trang web chính thức
- Chuyển từ skip.tools sang skip.dev
- Bao gồm tài liệu, blog, case study, và bản thân trang web cũng được công khai mã nguồn mở
Hỗ trợ tương lai cho Skip
- Skip đã được vận hành độc lập mà không có vốn đầu tư bên ngoài, duy trì định hướng nhà phát triển mà không bị các tập đoàn công nghệ lớn kiểm soát
- Để giữ vững tính độc lập, cần có sự tài trợ từ cộng đồng
- Người đăng ký hiện tại sẽ tự động được chuyển sang các hạng Individual hoặc Supporter
- Nhà phát triển cá nhân có thể tài trợ hàng tháng thông qua GitHub Sponsors
- Doanh nghiệp có thể trực tiếp hỗ trợ phát triển, bảo trì framework và hạ tầng thông qua chương trình tài trợ
- Tài trợ sẽ đảm bảo sự phát triển liên tục và thành công dài hạn của Skip, đồng thời góp phần tăng cường năng lực cạnh tranh của đội ngũ phát triển
Kế hoạch sắp tới
- Hiện lĩnh vực phát triển ứng dụng đang đối mặt với giới hạn của các framework đa nền tảng hiện có
- Khó theo kịp những thay đổi của các hệ thống UI mới nhất như Liquid Glass của iOS hay Material Expressive của Android
- Những thỏa hiệp của codebase hợp nhất dẫn đến giao diện lỗi thời và suy giảm sức cạnh tranh
- Skip sẽ tiếp tục phát triển theo hướng mang lại trải nghiệm native hoàn chỉnh trên cả hai nền tảng
- Việc mã nguồn mở hóa là bước tiếp theo bao trùm nhiều hệ sinh thái như Swift·Kotlin, SwiftPM·Gradle, Xcode·Android Studio
- Sự phát triển liên tục phụ thuộc vào sự tham gia và tài trợ của cộng đồng nhà phát triển,
hướng tới tầm nhìn của Skip về “nền tảng đa nền tảng không thỏa hiệp”
3 bình luận
Ảo ảnh mang tên đa nền tảng (tưởng như nắm được mà lại không nắm được)
Skip – phát triển ứng dụng iOS và Android native bằng một codebase Swift duy nhất
Ý kiến trên Hacker News
Thật đáng buồn khi thực tế là các lập trình viên lại kỳ vọng vào công cụ miễn phí
So với các ngành nghề chuyên môn khác, việc một nhóm thu nhập cao như chúng ta không chịu chi tiền cho công cụ là điều khá hiếm
Nếu có thể, mong mọi người đừng phụ thuộc vào FAANG hay vốn VC, mà hãy trực tiếp trả tiền cho phần mềm tốt
Chúng ta là nhóm nghề có thể tự làm ra công cụ, và chi phí phân phối gần như bằng 0
Vì suy nghĩ “tôi có thể tự làm được”, thị trường công cụ phát triển trả phí vốn đã có giới hạn
Mã nguồn mở giúp giảm bớt sự khó chịu này, và người dùng chỉ cần đấu tranh với chính sự lười biếng của mình
Quan trọng hơn giá cả là mức độ tự do
Tôi đồng cảm với ý kiến cho rằng việc đặt toàn bộ chiến lược ứng dụng lên một công cụ trả phí, đóng, của một công ty nhỏ là rất rủi ro
Nhưng trong bối cảnh đã chi hàng triệu đô cho các giải pháp khác, việc bỏ thêm vài nghìn đô cho một công cụ mới gặp rào cản quan liêu quá lớn
Không hẳn là lập trình viên không muốn chi tiền, mà nhiều khi chính cấu trúc tổ chức đã cản trở
Khi phát hiện lỗi hoặc hạn chế, bạn có thể tự sửa và chia sẻ lại
Giống như ví dụ về ô tô, với những người thích một cấu trúc có thể tự tay chỉnh sửa thì mã nguồn mở hấp dẫn hơn nhiều
Luật sư hay bác sĩ cũng có làm pro bono, nhưng vẫn không thể so với quy mô của mã nguồn mở
Nhìn vào cách Skip hoạt động, tôi tự hỏi liệu rồi sẽ đến lúc AI agent có thể tự động chuyển mã cho một nền tảng (như iOS) sang mã native cho nền tảng khác (như Swift, Kotlin) hay không
Từ trước đến nay tôi vẫn chưa tìm được một môi trường phát triển mobile đa nền tảng nào thực sự khiến mình hài lòng, nên Skip khá thú vị
Nhưng khi thấy nó yêu cầu macOS 15 trở lên và Xcode 16.4 trở lên, tôi nhận ra nó khác xa kỳ vọng
Tuyên bố táo bạo “hiệu quả tối đa mà không cần runtime bổ sung” cũng gây ấn tượng, nhưng yêu cầu 32GB RAM thì thật sự đáng ngạc nhiên
Từ góc nhìn của một lập trình viên Flutter, tôi thấy khó hiểu vì sao lại cần Skip
Flutter đã khá trưởng thành và không chỉ hỗ trợ mobile mà cả desktop lẫn web
Dù vậy, tôi vẫn tò mò Skip sẽ cải thiện hiệu năng đến mức nào, nên khi giá DRAM ổn định hơn tôi sẽ thử dùng
Vì vậy giao diện trông như thuộc về thế hệ cũ, và chính giới hạn này khiến tôi quan tâm hơn đến Skip
Nếu bạn thích Dart hoặc muốn UI hoàn toàn tùy biến thì Flutter vẫn ổn, nhưng với các doanh nghiệp coi trọng cảm giác native cao cấp thì Skip phù hợp hơn
Vấn đề liên quan: Flutter issue #170310
Widget có thể trông giống native, nhưng vẫn có gì đó gượng gạo, và animation cũng không mượt
Nó cho cảm giác còn kém React Native một bậc
Đặc biệt là tích hợp Google Maps rất tệ
Chi phí để làm ra một ứng dụng Flutter thật sự tốt cuối cùng cũng gần bằng ứng dụng native
Việc Skip yêu cầu 32GB không có gì lạ nếu tính cả toàn bộ môi trường phát triển như Xcode, Gradle, emulator...
Trừ khi bạn muốn UI hoàn toàn tùy biến, còn không thì rất khó giữ được cảm giác riêng của từng nền tảng
Tiêu đề bài viết dùng một tên phần mềm quá mơ hồ, nên giá mà nó được đặt theo kiểu mô tả rõ hơn thì tốt
Tôi có xem kho GitHub của Skip và thấy không có tệp license
Vì vậy tôi xếp nó vào vùng “cấm dùng (DONT USE)”
Trong khi đó kho Skipstone thì có license, nhưng lại vendor kèm Skip nên càng rối hơn
Việc thiếu license là một sai sót và sẽ sớm được sửa
Dù đã có nhiều lần thử nghiệm, cách build hợp nhất iOS và Android về bản chất vẫn rất khó
Đã có nhiều hướng tiếp cận như HTML, JS, React, Dart, Kotlin, Swift..., nhưng ở quy mô hơn 10 triệu lượt cài đặt thì đều thất bại
Bài viết liên quan
Ứng dụng Nubank ở Brazil được xây bằng Flutter và là một dịch vụ lớn với hơn 100 triệu người dùng
Một trong những yếu tố thành công là codebase đã không phình to ngoài kiểm soát
Tôi đã sốc khi thấy dòng “khuyến nghị tối thiểu 32GB RAM để phát triển với Skip”
Bản thân Skip khá nhẹ, và ở chế độ headless thì có thể chạy với ít RAM hơn nhiều
Sự kém hiệu quả về bộ nhớ không phải lỗi của Skip mà là vấn đề trong cấu trúc toolchain của Apple và Google
Tôi đang muốn port ứng dụng dẫn đường cho người khiếm thị Soundscape Community sang Android, và Skip có vẻ là giải pháp lý tưởng
Nếu phần accessibility (TalkBack) cũng được chuyển sang UI native thì có lẽ nó sẽ hoạt động tốt
Liên kết GitHub của Soundscape
Mã ví dụ: Tài liệu accessibility của Skip
Có vẻ Skip có thể trở thành lựa chọn đa nền tảng dài hạn của SwiftUI
Sẽ rất tuyệt nếu Apple trực tiếp tham gia vào bộ công cụ này hoặc ít nhất mã nguồn mở hóa SwiftUI phần nào đó
Nếu cộng đồng cải thiện các vấn đề liên quan đến macOS để đạt được mức linh hoạt và đầy đủ tính năng như AppKit, thì hệ sinh thái UI dựa trên Swift sẽ mạnh hơn rất nhiều