6 điểm bởi xguru 2024-01-31 | 3 bình luận | Chia sẻ qua WhatsApp
  • Phát triển ứng dụng di động bằng framework Svelte
    • Sử dụng trọn vẹn toàn bộ tính năng của Svelte, bao gồm Transitions, Stores và Reactivity
  • Phát triển ứng dụng native iOS/Android đa nền tảng bằng NativeScript mà không cần WebView
    • Khác với React Native hay NativeScript-Vue, vốn xử lý phần lớn công việc trên thiết bị di động, công cụ này xử lý phần lớn công việc ở giai đoạn biên dịch
    • Cung cấp UI và hiệu năng native thực thụ đồng thời chia sẻ công nghệ và mã nguồn web
  • Thay vì dùng các kỹ thuật như virtual DOM diffing, công cụ này tạo ra mã để cập nhật tinh vi các widget native view khi trạng thái của ứng dụng thay đổi

3 bình luận

 
bus710 2024-01-31

Hình như tôi đã thấy đâu đó trên Reddit năm ngoái nói rằng NativeScript không còn ở trạng thái thực sự còn sống nữa. Tôi cũng nhớ có bình luận rằng nếu nhất định phải làm ứng dụng di động bằng Svelte thì dùng Capacitor hoặc chờ Tauri Mobile sẽ tốt hơn.

 
dodok8 2024-01-31

Tôi cũng thích Svelte, nhưng thành thật mà nói tôi vẫn thấy hơi nghi ngờ về dự án này. Cảm giác lượng mã đang thực sự còn sống thì quá ít?

 
xguru 2024-01-31

Ý kiến Hacker News

  • Dù dự án có những ưu điểm riêng, vẫn nên làm rõ hơn rằng đây không phải là một phần của framework Svelte chính thức. Dự án này mô phỏng giao diện của tài liệu Svelte, nhưng tôi cảm thấy phần giải thích họ là ai còn thiếu.
  • Tôi đã từng làm vài ứng dụng bằng React Native, và theo thời gian nó trở thành cơn ác mộng khi độ phức tạp tăng bùng nổ vì các vấn đề tương thích giữa nhiều phiên bản thư viện JavaScript, framework, phiên bản Android/iOS và hệ thống build. Tôi thích học Kotlin/Swift và duy trì một hệ sinh thái duy nhất hơn.
  • Dù là một fan cuồng nhiệt của Svelte, dự án này dường như không nhận được nhiều sự quan tâm và chú ý trong vài năm qua. Tuy vậy, tôi nghĩ React và React Native phù hợp hơn cho những ai muốn làm ứng dụng native bằng công nghệ web. Xét tới tiến triển của hỗ trợ PWA trên Safari, sự thù địch ngày càng tăng của Apple với các nhà phát triển native, cùng những cải tiến trình duyệt như WebGPU, tôi hy vọng trong tương lai sẽ không cần phải làm ứng dụng native cho 95% trường hợp sử dụng. Trở ngại chính cản trở điều đó là Apple vẫn tiếp tục đối xử với web app như công dân hạng hai trên iOS và chỉ miễn cưỡng thêm API vào Safari để mang lại trải nghiệm native tốt.
  • Vài năm trước, công ty tôi đã thử công nghệ này để làm ứng dụng đa nền tảng, với hy vọng có thể chia sẻ nhiều mã nguồn với giao diện web Svelte. Trong 3-4 tháng, chúng tôi đã đạt được nhiều tiến triển, nhưng lại đụng phải rất nhiều bug kỳ lạ và edge case khó debug. Cuối cùng chúng tôi chuyển codebase mobile sang Flutter. Có thể sau này nó đã được cải thiện, nhưng dựa trên ấn tượng ban đầu, tôi không khuyến nghị NativeScript cho bất cứ thứ gì vượt quá yêu cầu giao diện đơn giản.
  • Đây không hẳn là phiên bản Svelte của React Native, mà đúng hơn là một trong các wrapper cho NativeScript.
  • Nó được xây dựng trên NativeScript. Nếu muốn đa nền tảng, tôi nghĩ tốt hơn là cứ dùng RN. Viết ứng dụng bằng Kotlin hoặc Swift còn dễ hơn hệ thống phức tạp này.
  • Từ "native" đang bị lạm dụng.
  • Ứng dụng ví dụ là từ 5 năm trước. Tôi nghi ngờ có ai thực sự đang dùng cái này.
  • Trong vài năm qua tôi đã làm nhiều ứng dụng mobile, và luôn render bằng công nghệ web bên trong webview. Vì tôi rất coi trọng trải nghiệm người dùng, tôi không thấy lợi ích nào của việc render bằng webview trên smartphone hiện đại lại kém hơn dùng các công cụ như React Native, Flutter hay NativeScript. Các thư viện UI như Ionic gần như không thể phân biệt với component UI native, và cũng không có nghiên cứu người dùng thực tế nào chứng minh điều ngược lại. Vậy thì tại sao phải dùng các công cụ đa nền tảng này thay vì dùng trực tiếp Svelte cùng webview?
  • Tôi thích Svelte và hy vọng mô hình component độc đáo của nó sẽ phù hợp với phát triển ứng dụng mobile native. Tôi tò mò liệu toolchain của nó có khác nhiều so với React Native không.