Facebook - konwersja

Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych - ebook

Wydawnictwo:
Data wydania:
3 stycznia 2023
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
69,00

Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych - ebook

By szybciej, sprawniej i skuteczniej zarządzać projektami.

Znalezienie odpowiedzi na zaprzątające umysł pytania z zakresu automatyzacji zwykle wiąże się ze spędzeniem długich godzin na wertowaniu niespójnej dokumentacji lub przeszukiwaniu forum Atlassian Community, gdzie swoimi problemami (a także autorskimi pomysłami na ich rozwiązanie) dzielą się inni użytkownicy Jiry. To jednak często bezproduktywne działanie, a jedynym skutecznym ... albo i nieskutecznym ... sposobem, by pokonać przeszkodę, jest metoda prób i błędów. W szczególności dotyczy to klas, metod i interfejsów, o których możemy jedynie powiedzieć, że istnieją i przyjmują określone typy parametrów.

Książka Jakuba Kalinowskiego ma w zamyśle oszczędzić czytelnikom żmudnego procesu pozyskiwania wiedzy i dać wskazówki, jak rozwiązać konkretne problemy, z którymi mogą się oni zetknąć podczas pracy z Atlassian Jira Server. Znalazło się tu omówienie takich kwestii jak custom fields, workflows, integracje z API, funkcjonalności dostarczane przez pluginy, a także tego, co niesłusznie jest uznawane za terra incognita, czyli tworzenia własnych pluginów. Autor uzupełnił treść o kilka zagadnień związanych z integracją Jiry i Confluence, jak również z bazami Insight - Asset Management, ponieważ obie aplikacje często są obecne w projektach biznesowych, a ich automatyzacja zazwyczaj przysparza wielu problemów.

To książka adresowana przede wszystkim do czytelników, którzy mają już doświadczenie w zarządzaniu projektami i instancjami Jira, jednak do tej pory nie zdecydowali się na pisanie skryptów automatyzujących.

Spis treści

Od autora

Wprowadzenie

Część I. PRZYGOTOWANIE ŚRODOWISKA PRACY

  • Rozdział 1. Instalacja własnej instancji Jiry
    • 1.1. Warunki początkowe
    • 1.2. Przygotowanie systemu operacyjnego
    • 1.3. Instalacja bazy danych
    • 1.4. Instalacja Jira Software Server/Data Center
    • 1.5. Pierwsze uruchomienie Jiry

Część II. DOKUMENTACJA I NARZĘDZIA DEWELOPERA

  • Rozdział 2. Składnia Groovy'ego
    • 2.1. Uwagi dla programistów Javy
    • 2.2. Import bibliotek
    • 2.3. Deklaracja i inicjalizacja zmiennych
    • 2.4. Tworzenie funkcji
    • 2.5. Wykorzystanie klas
    • 2.6. Instrukcje sterujące i pętle
      • 2.6.1. Instrukcja if... else...
      • 2.6.2. Pętla for in
      • 2.6.3. Pętle each() i eachWithIndex()
      • 2.6.4. Metody find() i findAll()
  • Rozdział 3. Atlassian Java APIs
    • 3.1. Accessors (akcesory)
      • 3.1.1. ComponentAccessor
      • 3.1.2. PluginAccessor
    • 3.2. Managers (menedżery)
      • 3.2.1. AttachmentManager
      • 3.2.2. ChangeHistoryManager
      • 3.2.3. CommentManager
      • 3.2.4. CustomFieldManager
      • 3.2.5. GroupManager
      • 3.2.6. IssueLinkManager
      • 3.2.7. IssueManager
      • 3.2.8. LabelManager
      • 3.2.9. OptionsManager
      • 3.2.10. PriorityManager
      • 3.2.11. ProjectComponentManager
      • 3.2.12. ProjectManager
      • 3.2.13. ProjectRoleManager
      • 3.2.14. SubTaskManager
      • 3.2.15. UserManager
      • 3.2.16. VersionManager
    • 3.3. Services (serwisy)
      • 3.3.1. IssueService
      • 3.3.2. IssueIndexingService
      • 3.3.3. ProjectService
      • 3.3.4. SearchService
      • 3.3.5. UserService
  • Rozdział 4. Dokumentacja w sieci
    • 4.1. Społeczność
    • 4.2. Biblioteki Javy dla produktów Atlassian
    • 4.3. Ogólne zagadnienia z programowania w Javie i Groovym
    • 4.4. Dokumentacja REST API
    • 4.5. Dokumentacja pluginów
    • 4.6. Pozostałe
  • Rozdział 5. Testowanie zmian
    • 5.1. Logi
      • 5.1.1. Application logs (logi aplikacyjne)
      • 5.1.2. System logs (logi systemowe)
    • 5.2. Loggers (loggery)
    • 5.3. Audit log (analizator dzienników)
    • 5.4. Support zip (plik dla działu wsparcia)
    • 5.5. Testowanie uprawnień użytkowników
      • 5.5.1. Permission helper
      • 5.5.2. Switch to a different user
    • 5.6. Sposoby testowania skryptów

Część III. TWORZENIE SKRYPTÓW ZA POMOCĄ PLUGINÓW

  • Rozdział 6. Wybór pluginów
    • 6.1. Określenie aktualnych i przyszłych potrzeb
    • 6.2. Porównanie najpopularniejszych pluginów
      • 6.2.1. ScriptRunner
      • 6.2.2. Jira Misc Workflow Extensions (JMWE)
      • 6.2.3. JSU Automation Suite for Jira Workflows
    • 6.3. Decyzja i jej konsekwencje
    • 6.4. Utrzymanie rozwiązań w pluginach
  • Rozdział 7. Przegląd sposobów automatyzacji
    • 7.1. Post functions (post funkcje)
    • 7.2. Conditions (warunki)
    • 7.3. Validators (walidatory)
    • 7.4. Operacje cykliczne
      • 7.4.1. ScriptRunner
      • 7.4.2. JMWE
    • 7.5. Skrypty wyzwalane przez listenery
      • 7.5.1. ScriptRunner
      • 7.5.2. JMWE
    • 7.6. Behaviours
    • 7.7. Fragments (fragmenty)
    • 7.8. REST Endpoint
    • 7.9. Aktualizacja system fields i custom fields
    • 7.10. Wykonywanie przejść w workflows
    • 7.11. Integracja Jiry i Confluence
    • 7.12. Integracja Jiry z Insight - Asset Management

Część IV. TWORZENIE PLUGINÓW ZA POMOCĄ ATLASSIAN SDK

  • Rozdział 8. Instalacja Atlassian SDK
    • 8.1. Środowisko Windows
      • 8.1.1. Weryfikacja JDK
      • 8.1.2. Instalacja JDK
      • 8.1.3. Instalacja Atlassian SDK
    • 8.2. Środowisko Linux
      • 8.2.1. Instalacja JDK
      • 8.2.2. Instalacja Atlassian SDK
    • 8.3. Praca w Eclipse
      • 8.3.1. Konfiguracja projektu w Eclipse
      • 8.3.2. Konfiguracja projektu w Intellij IDEA
  • Rozdział 9. Generowanie szkieletu projektu
    • 9.1. Tworzenie szkieletu pluginu
    • 9.2. Tworzenie modułów pluginu
    • 9.3. Budowanie paczek za pomocą Mavena i ich instalacja
  • Rozdział 10. Przykłady własnych pluginów i modułów
    • 10.1. Uwagi techniczne
      • 10.1.1. Plik pom.xml
      • 10.1.2. Plik konfiguracyjny atlassian-plugin.xml
      • 10.1.3. Zmiana logo pluginu
      • 10.1.4. Wstrzykiwanie zależności
    • 10.2. Dodatkowy element w menu górnym Jiry
    • 10.3. Post functions (post funkcje)
      • 10.3.1. Wymagania biznesowe
      • 10.3.2. Utworzenie klasy obsługującej skrypt post funkcji
      • 10.3.3. Utworzenie serwisu obsługującego parametry post funkcji
      • 10.3.4. Przygotowanie szablonów Velocity
    • 10.4. Conditions (warunki przejścia)
      • 10.4.1. Wymagania biznesowe
      • 10.4.2. Utworzenie klasy obsługującej skrypt warunku przejścia
      • 10.4.3. Utworzenie serwisu obsługującego parametry warunku przejścia
      • 10.4.4. Przygotowanie szablonów Velocity
    • 10.5. Validators (walidatory)
      • 10.5.1. Wymagania biznesowe
      • 10.5.2. Utworzenie klasy obsługującej skrypt walidatora
      • 10.5.3. Utworzenie serwisu obsługującego parametry walidatora
      • 10.5.4. Przygotowanie szablonów Velocity
    • 10.6. REST Endpoint
      • 10.6.1. Wymagania biznesowe
      • 10.6.2. Utworzenie modelu danych JSON
      • 10.6.3. Utworzenie kontrolera dla REST Endpointu

Część V. SYSTEM FIELDS I CUSTOM FIELDS

  • Rozdział 11. Praca z polami
    • 11.1. Sposób wykorzystania system fieldów i custom fieldów
    • 11.2. Dobre praktyki stosowania custom fieldów
      • 11.2.1. Nazewnictwo custom fieldów
      • 11.2.2. Stosowanie kontekstów w custom fieldach
      • 11.2.3. Używanie identyfikatorów custom fieldów zamiast nazw
      • 11.2.4. Dobór odpowiedniego typu custom fieldu
  • Rozdział 12. Dane z system fieldów i custom fieldów
    • 12.1. System fields
      • 12.1.1. Warunki początkowe
      • 12.1.2. Pobieranie wartości
    • 12.2. Text fields i number fields
      • 12.2.1. Warunki początkowe
      • 12.2.2. Pobieranie wartości
      • 12.2.3. Przetwarzanie wartości
    • 12.3. Select list (single choice)
      • 12.3.1. Warunki początkowe
      • 12.3.2. Pobieranie wartości
      • 12.3.3. Przetwarzanie wartości
      • 12.3.4. Dodawanie, usuwanie i dezaktywacja opcji
    • 12.4. Select list (multiple choices)
      • 12.4.1. Warunki początkowe
      • 12.4.2. Pobieranie wartości
      • 12.4.3. Przetwarzanie wartości
      • 12.4.4. Dodawanie, usuwanie i dezaktywacja opcji
    • 12.5. Checkboxes, radio buttons
    • 12.6. Date pickers, date time pickers
      • 12.6.1. Warunki początkowe
      • 12.6.2. Pobieranie wartości
      • 12.6.3. Przetwarzanie wartości
    • 12.7. User pickers i group pickers
      • 12.7.1. Warunki początkowe
      • 12.7.2. Pobieranie wartości
      • 12.7.3. Przetwarzanie wartości
    • 12.8. Scripted fields (pola skryptowe)
      • 12.8.1. Definiowanie scripted fieldów
      • 12.8.2. Text field (multi-line)
      • 12.8.3. Data, data time
      • 12.8.4. Number fields
      • 12.8.5. User picker, group picker

Część VI. OPERACJE NA ZGŁOSZENIACH I PROJEKTACH

  • Rozdział 13. Aktualizacja i tworzenie zgłoszeń
    • 13.1. Aktualizacja tasków i sub-tasków
      • 13.1.1. Warunki początkowe
      • 13.1.2. Aktualizacja system fieldów
      • 13.1.3. Aktualizacja pojedynczego custom fieldu w zgłoszeniu
      • 13.1.4. Aktualizacja wielu custom fieldów i system fieldów w zgłoszeniu
    • 13.2. Tworzenie tasków (samodzielnych zgłoszeń)
      • 13.2.1. Tworzenie zgłoszenia z podstawowymi parametrami
      • 13.2.2. Tworzenie zgłoszenia z ustawieniem wartości wybranych custom fieldów
    • 13.3. Tworzenie sub-tasków (podzadań)
      • 13.3.1. Warunki początkowe
      • 13.3.2. Wymagania biznesowe
      • 13.3.3. Utworzenie skryptu realizującego wymagania biznesowe
    • 13.4. Walidacja zgłoszeń
      • 13.4.1. Warunki początkowe
      • 13.4.2. Weryfikacja błędów w trakcie walidacji
    • 13.5. Operacje na załącznikach (attachments)
      • 13.5.1. Warunki początkowe
      • 13.5.2. Pobieranie załączników ze zgłoszenia
      • 13.5.3. Tworzenie załączników w zgłoszeniach
  • Rozdział 14. Linked issues (zgłoszenia powiązane)
    • 14.1. Rodzaje linked issues
    • 14.2. Pobieranie danych
      • 14.2.1. Warunki początkowe
      • 14.2.2. Pobranie danych z linków zgłoszenia
      • 14.2.3. Przetwarzanie danych
    • 14.3. Tworzenie linked issues
      • 14.3.1. Warunki początkowe
      • 14.3.2. Wymagania biznesowe
      • 14.3.3. Realizacja wymagań biznesowych
    • 14.4. Powiązania issues in epic
    • 14.5. Struktury hierarchiczne powyżej trzech poziomów
  • Rozdział 15. Praca z danymi projektu
    • 15.1. Components (komponenty)
      • 15.1.1. Warunki początkowe
      • 15.1.2. Pobieranie danych
      • 15.1.3. Tworzenie i edycja komponentów
      • 15.1.4. Dodawanie zgłoszeń do komponentów
    • 15.2. Versions (wersje)
      • 15.2.1. Warunki początkowe
      • 15.2.2. Pobieranie danych
      • 15.2.3. Tworzenie i edycja wersji
      • 15.2.4. Dodawanie zgłoszeń do wersji
    • 15.3. Project category (kategoria projektu)
      • 15.3.1. Warunki początkowe
      • 15.3.2. Dodanie projektu do kategorii
      • 15.3.3. Utworzenie i edycja kategorii projektu
    • 15.4. Projekty
      • 15.4.1. Warunki początkowe
      • 15.4.2. Tworzenie projektu z domyślną konfiguracją
      • 15.4.3. Klonowanie projektów
      • 15.4.4. Pobieranie danych i edycja projektu
  • Rozdział 16. Automatyzacja przejść w workflow
    • 16.1. Zmienna transientVars
    • 16.2. Wykonanie prostego przejścia
      • 16.2.1. Wykonanie przejścia za pomocą WorkflowTransitionUtil
      • 16.2.2. Wykonanie przejścia za pomocą IssueService
    • 16.3. Złożone przejścia
      • 16.3.1. Wykonanie złożonego przejścia za pomocą WorkflowTransitionUtil
      • 16.3.2. Wykonanie złożonego przejścia za pomocą komponentu IssueService
    • 16.4. Ignorowanie walidatorów i warunków
      • 16.4.1. Ignorowanie warunków w przejściach (WorkflowTransitionUtil)
      • 16.4.2. Ignorowanie warunków w przejściach (IssueService)
    • 16.5. Wykorzystanie danych z transientVars
  • Rozdział 17. ScriptRunner Behaviours
    • 17.1. Pobieranie i ustawianie wartości pól formularza
    • 17.2. Ustawianie wartości różnych typów pól
      • 17.2.1. Select lists, radio buttons, checkboxes
      • 17.2.2. Pickers (pikery)
      • 17.2.3. Date i date time pickers
    • 17.3. Pozostałe operacje z wykorzystaniem Behaviours

Część VII. KOMUNIKACJA PRZEZ REST API

  • Rozdział 18. Charakterystyka Jira REST API
    • 18.1. URI zapytania
    • 18.2. Uwierzytelnienie i autoryzacja
      • 18.2.1. Basic authentication
      • 18.2.2. OAuth
    • 18.3. Dokumentacja Jira REST API
    • 18.4. Wykorzystanie Jira REST API w projektach biznesowych
  • Rozdział 19. Operacje przez Jira REST API
    • 19.1. Pobieranie danych przez Jira REST API
      • 19.1.1. Plik CSV z listą zgłoszeń
      • 19.1.2. Zestawienie custom fieldów, które nie występują na screenach
      • 19.1.3. Pobranie użytkowników z danej grupy
      • 19.1.4. Zwrócenie listy zarchiwizowanych projektów
    • 19.2. Tworzenie obiektów w Jirze
      • 19.2.1. Tworzenie zgłoszeń z podstawowymi danymi
      • 19.2.2. Tworzenie zgłoszeń z wartościami custom fieldów
      • 19.2.3. Tworzenie projektów
    • 19.3. Edycja zgłoszeń w Jirze
  • Rozdział 20. Własne REST API
    • 20.1. Utworzenie REST Endpoint
    • 20.2. Strony WWW oparte na REST Endpointach
    • 20.3. Wystawienie danych w postaci obiektu JSON
    • 20.4. Przetworzenie żądania POST
  • Rozdział 21. Komunikacja z Jira REST API przez aplikacje zewnętrzne
    • 21.1. Aplikacje Javy
    • 21.2. JavaScript
    • 21.3. PHP
    • 21.4. Python
    • 21.5. Excel/Power Query
      • 21.5.1. Visual Basic for Application (VBA)
      • 21.5.2. Power Query

Część VIII. INTERAKCJA JIRY Z CONFLUENCE

  • Rozdział 22. Operacje na przestrzeniach i stronach
    • 22.1. Połączenie instancji Jiry i Confluence
    • 22.2. Pobieranie zawartości strony
    • 22.3. Tworzenie przestrzeni
    • 22.4. Aktualizacja stron w przestrzeni
      • 22.4.1. Utworzenie przestrzeni z modyfikacją strony głównej
      • 22.4.2. Aktualizacja wybranej strony Confluence
    • 22.5. Tworzenie stron i przestrzeni
    • 22.6. Tworzenie podstron
    • 22.7. Dodanie etykiet (labels) do stron i podstron
    • 22.8. Tworzenie stron z szablonu
  • Rozdział 23. Zarządzanie uprawnieniami do przestrzeni

Część IX. INTERAKCJA Z INSIGHT - ASSET MANAGEMENT

  • Rozdział 24. Wprowadzenie do baz Insight - Asset Management
    • 24.1. Tworzenie schematów obiektów (object schemas)
      • 24.1.1. Ustawienia statusów
      • 24.1.2. Ustawienia ról
    • 24.2. Tworzenie typów obiektów
    • 24.3. Object attributes (atrybuty obiektów)
    • 24.4. Atrybuty referencyjne
  • Rozdział 25. Pola Insighta w Jirze
    • 25.1. Typy pól Insighta w Jirze
      • 25.1.1. Insight object/s
      • 25.1.2. Insight referenced object/s
      • 25.1.3. Pozostałe typy custom fieldów
    • 25.2. Obiekty Insighta w Javie/Groovym
      • 25.2.1. Poziom pierwszy - ObjectBean
      • 25.2.2. Poziom drugi - ObjectAttributeBean
      • 25.2.3. Poziom trzeci - ObjectAttributeValueBean
    • 25.3. Pobieranie danych z obiektów Insighta
      • 25.3.1. Warunki początkowe
      • 25.3.2. Pobranie atrybutów typu default z obiektów Insighta
      • 25.3.3. Pobieranie atrybutów typu object
    • 25.4. Aktualizacja wartości custom fieldów typu Insight object/s
      • 25.4.1. Obiekty Insighta pobrane przez identyfikator
      • 25.4.2. Obiekty Insighta wybrane przez zapytanie IQL
    • 25.5. Operacje za pomocą ScriptRunner Behaviours
  • Rozdział 26. Operacje na schematach obiektów Insighta
    • 26.1. Zmiana wartości atrybutu typu default
    • 26.2. Zmiana wartości atrybutu typu object
    • 26.3. Tworzenie obiektów Insighta
    • 26.4. Usuwanie obiektów z bazy Insight
Kategoria: Zarządzanie i marketing
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-8322-800-6
Rozmiar pliku: 17 MB

BESTSELLERY

Kategorie: