Smile4Me
Multi Target
Swift/SwiftUI App
When I put together this course, I paid close attention to the journey someone just like you might take when diving into the world of app development. I know it can feel a bit overwhelming at first, with all the new concepts and code to wrap your head around. That's why I've made sure each lesson builds on the last in a way that's easy to follow and truly digest. I've carefully designed this course so you can take your time and learn as you go. Think of it as learning by doing, where you get to see your progress come to life after every module. The goal here is to give you the confidence and skills to bring your own ideas to life, by creating apps that not just function well but also look great thanks to the power of SwiftUI. And trust me, by the end of it all, you'll be amazed at how far you've come –
Mac MenuBar
Choose your language and category to present a joke directly in your Mac menubar.
iOS App
All the features of the Mac menubar plus the iOS version includes translation to multiple languages and joke distribution chart
Widgets
Configurable widgets that refresh joke every hour. Choose your own language and category
Watch App
Select a category and language for presentation on your watch and create a launchable watchface complication.
Curriculum
- 2.0 Introduction (1:14)
- 2.1 In the beginning.... (5:13)
- 2.2 JokeManager (10:15)
- 2.3 Preparing for the JokeView (5:01)
- 2.4 The JokeView (8:12)
- 2.5 JokeContentView (10:21)
- 2.6 Sharing a Joke with ShareLink (3:26)
- 2.7 Reporting Offensive Jokes (5:45)
- 2.8 Mac App to MenuBar App (5:45)
- 2.9 App Icons and App Distribution (7:11)
- 2.10 Completed Source Code
- 3.0 Introduction (1:47)
- 3.1 The iOS Target (8:25)
- 3.2 Sharing Code between targets (5:56)
- 3.3 Translation Service and Available Languages (5:05)
- 3.4 TranslationView (8:48)
- 3.5 Testing Translation on iPhone (4:56)
- 3.6 Joke Info Endpoint (5:13)
- 3.7 Updating APIService and Playground (10:23)
- 3.8 Info Tab (6:56)
- 3.9 BarChartView (6:35)
- 3.10 Fixing Multiple Joke Fetches (5:27)
- 3.11 Completed Source Code for section 3
- 4.0 Introduction (2:07)
- 4.1 Widget Extension (7:35)
- 4.2 JokeEntry and TimelineProvider (4:17)
- 4.3 WidgetJokeView (5:26)
- 4.4 Fetching Jokes for the Timeline (5:32)
- 4.5 Configurable Widget Template (9:32)
- 4.6 Configuration Intents (7:34)
- 4.7 Updating ConfigurableWidget (8:10)
- 4.8 Fixing the Language Picker (4:31)
- 4.9 MeshGradient Widget Background (8:17)
- 4.10 Creating a Link from the Widget (7:27)
- 4.11 New Endpoint and JokeManager Function (6:37)
- 4.12 Getting the Joke from the URL (10:12)
- 4.13 Displaying the Joke after routing (5:52)
- 4.14 Completed Source Code for Section 4
- 6.0 Introduction (1:59)
- 6.1 RemovedCategoriesSync Test App (5:33)
- 6.2 RemovedManager Class (9:15)
- 6.3 Implementing RemovedManager (4:04)
- 6.4 Presenting a RemovedCategoriesListView (8:20)
- 6.5 Updating RemovedCategoriesListView (9:17)
- 6.6 Updating Smile4Me App (9:33)
- 6.7 Updating the getJoke function (6:38)
- 6.8 Limiting Widget Choices (12:06)
- 6.9 Limiting Watch Choices part 1 (7:50)
- 6.10 Limiting Watch Choices part 2 (10:29)
- 6.11 Completed Source Code for Section 6