19 điểm bởi GN⁺ 2024-08-30 | 3 bình luận | Chia sẻ qua WhatsApp
  • Skip là công cụ giúp mở rộng phát triển ứng dụng Swift sang Android
  • Có thể dùng Swift và Xcode để phát triển ứng dụng native trên cả iOS và Android
  • Cách Skip hoạt động
    • Khi phát triển ứng dụng Swift và SwiftUI trong Xcode, plugin Xcode của Skip sẽ chuyển đổi chúng sang Kotlin và Jetpack Compose
    • Có thể phát triển thư viện hoặc toàn bộ ứng dụng trên cả hai nền tảng mà vẫn giữ được hiệu năng native và giao diện người dùng native

Ưu điểm của ứng dụng Skip

Native thực sự

  • Ứng dụng Skip không chỉ đơn thuần là "trông giống native" mà thực sự là native
  • Trên iOS sử dụng Swift và SwiftUI, còn trên Android sử dụng Kotlin và Compose

Minh bạch hoàn toàn

  • Khi dùng Skip, mọi phần của ứng dụng đều được hiển thị cho lập trình viên
  • Có thể chuyển trực tiếp mã Swift sang mã nguồn Kotlin để kiểm tra và tùy biến

Gọn nhẹ

  • Với SkipZero, ứng dụng iOS không phụ thuộc vào framework Skip
  • Ứng dụng Android chỉ cần một vài thư viện mã nguồn mở của Skip

Hiệu quả bộ nhớ

  • Vì không có runtime quản lý bổ sung, ứng dụng Skip đạt hiệu quả tối đa có thể trên cả hai nền tảng
  • Trên iOS dùng bare metal, còn trên Android dùng ART bytecode

IDE lý tưởng

  • IDE của Skip là Xcode, môi trường tốt nhất cho phát triển iOS
  • Có thể mở trực tiếp mã được tạo ra trong Android Studio để tùy chỉnh cho Android

Tích hợp hoàn hảo

  • Skip tạo ra Kotlin và Compose chuẩn nên rất dễ tích hợp với các thư viện Android
  • Có thể gọi trực tiếp các mã Kotlin và Java khác

Dựa trên mã nguồn mở

  • Transpiler của Skip mới chỉ là một nửa câu chuyện
  • Các framework như Foundation và SwiftUI, vốn hỗ trợ phát triển ứng dụng iOS, cũng có thể dùng trên Android thông qua bản triển khai mã nguồn mở miễn phí của Skip

Thân thiện với CI

  • Skip cũng chuyển đổi cả unit test
  • Có thể chạy kiểm thử cục bộ hoặc từ xa để đảm bảo cùng một logic hoạt động như nhau trên các nền tảng

Khả năng thoát ra

  • Cả đầu vào Swift và đầu ra Kotlin đều thuộc sở hữu của lập trình viên
  • Không cần phụ thuộc liên tục vào transpiler của Skip

Tổng hợp của GN⁺

  • Skip là công cụ giúp mở rộng ứng dụng Swift sang Android, đồng thời giữ được hiệu năng native và giao diện người dùng native trên cả hai nền tảng
  • Tận dụng cả Xcode lẫn Android Studio để giúp lập trình viên làm việc hiệu quả hơn
  • Dựa trên mã nguồn mở, mang lại tính minh bạch và khả năng tùy biến
  • Thân thiện với CI và có thể đảm bảo cùng một hiệu năng giữa các nền tảng thông qua kiểm thử
  • Một dự án có tính năng tương tự là Kotlin Multiplatform

3 bình luận

 
ing03201 2024-08-30

Sẽ rất tuyệt nếu sau này còn hỗ trợ cả việc làm rối mã nữa.

 
godrm 2024-08-30

Ồ, nghe thú vị đấy. Dù hiện vẫn chưa biết nó được xử lý đến mức nào và theo cách ra sao, nhưng có vẻ là một thử nghiệm vừa liều lĩnh vừa thú vị.

 
GN⁺ 2024-08-30
Ý kiến Hacker News
  • Chia sẻ trải nghiệm port ứng dụng cá nhân sang Android

    • Đang phát triển một ứng dụng iOS bằng SwiftUI và đã thử React Native, Ionic, Ignite... để port sang bản Android nhưng gặp nhiều khó khăn
    • Sau khi dùng Skip, người viết rất hài lòng vì có thể viết ứng dụng bằng một ngôn ngữ duy nhất mà vẫn giữ được ngữ cảnh Swift
    • Việc viết mã theo từng nền tảng khá dễ dàng, và có thể chạy ứng dụng nhanh mà không cần học Android
    • Có kế hoạch phát triển toàn bộ ứng dụng bằng Skip và phát hành lên cả hai kho ứng dụng
  • Những điểm còn lo ngại về Skip

    • Thắc mắc về giấy phép mã nguồn mở (GPL hay MIT)
    • Muốn biết cách quản lý package và xử lý phân nhánh iOS/Android
    • Thắc mắc API dịch vụ của Apple sẽ được xử lý thế nào trên Android
    • Cần các ví dụ về quảng cáo và mua hàng trong ứng dụng
  • Câu hỏi về quản lý phụ thuộc của Skip

    • Thắc mắc liệu có thể dùng package Swift PM trong dự án Android một cách minh bạch hay không
    • Muốn biết Kotlin có thể gọi thư viện Swift một cách minh bạch hay không
  • Ý kiến về thị trường mục tiêu của Skip

    • Có vẻ đây là sản phẩm nhắm chủ yếu đến các công ty Mỹ/châu Âu muốn chuyển ứng dụng iOS sang Android
    • Ở các khu vực khác nơi Android là nền tảng chủ đạo, đã có những framework tốt hơn như Flutter, React Native, Kotlin MP
    • Chỉ ra các vấn đề của việc transpile và khó khăn trong bảo trì của Skip
  • Trải nghiệm chuyển đổi mã bằng ChatGPT và Claude

    • Đã chuyển đổi thành công mã SwiftUI sang Kotlin, Jetpack Compose và Material3
    • Mã được tạo ra gần như chạy ngay lập tức, chỉ cần chỉnh lại styling/theme
  • Chia sẻ trải nghiệm dùng Skip

    • Sau vài tháng sử dụng, kết luận rằng dù có đường cong học tập nhưng nó giải quyết triệt để các vấn đề cross-platform
  • Tài liệu và giới hạn của việc transpile trong Skip

    • Muốn biết có giới hạn nào khi transpile lúc dùng SwiftUI hoặc các thư viện cốt lõi khác hay không
    • Có thể phát sinh những vấn đề tương tự như khó khăn từng gặp khi phát triển với Xamarin
  • Giới hạn framework của Skip

    • Vì phần lớn ứng dụng iOS dùng framework của nền tảng Apple, nên mức triển khai tối thiểu của Skip có thể bị hạn chế
    • Hiện chưa có triển khai cho StoreKit, WebKit, SafariServices, UserNotifications, CryptoKit...
  • Khó khăn khi tích hợp Skip với ứng dụng hiện có

    • Có câu hỏi liệu việc tích hợp Skip với ứng dụng SwiftUI + UIKit hiện có có khó hay không
    • Cần các ví dụ về ứng dụng nhỏ hoặc trung bình đã được migrate sang Skip
  • Giải quyết vấn đề hiệu năng của Skip

    • Rất hữu ích trong việc giải quyết các vấn đề hiệu năng của framework cross-platform