Category Archives: iOS Development

What’s New in iOS 12.3.1

iOS 12.3.1 includes bug fixes for your iPhone and iPad. This update:

  • Fixes an issue that could prevent making or receiving VoLTE calls
  • Fixes issues in Messages that could cause messages from unknown senders to appear in your conversation list even though Filter Unknown Senders is enabled
  • Fixes an issue that could prevent the Report Junk link from appearing in Messages threads from unknown senders

For information on the security content of this update, please visit this website: 

https://support.apple.com/kb/HT201222

What’s New in iOS 12.2

Taken straight from the all too fleeting Update Dialogue:

iOS 12.2 provides support for Apple News+, adds the ability for Siri to play videos from your iOS device to Apple TV, and includes four new Animoji. This update also includes bug fixes and improvements.

Apple News+

  • Apple News+ is a new subscription service that extends the Apple News experience with hundreds of magazines and top newspapers
  • Our editors handpick top articles and magazine issues, and you also get personalized recommendations on the topics most interesting to you
  • Automatic downloads make it easy to read magazine issues offline
  • Apple News is now available in Canada, with a free experience that includes handpicked Top Stories, a personalized Today feed, and support for both English and French
  • Apple News+ is available in the U.S. and in Canada, with dozens of additional Canadian magazines

Siri

  • Ask Siri on your iPhone or iPad to play any video, show, movie, sports game, or channel on Apple TV. For example, “Hey Siri, play Free Solo on my TV”

Animoji

  • Four new Animoji—owl, boar, giraffe and shark—are included for iPhone X and later, iPad Pro 12.9-inch (3rd generation) and iPad Pro 11-inch

AirPlay

  • Dedicated TV controls in Control Center and on the Lock Screen give you quick access to TV controls
  • AirPlay multitasking for video allows you to browse other apps, as well as play other short form audio and video files locally on your device without interrupting AirPlay
  • AirPlay destinations are now grouped by content type making it faster for you to find what device you want to play to

Apple Pay

  • Apple Pay Cash customers can now transfer money to their bank accounts instantly using their Visa debit cards
  • Wallet app now conveniently displays Apple Pay credit and debit transactions right below the card

Screen Time

  • Downtime can be configured with a different schedule for each day of the week
  • A new toggle enables easily turning app limits on or off temporarily

Safari

  • Website sign-in now occurs automatically after filling credentials with Password AutoFill
  • Warnings now appear when loading unencrypted webpages
  • Removes support for the expired Do Not Track standard to prevent potential use as a fingerprinting variable; Intelligent Tracking Prevention now protects against cross-site tracking by default
  • Smart Search Field queries can now be modified by tapping the arrow icon next to search suggestions

Apple Music

  • The Browse tab shows more editorial highlights on a single page making it easier to discover new music, playlists, and more

AirPods

  • Support for new AirPods (2nd generation)

This update also includes other improvements and bug fixes. This update:

  • Supports Air Quality Index in Maps for US, UK, and India
  • Includes information in Settings on how much time remains on your device’s warranty period
  • Supports real-time text (RTT) for phone calls made through a nearby iPhone on iPad and iPod Touch
  • Displays a “5G E” icon for iPhone 8 and later, iPad Pro 12.9-inch (3rd generation) or iPad Pro 11-inch indicating that users are in an area where AT&T’s 5G Evolution network is available
  • Improves quality of audio recordings in Messages
  • Improves stability and performance of Apple TV Remote on iOS
  • Fixes an issue that prevented some missed calls from appearing in Notification Center
  • Addresses an issue where a badge notification could appear on Settings even though no action is needed
  • Addresses an issue in Settings > General > iPhone Storage where the storage size of some large apps, the System category, and the Other category in the storage bar graph could be incorrect
  • Fixes an issue that could cause Voice Memos to automatically play back recordings after connecting to a car Bluetooth device
  • Resolves an issue that could cause Voice Memos to temporarily prevent renaming a recording

For information on the security content of Apple software updates, please visit this website: https://support.apple.com/kb/HT201222

What’s New in iOS 12.0.1

Lew from Unbox Therapy says iOS 12.0.1 fixes that spurious random non-charging issue, appropriately dubbed ChargeGate. I’m glad the issue has been fixed, although Apple does not officially acknowledge that there even was a problem.

From the Upgrade Dialogue:

iOS 12.0.1 brings performance improvements and exciting new features to iPhone and iPad.

  • Photos introduces new features to help you rediscover and share the photos in your library
  • Memoji—a new, more customizable Animoji—make Messages more expressive and fun.
  • Screen Time helps you and your family understand and make the most of the time spent on devices
  • Siri Shortcuts deliver a faster way to get things done with the ability for any app to work with Siri
  • augmented reality becomes even more engaging with the ability for developers to create shared AR experiences
  • and new privacy features help protect you from being tracked on the web.

For information on the security content of Apple software updates, please visit this website:

What’s New in iOS 12

Straight from the Update Dialogue that we can’t view anymore as soon as we hit “update”:

iOS 12 brings performance improvements and exciting new features to iPhone and iPad. Photos introduces new features to help you rediscover and share the photos in your library, Memoji—a new, more customizable Animoji—make Messages more expressive and fun, Screen Time helps you and your family understand and make the most of the time spent on devices, Siri Shortcuts deliver a faster way to get things done with the ability for any app to work with Siri, augmented reality becomes even more engaging with the ability for developers to create shared AR experiences, and new privacy features help protect you from being tracked on the web.

This update introduces new features and improvements to [the following areas]:

Continue reading

How to assign a variable inside a block in Objective-C

I recently tried to assign a value to a variable I had declared from inside a block. Apple’s frameworks make frequent use of blocks, and as such, I didn’t see anything wrong with this code:

Xcode 9 begged to differ though, telling me that the “Variable is not assignable (missing __block type specifier)“.

Stumped, I had a look around the web, where I found this StackOverflow article that explained it. My mistake was that when I declared the variable above the block. I had no idea this was necessary, but apparently it is.

All we need to do is add “__block” in front of the variable at the time we declare it (more or less precisely what Xcode was trying to say). The error message disappears when we amend the code like this:

Easy – if you know how 🙂

Building a Day Counter on iOS – Part 1

In this series I’ll show you how to create a simple Day Counter on iOS, using Objective-C and Xcode 9. The idea is to set a date in a settings screen, and then see how many days have elapsed on the main screen right after launching the app.

This is a 3-Part Mini-Series:

  • Part 1 is all about building the interface in Interface Builder
  • Part 2 is about coding the NSDate subtraction methods, using NSCalendar and loading/saving data using NSUserDefaults
  • Part 3 will introduce Key/Value Observing to update the first view controller as soon as the date is changed in the settings and deals with how to normalise an NSDate object.

You can find the full code on GitHub:

Happy Hacking!

Watch the full course in one convenient playlist:
Catch this episode on my iOS Dev Diary Podcast: