![](/uploads/Vintage%20Toy%20Blocks-8d58f9.jpg)
The Lickability blog
Stories from a small software studio.
Posts in the “Engineering” category
Go back to all posts
![](/uploads/Vintage%20Toy%20Blocks-8d58f9.jpg)
![](/uploads/App%20Intents%20Hero.png)
Mastering App Intents: Querying Made Easy
🔍 Uncover the secrets of effective data retrieval in iOS development
By Ashli Rankin
![](/uploads/App%20Intents%20Hero.png)
Creating your first app shortcut
How to use Apple's new AppIntents framework
By Ashli Rankin
![](/uploads/TipKit.png)
Useful tips for implementing TipKit
A new framework for teaching users about your app
By Michael Amundsen
![](/uploads/p17s2tfgc31jte13d51pea1l2oblr3.png)
What We Love About Android Development
Wait, did you say Android??
By Michael Liberatore
![](/uploads/ObservableConverter_Intro-03-edc637.png)
Introducing ObservableConverter
A plugin to help convert to @Observable
By Brian Capps
![](/uploads/Simulator%20Screenshot%20-%20Apple%20Vision%20Pro%20-%202023-08-10%20at%2015.17.42.png)
In-App Purchases with RevenueCat on visionOS
A step-by-step guide
By Brian Capps
![](/uploads/Screenshot%202023-08-10%20at%2012.55.22%20PM.png)
Detecting Collisions with RealityKit in visionOS
Our how-to guide
By
![](/uploads/kaitlyn-baker-vZJdYl5JVXY-unsplash.jpg)
How to install iOS 17 simulators in Xcode 15
A quick video tutorial
By Michael Amundsen
![](/uploads/photo-1532356884227-66d7c0e9e4c2.webp)
Every Screen in Your App Should Be a Scrolling View
Yes, really
By Michael Amundsen
![](/uploads/Group%201-365226.png)
Automating App Store Screenshots
Using Fastlane and SwiftUI
By Daisy Ramos
![](/uploads/andrew-neel-cckf4TsHAuw-unsplash.jpg)
How To Learn Swift
A guide for beginners
By Marc Aupont
![](/uploads/architectural-building-blocks-5122ec.png)
Building a Customizable UITextField with Combine
Our guide to text field overlays, customizations, and more
By Daisy Ramos
![](/uploads/tyler-lastovich-e31ANd1PXUw-unsplash.jpg)
Dynamic Type & In-App Font Scaling
Our guide to supporting custom fonts & accessibility
By Daisy Ramos
![](/uploads/IMG_4342.jpg)
Swift on Raspberry Pi Workshop: Part 3
Wrapping up our project
By Marc Aupont
![](/uploads/IMG_4342.jpg)
Swift on Raspberry Pi Workshop: Part 2
Building Swift on a Raspberry Pi
By Marc Aupont
![](/uploads/IMG_4342.jpg)
Swift on Raspberry Pi Workshop: Part 1
Setting up a basic circuit
By Marc Aupont
![](/uploads/thomas-ciszewski-erApmfRX7eo-unsplash.jpg)
Installing the macOS Big Sur beta on a new partition
Our step-by-step guide
By Marc Aupont
![](/uploads/adrian-trinkaus-45GmPkD806w-unsplash.jpg)
Getting Started with UICollectionViewCompositionalLayout
A guide to building complex layouts
By Michael Liberatore
![](/uploads/ej-yao-D46mXLsQRJw-unsplash-423265.jpg)
Understanding Creational Design Patterns
The last part in our series
By Ashli Rankin
![](/uploads/andrew-ridley-jR4Zf-riEjI-unsplash.jpg)
Understanding Behavioral Design Patterns
A few key examples
By Ashli Rankin
![](/uploads/BlogHeader.png)
Testing Push Notifications in the iOS Simulator
Never bug a server engineer again
By Marc Aupont
![](/uploads/amy-hirschi-szrJ3wjzOMg-unsplash.jpg)
Understanding Structural Design Patterns
What they are, and how to use them
By Ashli Rankin
![](/uploads/sarah-306.jpg)
How Our Engineers Collaborate
There’s no “I” in “iOS”...wait
By Michael Liberatore
![](/images/blog/2019-09-18/1.jpeg)
What I learned as an iOS Apprentice
My journey into tech
By Ashli Rankin
![](/images/blog/2019-08-26/1.png)
Swift on Raspberry Pi
Controlling hardware is easy as Pi
By Marc Aupont
![](/images/blog/2019-07-26/1.jpeg)
Our Swift Best Practices
Lickability’s guide to writing better Swift
By Andrew Harrison
![](/images/blog/2019-02-08/1.jpeg)
5 Tips for Reporting Bugs & Feedback to Apple
How to get your bug reports on Apple’s radar
By mb bischoff
![](/images/blog/2019-01-11/1.jpeg)
3 Tools to Stay on Top of Pull Requests
Review code like a pro with these three apps 🛠
By mb bischoff
![](/images/blog/2018-09-07/5.png)
A Tale of Two App Store Spotlights
Getting featured increased our downloads by over 9,000% 🤯
By mb bischoff
![](/images/blog/2018-02-27/1.jpeg)
How We Smoke Test Pull Requests with Git Revert
One weird trick
By Michael Liberatore
![](/images/mastheads/masthead-products.jpg)
Our View on View Models
How to keep your view controllers focused
By Michael Liberatore
![](/images/mastheads/masthead-products.jpg)