• Home
  • Technologie
    • Bezpieczeństwo
    • Sprzęt
    • Oprogramowanie
    • Mobile
  • Marketing
    • Reklama
    • Social Media
  • Finanse
  • Felietony
  • [IP]
  • Kontakt
    • Reklama w OSnews
    • Pakiet Public Relations
    • Content Marketing w OSnews
OSnews.pl
OSnews.pl
  • Home
  • Technologie
    • Bezpieczeństwo
      Certyfikat SSL, a hosting – dlaczego warto poszukać serwera z darmowymi certyfikatami?

      Certyfikat SSL, a hosting – dlaczego warto poszukać serwera z darmowymi certyfikatami?

      75-latek dorabiał do emerytury na szyfrowaniu cudzych danych

      75-latek dorabiał do emerytury na szyfrowaniu cudzych danych

      Ujawniono najczęściej używane hasła w 2016 roku

      Ujawniono najczęściej używane hasła w 2016 roku

      Mobilny trojan bankowy Faketoken szyfruje dane i atakuje ponad 2 000 aplikacji

      Mobilny trojan bankowy Faketoken szyfruje dane i atakuje ponad 2 000 aplikacji

    • Sprzęt
      Tanie laptopy poleasingowe – czym się charakteryzują i co je różni od nowego sprzętu z marketu?

      Tanie laptopy poleasingowe – czym się charakteryzują i co je różni od nowego sprzętu z marketu?

      Jaki tablet dla dziecka?

      Jaki tablet dla dziecka?

      Pancerne laptopy – sprzęt, który sprawdza się w każdych warunkach

      Pancerne laptopy – sprzęt, który sprawdza się w każdych warunkach

      Zadbaj o swój kręgosłup i spraw sobie wygodne krzesło biurowe

      Zadbaj o swój kręgosłup i spraw sobie wygodne krzesło biurowe

    • Oprogramowanie
      Ta firma potrafi śledzić ruch przy pomocu dźwięku zamiast światła

      Ta firma potrafi śledzić ruch przy pomocu dźwięku zamiast światła

      Dzięki Google nasze smartfony będą na tyle inteligentne, że będą rozpoznawać ludzi i przedmioty w filmach wideo

      Dzięki Google nasze smartfony będą na tyle inteligentne, że będą rozpoznawać ludzi i przedmioty w filmach wideo

      Tłumacz Google wspomagany sztuczną inteligencją działa z trzema nowymi językami

      Tłumacz Google wspomagany sztuczną inteligencją działa z trzema nowymi językami

      Jak i czy warto uruchomić własny portal internetowy?

      Jak i czy warto uruchomić własny portal internetowy?

    • Mobile
      Prawdziwie multimedialny Samsung Galaxy A5 (2017)

      Prawdziwie multimedialny Samsung Galaxy A5 (2017)

      LTE w smartfonie - nie tylko do social media

      LTE w smartfonie - nie tylko do social media

      Nadchodzące premiery smartfonów - Samsung Galaxy S9, LG G7 i inne

      Nadchodzące premiery smartfonów - Samsung Galaxy S9, LG G7 i inne

      Kupujemy smartfon. O czym pamiętać?

      Kupujemy smartfon. O czym pamiętać?

  • Marketing
    • Reklama
    • Social Media
  • Finanse
  • Felietony
  • [IP]
  • Kontakt
    • Reklama w OSnews
    • Pakiet Public Relations
    • Content Marketing w OSnews
  • Follow
    • Facebook
    • Twitter
    • RSS

Po 9 miesiącach prac światło dzienne ujrzał zestaw bibliotek i narzędzi programistycznych Qt 5 w wersji Alfa. Pod kilkoma względami jest to wydanie przełomowe. Po raz pierwszy w tak wczesnej fazie prac w skład zespołu programistów weszli specjaliści spoza firmy Nokia.

Głównym celem wydania wersji Alfa jest zgromadzenie uwag i wskazówek, które będą podstawą przy publikowaniu kolejnych wersji w serii 5. Obecnie skoncentrowano się na modułach z grupy Qt Essentials stanowiących podstawę Qt 5.

Wersja Alfa jest dostępna jedynie w postaci kodu źródłowego. Instrukcje budowania można znaleźć na stronie wiki projektu. W niniejszym artykule przedstawiono stopień realizacji celów obranych w maju 2011.

Wizja

Zasadniczą wizję wyznaczającą kierunek prac nad Qt 5 można określić następująco:

Qt 5 powinien być podstawą nowego podejścia do tworzenia aplikacji. Zachowując możliwość budowania programów natywnych w języku C++, należy się skoncentrować na przejściu do modelu, gdzie C++ jest stosowany głównie do definiowania funkcji logiki biznesowej aplikacji opartych na Qt Quick.

Qt 5.0 zbliża się do realizacji tej wizji. Sprawdza się już ona w przypadku pełnoekranowych interfejsów użytkownika na urządzenia przenośnych i wbudowanych. Na desktopie przechodzenie na Qt 5 zajmie trochę więcej czasu, prawdopodobnie rozpocznie się to przy wydaniu Qt 5.1 lub 5.2.

Otwarty rozwój

Twórcy Qt 5 za cel wybrali otwarty model rozwoju w ramach jednej społeczności z klarownymi zasadami (opisywany już na OSNews.pl Open Governance), aktywnie formującej się wraz z powołaniem do życia inicjatywy qt-project.org. Większość założeń naszkicowanych dwa lata temu zostało osiągniętych. Obecnie istotna liczba poprawek oraz nowych funkcji pochodzi od społeczności – zarówno firm i organizacji (m.in. KDE, Digia, Collabora, Accenture, KDAB) jak też od osób indywidualnych.

Do społeczności może dołączyć każdy. Oprócz wysokiej jakości dokumentacji, dostępne są fora (także polskie), samouczki, filmy, liczne przykłady, a szereg aplikacji Qt jest dostępnych z pełnym kodem źródłowym.

Cztery zmiany w architekturze Qt

Podczas projektowania nowej serii zostały podjęte decyzje o zmianach w wewnętrznej architekturze Qt:

  1. Wszystkie edycje Qt mają teraz bazować na nowej warstwie abstrakcji Qt Platform Abstraction (QPA), tak by ułatwić natywne uruchamianie programów Qt na jeszcze większej liczbie urządzeń i systemów okienkowych. Warstwa QPA została wprowadzona już w Qt 4.8 jako następca QWS/Qt Embedded dla urządzeń wbudowanych, a obecnie jest stosowana na wszystkich platformach. Zastosowanie bardziej przejrzystej architektury wewnętrznej Qt umożliwiło powstanie wersji dla QNX, Androida oraz iOS.
  2. Osiągnięcie widocznego (ok. 2,5x) wzrostu wydajności grafiki w porównaniu do Qt 4 dzięki przeprojektowaniu systemu grafiki z zastosowaniem Qt Quick w wersji 2 i akceleracji OpenGL ES 2 lub OpenGL. Qt 5 wprowadza nową architekturę graficzną dla Qt Quick wykorzystującą struktury danych typu Scenegraph znane z gier i programów 3D. Aby było to możliwe i działało wydajnie, niezbędne było użycie OpenGL. Należy jednocześnie zaznaczyć, że akceleracja nie musi być sprzętowa; można stosować bibliotekę mesa 3D z llvmpipe co paradoksalnie nie ustępuje wydajności grafiki w Qt 4, a przy użyciu przetwarzania wielowątkowego skutkuje ok. 1.5x lepszą wydajnością.

    Podejście to jest stosowane oprócz urządzeń wbudowanych, np. w Ubuntu Unity, które przeszło z GTK+ i Clutter na Qt Quick 1 bez wprowadzania wymagania sprzętowej akceleracji grafiki. Przejście na Qt Quick 2 zapewnie jeszcze bardziej usprawni działanie Unity.

    System wyświetlania QPainter z Qt 4 będzie nadal dostępny w trybie grafiki rastrowej, OpenGL, generacji PDF oraz drukowania. Zgodność z Qt 4 ma umożliwiać uruchamianie w znacznej mierze niezmienionych programów Qt 4 z użyciem Qt 5.

  3. Modularyzacja repozytorium kodu źródłowego Qt w celu osiągnięcia większej niż poprzednio elastyczności i uczynienia podejścia do programowania dla desktopu i urządzeń przenośnych uniwersalnym. Ten cel to głównie zmiany organizacyjne. Biblioteki Qt Mobility stają się w ten sposób pełnoprawnymi, choć opcjonalnymi, modułami Qt. Podział Qt na więcej mniejszych modułów uniezależnia różne funkcje od siebie, podczas gdy dla użytkowników nie jest to widoczne.

    Wydzielenie opcjonalnych modułów Qt oraz modułów dostarczanych przez zewnętrznych autorów (3rd-party) jest pomocne choćby z powodu różnych potrzeb pojawiających przy programowaniu dla laptopów, tabletów i telefonów. Przydaje się to również dlatego, że wraz z wydaniem Qt 5.0 będzie (tak jak w ramach Qt 4.x) obowiązywała znana z poprzednich edycji ścisła zasada zgodności binarnej bibliotek. W ten sposób Qt 5 będzie dostarczać więcej modułów i funkcji niż jakakolwiek poprzednia wersja. Moduły dodatkowe znajdują się w grupie zwanej Qt Add-ons.

  4. Oddzielenie wszystkich QWidgetów przez umieszczenie ich w osobnej bibliotece graficznej. Krok ten zapewnia niezmieniony dostęp do biblioteki graficznej opartej na QWidget w sytuacjach gdy zachodzi taka potrzeba, a jednocześnie poprawia modularność, przez co nie wymusza dostarczania obsługi QWidget na w przypadkach gdy interfejs graficzny jest realizowany wyłącznie przy pomocy Qt Quick.

Fundamentalne zmiany w Qt zapowiedziane na długo przed wydaniem wersji Alfa wywołały szereg pytań i dyskusji. Zostały one rozpatrzone, co zapewne miało pozytywny wpływ na jakość niniejszego wydania.

Nowe funkcje

Obok zmian w architekturze Qt, piąta edycja oferuje szereg nowych funkcji. Oto ich krótkie omówienie:

  • Qt Core oferuje teraz QStandardPaths – narzędzie do uzyskiwania informacji standardowych lokalizacjach plików (dokumenty multimedia) bez względu na rodzaj urządzenia na którym działa Qt. Pojawiła się wydajna obsługa formatu JSON (stosuje go też QML), bardziej optymalne wyrażenia regularne (w stylu Perla) oraz rozpoznawanie typów plików (MIME) zarówno po rozszerzeniu jak i zawartości. Ta ostatnia funkcja została dostarczona przez osoby z projektu KDE. Poprawność połączeń sygnałów i slotów może być teraz sprawdzana podczas kompilacji programu. Wreszcie, Qt wykorzystuje nowy standard C++11 w przypadkach gdzie ma to sens (o ile sobie tego życzymy i obsługuje go kompilator).
  • Qt Gui nie zawiera teraz żadnych QWidgetów, gdyż te zostały przeniesione do osobnej biblioteki QtWidgets. Obsługa OpenGL jest teraz wbudowana w Qt Gui.
  • Qt Network oprócz dodania licznych usprawnień obsługuje teraz przeszukiwanie DNS.
  • Qt Widgets – klasyczne widżety Qt z punktu widzenia programisty działają tak jak w Qt 4, jednak wewnętrznie są obsługiwane w architekturze abstrakcji QPA.
  • Qt Quick jest teraz dostępny w dwóch wersjach: Qt Quick 1 i Qt Quick. Qt Quick 1 jest odpowiednikiem Qt Quick z Qt 4. Stanowi on część Qt 5 w celu utrzymania pełnej zgodności z Qt 4, jednak nie będą do niego dodawane żadne nowe funkcje, a jedynie poprawki. Druga wersja Qt Quick to zaś narzędzie zalecane przy tworzeniu aplikacji w Qt 5.

    Oprócz wspomnianego przyrostu wydajności możliwego dzięki zastosowaniu Scenegraph, do osobnych modułów przeniesiono obsługę języków QML oraz JavaScript (oparty na szybkim silniku V8 znanym z Google Chrome). Może to prawdopodobnie pozwolić na tworzenie aplikacji QML nie korzystających z ekranu graficznego. Nowy Qt Quick ma być w znacznej mierze zgodny z Qt Quick 1; różnice będą widoczne przy pisaniu rozszerzeń elementów QML w języku C++.

  • Qt 3D i Qt Location to nowe moduły z Qt Essentials. Qt 3D umożliwia programowanie 3D w Qt (C++ oraz Qt Quick), przy czym obsługuje wiele formatów modeli 3D, w tym format 3D Studio MAX od Autodesk. Qt Location oferuje programistom dostęp do GPS, map i innych usług lokalizacyjnych.
  • Qt WebKit korzysta z nowej wersji 2 silnika WebKit oferując przez to lepszą zgodność ze sztandarem HTML 5.

Przenoszenie programów z Qt 4.x na Qt 5

Łatwość przechodzenia na Qt 5 jest jednym z priorytetów projektu. Liczba zmian jakich ma dokonać programista w swoim kodzie źródłowym przy przechodzeniu na Qt 5 jest obecnie niewielka. Rzecz jasna kod trzeba ponownie skompilować, gdyż nie ma zgodności binarnej między wersją 4 a 5. Szczegółowe instrukcje znajdują się na wiki projektu. Przykładem pokazującym poziom przenośności kodu źródłowego może być fakt, że Qt Creator już obecnie kompiluje się i działa z Qt 4 oraz 5 przy użyciu tego samego kodu źródłowego.

Programiści powinni pamiętać, że nie ma nagłej potrzeby przechodzenia na Qt 5. Qt 4.8 wciąż będzie przez znaczny czas pielęgnowane przez społeczność i firmy takie jak Digia. Przejście na Qt 5 należy uwzględniać po wykonaniu rachunku korzyści i kosztów.

Co dalej?

Powyższy opis pokazuje pokrótce jak wiele zdarzyło się w dziedzinie Qt odkąd wystartował projekt 5. Osoby zainteresowane pomocą przy projekcie mogą pobrać wersję Alfa w celu jej wypróbowania i zgłoszenia swych uwag. Dobrym sposobem kontaktu jest lista dyskusyjna development@qt-project.org (rejestracja na lists.qt-project.org) lub zgłaszanie błędów na stronie bugreports.qt-project.org. Poprawki do kodu źródłowego zgłasza się w otwartym systemie codereview.qt-project.org.

W sieci dostępne są liczne przykłady zastosowania Qt 5. Oto najciekawsze z nich:

  • Pimp my video: prezentacja użycia użycia programów cieniujących (OpenGL Shaders) z Qt Quick
  • Jak wyżej, efekty graficzne aplikowane do statycznych obrazów
  • Qt 5, QML i shadery na urządzeniu Raspberry Pi (kosztującym kilkadziesiąt PLN).
  • Qt 5 optymalizowane dla Raspberry Pi
  • Prezentacja Qt 3D
  • Qt MediaHub – prezentacja potęgi i wygody użycia Qt Quick.
  • Qt 5 dla tabletu Blackberry Playbook
  • Snowshoe – przeglądarka internetowa wykonana w pełni w Qt Quick z Qt 5, działająca na telefonach N9
  • Quasi Engine – silnik do gier 2D

Programowanie efektów video z Qt Quick 2 na żywo:

(na podstawie artykułu Larsa)

  • Tags
  • open-source
  • programowanie
  • qt
  • Wydania
Facebook Twitter Google+ LinkedIn Pinterest
Następny wpis Bloger w telewziji? Celebryta cholerny!
Poprzedni wpis Nowa wersja SUSE Linux Enterprise

Warto przeczytać

Najbardziej opłacalne języki programowania – które są najbardziej pożądane na rynku? Technologie
5 maja 2020

Najbardziej opłacalne języki programowania – które są najbardziej pożądane na rynku?

Kurs programowania online - dobre rozwiązanie dla młodzieży Technologie
22 kwietnia 2020

Kurs programowania online - dobre rozwiązanie dla młodzieży

Nauka programowania to nie lot w kosmos - sprawdź jak się przebranżowić na programistę Technologie
11 września 2019

Nauka programowania to nie lot w kosmos - sprawdź jak się przebranżowić na programistę

Oś czasu

17 Lut 11:48
Technologie

4Developers 2021 w wirtualnej odsłonie!

15 Lut 11:47
Technologie

Jak wypromować własny kanał na Youtubie?

09 Lut 12:32
Technologie

Co nowego w Linux Magazine w lutym?

20 Sty 09:54
Technologie

Najlepsze telefony do 1000 zł

13 Sty 09:19
Technologie

Co nowego w Linux Magazine w styczniu?

Technologiczny cytat tygodnia

Wydaliśmy wiele, ale ciągle wiele mamy... I prawdę mówiąc jest to więcej niż potrzebujemy, by prowadzić firmę.

Tim Cook na spotkaniu udziałowców Apple odnosząc się do kwestii zasobów gotówki Apple na poziomie 100 mld USD

Tagi

android apple bezpieczeństwo biznes cenzura Debian edukacja facebook Firefox firma google gry hardware imprezy intel internet iphone kaspersky KDE kraj Laptopy media microsoft mobile mozilla nokia open-source oprogramowanie piractwo prawo press-release programowanie prywatność reklama Samsung smartfon software standardy sun Ubuntu UNIX usa windows Wydania Wydarzenia
  • Home
  • Technologie
  • Marketing
  • Finanse
  • Felietony
  • [IP]
  • Kontakt
  • Back to top

O blogu



OSNews to serwis poświęcony nowym technologiom oraz ich roli we współczesnym biznesie. Opowiadamy o przydatnych usługach, zmianach na rynku oraz najnowszym oprogramowaniu, które ułatwi Tobie pracę.

Kontakt

Masz jakieś pytania? Chcesz podzielić się swoimi uwagami na temat serwisu? Nie ma sprawy, po prostu napisz do nas maila.

OSNews.pl
Conrada 30
01-920 Warszawa
redakcja@osnews.pl
© OSnews.pl 2016-2019. All rights reserved.