Advertisement
Save over 50 hours of app development time with SwiftyLaunch
SwiftyLaunch is an iOS App Generator. Select all the app features that you need. Press on "Generate". Watch SwiftyLaunch build your next iOS App's starter code.
One-time purchase. Lifetime updates. Limited Launch Discount still on.
Blog Articles
-
April 2024
- 28 Apr 2024 Bad practice: not using the modern formatting API 28 Apr 2024
- 22 Apr 2024 How to enable spell checking in Xcode 22 Apr 2024
- 9 Apr 2024 Whatโs the difference between any and Any? 9 Apr 2024
- 8 Apr 2024 How to test Push Notifications in the simulator 8 Apr 2024
-
March 2024
- 26 Mar 2024 Swift has more formatters than you know! 26 Mar 2024
- 25 Mar 2024 Using a Swift macro to generate an EnvironmentKey 25 Mar 2024
- 17 Mar 2024 Do you know what .layoutIfNeeded() actually does? 17 Mar 2024
- 11 Mar 2024 I can teach you the basics of UIKit in 2 hours ๐ฉ๐ฝโ๐๐จ๐ปโ๐ 11 Mar 2024
- 5 Mar 2024 Be careful when using .onTapGesture() 5 Mar 2024
- 4 Mar 2024 How to easily test In-App Purchases ๐๏ธ 4 Mar 2024
- 3 Mar 2024 How to mock any network call with URLProtocol 3 Mar 2024
-
February 2024
- 26 Feb 2024 When should you use a hybrid framework? ๐ค 26 Feb 2024
- 20 Feb 2024 Bad practice: not using .isMultiple(of:) 20 Feb 2024
- 15 Feb 2024 How to write safer code using the Lock ๐ and Key ๐ pattern 15 Feb 2024
- 6 Feb 2024 Bad practice: using .lowercased() to compare strings 6 Feb 2024
- 5 Feb 2024 Do you know what translatesAutoresizing MaskIntoConstraints actually does? ๐คจ 5 Feb 2024
-
January 2024
- 30 Jan 2024 How to make a completionHandler much safer 30 Jan 2024
- 29 Jan 2024 How to give great answers to technical interview questions ๐ฉ๐ฝโ๐ป๐จ๐ปโ๐ป 29 Jan 2024
- 26 Jan 2024 Bad practice: loading a large image on the main thread 26 Jan 2024
- 26 Jan 2024 Hidden feature: subscript 26 Jan 2024
- 9 Jan 2024 How to write Unit Tests for Code Performance โฑ๏ธ 9 Jan 2024
- 8 Jan 2024 How to easily debug your network code ๐ฐ๏ธ 8 Jan 2024
-
December 2023
- 28 Dec 2023 Bad practice: using "YYYY" to format a Date 28 Dec 2023
- 18 Dec 2023 How to get started with The Composable Architecture ๐ฑ 18 Dec 2023
- 11 Dec 2023 Did you know that Xcode has a search history? ๐ก 11 Dec 2023
- 8 Dec 2023 Hidden feature: typealias 8 Dec 2023
- 4 Dec 2023 Swift has more formatters than you think! ๐คฏ 4 Dec 2023
- 1 Dec 2023 Bad practice: not using PersonNameComponentsFormatter 1 Dec 2023
-
November 2023
- 27 Nov 2023 Here are 8 tips to design a great paywall ๐ค 27 Nov 2023
- 20 Nov 2023 Are optional closures escaping or not? ๐คจ 20 Nov 2023
- 14 Nov 2023 Hidden feature: initializers 14 Nov 2023
- 13 Nov 2023 Have you ever used Multiple Cursors in Xcode? ๐คจ 13 Nov 2023
- 12 Nov 2023 Bad practice: not using UIAction 12 Nov 2023
- 8 Nov 2023 Discover the advanced features of Xcodeโs breakpoints ๐ 8 Nov 2023
-
October 2023
- 31 Oct 2023 Hidden feature: final 31 Oct 2023
- 30 Oct 2023 How to write tests that detect memory leaks ๐ฆ 30 Oct 2023
- 24 Oct 2023 Bad practice: not using multiline strings 24 Oct 2023
- 24 Oct 2023 Hidden feature: enum 24 Oct 2023
- 23 Oct 2023 Hereโs a great use case for Parameter Packs ๐ค 23 Oct 2023
- 16 Oct 2023 This small mistake will crash your SwiftUI app ๐งจ 16 Oct 2023
- 14 Oct 2023 Bad practice: not using Phantom Types 14 Oct 2023
- 9 Oct 2023 Here are 8 tips to optimize your iOS app ๐ฑ 9 Oct 2023
- 2 Oct 2023 Hereโs how you can learn Swift Concurrency in 2 hours ๐ฉ๐ฝโ๐๐จ๐ปโ๐ 2 Oct 2023
-
September 2023
- 26 Sep 2023 Hidden feature: if and switch 26 Sep 2023
- 25 Sep 2023 Some APIs are more dangerous than they seem ๐ซข 25 Sep 2023
- 19 Sep 2023 Bad practice: not using throwing tests 19 Sep 2023
- 18 Sep 2023 Here are 3 Swift Macros you can start using today ๐ค 18 Sep 2023
- 16 Sep 2023 Hidden feature: private properties 16 Sep 2023
- 11 Sep 2023 Did you know you can use Copilot with an Xcode project? ๐ค 11 Sep 2023
- 9 Sep 2023 Bad practice: capturing self in a nested closure 9 Sep 2023
- 4 Sep 2023 Here are 3 cool new features of Swift 5.9 ๐คฉ 4 Sep 2023
-
August 2023
- 29 Aug 2023 Bad practice: using an unsafe continuation 29 Aug 2023
- 28 Aug 2023 Hereโs what you need to know about TipKit! ๐ก 28 Aug 2023
- 22 Aug 2023 Hidden feature: static properties 22 Aug 2023
- 21 Aug 2023 I can teach you SwiftUI in 12 hours ๐ฉ๐ผโ๐๐จ๐ปโ๐ 21 Aug 2023
- 15 Aug 2023 Discover localizedStandardCompare() 15 Aug 2023
- 14 Aug 2023 How risky is it to use [unowned self]? ๐ค 14 Aug 2023
- 8 Aug 2023 Bad practice: using if instead of guard 8 Aug 2023
- 7 Aug 2023 I can teach you Combine in just 4 hours ๐ 7 Aug 2023
- 1 Aug 2023 Discover MeasurementFormatter 1 Aug 2023
-
July 2023
- 31 Jul 2023 How about 5 new tips you can start using today? ๐ก 31 Jul 2023
- 25 Jul 2023 Bad practice: capturing a method reference 25 Jul 2023
- 24 Jul 2023 Here are 5 tools that will improve your iOS project ๐ 24 Jul 2023
- 22 Jul 2023 Discover async let 22 Jul 2023
- 17 Jul 2023 When do you really need to use [weak self]? ๐คจ 17 Jul 2023
- 12 Jul 2023 Bad practice: testing if a String is empty 12 Jul 2023
- 12 Jul 2023 Discover CollectionOfOne 12 Jul 2023
- 12 Jul 2023 Discover #error() 12 Jul 2023
- 10 Jul 2023 Here are 5 Xcode tips you really wanna know ๐ 10 Jul 2023
-
June 2023
- 19 Jun 2023 Apple made it easy to keep track with all the WWDC additions ๐ 19 Jun 2023
- 13 Jun 2023 Discover Number Separators 13 Jun 2023
- 12 Jun 2023 Here are 5 great articles to keep up with WWDC ๐ 12 Jun 2023
- 6 Jun 2023 There are so many cool new features in Swift and Xcode ๐คฉ 6 Jun 2023
-
May 2023
- 29 May 2023 How would you answer this typical iOS interview question? ๐คจ 29 May 2023
- 23 May 2023 3 tips to write better Swift code 23 May 2023
- 22 May 2023 Here are 5 great blog articles to learn something new ๐งโ๐ 22 May 2023
- 18 May 2023 How to refactor using Associated Values 18 May 2023
- 15 May 2023 Here are my 5 favorite Swift tips ๐ค 15 May 2023
- 8 May 2023 Hereโs another great learning resource ๐ 8 May 2023
- 3 May 2023 Discover dump() 3 May 2023
- 2 May 2023 85% of iOS developers got the wrong answer ๐ซข 2 May 2023
-
April 2023
- 24 Apr 2023 Did you know Property Wrappers are great debugging tools? ๐ 24 Apr 2023
- 22 Apr 2023 Discover how @MainActor works 22 Apr 2023
- 17 Apr 2023 I learned so much from these videos ๐ 17 Apr 2023
- 15 Apr 2023 3 mistakes to avoid with async / await 15 Apr 2023
- 10 Apr 2023 Do you know this trick to spot memory leaks? ๐คจ 10 Apr 2023
- 7 Apr 2023 Discover LazySequence 7 Apr 2023
- 4 Apr 2023 3 mistakes to avoid with Optionals 4 Apr 2023
- 3 Apr 2023 Here are 5 (new) tips you can start using today ๐ 3 Apr 2023
-
March 2023
- 28 Mar 2023 Discover XCTUnwrap() 28 Mar 2023
- 20 Mar 2023 I learned so much from this website ๐คฏ 20 Mar 2023
- 19 Mar 2023 3 mistakes to avoid with Closures 19 Mar 2023
- 13 Mar 2023 Are private properties really private? ๐คจ 13 Mar 2023
- 11 Mar 2023 How to write your first Unit Test 11 Mar 2023
- 6 Mar 2023 Here are 5 tips you can start using today ๐ 6 Mar 2023
-
February 2023
- 27 Feb 2023 Only 15% of iOS developers get the right answer ๐ง 27 Feb 2023
- 20 Feb 2023 Hereโs my second (traditional) newsletter ๐ฎ 20 Feb 2023
- 13 Feb 2023 Discover CaseIterable 13 Feb 2023
- 6 Feb 2023 This is my first (traditional) newsletter ๐ฎ 6 Feb 2023
- 4 Feb 2023 How to write your first API call 4 Feb 2023
-
January 2023
- 8 Jan 2023 Discover Generics in Swift 8 Jan 2023
-
December 2022
- 20 Dec 2022 Discover Property Wrappers in Swift 20 Dec 2022
- 19 Dec 2022 5 Things You Didnโt Know About KeyPaths 19 Dec 2022
- 5 Dec 2022 Discover Actors in Swift 5 Dec 2022
-
November 2022
- 26 Nov 2022 Discover async / await in Swift 26 Nov 2022
- 4 Nov 2022 Discover how Mocks work in Swift 4 Nov 2022
- 4 Nov 2022 Discover some New Features of Swift 5.7 4 Nov 2022
- 4 Nov 2022 Discover the MVP Architecture 4 Nov 2022
- 3 Nov 2022 Discover the Coordinator Pattern 3 Nov 2022
- 3 Nov 2022 Discover Dependency Injection 3 Nov 2022
-
September 2022
- 3 Sep 2022 Discover the MVVM Architecture 3 Sep 2022
Tips
-
October 2023
- 28 Oct 2023 switch used as an expression 28 Oct 2023
- 2 Oct 2023 if used as an expression 2 Oct 2023
-
May 2023
- 24 May 2023 better compactMap 24 May 2023
-
April 2023
- 26 Apr 2023 lazy + private(set) 26 Apr 2023
- 13 Apr 2023 guard statements 13 Apr 2023
- 3 Apr 2023 concise [weak self] 3 Apr 2023
-
March 2023
- 26 Mar 2023 omit return keyword 26 Mar 2023
- 6 Mar 2023 iOS version dropped reminder 6 Mar 2023
-
February 2023
- 27 Feb 2023 ResultBuilder + local constant 27 Feb 2023
- 20 Feb 2023 LazySequence 20 Feb 2023
- 1 Feb 2023 generic extensions 1 Feb 2023
-
January 2023
- 19 Jan 2023 raw strings 19 Jan 2023
- 4 Jan 2023 multiline String 4 Jan 2023
- 2 Jan 2023 XCTest + try! 2 Jan 2023
-
December 2022
- 21 Dec 2022 orEmpty 21 Dec 2022
- 12 Dec 2022 isNilOrEmpty 12 Dec 2022
- 7 Dec 2022 if-else vs switch 7 Dec 2022
-
November 2022
- 28 Nov 2022 variadic arguments 28 Nov 2022
- 23 Nov 2022 CaseIterable 23 Nov 2022
- 14 Nov 2022 opaque argument 14 Nov 2022
- 11 Nov 2022 as? vs is 11 Nov 2022
- 5 Nov 2022 for-loop vs filter() 5 Nov 2022
- 5 Nov 2022 Closures and Capture Lists 5 Nov 2022
- 5 Nov 2022 Optionals vs Result 5 Nov 2022
- 5 Nov 2022 variadic arguments 5 Nov 2022
- 5 Nov 2022 large number separators 5 Nov 2022
- 5 Nov 2022 KeyPaths as closures 5 Nov 2022
- 5 Nov 2022 shorthand if-let syntax 5 Nov 2022
- 5 Nov 2022 Array vs some Collection 5 Nov 2022
- 5 Nov 2022 where in a for-loop 5 Nov 2022
- 5 Nov 2022 dump() vs print() 5 Nov 2022
- 5 Nov 2022 Combine nested if 5 Nov 2022
- 5 Nov 2022 modern API of UIButton 5 Nov 2022
- 5 Nov 2022 XCTUnwrap vs force unwrap 5 Nov 2022