Na konferencji WWDC2020 zapowiedziano aktualizację Xcode do wersji 12. Wraz z nią Xcode otrzyma długo oczekiwane wsparcie grafiki wektorowej w formacie SVG (Scalable Vector Graphic) do wykorzystania w aplikacjach na iOS, macOS oraz iPadOS.

Dotychczas programiści musieli żmudnie przygotowywać zestawy grafik składające się z tego samego obrazu w kilku wersjach skalowania (@1x, @2x, @3x). Od momentu wejścia Xcode 12 ta uciążliwa tradycja przechodzi do lamusa, a developerzy zyskują oszczędność czasu oraz brak ryzyka pomyłki przy opracowywaniu poszczególnych wersji grafik. 

Rodzaje grafik

Do dyspozycji mamy dwa rodzaje grafiki: rastrowa i wektorowa.

Grafika rastrowa

Przykładami grafiki rastrowej są bitmapy, gdzie cały obszar roboczy dzielimy na siatkę punktów. W każdym punkcie przechowujemy zestaw informacji o jego kolorze czy przezroczystości.

Przykładowe rozszerzenia grafiki rastrowej: bmp, png, jpg, tiff, raw, gif.

Grafika wektorowa

Grafika wektorowa zbudowana jest z obiektów geometrycznych takich jak okrąg, linia, krzywa, elipsa, czy ścieżka. Każdy z nich może być wypełniony kolorem. Dzięki temu obrazy wektorowe możemy dowolnie powiększać i zmniejszać bez utraty jakości. Także operacje rozciągania, przesuwania, pochylania, czy też obrót nic nas nie kosztują. Są to proste operacje przekształceń wektorów znanych z matematyki. Takiej własności nie ma grafika rastrowa, która cierpi na jakości przy takich przekształceniach.

Przykładowe rozszerzenia grafiki wektorowej: ai, cdr, eps, svg, swf, pdf, dxf, dwf, dwg, stl.

Gdzie użyjemy SVG?

Oczywiście wprowadzenie SVG nie wyeliminuje grafiki rastrowej z aplikacji – nadal pozostaną piękne kolorowe grafiki czy zdjęcia. Za to format SVG idealnie nadaje się do logotypów, ikon czy symboli, których w aplikacjach nie brakuje.

Sporo wody w Wiśle jeszcze upłynie zanim w pełni przeskoczymy na wektory ponieważ obsługa SVG będzie wspierana tylko na systemach w wersjach od iOS13, macOS 10.15 oraz iPadOS.

Alternatywy dla starszych urządzeń

Dla urządzeń pracujących na starszych systemach operacyjnych nadal będzie trzeba przygotować po staremu zestawy kilku grafik dopasowanych do poszczególnych skali. 

Warto zatem wspomnieć o symbolach SF. Zajmują wprawdzie więcej miejsca, niż SVG, ale w pewnym zakresie mogą się okazać dobrą alternatywą.

Kolejną opcją jest zastosowanie formatu pdf, który jest obsługiwany od wersji iOS8 i macOS X 10.9.

Podsumowując można powiedzieć, że wprowadzenie formatu SVG to mała rzecz, a cieszy. Ekosystem Apple nareszcie doczekał się wprowadzenia obsługi grafiki wektorowej. Oczywiście trzeba pamiętać o braku wsparcia dla starszych wersji systemów, ale słuszny kierunek jest obrany i jest to bardzo dobra wiadomość.


Linki:
https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/
https://pl.wikipedia.org/wiki/Grafika_wektorowa
https://pl.wikipedia.org/wiki/Grafika_rastrowa