For a detailed list of symbols that were added or renamed in SF Symbols 2, please refer to my earlier article SF Symbols Changes in iOS 14.
SF Symbols 2.1 is out. Over 40 new symbols, improved symbol localization, design refinements, and various software fixes.
There are now three different sets of symbols to consider:
Over the last few years I have written several articles showing how iOS apps built with different versions of Xcode would appear when run on iOS devices that didn’t exist when the apps were built. As a general rule, apps must build with the latest version of Xcode to opt in to seeing the native screen resolutions of new devices. Older apps would run on newer devices but appeared as letterboxed, pillar boxed and/or scaled versions of previous device sizes. This ensured that the old apps never ran at screen resolutions that didn’t exist when they were built.
In WWDC 2019: 224 Modernizing Your UI for iOS 13, the presenter discusses backward compatibility and…
In WWDC 2019: 206, Introducing SF Symbols Apple announced a great new resource for iOS developers:
SF Symbols introduces a comprehensive library of vector-based symbols that you can incorporate into your app to simplify the layout of user interface elements through automatic alignment with surrounding text, and support for multiple weights and sizes.
By the time iOS 13 was released there were 1,672 symbols available for developers to use in their own apps. However, 59 of them are restricted and can only be used to refer to particular Apple technologies such as iCloud or the Messages app.
Adaptivity is an app which helps developers and designers visualise how iOS’s Size Classes and margins for layout, readable content and the safe area look on real devices and how they change with respect to orientation, iPad Slide Over/Split View and Dynamic Type size changes.
In the full paid version of the app, Adaptivity (A), there are also screens to explore System Colors, System Images, System Materials and Table Views. On iPadOS 13, this version supports multiple windows. Adaptivity (B) is a free, feature-limited, version. …
Some apps store personal or sensitive information. For example, my Medical ID Record app stores a comprehensive record of your medical information. This is very private information which the user does not want to be accidentally seen by other people.
One way in which the data could be exposed is in the snapshot images that iOS shows in the App Switcher. Medical ID Record protects against this by showing a privacy protection view on top of its main interface when the app moves into the background. This alternate view is what iOS snapshots and shows in the App Switcher:
By default, when Xcode runs unit tests it uses your main app target as a host application and effectively injects your test code into your app at run time. This makes it easy for your unit tests to refer to types and methods that are defined in your app. A side effect of this process is that every time you run your unit tests, the host application will execute its usual startup sequence, invoking the various app delegate methods and building the initial user interface (either in code or creating it from a storyboard).
That setup should not be necessary when running unit tests. It might even be undesirable as it could interfere with your tests by, for example, creating some objects with real dependencies instead of mocks or by initiating network accesses etc. …
This is the latest in a series of articles explaining how iOS and Watch apps appear when run on hardware that didn’t exist when they were designed and built. Previous articles focused on the iPhone X, iPhone XS Max & XR, Series 4 Apple Watch, and 11" and 3rd generation 12.9" iPad Pro:
On 10th September 2019, Apple announced a 7th generation iPad with a 10.2" screen. …
At the time of writing, WWDC 2019 is drawing to a close. Like many iOS developers I’m slowly processing all the new information that Apple threw at us and will be trying to watch as many videos as I can in the coming weeks (and months!)
I have three immediate goals for my own apps:
At the time of writing Xcode 10.2 has just been released. I was working through all the latest iOS 12.2 devices to run Dave Verwer’s excellent SimulatorStatusMagic app to clean up the status bars, ready for taking new App Store screenshots, when I noticed something strange.
In its device chooser menu, Xcode usually shows version numbers alongside each device simulator that is available for multiple iOS versions. The exact choices listed depends on which simulator versions you’ve downloaded in the past and the minimum deployment target for your current project:
When I got as far as the iPhone Xs I noticed there were no version numbers being shown. I had iOS 12.0 and 12.2 versions of the Xs, Xs Max and Xʀ available but they were being listed in two separate…
As most iOS developers are hopefully aware, so-called “iPhone-only” apps can also be run on iPad. The app thinks it is running on an iPhone and appears with an iPhone-like screen size and aspect ratio. For most iPads, and for most iOS versions, this is the equivalent of a 3.5" iPhone 4/4S appearance (320×480 points), centred in the middle of the screen.
A button toggles between showing the app at a pixel perfect 640×920 pixel or a doubled 1280×1840 pixel size. (These sizes are for retina iPads. The original non-retina iPad used half this.) Importantly, an integral scaling factor is used to avoid any blurring. …