backslash-f

backslash-f

Apple Game Frameworks and Technologies: SVG instead of PNG

So Xcode 12 added native support for SVG files. From Apple’s Xcode 12 release notes:

Asset Catalogs
New Features

Added support for Scalable Vector Graphic (SVG) image assets. These preserve their vector representation with deployment targets of macOS 10.15 or later, iOS 13 or later, and iPadOS 13 or later. (18389814)

Instead of having to handle @1x, @2x, and @3x as suggested in chapter 1 (“Creating Scenes with Sprites and Nodes”), which is also OK, theoretically it would be possible to have something like this:

Those are SVG files set as “Universal” that automagically scale according to the device screen.

Is someone here familiar with this new approach?
I wonder if there may be performance issues…

Please let me know what you think, thanks!

Marked As Solved

Paradox927

Paradox927

Author and Editor at PragProg

Hi, Fernando.

I haven’t used the new SVG support, but I’d imagine it works similarly to PDF support. Having said that, I’ll be honest… I’ve never favored using PDFs over their PNG counterparts.

Many of my assets are created in apps like Affinity Designer, so exporting at multiple sizes isn’t a problem or a maintenance nightmare. And, in terms of overall app size, there’s also not a lot of gain using PDFs since Xcode converts the PDF to the properly-sized PNGs.

Of course, I’ll need to play around with the SVG support before making a final determination, but I’m not ready to move away from PNGs any time soon. They’ve served me well, and I’m not feeling hassled enough by their use to jump ship… not yet, but I suspect it’ll happen one day.

Also Liked

backslash-f

backslash-f

Understood, thanks for the input!

Where Next?

Popular Pragmatic Bookshelf topics Top

johnp
Running the examples in chapter 5 c under pytest 5.4.1 causes an AttributeError: ‘module’ object has no attribute ‘config’. In particula...
New
belgoros
Following the steps described in Chapter 6 of the book, I’m stuck with running the migration as described on page 84: bundle exec sequel...
New
yulkin
your book suggests to use Image.toByteData() to convert image to bytes, however I get the following error: "the getter ‘toByteData’ isn’t...
New
New
leonW
I ran this command after installing the sample application: $ cards add do something --owner Brian And got a file not found error: Fil...
New
jskubick
I think I might have found a problem involving SwitchCompat, thumbTint, and trackTint. As entered, the SwitchCompat changes color to hol...
New
nicoatridge
Hi, I have just acquired Michael Fazio’s “Kotlin and Android Development” to learn about game programming for Android. I have a game in p...
New
jskubick
I found an issue in Chapter 7 regarding android:backgroundTint vs app:backgroundTint. How to replicate: load chapter-7 from zipfile i...
New
digitalbias
Title: Build a Weather Station with Elixir and Nerves: Problem connecting to Postgres with Grafana on (page 64) If you follow the defau...
New
ggerico
I got this error when executing the plot files on macOS Ventura 13.0.1 with Python 3.10.8 and matplotlib 3.6.1: programming_ML/code/03_...
New

Other popular topics Top

New
PragmaticBookshelf
Write Elixir tests that you can be proud of. Dive into Elixir’s test philosophy and gain mastery over the terminology and concepts that u...
New
PragmaticBookshelf
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
PragmaticBookshelf
Author Spotlight: VM Brasseur @vmbrasseur We have a treat for you today! We turn the spotlight onto Open Source as we sit down with V...
New
DevotionGeo
I have always used antique keyboards like Cherry MX 1800 or Cherry MX 8100 and almost always have modified the switches in some way, like...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New
PragmaticBookshelf
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New

Sub Categories: