Adding Push Notifications to an iOS App

Introduction If you start a project from scratch, you need to always create some kind of service like PushNotificationService that will be responsible for handling push notification events. In this article, I want to explore a simple implementation of PushNotificationService to be able to reuse and customize it in future projects. First Step The first step is to add the Push Notifications capability to your project. Go to your project -> Signing & Capabilities -> Tap + Capability -> Search for Push Notifications....

June 14, 2024 · 2 min · Dmytro Chumakov

Caching data using NSCache in iOS

Introduction I was curious about caching data using NSCache for an iOS app. So, I did some digging. Here is what I found: Quick Overview NSCache helps store data in memory. When the application gets killed, it frees memory; it’s not persisted on disk. Storing data is carried out using a key-value pair mechanism like Dictionary. You can set automatic eviction to delete objects automatically. NSCache has multi-platform support: iOS, iPadOS, watchOS, macOS, and tvOS....

June 5, 2024 · 3 min · Dmytro Chumakov

Accessibility iOS SwiftUI

Introduction Previously, I posted about Accessibility for UIKit. The idea behind this post is to find differences between UIKit Accessibility and SwiftUI features. Similarities: Both UIKit and SwiftUI have accessibilityLabel and accessibilityHints APIs. Differences: To use dynamic type for fonts, you need additional modifiers in SwiftUI. struct ScaledFont: ViewModifier { @Environment(\.sizeCategory) var sizeCategory var name: String var size: Double func body(content: Content) -> some View { let scaledSize = UIFontMetrics.default.scaledValue(for: size) return content....

June 2, 2024 · 3 min · Dmytro Chumakov

Accessibility iOS UIKit

Introduction I was curious to find out how to make an application more accessible. You can look at popular applications like YouTube or Netflix; they all have accessibility features like VoiceOver and dynamic fonts. I decided to create this example for a fruit calorie counter. It contains a list of fruits with the fruit name, fruit calories, and a favorite button. Where to Start Before diving into implementation details, I want to highlight some information about the existing accessibility features and what I will be focusing on....

May 30, 2024 · 3 min · Dmytro Chumakov

Text To Speech iOS

Introduction I was eager to learn how converting Text To Speech works in iOS. Here is what I discovered: First Step The first step is to add AVSpeechSynthesizer, an object that produces synthesized speech from text utterances. @State private var speechSynthesizer = AVSpeechSynthesizer() Second Step The second step is to add AVSpeechUtterance, an object that encapsulates the text for speech synthesis. private var utterance: AVSpeechUtterance { let inputMessage = "Hello world!...

May 24, 2024 · 1 min · Dmytro Chumakov