I published a story on medium 5 years ago as I started my professional iOS developer journey, recommending some tools and resources to become a more productive junior iOS developer (I can’t believe it’s been that long).
In short, Combine enables subscribing to output or values over time with a declarative API. For example, if you’re making a network request to fetch JSON.
Notice how Combine is built into url session, you’ll see it throughout Apple’s API ecosystem i.e notification center, timers.
I am new to React, CSS and HTML and found it difficult to build this simple vertical list to display cards. My background is in iOS development, and the primary library (UIKit) has built-in components that solve these particular UI-related problems, i.e., ScrollView.
Out of frustration I posted on r/reactjs asking for help because I couldn’t easily find a solution on Google. After some more time spent on Google, I began to draw connections between flexbox and the layout system in iOS and solved the problem! I summarized my approach in tutorial form below.
This year, at the top of the WWDC wish list, is for the SwiftUI team to add a search bar to the framework. There are so many ways to add search today from using a
TextField view to tapping into UIKit and using
UISearchBar via UIViewRepresentable.
Nevertheless, it’s a hassle, but I’m going to show you how you can add it relatively fast using SwiftUIX. SwiftUIX is a library full of various views missing in the SwiftUI standard library, one of being a search bar. …
I used the
TabView in SwiftUI to create a vertically paging feed, and here’s how you can do it too.
The TabView has a modifier called
PageTabViewStyle that allows you to turn it from a traditional tab bar into a paging scroll view. After adding this modifier, you’ll see that the view resembles
UIPagingViewController if you are familiar with UIKit. If we inspect this view under the hood, it’s actually a
The UICollectionView is using the
UICollectionViewCompositionalLayouttoo, released in iOS 13, the API simplifies arranging items size like SwiftUI GridView.
We all know it’s a hassle to manually type out image and color names after adding them to your asset catalog.
let image = Image("my-cool-image") // Stop doing this 😡
If only there is a way to generate type-safe code that can reference the assets. Well, there is. Use a library called SwiftGen, and it will do all the heavy lifting for you. All that’s needed is to add it as a run script and configure it with a
- YourProjectName/Assets.xcassets // 1
templateName: swift5 // 2
output: ProjectName/Assets.swift // 3
Do you want to learn how to make the swipe animation similar to Tinder and Bumble in SwiftUI? Here’s a tutorial on how I was able to accomplish it in less than 10 minutes using SwiftUI’s declarative APIs like
DragGesture and animating various view modifiers. Follow along below!
Create a new SwiftUI project in Xcode or get the starter project here.
Alright, we’re in Xcode, and the first thing you want to do is add some assets. These will be the images that the user’s going to see as they’re swiping through your app. …
Today I am excited to start a new series on building a restaurant viewing application in Swift. Each video will be followed by an article that goes over the key points that I wanted to cover. It will also allow me to update any content that has been outdated from the rapid evolution of the Swift programming language.
Video one is a short introduction of the key feature within the application. In short, we’ll be loading restaurants from the Yelp API into a list. If that sounds boring or simple, check the screenshots below. I tried my best…
A strong toolkit when developing iOS apps can help big time, especially when you're new to the game. I started learning iOS development about five months ago and I have been hooked ever since. After a rocky start, I am finally figuring out how to solve problems and to find resources to help me through the battle. Long story long, here is the list of several resources I use daily when developing apps.
Design can be the most challenging aspect for new developers. I try to approach the process with gusto and creativity.