Here’s a really beautiful guide to styling SwiftUI components with lots of detailed, concrete examples.
π Styling Components in SwiftUI
Via iOS Dev Weekly.
Here’s a really beautiful guide to styling SwiftUI components with lots of detailed, concrete examples.
π Styling Components in SwiftUI
Via iOS Dev Weekly.
I always found the “favorites” feature in Apple Maps to be too general and dissatisfying. I quit using that feature once I had 48 places saved all across the world. π€·π»ββοΈ
Before that, I saved specific lists of places in Google Maps, but found their mobile app to be cluttered and confusing. π So I gave up and started using Trello.
Trello is cool for some things like trip planning and small projects, but it did not scale well and didn’t handle lists of places well. So I gave up on that. π’
I’m happy to have just discovered that you can save your favorite places as “guides” in Apple Maps. Finally, this is genuinely useful!
I just set up my own guide for coffee places open early for when I’m looking to get our early. Quick and easy and right to the point! π€©. I can immediately see all the places I saved and their hours. Check it out for yourself! (This is my own personal guide, so it’s focused on Austin, TX.)
Of course this guide automatically syncs to my iPad and Mac as well. β
Forgive me if I sound like an ο£Ώ fanboy, but out of genuine curiosity I went back and I did the same thing in the latest Google maps. It was a bit painful. π’
Notice how the “main” screen is oddly not a map but more of a picture of a cup of coffee and therefore not useful to me.
And even when I drilled into an actual map view, the places I care about are unlabeled in favor of (1) a notification that HEB has an offer and (2) the Texas Capitol and Congress Ave. Bridge exist. Again, not useful.
I just want to know where a coffee shop is open at 7am! Now that would be useful. π
I’ve learned a lot making apps for big companies, mostly about process: how a good continuous integration process works, how code reviews can be productive (or not productive), how to break a big app into smaller components so lots of people work on related things at the same time.
Still, it’s helpful to do something fresh and new 100% on your own from time to time. Doing something new all your own, you get to try any architecture you want, go all in on the latest asynchronous programming techniques, fully embrace the amazing new(ish) declarative/reactive view layer, and even try out a new CI framework to two.
But the most fun part of all is developing the idea of your app. What does your app do? How exactly does it work from a user perspective? And what do the screens look like in detail?
πThis time around, I’m prototyping my new app idea on my phone so that I can get a feel for how it works in my hands before writing all that code. ^
I tried out a few prototyping tools. After looking at some basic options and some pretty involved options (arguably too involved), I landed on a pretty “sketchy” Mac app that handles full-on detailed UI design and kind of does mobile prototypes through its “mirroring” iOS app. Perfect. π
π Sketch | mirroring app
I will say that Figma looks pretty promising as well. What nudged me over to Sketch was Apple’s Sketch-compatible design resources. There are some third-party iOS design resources for Figma, but I’d rather go with Apple’s official offering. Sorry, Figma. π€·π»ββοΈ
So my new design process is this, now that I’ve finally learned Sketch:
Rough sketch on paper β‘ realistic visual design in Sketch β‘ prototype on a phone β‘ code
My instinct is to talk about the app itself while it’s in progress, but sorry… that’s top secret for now. π΅οΈββοΈ
I love this post from swiftjectivec.com.
π Things I Made That Sucked
Not only does he detail the interesting stories of some old apps he made, but also the valuable lessons learned from each app that he shipped.
Aim first, then shoot. “Ask yourself why youβre doing what youβre doing and channel your excitement into less action and more thinking before you fire away.”
Pace yourself and don’t complicate. “Take time to learn about design and holy moses donβt toss in an open source project just because itβs shiny.”
There is no overnight success. “Always remember that character is carved out rather than instantly created. Each of these misses can eventually add up to a win.”
Applying the same thought process to my own old apps, here is what I come up with…
Ignorance is bliss. I genuinely thought it would be easy to make an augmented reality Santa tracker as my very first iPhone app. Who cared that built-in AR support on the iPhone was years in the future?
I understood that I’d have to learn Objective-C and Xcode as I went. However, I did not appreciate how much there was to learn about location APIs, motion APIs, audio APIs, audio editing, 2D animations, CoreData, the State Pattern, linear algebra π€―, the terrors (at the time) of shipping in the App Store, plus legal/privacy matters. Also why not translate the app into six languages, starting with Spanish?
And all just to see Santa blink on your screen when you pointed your iPhone north. π
My blissful ignorance allowed me to jump in fearlessly and forced me to conquer a mountain of challenges as I went (or quit).
This app only ever sold a few hundred copies but was a goldmine of experience and made me a mobile developer.
Simpler is better. App #2 was more useful and less technically challenging than the AR Santa app. Bedtime Balloons let me get into some fun art and more interesting animations. Plus this app actually made a difference in at least a few people’s lives.
Third-party frameworks can kill your app. At the time, there was no standard 2D animation engine for iOS. SpriteKit was not a thing yet. π€·π»ββοΈ So just like the Santa app, I built the animations around the very nice Cocos2d engine, which would eventually morph and evolve and… break my app. π€¦π»ββοΈ Yeah, I could have rewritten my app, but again only selling a few hundred copies, I chose to avoid all the sweat and tears and just move on.
Be practical. I never expected to sell many copies of my barebones but highly configurable math flashcards app for kids.
Written quickly in the new (at the time) Swift language, the app was alright. π€·π»ββοΈ But it worked for me professionally. My next step would be a full-time day job as an app developer, which had long been my dream.
Here’s a great article on the surprising news that the next version of MacOS is going to be more fun-looking.
π The Comeback of Fun in Visual Design
Or as Apple puts it:
Although the design language strongly encourages visual consistency, it doesnβt preclude judicious expressiveness.
That’s Appleβs way of saying you can be more fun now. π
Via iOS Dev Weekly.