14 điểm bởi GN⁺ 2024-07-07 | 2 bình luận | Chia sẻ qua WhatsApp
  • Framework Python mã nguồn mở để phát triển ứng dụng GUI hoạt động trên nhiều nền tảng, bao gồm desktop, mobile và nền tảng nhúng
  • Mục tiêu là cho phép thiết kế tương tác nhanh và dễ dàng, tạo mẫu nhanh, đồng thời hỗ trợ tái sử dụng và triển khai mã
  • Dễ sử dụng và có thể triển khai ứng dụng lên nhiều nền tảng chỉ với một codebase duy nhất
    • Mac, Linux (bao gồm Raspberry Pi OS), BSD, Windows, iOS, Android
    • Tất cả widget của Kivy đều hỗ trợ đa chạm
  • Được viết bằng Python và Cython, dựa trên OpenGL ES 2.0
  • Thân thiện với doanh nghiệp (giấy phép MIT), miễn phí sử dụng 100%, đồng thời được phát triển, hỗ trợ và bảo trì một cách chuyên nghiệp
  • Là framework đã tồn tại 10 năm với hệ sinh thái phong phú
    • Buildozer: công cụ phát triển chuyển ứng dụng Python thành gói nhị phân để có thể cài đặt trên nhiều nền tảng, bao gồm cả thiết bị di động
    • Plyer: API Python độc lập nền tảng để truy cập các tính năng phần cứng trên nhiều nền tảng khác nhau (Android, iOS, macOS, Linux và Windows)
    • PyJNIus: thư viện Python để truy cập các lớp Java bằng JNI (Java Native Interface)
    • Pyobjus: mô-đun Python để truy cập các lớp Objective-C như lớp Python bằng cách sử dụng reflection của runtime Objective-C
    • Python for Android: công cụ phát triển đóng gói ứng dụng Python thành tệp nhị phân có thể chạy trên thiết bị Android
    • Kivy iOS: toolchain biên dịch các thư viện cần thiết để chạy ứng dụng Kivy trên iOS và quản lý việc tạo project Xcode
    • Audiostream: thư viện cho phép truy cập trực tiếp vào microphone và loa
    • KivEnt: game engine dựa trên entity dành cho Kivy
    • Oscpy: hiện thực Python của giao thức mạng Open Sound Control (OSC)
    • Garden: widget và thư viện do người dùng tạo và duy trì

2 bình luận

 
cosine20 2024-07-10

Ặc......

 
GN⁺ 2024-07-07
Ý kiến trên Hacker News
  • Có nhiều dự án liên quan đến Kivy, cùng các công cụ như python-for-android và Plyer

    • python-for-android: công cụ biên dịch dự án Python cho Android
    • Plyer: công cụ cung cấp API đa nền tảng (thông báo, phần cứng, bộ chọn tệp, v.v.)
  • KivyMD là công cụ triển khai Material Design trên nền Kivy

  • Đội ngũ Kivy rất thân thiện, từng có trải nghiệm gặp họ tại PyCon hoặc FOSDEM

  • Framework Kivy dễ dùng, và ngôn ngữ mô tả kv rất hữu ích

  • Cross-compiling có thể khó, và thời gian tải ứng dụng dài, nhưng vẫn hoạt động

  • So với các framework lớn như Qt, nó thiếu một vài tính năng, không có WebView và khả năng accessibility chưa tốt

  • Nhìn chung đây là một dự án rất tốt, nhưng đáng tiếc là chưa được biết đến rộng rãi hơn

  • Tính đến năm 2024, ảnh chụp màn hình trong gallery của Kivy không hấp dẫn

  • Electron hiện tại có vẻ vẫn là vua của UI "desktop"

  • Không thấy nhắc đến accessibility trên trang web, có vẻ như vẫn chưa được triển khai

  • Kivy không phù hợp cho các ứng dụng hướng tới người dùng cuối

  • Thật đáng thất vọng khi các framework UI mới còn thiếu các tính năng accessibility

  • Landing page của Kivy nhắc đến tài trợ nhiều hơn là chính framework này

  • Chỉ có một hình ảnh hiển thị UI, và phong cách của nó trông như ảnh stock

  • Có thể truy cập gallery qua liên kết ở phía trên

  • JavaFX vẫn rất tuyệt, và có ứng dụng chạy tốt với heap 50MB

  • Cũng cung cấp trình cài đặt native cho hệ điều hành, nhưng không hỗ trợ web

  • Kivy là dự án đã khiến người viết thực hiện đóng góp mã nguồn mở đầu tiên vào năm 2014

  • Đã gửi hỗ trợ tệp Kivy cho Vim, và làm việc với Bram Moolenaar qua email bằng patch diff

  • Xin gửi lời tiếc thương tới Bram Moolenaar

  • Katrain sử dụng Kivy, nhưng việc đóng gói và nâng cấp trên các bản phân phối rolling release là vấn đề

  • Khi cài bằng pip thì nó hoạt động một phần

  • Xét từ góc độ đóng gói, Kivy không tốt

  • Một framework Python đa nền tảng tên là flet khá thú vị

    • Nó chạy trên Flutter, và có thể chuyển các tutorial Flutter/Dart sang Flet
    • Chưa dùng thử, nhưng có cộng đồng năng động và cho phép viết ứng dụng đẹp bằng một ngôn ngữ phổ biến
  • Để Kivy được dùng rộng rãi hơn, nó cần gắn kết với lĩnh vực khoa học dữ liệu/machine learning của Python

  • Xây dựng ứng dụng đa nền tảng thiên về dữ liệu trong một hệ sinh thái đơn ngôn ngữ sẽ ít phức tạp hơn so với việc dùng nhiều API và runtime

  • Loại ứng dụng mà cách tiếp cận đơn ngôn ngữ hữu ích không phải là các công việc khoa học dữ liệu mang tính khám phá

  • Cũng không phải các công việc cần đồ họa tương tác hiệu năng cao

  • Trong các công việc đưa thuật toán và công cụ liên quan đến người dùng không chuyên, Kivy có thể có lợi thế nhờ sự đơn giản và khả năng tạo prototype nhanh

  • Có kinh nghiệm viết ứng dụng iOS bằng Swift và SwiftUI

  • Muốn nghe chia sẻ kinh nghiệm từ những người đã viết ứng dụng iOS bằng Kivy và đưa lên App Store