PhillyCocoa Presents Side Project Spotlight is a podcast for app builders, documenting the process of producing real apps for the Apple App Store.
This week Kotaro pods solo to introduce the concept of design systems, especially as they apply to mobile development. This is a topic we will revisit once the Trio can gather together once more and this episode will act as the foundation for those future discussions.## Topics Discussed:- Introductions- What is a “design system” - Figma's definition - https://www.figma.com/blog/design-systems-101-what-is-a-design-system/ - Definition: - Tokens - Color (light/dark) - Corner radius - Dimensions - Fonts name/sizing/weight - Animation - Assets- What are they useful for - Consistency thru-out the product(s) - Faster time to market changes - May good for white label apps- How are they implemented for SwiftUI - SwiftUI implementation - https://www.interaction-design.org/literature/topics/design-systems - Packages - Asset Folder - Structs/Enums - SF Symbols- What are the drawbacks - Complicated setup with all the state holders needing to be in constant communication. - Can get overly complex with everyone waiting on the other to finish their work - Once implemented. It can be very rigid to deal with maintaining order when individual stakeholders demand their part to be special. - Can be highly opinionated or too generalized depending on implementation- One More Thing... - AzamSharp Workshops - https://azamsharp.school/workshops.htmlIntro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio discuss the state of the tech job market, especially for Apple platform developers. We touch on all manner of topics from how hiring practices are broken, to practical tips for new grads, to the utility of side projects, future hot platforms, and of course the "AI" question. There is a lot of good stuff in this episode. Enjoy!
Introductions
Job Market Vibe Check
Junior Developers
Hiring Practices Are Broken
Developer Demand Will Increase
Apple Platforms Ever More Functional
Tangent: Our Drexel Experiences
Recent College Graduates
Mohammad Faani’s Mention in iOS Dev Weekly
https://iosdevweekly.com/issues/670?m=web#nDJBq0q
Explore Tech Stacks
Kotaro the Mercenary
Utility of Side Projects
Consultant Agencies
Tying Things Together
Crossing the Platforms
The “AI” Question
Steve Yegge’s Article: “The Death of the Junior Developer”
https://sourcegraph.com/blog/the-death-of-the-junior-developer
Kotaro’s Positive Ending…The Purge!?
The Wrap-Up & One More Thing
https://azamsharp.school
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio is back from celebrating America to talk about Apple's horribly named "predictive code completion" in Xcode 16. Kotaro tries to use it with some interesting results and we compare Apple's current implementation with other similar products like Microsoft's Intellicode and contrast it with something like Copilot or Apple's forthcoming Swift Assist product. We also engage in an interesting discussion about when you should or should not use these code generation tools.
Introductions
Kotaro installs macOS 15 beta
Kotaro tries “predictive code completion” in Xcode 16
Steve’s experience with Intellicode in Visual Studio
DocC generation with Copilot in VS Code
Generating unit tests with Copilot
When and when not to use these tools?
Future experiments
Wrap-up
PhillyCocoa.org
One More Thing
AzamSharp.school
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio concludes our WWDC24 trilogy by discussing the vibes and themes we saw at this year's conference before ending with our picks for our favorite videos from the week. Links in the show notes!
Introductions
WWDC Vibes
Swift / SwiftUI All the Things
V isionOS is Not Dead
Designers are No Longer in Charge?
SF Symbols 6 Talk
“Spatial Computing” is the Future
Quicklooks Talk
Shaders
Create / Optimize 3D Assets
Game Development Skills
“AI” & Siri Integrations
App Intents
Our WWDC24 Video Picks
Kotaro:
Meet the Translation API
https://developer.apple.com/wwdc24/10117
Demystifying SwiftUI Containers
https://developer.apple.com/wwdc24/10146
Design great visionOS apps
https://developer.apple.com/wwdc24/10086
*Enhance your UI animations and transitions
https://developer.apple.com/wwdc24/10145
*Create custom visual effects with SwiftUI
https://developer.apple.com/wwdc24/10151
Steve:
Migrate your app to Swift 6
https://developer.apple.com/wwdc24/10169
Xcode Essentials
https://developer.apple.com/videos/play/wwdc2024/10181/
Bring your app’s core feature to users with App Intents
https://developer.apple.com/wwdc24/10210
Meet the next generation of CarPlay architecture
https://developer.apple.com/wwdc24/10111
Aaron:
Meet AccessorySetupKit
https://developer.apple.com/wwdc24/10203
Go small with Embedded Swift
https://developer.apple.com/wwdc24/10197
Design advanced games for Apple platforms
https://developer.apple.com/wwdc24/10085
Port advanced games to Apple platforms
https://developer.apple.com/wwdc24/10089
The Wrap-Up & Jokes
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio convenes the night after the Keynote to discuss some of the highlights from this year's WWDC including "Apple Intelligence," UI animations, SwiftData improvements, Swift Testing, iPhone mirroring, and more!
Introductions
Apple Intelligence
Widgets Everywhere
Zoom Transitions & Other Updates
SwiftData
SwiftUI Views @MainActor
Xcode Tabs Now Make Sense!
SwiftUI Previews
Swift Testing
iPhone miring on macOS
Finally…
Passwords.app
Tap to Cash
iPad Calcula tor App / Math Notes
Wrap-Up & One More Thing…
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio discuss WWDC24 rumors and wishlists in advance of what feels like the biggest Apple conference in years. Stay until the end to hear our WWDC Bingo Card items and our guesses for how many times the acronym "AI" will be spoken during the keynote with Aaron making the most intriguing guess.
Introductions
Developer Conference Season
Year of “AI”
Microsoft Recall Feature
Copilot button
Apple has already been using “AI”!
CoreML
Object detection
Vision
Hand gesture
Photo identification
Text-to-Speech
Siri!
MacRumors WWDC24 Rumors!
https://www.macrumors.com/roundup/wwdc/
Developer Wishlist
“AI” code writing in Xcode
SwiftData Improvements
VisionOS improvements
Siri Shortcuts Integration
Widgets in VisionOS
Bingo Card Items
Arc Browser Sherlocked
Widgets for VisionOS
VisionOS 2.0 (not 1.5)
Trello Sherlocked
New game engine
Kotaro - 20+
Aaron - 1 single time
Steve - 50+
Wrap-Up & Jokes
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio discuss the new M4 iPad Pros, both the updates and the use cases. Who are these devices for and do the new models really represent the biggest update in the iPad lineup in years? Plus, Kotaro teases a new game to be built with Godot.
Introductions
New iPad Pros
What are iPads useful for?
Pencil Pro updates
What Nobody Else Told You About Tandem OLED and M4! (Snazzy Labs)
https://youtu.be/3moprE5S3Qc
Kotaro teases a new game to be built with Godot
https://godotengine.org
Killer Klowns from Outer Space
https://www.imdb.com/title/tt0095444/
Wrap-Up & Jokes
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Joe Cieplinski returns to the pod to talk about his latest app, The Last Word, a journal app for tracking your personal cocktail journey. Built using the latest iOS 17 technologies from SwiftUI to SwiftData with a cross-platform design that includes visionOS, our discussion touches on many topics that will be of interest if you are starting your own greenfield side project app.
Introductions / Welcome Joe Cieplinski
The Last Word in Cocktails app
https://havethelastword.app/
iOS 17, SwiftUI, SwiftData, VisionOS
Story behind the name
Opinionated Design
Custom Artwork
App Store Optimization
App Store Subscription
RevenueCat article about using StoreKit 2
https://www.revenuecat.com/blog/engineering/ios-in-app-subscription-tutorial-with-storekit-2-and-swift/
Meet StoreKit for SwiftUI WWDC23 Video
https://developer.apple.com/videos/play/wwdc2023/10013/
App Store Analytics
AppFigures
https://appfigures.com
VisionOS Apps / Development
MKBHD Disney VR floor video
https://youtu.be/1KEtxTQUzxY
Future plans for The Last Word
Where to find Joe
Mastodon
https://mastodon.social/@jcieplinski
Web
https://joec.design
Get the App!
https://havethelastword.app
Wrap-Up
https://phillycocoa.org
One More Thing…
WWDC wishes from Joe
New PencilKit
SwiftUI photo capture & other updates
SwiftData updates
VisionOS Window Management
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This episode is all about SwiftData. Steve has started using it a lot lately and talks about his experience so far trying to sync a bunch of API data into a SwiftData model as well as using a Swift Actor to control write access to the data container in a thread-safe manner. There are some really useful links in the show notes this week. You'll want to bookmark them all!## Topics Discussed:- Introductions- Steve’s Real World SwiftData Experience…so far - Maintaining a local copy of server data - https://developer.apple.com/documentation/swiftdata/maintaining-a-local-copy-of-server-data - Practical SwiftData: Building SwiftUI Applications with Modern Approaches - https://fatbobman.com/en/posts/practical-swiftdata-building-swiftui-applications-with-modern-approaches/ - Concurrency of SwiftData | Donny Wals - https://www.youtube.com/watch?v=VG4oCnQ0bfw - Observable Architecture: Structural Identity | PointFree - https://www.pointfree.co/episodes/ep260-observable-architecture-structural-identity - Populating SwiftData from Server (ETag) Explained | Azam Sharp - https://youtu.be/f_Amhej1bkM- Tangent: Rendering HTML in SwiftUI with a WebView - Wrap-Up & Jokes - https://phillycocoa.orgIntro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Jumping off from one of our topics last episode, this week we are tackling the idea of working a 9 to 5 with a side project. What are the challenges? How do you maintain motivation? What time management strategies work? Are there any tools that can help you stay organized? Steve has some concrete tips based on his recent experience trying to juggle side projects and a day job while maintaining a healthy lifestyle. Kotaro and Aaron provide the perspective of developers working a traditional in-office, corporate job and the challenges that creates for side project success. Along the way, we discuss how to make a website using Swift, the WWDC24 announcement, and Kotaro shares his latest insights about Reality Composer Pro. There are some good tips, tools, and techniques in this episode for those trying to find a healthy balance while working towards that side project dream.
Introductions
Using Swift to Build a Website
https://github.com/twostraws/Ignite
https://github.com/johnsundell/publish
Flutter vs React vs Native
News: WWDC24 Announced
Fun With Reality Composer Pro
9 to 5 Lifestyle with a Side Project
Four Thousand Weeks book (not an affiliate link)
https://www.amazon.com/Four-Thousand-Weeks-Management-Mortals/dp/0374159122
Sleep++
https://sleepplusplus.app
Wrap-Up & Not a Sponsor
https://AzamSharp.school
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Kotaro has been doing the 9 to 5 thing for a while now and he's been thinking about his days as a consultant and what it means in 2024 to "go indie." The trio discuss some of the options they see in the present day including consulting or SaaS, making educational content, traditional app or game development, whether the Vision Pro gold rush might be the most attractive option and more. Plus, Aaron finally tries a Vision Pro and Kotaro waxes nostalgic for his former indie app, "Dividend Calc." This is a great episode for anyone looking to "go indie" in 2024.
Introductions
Indie Opportunities
Our last discussion on this topic: #40: “Going Indie”
https://podcast.phillycocoa.org/episodes/40-going-indie
Consulting or SaaS Business
Bombing Brain Interactive
https://www.bombingbrain.com/
Release Notes Podcast
https://releasenotes.tv/
RelaNet
https://relanet.com/
Educational Content / Workshops
AzamSharp
https://azamsharp.school
PointFree
https://www.pointfree.co
Design+Code
https://designcode.io
Indie App Success
https://getslopes.com/
Indie Game Success
9 to 5 with a Side Project
Vision Pro Gold Rush!
https://sandwich.vision
Tangents & Our “Going Indie” Strategies
Tangent: SPM Problems
Tangent: Aaron tried a Vision Pro!
Tangent: Dividend Calc History
Wrap-Up & Jokes
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
On the day the huge iOS 17.4 update drops, the Trio come together to talk about apps we love from budgeting software to productivity to 3D design and even fitness. The Apple ecosystem is full of amazing apps. Sometimes it's good to take a break, smell the roses, and gain some inspiration.
Introductions
Breaking News
iOS 17.4
Xcode 15.3
Other platforms are still in RC
https://developer.apple.com/documentation/financekit
Jon Prosser’s Vision Pro Review
https://youtu.be/krpbAMJlLTc
Apps We Love
YNAB (Steve)
https://www.ynab.com
RIP Mint (Kotaro)
https://mint.intuit.com
Training Peaks (Aaron)
https://www.trainingpeaks.com
OmniFocus 4 (Steve)
https://www.omnigroup.com/omnifocus
Trello & GitHub Projects (Kotaro)
https://trello.com
https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/quickstart-for-projects
Sketch (Kotaro)
https://www.sketch.com
Strava (Aaron)
https://www.strava.com
Bike Outliner (Steve)
https://www.hogbaysoftware.com/bike/
Modo (Kotaro)
https://www.foundry.com/products/modo
Zed (Kotaro)
https://zed.dev
Zwift (Aaron)
https://www.zwift.com/home
Concluding Thoughts
Wrap-Up & Jokes
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week the Trio follow-up on some visionOS ideas before delving into Kotaro's experience learning Flutter with an assist from Github Copilot. We round out the show discussing some rumors of new "AI" tools coming at the next WWDC.
Not a Sponsor: https://azamsharp.school/workshops
Follow-up: Exploring visionOS Ideas
Kotaro’s Github Copilot experience
app.quicktype.io
Learning Flutter with Github Copilot
https://docs.flutter.dev/data-and-backend/state-mgmt/options
Rumors of Generative AI at WWDC
AI in iOS 18 / iPhone 16 (Max Tech)
https://youtu.be/wtwW5IoIOvs
Code completion improvements
Test generation
Siri Intent improvements
Final thoughts about Copilot
A good assistant for well solved problems
Helpful for learning new languages and frameworks
Wrap-up
Not a Sponsor: https://AzamSharp.school/workshops
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
We have experienced the Apple Vision Pro for ourselves, well Kotaro and Steve have, and we have thoughts! Tune in to hear about Steve's Apple Store demo experience, what was impressive and what was surprisingly not. Then a digression about the dystopian nightmare this Brave New "Spatial Computing" world may be about to unleash upon us and our children before a discussion about trying to build software now that hardware is available. Finally, will we actually be buying our own Vision Pros to become true Vision Bros? You'll have to listen until the end to find out!
Introductions
Steve’s demo experience
Dystopia Fears
Building for Vision Pro
Will we buy Vision Pros?
Wrap-Up & Jokes
https://phillycooca.org
Not a Sponser: AzamSharp Workshop
https://azamsharp.school/workshops
Physics in RealityKit Video
https://youtu.be/zZlJZo6GR2w
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The long awaited launch of Vision Pro is here and the Trio are in a festive mood. In this episode, we have a fun time reviewing some of the hands-on impressions and speculate about the kinds of apps we will see in this first generation of "spatial computing." Most launch apps will probably be iPad apps and there have been some salty takes on the InterWebs about streaming platforms not supporting the device on day one, but we think they probably have some good reasons to be cautious. Kotaro brings up the immersion possibilities of haptics and Spatial Audio. Plus, we talk about a variety of confirmed and speculative app categories that may be coming to the platform from Fruit Ninja to DJ-ing without records to, dare we dream, DDR? Plus, we think some kinds of live events may be excellent targets for Vision Pro. Finally, the digital eyes are still goofy and Steve may want to get his own eyes checked before he schedules a demo. This episode is a breezy, fun, nerdy, good time. Afterwards, why don't you come over to the PhillyCocoa Slack and keep the party going with your own impressions, link can be found at phillycocoa.org/slack.
Introductions
MKBHD impressions
iPad Apps & Opting-Out
Haptics
Spatial Audio
AR/VR use cases
Simulated training
Aaron’s packing list app
DDR?
Fruit Ninja
DJ app
SharePlay collaborative apps
Live Events
Best seats in the house
Quarterback cam
Low Hanging Fruit
Monitors for days
Is “Spatial Computing” a new category?
Prescription Lenses
The Eyes are still goofy
The Wrap-up & Jokes
http://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio has returned from their holiday break to talk about 2024 developer resolutions! Aaron wants to build an "AI" model and interact with hardware. Steve is looking at backend stuff for a change of pace. Kotaro is talking himself into building a visionOS game. There is also some good discussion of some "AI" application ideas and tools we've been using. With the Vision Pro on the immediate horizon, we also discuss how much we should invest in the platform if we aren't buying one of the launch devices. It's a nice easy introduction to 2024 with lots more to come. Here's to a new year in our developer journeys! Now, let's get to work!
New Years Eve Experiences
2024 Developer Resolutions
Aaron
Ship something!
Play with some hardware that connects to app where the hardware is the focus. Move beyond Xcode.
Mojo language / AI experimentation
“AI” Ideas Discussion
Stephen
Ship a small side project to the App Store
Backend dev for JenkintownArtsGarage.com
Build a revenue-generating business
visionOS experimentation
Kotaro
Fighting game mechanics with Godot engine
Get good at Procreate Dreams animation software
Use experience to build an iPad app
Learn how to make or at least read Metal shaders code
“Cool” visionOS stuff
The Wrap-up & Jokes
https://phillycocoa.org
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
In this final episode of 2023, the trio dive into the topic of dependencies! What kinds are there? How do you manage them? What are some examples? This episode is jam packed with great advice and a ton of useful links (see below!) to help you think about the tradeoffs of different kinds of dependencies as well as concrete advice on how to write cleaner code that your future self will appreciate. Have a great holiday season and a happy new year as you embark on your own developer journey into 2024! The trio will return in January!
Introductions
Dependencies Intro
Metal shaders
Godot vs Unity
https://godotengine.org
https://unity.com
Platform Dependencies
Godot/Unity
Vendor like Apple/Google/Windows/etc.
Library Dependencies
Analytics
Infrastructure Dependencies
Linode
Buddy Build
OpenAI
Managing Dependencies
Platform alternatives
How much work to migrate?
Noclip Documentary: Remaking Demon’s Souls
https://youtu.be/hCBJ2fiiUXk
Emulators
Getting updates “for free” when you use platform provided controls
Programming Techniques
Protocol Oriented Programming
Themes
Pragma Conf 2023 - Token Driven UI Development
https://youtu.be/YvAkyiy6B3g
Atomic Design by Brad Frost
https://atomicdesign.bradfrost.com
Protocol composition for dependency injection by Krzysztof Zabtocki
https://www.merowing.info/using-protocol-compositon-for-dependency-injection/
Protocol Witnesses by Point-Free
https://www.pointfree.co/collections/protocol-witnesses
Dependencies Library: https://github.com/pointfreeco/swift-dependencies
Protocol Witnesses Introduction by NSScreencast
https://nsscreencast.com/episodes/486-codable-witnesses-1
SwiftData management
Dependency management tips
Don’t be too dependent
Kotaro’s story about XLForm
Think carefully about letting your “moat” be dependent on a third-party API
e.g. DividentCalc
What are your options for platform changes?
Fork/mirror third-party SPMs and Pods
https://github.com/apple/swift-evolution/blob/main/proposals/0219-package-manager-dependency-mirroring.md
https://www.sonatype.com/products/sonatype-nexus-oss-download (cocoapods)
Off Topic: Auto generating acknowledgements
SwiftyStack
https://www.swiftystack.com
AcknowList
https://swiftpackageregistry.com/vtourraine/AcknowList
Wrap-Up & thanks!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio convene for the penultimate episode of 2023 to discuss the latest presentations by OpenAI and Github and the way generative "AI" tools may be enabling the dream of a "universal" UI for computing (for both end-users and developers) that is more natural and contextual than ever before. Stay until the very end for a short after show on the strange, but super useful, ContentUnavailableView. As always, check the show notes for all the links!
Introductions
Exploring Side Project Directions
visionOS uncertainty without hardware
Cool particle effects: https://x.com/JamesSwiney/status/1721136324953174092
Metal shaders in SwiftUI
Color effect
Distortion effect
Layer effect
The “Universal” UI
Hu.ma.ne AI pin
Release video: https://vimeo.com/882968794
Photoshop generative “AI”
OpenAI “GPTs”
OpenAI Keynote: https://www.youtube.com/live/U9mJuUkhUzk
Universal Translator Demo
Github Copilot’s “universal” developer UI
https://youtu.be/NrQkdDVupQE
https://myfirstcommit.com
What about Apple?
An opinion on how to build “AI” products by using it for as little as possible
https://www.builder.io/blog/build-ai
GitLab Duo
https://about.gitlab.com/gitlab-duo/
Wrap-Up & Jokes
After Show: ContentUnavailableView
https://swiftwithmajid.com/2023/10/31/mastering-contentunavailableview-in-swiftui/
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio are riding a sugar high from Halloween and ready to discuss Apple's "Scary Fast" event. Online controversy erupted over the "Shot on iPhone" tag at the end. The incorporation of an iPhone into a legitimate "professional" workflow and the resulting hoopla got us thinking about what other opportunities are afforded developers and creatives on Apple platforms in this new Apple Silicon/USB-C/Soon to be VisionOS era! From filmmaking to game development to "AI" model training and more, we look at some of the things you can do now that you couldn't do, or do nearly as well, a few short years ago. Plus, amazing programmer dad jokes and Steve and Kotaro propose Aaron tackle the question: "Hotdog or sausage?" It's a fun episode with a lot to digest. Give us your thoughts about opportunities on the PhillyCocoa Slack!## Topics Discussed:- Introductions - Podcast editing (logic vs Descript) - Scary Fast Discussion - Opportunities for apps - Opportunities for content creation - “Shot on iPhone” - Demonstrating what “Pro” means - Social Media Debate - Like the iPad “Pro” debate - M3/A17 Gaming Opportunities - Apple TV? - Indie dev “slow roll” strategy - Game Porting Toolkit - M3 GPU changes- Baby Mac Developers - SwiftUI cross platform development- Layoffs and Opportunities - AI Hype Cycle- Mojo Tease - Superset of Python from Chris Latner and Modular - Make AI tools more optimized - Dev tools released for Mac- The Wrap-Up & Programmer Dad JokesIntro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week the Trio revisit the topic of "AI" by discussing some of the tools and workflows they have tried out lately. There is some follow-up to last episode's topic of The Composable Architecture, including Steve talking about a side project idea that he may use TCA to implement. Plus, talk of the job market, concurrency in Swift, and Meta Glassholes! It's a long episode, but we think it's pretty interesting. Enjoy!
Introductions
Follow-up
The Composable Architecture
https://github.com/pointfreeco/swift-composable-architecture
https://github.com/pointfreeco
Steve’s TCA Side Project Ida
Job Market Talk
Hacker News Hiring Trends*
https://www.hntrends.com
Concurrency Talk
Steve’s Side Project Idea Cont…
Keyboards
Fav10 app
https://tomatoboy.co/fav10
Revisiting “AI” Tools & Workflows
Kotaro’s Vanilla Prooompting
Kotaro’s Metal Shaders in SwiftUI
Arc Max “AI” tools
Photos app search
Animation assistant?
Photoshop AI tools
Pixel 8 Photo tools
The context a photo is in matters
AI tools effect on art making process & market
Last Minute News
visionOS labs in NYC!
Meta Glassholes
https://www.theverge.com/23920102/meta-quest-3-in-public-privacy-recording-glassholes
The Wrap-Up & Jokes
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio are together once more! This week, Steve and Kotaro discuss Steve's most recent HTTP API Client design, some of which was inspired by Rob Napier's "Generic Swift" talk from several years ago. Then, Steve almost loses his voice trying to poorly explain The Composable Architecture (TCA), but does go into some depth on the pieces and ideas he has applied to real world projects. It's mostly Steve talking this week, but it's pretty interesting stuff. Be sure to check the show notes for links so you can dive deep into these topics yourself!
Pre-Show: AI Podcasters
Introductions
PhillyCocoa Updates
HTTP API Client Design Discussion
Steve's pseudocode to illustrate this discussion
https://gist.github.com/stolton/86ce14eb7dcf2b45d04532b84ef37b04
Generic Swift: It Isn’t Supposed to Hurt - Rob Napier
https://youtu.be/_m6DxTEisR8
The Composable Architecture, Poorly Explained
https://github.com/pointfreeco/swift-composable-architecture
https://www.pointfree.co/
Swift-Testing project
https://github.com/apple/swift-testing/tree/main
NSScreencast - A Look at the New Swift Testing Framework (subscription required)
https://nsscreencast.com/episodes/565-swift-testing-framework
Kotaro’s Object Capture 3D Mapping Side Project Idea
Object Capture
https://developer.apple.com/augmented-reality/object-capture/
CloudKit
https://developer.apple.com/icloud/cloudkit/
Create ML
https://developer.apple.com/documentation/coreml
The Wrap-Up
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Kotaro hosts solo one more time this week to briefly talk about "secret sauces." No, not the kind you use on nuggets! It's that ineffable quality of an app that makes you love it vs those annoying anti-patterns often prevalent in apps created just to catch the wave of a hype cycle. Kotaro wants to make apps he loves and that you might love, too! This is a short, but practical and personal essay celebrating some apps that found their "secret sauce."
Introductions
iOS 17 is out
Xcode 15 is out!
To continue work on visionOS keep Xcode 15 Beta 8 around.
New iPhones out. Dynamic Island is available across the board.
What is the secret sauce in an app that makes you love it?
Hype cycle
Generative AI
AR/VR
Crypto
How can I make a cool app with these? Lots of bad ideas
Personal favorites:
Modo
SoundStudio
Sketch
Procreate (also Procreate Pocket)
Not A Sponsor: GetClipDish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Kotaro is solo this episode due to scheduling issues around the end of summer holiday festivities. But, fear not, this episode is short, but jam packed with advice about opportunities for your next big app as we move into the iOS 17/visionOS world. Widgets, AI, visionOS, Macros, and more! There are so many cool new features in this next generation of updates that can lead to brand new opportunities for success in your developer journey...if you read the tea leaves.
Introductions
Episode 50
visionOS status and personal
Xcode Beta 8!?
Reading Apple’s tea leaves and looking for opportunities for your next big app.
Obvious leaves:
Widgets Everywhere
AI in plain site
CoreML/CreateML make it easier to consume and create custom models.
visionOS
ARKit/RealityKit
SharePlay
Freeform as a example has an app that came out of nowhere but is now the key app to demonstrate what Apple intends for SharePlay to be utilized.
Not-so obvious ones:
DocC
Better documentation and deeper long term integrations
SwiftData
Easier to implement and work with CloudKit sync
Macros
Easier to wrap complex templates inside a macro
Interactive Widgets
Standby mode becomes more interesting
CarPlay might be more useful
Implementation of visionOS version
Wrap-Up
One More Thing: GetClipDish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio gather to hear about Steve's Baltimore e-scooter adventure and the app experience. Then, a brief discussion of Xcode Beta 7 before diving into inspiring visionOS demos found on social media. Multiple bad app ideas are entertained this week, including one based on a classic Kids in the Hall sketch. Kotaro goes into some detail on how hand gesture recognition works today and how it might work in the future while Aaron describes our dystopian nightmare future of inescapable avalanches of ads in immersive environments. Ending on a positive note, the Trio wonder if "spatial computing" could usher in a new era of developer experiences. One More Thing...GetClipDish.com!
Introductions
Steve’s Baltimore e-scooter adventure
Government apps have gotten better!?
Xcode Beta 7!?
visonOS Inspiration is Out There!
Kotaro follows some Japanese devs on X
Yasuhito Nagamoto https://github.com/ynagatomo/VOClimateSpiral
Hattori Satoshi https://github.com/satoshi0212/visionOS_30Days
Bad App Idea: Squishing Heads! (Like Kids in the Hall)
https://knowyourmeme.com/memes/im-crushing-your-head
Hand gesture recognition
An Avalanche of Ads
Long Long Man https://www.youtube.com/watch?v=6-1Ue0FFrHY
Will visionOS lead to new development experiences?
Wrap-Up
One More Thing: GetClipDish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio continue exploring visionOS despite ongoing beta challenges. Steve updates his experiment with a little more functionality while Kotaro scans a "mutant peach" into a 3D object, and Aaron is stymied in his physics experiments due to inadequate Simulator support. Kotaro provides some insights into what game developers may find familiar and frustrating if they decide to venture into visionOS development before discussing some "hot shader action" coming to SwiftUI in iOS 17. Finally, Bad App Ideas returns, revisiting "Portal Pigeons," and we give a shout-out in our "Not a Sponsor" segment to Happy Scale!
Breaking Beta News:
Xcode 15 Beta 6
visionPro Beta Restrictions
visionOS Experiments Progress & Challenges
Steve updates his toy photo demo app
Kotaro has issues with 3D objects
Aaron physics experiments
Kotaro’s “Mutated Peach”
iPad or iPhone Pro (LIDAR) used to scan an object to create a 3D model
Kotaro scans a “mutated peach”
Use Object Capture demo app from Apple
https://developer.apple.com/augmented-reality/object-capture/
Get a USDZ asset that can be used in RealityKit
Reality Composer Pro & Package Oriented Programming
Assets contained in an SPM library that you import into your app
Game Developers & visionOS
Hot Shader Action
https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-metal-shaders-to-swiftui-views-using-layer-effects
https://www.shadertoy.com
Shader modifiers
Bad App Ideas
Portal Pigeons
One More Thing…
Not a Sponsor: Happy Scale
https://happyscale.com/
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio continue to suffer the Beta Blues, but Steve did do his pod homework this round and made a very janky visionOS prototype that lets you apply a pixelation filter to a photo! This leads into some good discussion of photo app features that would be appropriate on visionOS interspersed with some "bad app ideas," a digression about Share Play, and Kotaro & Aaron decide they want to build Cerebro! It's an easy-breezy episode, perfect for these hot summer days.
visionOS Progress
Steve: Success with loading an image and applying a pixelate filter.
visionOS Photo App Ideas
Beta Blues
Reading the Apple Tea Leaves & App Ideas
Share Play
Next Steps
Steve: grid or ornament or picker
Kotaro: videos, windows, and geometry
Aaron: work with Kotaro
Bad App Ideas Throughout!
Pixelate the world!
Wrap-Up
Not a Sponsor: https://GetClipDish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio are trying to run the visionOS sample apps, but broken Xcode betas are getting in the way! Undeterred, Kotaro leads a discussion on what you can learn via the four visionOS demo apps (if you get them running). Then, the trio speculates about the forthcoming dev kits, Steve brings up the movie Hackers (because it's awesome!), and we end the show with some truly "bad app ideas." We are taking baby steps into our spacial computing developer journeys!
Beta cycle breakage!
The Four Apps & More
https://developer.apple.com/documentation/visionos/world
https://developer.apple.com/documentation/visionos/diorama
https://developer.apple.com/documentation/visionos/happybeam
https://developer.apple.com/documentation/visionos/destination-video
Learn about visionOS - https://developer.apple.com/visionos/learn/
Hello World - Introduce you to Windows, Volumes, Spaces
Happy Beam - Mixed immersive, ARKit for hand shape
Physics via ARKit
Meet ARKit for spatial computing - https://developer.apple.com/videos/play/wwdc2023/10082/
Diorama - 3D map to show shader stuff in a Volume
Destination Video - Multiplatform video playback app
SharePlay
Xcodes.app - manage multiple Xcode versions
https://github.com/XcodesOrg/XcodesApp
Dev Kits Coming Soon?
Work with Apple section on Developer site
Coming in July
VR Gaming Thoughts
VR Gaming in Hackers - https://www.youtube.com/watch?v=rQ7o3ziR5io
What is Vision Pro For?
Desktop metaphors
M2
iPad/iPhone apps
For Next Time
Hopefully run all these apps in beta 4!
Steve: Load an image and put a filter on it!
Kotaro: UI component exploration & PencilKit.
Aaron: ARKit physics (if it works in the beta)
Bad App Ideas (Gone Good?)
Book Shelf AR Cover Visualizer
visionOS Fart App
visionOS fire/ice hand beams
visionOS movie theater apps
visionOS tabletop card games
visionOS virtual telegram
Next Time:
Big corporation bad ideas
Wrap-Up
Not a Sponsor: https://GetClipDish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio have had some initial hands-on time with the visionOS SDK and are ready to dive into a new development adventure. That's right, it's time to pivot! We think visionOS is a rare opportunity that should not be missed by Apple developers. Maybe it's a big nothing burger, maybe it'll be a new App Store gold rush, maybe somewhere in between, but the time to start exploring this new platform is now! In this episode, we talk about what we have already learned from the visionOS SDK before discussing some very rough prototyping ideas we want to use to start exploring this brave new Spatial Computing world.
What’s up with PickleJarTodo?
Pivot to visonOS
Physical Dev Kit
Apple’s visionOS timeline
Knowledge and skills in this space good career wise
visionOS SDK Discoveries
RealityKit for rendering engine (no SceneKit!)
Windows/Objects anchor in real world
Windowed Apps
What’s the market?
Prototype Ideas
Work on interaction prototypes
Scan real world objects to create 3D models
Hand tracking, detect open/close fist
AV Player interactions
Photo editing/exploration/framer
Hang Photos on your wall
Portal based Item box
Portal based JIRA! LOL
Scan real paper notes and “fax” them
Magnetic Blocks
For Next Time
Pick a prototype that is SMALL
Steve: Window app, desaturate photo with basic editor controls
Kotaro: Hand gestures
Aaron: Something with 3D models/physics engine
Final Thoughts
Sound will be vital
The Wrap-up
GetClipDish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio are joined by developer and educator, Mohammad Azam to discuss some of the big announcements from WWDC23. Topics include Swift Macros, SwiftData, app architecture patterns, server-side swift, and more! There are ton of great links in the show notes this episode, so be sure to check them out! When you are done, follow some of the links to Azam's courses and content. We have found his work to be very helpful in our own developer journeys and maybe you will, too!
Welcome Azam!
Azam’s WWDC23 Highlights
Swift Macros
SwiftData
VisionOS
visonOS/Vision Pro
Swift Macros / Observable
SwiftData & App Architecture
Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
https://azamsharp.com/2023/02/28/building-large-scale-apps-swiftui.html
Backyard Birds Sample Code (WWDC23)
https://developer.apple.com/documentation/swiftui/backyard-birds-sample
Food Truck Sample Code (WWDC22)
https://developer.apple.com/documentation/swiftui/food_truck_building_a_swiftui_multiplatform_app
Data Essentials in SwiftUI (WWDC20)
https://developer.apple.com/videos/play/wwdc2020/10040/
Server-Side Swift
Use Xcode for server-side development (WWDC22)
https://developer.apple.com/videos/play/wwdc2022/110360/
Vapor
https://vapor.codes/
Express
https://expressjs.com/
Machine Learning / CreateML
Azam’s CreateML Workshop Preview
Tabular Data
What’s a tomato?
ChatGPT
Azam’s Content / Production Tips & Tricks
Twitter: https://twitter.com/azamsharp
Web: https://azamsharp.com/
YouTube: https://www.youtube.com/channel/UCKvDySsrOVgUgRLhWHeyHJA
Udemy Courses: https://www.udemy.com/user/mohammad-azam-2/
Bonus: Azam’s Developer Advice
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Twas the pod before WWDC and the trio decided to enjoy themselves with a little speculation about what gifts Apple will bestow on June 5, 2023. Most of the discussion centers on speculation about the "mythical goggles" rumored to be released along with a brief tangent on widgets, some thoughts on whether Apple will even utter the acronym, "AI," during the conference, and we end with a nerdy grab bag wishlist of features we hope to see added to Apple's platforms this year. Don't miss the Not a Sponsor segment this week as Steve demonstrates that the Clip Dish devs' prompt engineering is second to none!
WWDC23 is Almost Here
Keynote
State of the Union
Apple Headset / xrOS
Name
External Screen
Use Cases
Stage Manager UI?
Content Creation / Art
Games
Hardware SDK Possibility
Developer Tools
Widgets All the Way Down
Apple and AI
Not a Sponsor: GetClipDish.com
Nerdy Grab Bag Wishlist
SwiftData
ScrollViewReader improvements
PencilKit improvements
CarPlay next-gen
Under the Radar - Preparing for WWDC 2023
https://apple.co/43xRlJc
Wrap-up
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, the trio is joined by our good friend and Philly CocoaHeads alum, Joe Cieplinski. Joe is an accomplished designer who transitioned into iOS development and has built multiple apps for iPhone and iPad. With the recent announcement of Final Cut and Logic on iPad, it feels like a new era of pro iPad apps may be on the horizon and there is no one better to talk to about iPad apps than Joe. In this wide-ranging discussion, we touch on Joe's journey from teacher to designer to developer of awesome iOS apps, his former podcast and sometimes current conference, Release Notes, plus a whole lotta iPad talk. What makes iPad a unique computing device? What kind of apps thrive? Has Apple lost its way navigating the path between simplicity and power with iPadOS? What do we hope to see at WWDC this year? All that and much more is covered in this very fun conversation between old friends. Enjoy!
Welcome Joe Cieplinski
How we know Joe
Teleprompt+
Joe’s iOS journey
Joe’s apps
Polywork
Release Notes Podcast
https://releasenotes.tv
Release Notes Conference
CocoaLove Segue
Kotaro’s Introduction to the iPad
Joe, Champion of the iPad
Photoshop on iPad is interesting
SF Symbol Creation App Idea
iPad is Computing for “Normal” People
Is iPad Getting Too Complicated?
Final Cut & Logic on iPad
Pro iPad app market
What makes iPad software good?
Where are the opportunities?
iPad & Apple AR development
WWDC23 Wishlist
“Underwear people podcast”
Independence
https://podcasts.apple.com/us/podcast/independence/id1238555061
Multi-app audio routing
Apple Watch independence
SwiftUI improvements to replacements for UIKit controls
Swift Core Data
Foundation in Swift 5.9
Where to find Joe!
https://micro.blog/joec
https://joecieplinski.com/
https://boulderos.com/
Every third Wednesday, 7pm - 9pm in Boulder, CO
Upcoming WWDC watch party
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, the trio celebrates their podcast mid-life crisis by discussing a concept coined by Daniel Steinberg in a 2022 talk, "Packaged Oriented Programming." How do you organize your app using Swift Package Manager packages? What are the benefits and costs? There is also some discussion on dealing with JSON API changes, using Codable vs DTOs, and strategies for caching external package dependencies for the longterm. Be sure to stay until the end where Kotaro engages in some live "prompt engineering" with Chat GPT that generates some impressively bad jokes.
Mid-life crisis episode
Are we buying the rumored AR headset?
PickleJarTodo / LazyGrids are cool!
Package Oriented Programming
Previews and Package Oriented Programming
Daniel Steinberg
CocoaHeadsNL, Do iOS 2022
https://youtu.be/_5uBJeJVUm0
Why?
How?
How many frameworks per SPM?
Codable/Decodable/Encodable/DTO
Dealing with JSON API changes
Unit testing
Project organization
Circular dependencies
Assets/Resources
Apple Food Truck example
Caching SPMs for the future
https://www.sonatype.com/products/sonatype-nexus-repository
Swift Package Index
https://swiftpackageindex.com
Be mindful of importing dependencies
Wrap-Up
Chat GPT Prompting for Jokes!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, Steve engages in a little "proompt engineering" with Bing, we bring back our Not a Sponsor segment to share how impressed we are with Clip Dish, and then we discuss the topic that all Apple dev podcasts must tackle at least once, "going indie." We focus on some of the logistics like whether you should use a company App Store account, how important it is to get an accountant, and ideas on revenue models, the special challenges of being an indie game dev, and end with some advice on getting started consulting. This is a perennial topic in PhillyCocoa and we only scratch the surface of the areas of discussion, but hopefully you'll get some utility from what we do discuss, especially if you are thinking of starting an indie app business or consultancy for the first time yourself.
Topics Discussed:
Introductions
“Proompt Engineering” with Bing
PickleJarTodo Update
SwiftUI Grid is cool!
Not a Sponsor: GetClipDish.com
Main Topic: Going Indie
Slopes
Fin Timer
RECaf
Going Indie Discussion
Consider a Company Developer Account (e.g. LLC)
Get an accountant!
Create separate bank account!
Understanding budget and runway!
Revenue timing
e.g. seasonal sticker packs
Revenue Models
One Time Purchase
In App Purchase
Subscriptions
Apple App Store Small Business Program
Focus on a project
What About Games?
Consulting
General Liability Insurance
One option is Hiscox, but look around based on your needs.
How much to charge?
Charge to your ability
Once you have your first gig, you can grow prices
How to find your first client?
Networking!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
he trio is back from The State of the Mobile Union event where fun was had by all and minds were expanded about the possibilities of mobile development! Plus, the Comcast Technology Center is cool! We continue to slowly build PickleJarTodo with Kotaro putting into practice the ideas he espoused at his talk for our UI. In our newly restored Not a Sponsor segment, we check-in with the current state of Arpit's GroceryTimer app, which might just be what Steve needs to avoid rotten strawberries. Plus, the trio discuss some thoughts on the much rumored Apple AR/VR Goggles, what the heck we might be able to do with it, and some thoughts on what might be coming (or we hope is coming) at WWDC23 this year. It's a jam-packed episode. I hope you have a long walk planned for today, Zorn!
Topics Discussed:
PickleJarTodo Update
Advice From the Release Notes Podcast
https://releasenotes.tv
KanjiLove
https://abilenky.github.io/kanjilove/
The “spirit” of skeuomorphism
Can ChatGPT solve the software estimations problem?
Kotaro’s Jira mea culpa
Not a Sponsor: GroceryTimer
https://grocerytimer.app
State of the Mobile Union Outcome
https://arpitonline.com/2023/03/29/gdg-philly-and-philly-cocoas-state-of-mobile-union-event/
Kotaro’s “Immersive UI” concept
Future events ideas
Apple’s AR/VR Goggles
The Future is a Dead Mall - Decentraland and the Metaverse
https://youtu.be/EiZhdpLXZ8Q
Like Watch v0
Widgets
Use Cases
WWDC23 Hot Take Wishes
Swifty Core Data?
Improved Property Wrappers?
Donny Wals Talk with CocoaHeadsNL
https://www.youtube.com/watch?v=O_aKEd4dyjE
Wrap-Up
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, the trio wonder about the nature of a “sprint” and Steve takes his first tentative steps into whatever circle of Hell is reserved for Jira. The three amigos then revisit the topic of “AI” tools since this space is moving at warp speed. Kotaro and Steve talk about their experiences with ChatGPT and Bing before discussing some of the machine learning tools already available from Apple. Kotaro talks about diffusion model image workflows and the concerns of visual artists. Then Aaron tells us to wrap things up after some final discussion about generative art and how to adapt to this brave new world taking shape around us.
Topics Discussed:
Introductions
PickleJarTodo Update
Tinder-like swipe gesture updated
What’s a default sprint look like?
Tangent: AI Tinder
Next: Onboarding/preview data so we have a full experience with sprints
Jira & Enterprise Apps
AI Part Duex
OpenAI ChatGPT
Building a ChatGPT macOS Toolbar App Using SwiftUI
https://www.youtube.com/watch?v=v6SMV_TUOJk
Code snippets
Bing Chat
Microsoft Copilot
Apple’s existing APIs
Vision Framework
CreateML/CoreML
Diffusion model workflows
Corridor Crew Anime techniques
Visual Artists’ concerns
Generative art via shaders
Wrap-up
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, Steve makes progress building a log screen, but not without encountering obstacles. Then the trio dives into a discussion about how we learn. What works for us, what doesn't, what are good resources? It's a content-rich episode full of tips, some possibly questionable anecdotes, a dash of philosophy, and so, so many links. It's a little haphazardly presented, but that's just our charm!
Topics Discussed:
PickleJarTodo Update
https://getslopes.com
How to Learn
Books vs Articles
https://bignerdranch.com
https://www.swiftbysundell.com
https://www.hackingwithswift.com
https://designcode.io
https://www.kodeco.com (formerly Ray Wenderlich)
https://practicalcoredata.com
Videos
https://www.youtube.com/@azamsharp
https://www.youtube.com/@EngineeringwithUtsav
https://www.youtube.com/@Kavsoft
https://www.youtube.com/@iOSAcademy
https://developer.apple.com/videos/
https://apps.apple.com/us/app/apple-developer/id640199958
Mentorship/Meetups
http://phillycocoa.org
Apps
https://apps.apple.com/us/app/interactful/id1528095640
https://apps.apple.com/us/app/fabula-for-swiftui/id1591155142
https://apps.apple.com/us/app/libraried-ui-components/id1642862540
https://apps.apple.com/us/app/judo-design-and-build-apps/id1564578427
Coding
Contracting
Side Projects
Game Jams
Tangent: Comics and Anime
Final Words about Learning
Find what works for you!
How to Take Smart Notes, Sönke Ahrens
https://www.soenkeahrens.de/en/takesmartnotes
Learn multiple programming languages
Learn from Mike Zornek
https://mikezornek.com
State of the Mobile Union Announcement!
http://phillycocoa.org/blog/state-of-the-mobile-union/
March 22, 6-8pm at Comcast Technology Center
On this exciting episode, incremental progress has been made with PickleJarTodo! I know, you're in awe at our productivity. But, the bulk of the episode is a semi-literate discussion about the latest crop of "AI" tools and their potential impact on our discipline of software development. From the current crop of tools like ChatGPT and CoPilot to potential uses in designer/developer collaboration and even full app generation, this discussion is preliminary, but interesting, and we will surely revisit the topic in the future as we gain knowledge and experience in the space.
Topics Discussed:
- SwiftLint for TODO warnings
- Core Data model relationships
- Azam testing blog post (testing is about confidence)
- https://azamsharp.com/2023/02/15/testing-is-about-confidence.html
- Generating code via Figma-like app
- Apple and AI tools
Steve's voice is back...like 95%! Tune in this week for an update about PickleJarTodo where, as usual, we quickly go off the rails into a classic Kotaro rant about JIRA! We also have some discussion about the perennial SwiftUI issue, integrating Core Data. Plus, some pros and cons we have found trying to use GitHub Projects and we end by setting some semi-realistic goals for next time!
Topics Discussed:
- Side Projects Can Help Day Job Projects
- GitHub Projects Tickets
- Kotaro Rants About JIRA Slowness. 🤣
- GitHub Projects Discussion
- Core Data is Our Nemesis
- Core Data design patterns in SwiftUI
- Kotaro: Wire up UI components
- Steve: Core Data Model layer CRUD
- Aaron: Layout review sections/settings
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Steve lives! The trio is back this week and while Steve still sounds like a frog has taken up residence in his throat, the show must go on! In this episode, we discuss the plan for the next few months, make some goals, assign some tasks, and go off on tangents about Apple backends, Disney World weirdness, and the awesomeness of the Ren Faire. New year, new plan! Let's gooooooo!
Steve lives!
Plan to finish PickleJar MVP
- Why the PickleJar name?
- Time management with a 9 to 5
- 2023 Timeline
Tangent: Apple Backend Woes
Plan to finish PickleJar MVP (2)
- Timeline
- Capacities
- Update GitHub Project Todos
Tangent: Disney World & Ren Faire
Outro
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Steve is still recovering from some bad laryngitis and we should be back to our regular schedule next podcast. In the meantime, Kotaro provides some quick updates about the pod, the app, and his personal goals for the new year. Stay to the end to hear examples of what our future robot overlords consider developer "jokes." Welcome to 2023! We hope you build some cool stuff this year.
Podcast update
PickleJar update
Personal developer goals for the new year
- Better understand how to build Mac apps.
- Improve my skills at shaders.
- Get into Godot more.
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
It's the final episode of 2022! This week, Steve is solo as he puts on his best "podcast voice" to talk about his personal journey to embracing SwiftUI over the last year. See you in 2023!
- WWDC22 turning point
- Integrating SwiftUI and UIKit
- Living the SwiftUI Preview lifestyle
- Greenfield app prototyping with SwiftUI
- Better cross-platform collaboration with SwiftUI
- Feeling re-invigorated about Apple app development
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio is taking a break over the holidays and so this is the first of a few special, short, solo episodes we are releasing until we get back to our regular routine in the new year. This week, Kotaro provides his retrospectives on our journey so far with this podcast and Side Project Saturday, plus lays out some goals for PhillyCocoa projects in the new year. Happy Holidays from Philly CocoaHeads!
Podcast retrospective
PhillyCocoa Community retrospective
SPS goals for 2023
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, the trio finally remembers we passed our 1-year Podiversity before very skillfully transitioning into an in depth conversation on the topic of prototyping! What is it? How does it work? What are the tools and techniques? How is it practiced at a BigCo vs an Indie shop? The conversation is varied and interesting. Please note, this will be the last "regular" episode of 2022, but more content shall flow into your feed in the form of some special, shorter, episodes, so stay subscribed!
Topics Discussed:
1 year anniversary…back in October!
No PickleJar update. On hold due to schedules and holidays.
What is prototyping?
Dynamic
UI Transitions
Degrees of Prototyping
Wireframing vs Prototyping
Wireframes are mostly static layouts, may be low fidelity or high
Prototypes are interactive, often on device
Traditional Tools vs. SwiftUI
Traditional tools link static screens together
WWDC14 - Prototyping: Fake It Till You Make It
https://developer.apple.com/videos/play/wwdc2014/223/
SwiftUI feels more like an actual app in your hands
Prototyping IRL
Independent consultant with a client
Big Co Team
One-man-band developer
Advice for New Developers
Pushing the Boundaries of Prototyping
Game Jams As Prep For App Prototyping
Favorite Prototyping Tools & Techniques
SwiftUI Introspect
https://github.com/siteline/SwiftUI-Introspect
Iterate the prototype and ask “How do I make this better?”
Persona 5 Transitions In the Metaverse?
https://youtu.be/DxOGkhLfPf8
Focus on how it feels
Screen recording and screenshots for demos
Don’t be precious with your code
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Aaron's out this week, so the inmates are running the asylum! Steve is embarking on some greenfield app work at the day job and asks, "What is a modern app?" Since Kotaro has a lot of recent experience with all the newest Apple frameworks and features, an interesting discussion ensues about both how you can expand beyond the in-app experience and why you should or should not. Plus, the entire pod goes off the rails for a while when Kotaro goes into significant detail about an infamous Side Project Saturday "bad app idea" for a next generation fart app! It's both an informative and pretty funny episode.
Topics Discussed:
PickleJarTodo app update
There's an app for that!
Expanding beyond the in-app experience
Push notifications
App Library and getting engagement
Widgets & Product Owners
Live Activities & Dynamic Island
Siri Integration
CarPlay Integration
WatchKit app
iMessage stickers
App Clips
Shortcuts
What experiences are relevant to your app?
Don’t ask why, ask why not?
Don’t be evil.
Fart App: The Next Generation
So, in the end, what is an app?
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, we have actual PickleJarTodo updates! Plus, Kotaro gets up on his soapbox to rant about testing, but is coaxed down and a more nuanced discussion ensues. Plus, we have some thoughts on the recent Mohammad Azam article about SwiftUI architecture and the NSSpain presentation about rewriting SoundCloud in SwiftUI. Finally, Steve remembers some sage advice he read on the early Web in the 1990s...RTFM!
Topics Discussed:
PickleJarTodo Update
Lots of UI Components! (Kotaro)
Basic Image Picker Support (Steve)
Testing Discussion
TDD
UI Testing
Testing time vs Development Time
It Depends
SwiftUI Architecture Discussion
SwiftUI Architecture — A Complete Guide to the MV Pattern Approach
https://betterprogramming.pub/swiftui-architecture-a-complete-guide-to-mv-pattern-approach-5f411eaaaf9e
Lessons Learnt Rewriting SoundCloud in SwiftUI
https://vimeo.com/751534042/f1ae29434e
Programmers as Craftsmen
Environment
PreferenceKeys
RTFM!
Building a Budget App Using SwiftUI and Core Data Part 1 (Mohammad Azam)
https://www.youtube.com/watch?v=Mfp2l59JKKo
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
On this week's episode, the trio is totally focused and not at all awkward in their transitions as Steve recounts his recent FogBugz drama and Kotaro discusses a recent foray into building a straight-up macOS app in SwiftUI! Steve wonders if the culture of building your own tools has changed in the mobile world and a brief update on the PickleJarTodo app leads into a plug for Mike Zornek's blog, which you should totally read!
Topics Discussed:
Follow-up: FogBugz Drama
Kotaro’s Experimental SwiftUI Mac App Development
- Platform Expectations
Building Your Own Tools From Scratch
PickleJarTodo Update
- Images in Core Data
- UI Component “Lego Bricks”
- Stealing moments to work on the app
- https://mikezornek.com/posts/2022/9/side-project-tiny-tickets/
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The trio is back this week with some follow-up to Kotaro's solo episode and some spicy takes on The Verge's re-design. Steve tells the tale of how he was stymied by an obvious bug until Aaron fixed it and this leads into some discussion about the challenge in learning new mental models and the importance of having someone else read your code when you are stuck. Meanwhile, Kotaro promises he is working on the UI layouts and the big news since last episode was the new Dynamic Island feature in the iPhone 14 Pro models! We discuss in our infinite ignorance how this feature works and how we might use it for fun; Steve mentions something called "Super Sayan Aaron Mode!?"
Follow-Up: Kotaro’s Solo Episode
The Verge vs Craigslist
RSS Never Died
PickleJarTodo Update
Steve’s Core Data refactor works after Aaron fixed a bug!
SwiftUI mental models
Kotaro is building layouts
Dynamic Island Discussion
Live Activities API
Super Sayan Aaron Mode
Dynamic Island and Recent App Design Trends
How Can Our App Visit the Island?
Storing Images in Core Data
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Due to scheduling conflicts, this week is a special solo episode featuring Kotaro! People often ask us in PhillyCocoa how to become an iOS developer. Listen as Kotaro gives his recommendations on how to start your Apple Developer journey whether you are a complete novice or an experienced developer in another speciality. Also hear about Kotaro's own journey into iOS development back when Objective-C was still a thing! This episode features 100% less Steve and Aaron, but is full of useful advice and fun Kotaro anecdotes. Don't worry, the trio will be back in action next time!
A Developer's Journey
Foundations of Apple Development
Learning Materials
- https://www.raywenderlich.com
- YouTube
Kotaro's Apple Developer Journey
Building Skills With Side Projects
Reading Others' Code
Asking For Help
Apple Development is Not For Everyone
It's About the Journey, Not the Destination
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week the trio review the PickleJarTodo journey so far before discussing the trials and tribulations of macOS betas, bringing back tasteful skeuomorphism in our app, adding playfulness via animation, and why copy is important. Aaron describes his solution to our NavigationSplitView dilemma, Steve discusses some Core Data architecture patterns, and Old Man Kotaro Story Time and a project management tools discussion result in some entertaining hot takes and rants.
PickleJarTodo Update
The journey so far
The trials and tribulations of macOS betas
NavigationSplitView
Skeuomorphism, Martin Style!
Digital paper notebook
The Martin System inspiration
SPS #17: Fingerpicking Good
http://phillycocoa.org/podcast/sps-17/
Thomas Frank Video
https://youtu.be/0bxIg3M_MHY
“Martin System” Article
https://collegeinfogeek.com/paper-habit-tracker/
Adding playfulness via animation
Side Project Saturday Design Feedback
Copy is important
NavigationSplitView & Tab Bars
Make a new layout based on device size
TabBar for iPhone
NavigationSplitView for iPad (2-pane)
Core Data architecture patterns in SwiftUI
Practical Core Data Book
https://practicalcoredata.com
Old Man Kotaro Story Time: The Objective-C Days
retain/release, provision hell, and the “bad old days” of Apple Dev.
Game Plan:
Kotaro: Flesh out core UI experiences (e.g. card view)
Steve: Core Data & Log View
Aaron: Onboarding View
September 7 Apple Event - Release candidate imminent
Project Management Tool Hot Takes
GitHub Projects
Trello
Microsoft Planner
Jira
RIP FogBugz
Bitsplitting.org: Dump FogBugz
https://bitsplitting.org/2022/07/20/dump-fogbugz/
Basecamp
Microsoft Teams
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
In this episode, Kotaro has some more thoughts about respecting the platform and we get into an interesting discussion about the how, when, and why of using SwiftUI as a prototyping tool. Then, Kotaro reveals his UI epiphany for the iPhone version of PickleJar. Finally, Steve inadvertently creates a Not a Sponsor segment and the productivity app world is introduced to the idea of "Aaron Mode."
Follow-Up: Respecting the Platform
Using SwiftUI as a Prototyping Tool
Sketch Is an Exemplary “Mac” App
Collaborative Prototyping With SwiftUI
Mockup/Prototyping Tools
https://sketch.com
https://figma.com
https://balsamiq.com
https://www.adobe.com/products/xd.html
Kotaro’s UI Epiphany & Discussion
The “Martin System”
https://collegeinfogeek.com/paper-habit-tracker/
Side Project Saturday: Suburban Edition, Aug 20
Next Steps
Not a Sponsor: Practical Core Data
https://practicalcoredata.com
Donny Wals: Using Core Data in a Modern SwiftUI Application
https://youtu.be/P8rqjs_CNsk
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, the trio is back from our first IRL meetup in two years! We provide an update on PickleJar including CoreData refactoring, architecture patterns, new UI sketches, a possible Radar-worthy bug, and we ask the big question, has Apple decided that Hamburger Menus are cool again? In the second half of the episode, we discuss the latest native vs web technology debate sparked by a Paul Hudson tweet about Notion switching to native views in their iOS app. It's quite an interesting conversation full of Kotaro anecdotes! Who doesn't love them? That's a rhetorical question, they're awesome!
Side Project Saturday Suburban Edition (IRL) was a success!
PickleJar app status
CoreData Refactoring Continues!
Architecture Patterns Discussion
Kotaro’s SwiftUI Sketches
Hamburger Menus are cool again?
SplitView Bug Fix on iOS
Implementing UI Sketches
Notion Native Code Drama
https://twitter.com/twostraws/status/1550077375643361280
The “Sweet Solution”?
Kotaro’s Epic Mac Word Rant
Respecting the platform
Speed is a feature
What’s the business value?
Ultimately, it depends
Wrap-Up
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, Kotaro's struggles with UI block leads into a discussion about the primary views that need to be updated, some priorities for the UX, and because this is a side project, we dream big about extra features before we've even gotten the core done, including A-Hole mode, the perfect way to motivate yourself when positive reinforcement fails. Considering our slow progress, maybe we should implement that feature first! In the end, Kotaro is back on track with his UI design tasks while Aaron and Steve continue architecting the Core Data + MVVM of it all. PRs were being pushed right after this recording!
20 episodes!
Side Project Saturday IRL!
Kotaro’s Mea Culpa
What’s the Primary View Hierarchy?
- Goals
- Sprints
- Reports
Work Assignments & Schedule Update
A-Hole Mode
UI Ideas
- Sprints
- Goals
- Reports
- Lightweight
- Logging
- Onboarding
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Progress has been made on the app and as we move beyond simple prototyping into trying to make a functional MVP for other people to eventually use, how we structure our code becomes more important. This week, we discuss the MVVM architecture pattern and how well it does and doesn't get along with Core Data. Then, Kotaro leads us on a UI/UX design discussion, partially inspired by "the most satisfying checkbox."
PickleJar Update
Testing iCloud Sync
Multiple simulators signed into iCloud
MVVM + Core Data Discussion
CS193p
https://cs193p.sites.stanford.edu
Translating core data models to structs?
FetchRequest wrapper vs View Model
Map Into structs
https://www.youtube.com/watch?v=ehV2gp5uVhs
Sync is hard
Custom environment variables
UI/UX Design Discussion
Tags
Habits (ADA Winner)
https://www.andy.works/words/the-most-satisfying-checkbox
UI Focus
Sprints UI
Timeline Review
iPhone vs iPad vs Mac UX
Next
UI Core Mechanics (Kotaro)
Basic Charts view to explore (Steve)
ViewModel fleshed out (Steve + Aaron)
Tests!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
WWDC22 has come and gone and boy was it full of developer goodies this year! This week, the trio first survey some of their favorite announcements from WWDC22 before diving into a discussion about how to pivot the todo app development in light of the upcoming OS changes. Be sure to check out this week's Not a Sponsor and Apple Design Award Winner: Slopes
Topics Discussed: - WWDC22 - SwiftUI is The Way - App Intents - WeatherKit - Passkey - AR/Metal - CarPlay - Lock Screen Widgets - Xcode Live Previews - Swift Charts - Swift Regex - SwiftUI Navigation - Losing Platform Distinction? - Side Project WWDC Pivot - All-in on iOS 16/iPadOS 16/macOS 13 - Installing Beta macOS - Timeline Discussion - June: Finalize layout - July: Implement Prototype - August: Revisions - September: iOS/iPadOS release. Mac Revisions. - October: macOS release - Not A Sponsor: Slopes - ADA Award Winner!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Just in time for the weekend plane ride to Cupertino, it's our WWDC22 speculation episode! We talk about some of things we hope to see at this year's WWDC including new hardware, iOS 16 features, and dev tool improvements. Plus, Kotaro provides a bonus tip about how you can glimpse the future by subscribing to the Swift Evolution mailing list. If you'd like to join us at our virtual keynote watch party, RSVP and join our Slack! Details are on our website at http://phillycocoa.orgor at https://www.meetup.com/PhillyCocoaHeads/.
Be sure to check out our Not a Sponsor this week: SwiftBySundell.com
What is WWDC?
In-person vs virtual
Alt conferences
Speculation
Hardware
M2 Mac Pro
AR Glasses Dev Kit
Joy-con style controllers for iPhone/iPad
iOS 16
New era of UI design?
Theming support?
Mac Password Management App?
SwiftUI 4
Becomes The Way to do Apple dev
Native ARView?
Native support for PencilKit?
NavigationLink improvement?
Native Siri Intents?
Keyboard/Text fields improvements?
Core Data Updates
New API?
NoSQL style db?
Continue improving SwiftUI integration
Better CloudKit support in Xcode
AR
Commitment that AR glasses are coming and timeframe?
Reality Composer features
Glimpse the future on the Swift Evolution mailing list
Concurrency
Regex support
Not a Sponsor: SwiftBySundell.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week, we return to our Todo App project. Coding has stalled because we didn't have a specific enough idea of exactly WHAT the app is supposed to be all about. Problem definition is hard and this week Steve presents his thoughts on how to move forward based on his research into some existing digital and paper habit tracking systems. Then we sketch some specific app feature requirements where we coalesce around the idea of tracking something akin to "epics," provide positive reinforcement via widgets, and support Siri Intents for use in the Shortcuts app.
Be sure to check out our Not a Sponsor this week: the TIL with Mohammad blog at https://mfaani.com
Topics Discussed:
Todo App Progress Updates / Blockers
Wayward Kotaro: CloudKit Shared Data Containers & (Not) Getting Things Done
Steve: Did research!
Aaron: Busy with work.
How to find the time and motivation to do a side project
Todo Research Discussion
Thomas Frank Video: https://youtu.be/0bxIg3M_MHY
"Martin System" Article: https://collegeinfogeek.com/paper-habit-tracker/
Strides app: https://www.stridesapp.com
App Design Discussion
iOS: Check off items
Mac: Center of attention, graphs, planning
Epic tracking
Positive reinforcement via widgets
Siri Intents for Shortcuts support
Next Sprint:
UI Design Prototype
Data Model Update
Not A Sponsor: https://mfaani.com - TIL with Mohammad Blog
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
The app is making slow progress and we will have more to say about that soon, but we couldn't pass up the opportunity to talk with our special guest this week, Mohammad Faani. Mohammad is an active member of PhillyCocoa and joins us to discuss his journey to becoming an iOS developer as well as how both Stack Overflow and his new TIL blog help him focus and shape his own developer journey.
Topics Discussed:
Introducing Mohammad Faani
Mohammad’s origin story
Mohammad’s background
Online courses to learn development
StackOverflow
Meetups
Joining Philly CoocaHeads
PhillyCocoa book club
Unit Testing In the Real World
Mohammad’s TIL blog
Why blog?
How to choose topics?
How Stack Overflow and blogging can be complementary
What’s next for Mohammad?
Where to find Mohammad?
Website: mfaani.com
Stack Overflow: @mfaani
PhillyCocoa Slack: @mfaani
Twitter: @mfaani
GitHub: @mfaani
Not a Sponsor: ReCaf.app
Mohammad’s Words of Wisdom
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
This week we finally reveal our idea for our second app on this podcast and it's a macOS todo app! I know, very original! Listen in to our unscripted discussion as we talk about why we chose this concept for the app, some theories around todo systems, and eventually coalesce around some broad goals for features as well as a timeline for a Test Flight prototype.
Introducing our next side project: a macOS Todo app!
How do we do todos?
Steve: Omnifocus, Todo, Calendar
Aaron: Calendar
Kotaro: Reminders, 3-4 core things to do that day in notes app
Theory Discussion
Pickle Jar Theory
Kotaro’s Theory
Broad App Goals
What would make this app useful for us?
Kotaro
Lightweight
Pattern reporting (task completion)
iOS version for quick task check-off
Recurring tasks you want to do every day
CloudKit/Core Data sync
iPad app?
One-offs
Siri Intent
Steve
Habit tracker
Historical trends
Aaron
Fitness training goals
e.g. Training Peaks app
Goal tracking
Feature Summary Discussion
Record when you did the task or assume you did it at the time of checking off?
Epics vs Tasks
Notifications are not annoying (summary info, for example)
Widgets
Default view is stuff we already did.
Bucket List app, checking off towards a goal and get summaries
Timeline for MVP
Release before WWDC: 1.5 month project
Aaron’s Scope Suggestion: Help us prioritize WWDC work
How do we break this up?
We already created an app, Trello, GitHub repo, icon
4 sprints of 2 weeks
Strong prototype by 4th sprint at least
Test Flight
First Sprint:
Basic Todo Task UI
Basic Core Data data model
CloudKit sync
Mac to iOS syncing
Not a Sponsor: Fin Timer
Kotaro’s New Outro!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
After we recorded this week's podcast, we did decide on our next side project and it's not what you might expect. It has to do with pickles. Stay tuned for info about that next time! This week, we delve into the side project "failure" bin to talk about overcoming the many challenges to completing side projects and how even when we move on from one, it was still worth doing.
Pre-Show:
Stocks and studio displays
The Death of Kotaro’s Side Project Dividend Calc
KanjiLove: A Passion Project that Took Multiple Attempts
Fav10: Learn SwiftUI, CoreData, & CloudKit
A Customer of One
The Daily Chron Podcast: Learn a New Non-Dev Skillset
https://www.dailychronpodcast.com
Video Killed the Podcast Star?
Side Projects are building blocks
Kotaro and Aaron’s Big O Apple TV app
How to finish a side project
Keep scope small enough to not be overwhelmed, but big enough to still be useful
Hold yourself accountable by building in public like with KanjiLove
Work with other people
When to move beyond v1.0 on a successful side project?
Revisit to learn new things
Stuff you had on the back burner
A platform for your learnings
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
We have another special guest this week! Sean Najera, Senior Mobile Developer at Nuuly, joins the Pod to talk about his experiences using Flutter before discussing his new SwiftUI Navigator library that fixes a big missing feature in Apple's framework. There is also some love for C#, a look at the waves of Android development over the years, the evolution of languages like Dart and Swift, and new this week, a special post-show where Steve asks the question that only Aaron can answer, "What is a table?" This was a fun one.
Welcome Sean Najera to the podcast
An Infinite Closet
Riding the Waves of Android Development
Flutter & Declarative/Reactive UIs
Flutter Challenges
Should you still use Flutter today for a cross-platform app?
C# Rocks
Flutter’s rendering engine
Dart, Swift, C#, and Language Evolution
Sean’s Navigator Library for SwiftUI
Wrap-Up
Post-show: What is a table?
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
With all of us getting busy with work, we are using this opportunity to experiment with the podcast format and bring a spotlight to other developers in the community. Our first guest to the POD is Arpit Mathur, creator of GroceryTimer.app. This app was our Not a Sponsor last time and since it was recently released, we thought it would be fun to discuss the how's and why's of its creation. Arpit is always a pleasure to converse with and we delve into several interesting aspects of the app's creation, design, and technologies as well as how Arpit is experimenting with the Virtual Meetup format of Philly's Google Developer Group using tools like Twitter Spaces. It's a fascinating and entertaining conversation. We hope you enjoy it as much as we did.
Download GroceryTimer.app!
Welcome Arpit Mathur to the podcast
@GDGPhiladelphia
Virtual Meetups with Twitter Spaces
Slack Huddles
GroceryTimer.app Origin Story
Building an App with Flutter
GroceryTimer.app Design Process
Flutter and Platform Specific Considerations
The Present & Future of Widgets
The Future of GroceryTimer.app
Future Arpit Side Projects
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Ok, we are really spinning our wheels now getting a new app idea pinned down, but the upshot is there are a lot of interesting subjects touched upon this week, including the "confirmation" of RealityOS, how people occlusion works in ARKit, a tangent about the history of Web API technologies, and much more. Plus, our Not a Sponsor this week could help you keep your food from spoiling!
RealityOS is Real!
How ARKit People Occlusion Works
What makes a good AR experience, according to Apple
AR Goggles Pricing and Design
A Tangent on XML, JSON, gRPC, and Web APIs
Ray casting and ray tracing
Not a Sponsor: GroceryTimer.app
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Continuing our incremental progress exploring the AR app space, this week, Aaron shows off our first baby steps with a working prototype! Steve discusses his month long side project making movies, which prompts a discussion of how AR could be used in filmmaking. Then, Kotaro and Steve go on a tangent exploring nightmare AR/VR dystopia possibilities before getting back on track with this week's "Not a Sponsor" segment. Finally, the trio settles on a handful of feature paths to explore for next time.
- Potential for AR as a filmmaking tool
- AR for V-Tubing
- Drop a marker on an IRL location
- Reality Composer Explained
- How to get/create AR assets
Dystopian AR/VR Nightmares
Not a Sponsor: Nuuly Thrift
Next Steps with the AR App
- Occlusion mapping
- Interactions with 3D objects
- Some Text-based UI GUI
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
We decided that we want to work on an AR app, but we still can't figure out what to build. The space is still very new, hardware from Apple doesn't exist yet, and life really got in our way last sprint, so we didn't get much prototype exploration done. This week, we continue our search for an AR app idea, perhaps come up with a germ of an idea by the end, and in the middle, Kotaro expounds on game jams and creative cheats from his own past. It's a diamond in the rough kind of episode, but sometimes that's how it goes when you are trying to start down an unexplored path.
Searching for an AR app idea on Twitter
Types of AR Hardware
Game Jams & Creative Cheats
A Prototype Idea for Next Time
Not a Sponsor: Happy Scale
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
After a brief retrospective about our last app, Kanji Love, and a shout out to the recently departed Release Notes podcast, the team starts a discussion about our next project, which looks like it'll be focused on Augmented Reality. First, we ask ourselves, what is the relationship between AR, VR, and the "Metaverse" concept? Then we read the tea leaves of Apple's APIs to make an educated guess about future hardware and types of applications that would be useful to build. Finally, we spend time talking about some specific app ideas and end the episode with some bonus talk about recognizing hand gestures. Next time, we will decide what app we will build for season 2!
Introductions
Kanji Love Retrospective
Built for the learning experience
How could we make money, theoretically?
RIP Release Notes
What is the Metaverse?
Reading the AR Tea Leaves
What can Apple AR APIs do?
Big Funky Goggles VR
Apple Glass v1 Speculation
What app should we build?
AR Dance Instructor app
Record dance movements with body pose estimation APIs
Playback via an AR character
Mixamo.com for character asset
IRL to 3D Object Scanner app
Scan with the iPhone
Generate 3D object in Mac app
Export a file for 3D asset or AR
AR Graffiti app
Create a drawing and post it on a wall
AR Scavenger Hunt app
Smashing Crates animation FTW!
Next Steps
Look for/build prototypes to explore ideas
Steve: AR Dance Instructor
Kotaro: IRL to 3D Object Builder
Aaron: General AR research
Our next project should use SwiftUI as much a possible
Decide the project on next podcast
Bonus Discussion about hand gesture recognition
Not a Sponsor: ClipDish AR feature idea
getclipdish.com
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
It's release day! Kanji Love is in the App Store! In this season finale episode, we discuss the story behind the app's name as well as some of the final bug fixes and tasks we had to complete. Then, you can listen in to the moment we made the app live in the store! Finally, we discuss some ideas for next season. Don't worry, Side Project Spotlight WILL RETURN!
Download the app!
Check out the website!
Story behind the app name: Kanji Love
cocoalove.org
Fracture Prints FTW!
Sprint Retrospective
Kotaro: Website & Metadata
Aaron: Minor Bug Fixes
Steve: Launch From Notification Discussion
Using GitHub Pages for your App Website
https://abilenky.github.io/kanjilove/
PUSH THE BUTTON!
Releasing the app LIVE!
What’s Next?
Bug Fixes
Complications improvements
App Store Marketing Team Submission
Next Season on SPS
AR + CoreML?
Explore ideas more than develop projects?
Playgrounds App Projects?
The Podcast will continue!
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
We are in the endgame now! Kotaro has refined the UI while Aaron has updated our Core Data stack and Steve got Notifications working! All the pieces are together and we basically have a feature complete 1.0 app! Now we are entering into the final stress test, debugging, and polishing stages. In this episode we discuss the promise and current limitations of Xcode Cloud, provide an overview of the App Store submission process and steps we need to complete, and worry out loud about whether Swift UI conditionals are a good idea or not. App Submission Day is rapidly approaching. Will we make it?
Beta Test the app: https://testflight.apple.com/join/Ag07XWbg
Sprint Retrospective
Aaron:
Core Data migrations
Card Deck updates
Steve:
Notifications work!
Kotaro:
Refined UI!
Refined text-to-speech
Refined metadata displayed
Xcode Cloud Issues
Archive & build almost works. Bug in Xcode Cloud.
App Store Submission Process Overview
Copyright Info
Keywords
Privacy policy
App nutrition label
Screenshots
etc.
Core Data Migrations
Automatic Lightweight migrations
Swift UI Conditionals
If/Then, Switches, etc. within a view
Looks ugly
Is it appropriate?
Refactor into View Builders?
On-Device & Swift UI Preview Problems
Problems getting it to run on Kotaro’s watch
Swift UI Previews unreliable
Rely on Simulators
getslopes.com
Not a sponsor!
Awesome app
How to open a SwiftUI View From a Notification?
Jump to a SwiftUI view from notification
Deep link via scheme?
Complications
Onwards to Submission Day:
We are feature complete for v1.0
Need stress testing on device.
Polish time
Get app setup on Aaron’s account
Marketing materials, App Store metadata, etc.
Deadline for Submission: Dec 23
Parting Words
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist
Sprint 4 is over and we are entering the home stretch. Kotaro got the swipe mechanic working, Aaron got so much done, he started adding features, and Steve ran into issues trying to build a Notifications UI. The trio discuss Git branches and merging strategies and then spend the bulk of the episode diving into SwiftUI architecture in general and specifically regarding the app. Finally, in a segment that is the nightmare of project managers everywhere, new features are discussed! This is a long one, but with a lot of great technical discussion. Bonus! It's edited more gently than the last episode. You're welcome, Zorn!
Sprint 4 Retrospective
Kotaro: Swipe mechanic
Got it working!
Had to modify the Deck library for watchOS
Aaron: Next Kanji algorithm
Initial implementation is simple, but works
Added some methods
Daily Goal
Some complications work
Steve: Notifications reactions
UI picker (third party)
Refactoring
Basically everything almost works
Merge Strategies
Feature branches & Pull Requests
How Steve does merging at work
What does the master/main branch mean?
Kotaro has been testing Xcode Cloud!
App Architecture - High Level of how our app works
Structs not Classes (for the most part)
Views
Managing State vs UIKit
App Struct
Scenes
Environment
SwiftUI - How does it work?
Notifications Integration
Feature Creep
Complications Discussion
Haptics
Speech-to-Text on Long Press
SiriKit intents
Next Sprint: Path to Release
TestFlight
App Store metadata like privacy policy, screenshots, etc.
App Store transfer
For Next Time:
Kotaro: complications placeholders, deep links, and polish UI
Aaron: CoreData migrations, Siri
Steve: Notifications / Podcast / Website
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Sprint 3 is over and Kotaro has made progress on the UI with a complete app skeleton now linked together, but is still working on the core swipe animation. Meanwhile, Steve found notifications a little harder to setup in a SwiftUI environment than expected, but got the basic plumbing working when he wasn't editing the podcast. Aaron is the Sprint MVP as he updated the data managers so that Kanji can be retrieved from the database with ease and user stats saved on demand. All together, this means we are getting close to a working app! Plus, a discussion comparing Objective-C and Swift and the struggle to switch mental modes when you are learning new things.
Kotaro
Swipe UI not done, yet. Working on choosing library or technique
Improved onboarding screens to initially load JSON into database
Completed linking areas of the app together
Aaron
Added accessing methods to kanji database like next, random kanji
Added stats tracking
Steve
Notifications wired up, but not fully implemented
Need proper settings for schedule
Lots of refactoring needed
Time management in a sprint - How Kotaro approaches game jams
Week 1: get features done
Week 2: fine tuning/bug fixes
Notifications
Where do you put authorization check?
SwiftUI modifiers for WindowGroup?
How to handle implementing delegate methods in Swift UI?
Structs vs Classes in SwiftUI
Structs for layouts and immutable values
Classes for data model and data state stuff in background
Objective-C vs. Swift
Obj-C doesn’t slap you on the hand like Swift will
Swift enforces a kind of discipline
Toughest part is changing your mental model
if let and guard statements
Obj-C geared for reading and Swift geared towards writing?
Async/Await in Swift
Inside a closure, has to be wrapped in a Task
Future Features
Fling a card from one watch to another using nearby interactions framework
Core mechanics of scheduling specific notifications and handle actions (Steve)
Know it
Don’t know it
More Info (deep link with tap)
Dismiss
Mute for Today option
Next Kanji algorithm (Aaron)
Method on public database class to get the next kanji
Debug settings screen
Complications, if time
Swipe mechanic (Kotaro)
Main UI
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Sprint 2 is done and we have data! In this episode, we check-in on our goals for the sprint and discuss what got done, what didn't, and some interesting issues that came up along the way. Now that we have Kanji data in the Core Data database, we can shift focus to building the UI for the app and notifications for next time.
Wireframes and prototype UI
Kanji database parsed into JSON
Core Data stack setup
Everyone get the app built and run on their watches
Look into how notifications might work
Get a podcast website setup
Got podcast website done
No notifications
Started skeleton layout of all views
Hasn't hooked up UI to Core Data, yet.
Hugo as an option for building your podcast or app website
PRs for collaboration on GitHub
Analysis Paralysis and comic book artists
Core Data array magic with the transformable attribute
UI mechanics
What are the stats we are saving?
Extensions on CoreData models (like Kotaro's Fav10)
Working prototype swipe UI and save user stats (Kotaro)
Working notifications (Steve)
Public interface to the Kanji database (Aaron)
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Our first sprint encountered some hiccups and we are off to a slow start, but progress has been made! This week, we have some follow-up about changes to our initial App Store Connect environment, describe how we setup the podcast, and spend the majority of the meeting talking about data sources, structures, and UI.
Topics include:
Switching to an App Store Connect Team account for development
Podcast infrastructure setup with Anchor.fm and Podcast Connect
Exploring Kanji databases using Python in Google Collab
What data do we really need for a "card" in the app?
What kind of stats do we need to track and where do we store this data?
What are the primary user interface interactions?
Goals for next time:
Wireframes and prototype UI
Kanji database parsed into JSON
Core Data stack setup
Everyone get the app built and run on their watches
Look into how notifications might work
Get a podcast website setup
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
For our inaugural season, we (Kotaro, Steve, and Aaron) are building a watchOS Kanji flashcard app and documenting our journey. This week, we tackle the initial project infrastructure setup and talk next steps. Topics include:
Github project setup and .gitignore
App Store Connect Users
New up a Xcode Project from a template
What is this app all about?
Initial wireframes
Kanji database options
SwiftUI vs Storyboards
How to use Github Projects
Project management techniques
Deadlines
Goals for next week
Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.