Nét mới cho nhà phát triển

Những thay đổi dưới đây quan trọng đối với nhà phát triển sử dụng nền tảng phát triển GNOME 3.2. Nếu bạn không quan tâm tới những vấn đề này, bạn có thể bỏ qua Tiết đoạn 5 ― Quốc tế hóa.

Kèm theo GNOME 3.2 là nền tảng phát triển GNOME mới nhất. Nó bao gồm một bộ thư viện API và ABI-stable theo giấy phép GNU LGPL để có thể phát triển những ứng dụng đa nền.

Để biết thêm chi tiết về việc phát triển với GNOME, vui lòng truy cập trang trung tâm phát triển GNOME.

4.1. GLib 2.30

Thư viện ứng dụng phần mềm sơ cấp của GNOME GLib có nhiều cải tiến:

  • Lớp GApplication bây giờ có thể dùng cho những ứng dụng không duy nhất.
  • GLib cài đặt phần đầu riêng lẻ cho những API Unix-specific: glib-unix.h. Trong những thứ đó, nó cung cấp một nguồn vòng lặp chính cho những tín hiệu Unix.
  • GDBus hỗ trợ mẫu 'object manager' với một số giao diện mới.
  • GDBus có một bộ máy tạo mã: gdbus-codegen.
  • Những hoạt động nguyên tử đã được viết lại để sử dụng gcc tích hợp; những phép gọi với ép kiểu tường minh có thể gặp vấn đề.
  • Những hoạt động nguyên tử trên con trỏ đã được thêm vào, bao gồm các khóa từng bit (bit-locks) trên những vị trí kích thước con trỏ (pointer-size).
  • Chính sách đơn vị đã được thay đổi để thuận theo hệ đơn vị đo lường quốc tế SI; g_format_size_for_display đã được thay thế bởi: g_format_size.
  • Hỗ trợ mã chứng thực thông điệp HMAC đã được thêm vào qua lớp GHmac.
  • Một giao diện cho việc tra cứu chứng thực và chữ kí số đã được thêm vào qua lớp GTlsDatabase. Việc thực thi được cung cấp bởi glib-networking.

4.2. GTK+ 3.2

GTK+ 3.2 là phiên bản mới nhất của bộ công cụ GTK+, vốn là trái tim của GNOME. GTK+ 3.2 bao gồm nhiều tính năng cho nhà phát triển, cũng như cập nhật nhiều bản vá lỗi.

  • Bây giờ các đầu vào có thể chứa gợi ý. Xem gtk_entry_set_placeholder_text.
  • Nhiều tiện ích hỗ trợ quản lí hình học chiều cao - chiều rộng. Nó quan trọng khi thiết đặt kích cỡ hợp lí cho nhãn và khi kiểm tra kích thước cửa sổ.
  • Tiện ích mới:
    • GtkLockButton dành cho những thao tác yêu cầu tính ưu tiên, có thể thấy trong một số bảng điều khiển trung tâm.
    • GtkOverlay cho những bảng điều khiển nổi trên một vùng chứa nội dung, có thể thấy trên trình duyệt web.
    • GtkFontChooserDialog, một hộp thoại lựa chọn phông chữ mới.
  • Cải thiện việc hỗ trợ chủ đề CSS, bao gồm kiểu dáng cho thanh công cụ.
  • Cơ chế dựng HTML Broadway, chuyên dựng trong trình duyệt sử dụng websockets, đã được cải thiện nhưng vẫn còn đang thử nghiệm. Tiềm năng này cho phép bạn vừa chạy chương trình trên máy chủ vừa truy xuất được nó ở khắp mọi nơi, hoặc đưa nó lên một máy chủ công cộng cho mọi người sử dụng. Lưu ý là nó cần biên dịch GTK+ với --enable-x11-backend --enable-broadway-backend và biến môi trường GDK_BACKEND khi chạy.
  • Hỗ trợ reftests đã được thêm vào để đơn giản việc viết tình huống kiểm tra.
  • Nhiều cải tiến hiệu năng GTK+đã được tích hợp vào trong khu vực yêu cầu kích thước bộ nhớ đệm, đọc thông tin kiểu dáng CSS và tính toán kích thước tiện ích.

4.3. Clutter 1.8

Clutter, thư viện đồ họa tăng tốc từ phần cứng GNOME, mang lại những cải tiến sau:

  • Nhiều hoạt động mới, như ClutterGestureAction dùng để nhận biết cử chỉ.
  • Chuyển cảnh ClutterState có thể được gán vào tín hiệu khi tạo ra một cảnh trong ClutterScript.
  • Cải thiện tích hợp họa tiết Cairo
  • Cogl, giao diện lập trình GPU được dùng bởi Clutter, được tách ra thành thư viện riêng.

4.4. Dùng những thư viện lỗi thời

Những tiến bộ vượt bậc đã được thực hiện trong việc liên tục thay thế những công nghệ lạc hậu.

  • GConf bây giờ dùng D-Bus mặc định và vì thế không còn cần ORBit2 nữa. Như vậy, các thư viện ORBit2libIDL trở nên lỗi thời và được gỡ khỏi GNOME.
  • Những mô-đun cốt lõi của GNOME bây giờ chỉ phụ thuộc vào những ràng buộc với Python dựa trên sự nội quan (pygobject-3) và vì thế pygtk, gnome-pythongnome-python-desktop không còn cần thiết nữa.
  • Một vài ứng dụng (ví dụ Accerciser, Dasher, GHex, gỡ lỗi đồ họa Nemiver, và công cụ quản lí mật khẩu và mã hóa khóa Seahorse) bây giờ dùng GSettings thay cho GConf.
  • Một vài gói, như với trình duyệt web Epiphany, đã được chuyển đổi từ dbus-glib sang GDBus và từ libunique sang G(tk)Application.

4.5. Dễ dàng biên dịch GNOME với JHBuild

Công cụ xây dựng GNOME JHBuild không còn dựng thành mô-đun nữa nếu phiên bản trên máy bạn đã lạc hậu. Điều này được tác động bởi tùy chọn cấu hình partial_build và nó được kích hoạt mặc định. Câu lệnh jhbuild sysdeps liệt kê những mô-đun hệ thống được tìm thấy cũng như những mô-đun sẽ được dựng.

Nếu bạn bắt đầu dựng GNOME từ đầu với một bản phân phối gần đây, điều này giúp bạn bỏ qua 50 mô-đun trong danh sách cần phải biên dịch.

4.6. Những cập nhật khác cho nhà phát triển

Những cải tiến khác của nền tảng GNOME trong GNOME 3.2:

  • Những ràng buộc cổ điển (tĩnh) trong Python đã được loại bỏ cho PyGObject 3.0 và chỉ những ràng buộc Python động được cung cấp (qua nội quan). PyGObject 2 và 3 có thể cài đặt song song, vì nội quan bị vô hiệu mặc định trong PyGObject 2. Thông tin về chuyển ứng dụng của bạn từ PyGObject 2 sang PyGObject 3 đã có sẵn.
  • Phiên bản 0.12 của ứng dụng Tracker hỗ trợ cho Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, thêm vài tham số SPARQL, thông tin trích lược từ tập tin EPub và những tập tin "desktop" trong thư mục XDG cục bộ.
  • Ứng dụng NetworkManager phiên bản 0.9 hỗ trợ nội quan và một API D-Bus giản lược. Thông tin làm thế nào để chuyển ứng dụng từ NetworkManager 0.8 sang 0.9 đã có sẵn.
  • Trong một nổ lực xúc tiến PKCS#11 như là cầu nối giữa các thư viện mã hóa, nhiều thành phần của gnome-keyring đã được chia thành các thư viện độc lập.
  • GtkSourceView bây giờ hỗ trợ việc làm nổi bật cú pháp của Markdown và Standard ML.
  • Evolution-Data-Server nhận được nhiều khắc phục hỗ trợ nội quan.
  • libfolks bây giờ bao gồm một cơ chế Evolution-Data-Server, vốn được dùng bởi ứng dụng Contacts mới.
  • Để xử lí văn bản, những công cụ gnome-doc-utilsxml2po dần dần được thay thế bởi yelp-toolsitstool. yelp-xsl bao gồm một số phần mở rộng còn thử nghiệm Mallard, như là xử lí có điều kiện và bảng thuật ngữ động.