RSSAmplifier

Blog

iOS Development on Ivan: Thinking

Recent content in iOS Development on Ivan: Thinking

ivanthinking.netRSS feed ↗30 posts

Latest posts

iOS Dev Weekly Issue 763 is a game changer

I’ve been reading iOS Dev Weekly for years now. Before this past May, the newsletter
was written by Dave Verwer who I’d emailed a handful of times (he responded!) and always had great
commentary about the state of the iOS development world. Sometimes, he’d be honest
and note he didn’t have much to say that week, but he always brought interesting
thoughts and…

3735883980

Debugging a crash on the new Little Memory 2.0 app today, and found a crash report with the termination code: 0xdead10cc .
Interesting hex code, or rather, hexspeak .
Seems there’s some fun Apple’s done with termination codes: 
 
 0xdead10cc - “dead lock” - an application holds on to a system resource while running in the background 
 0x8badf00d —…

Ready Time's on TinyLaunch

Ready Time is moving up the ranks at TinyLaunch . Go give it an upvote! 
 
 
 

 /ready-time #ios-development #nerdtower 


Ready Time 3.3: Travel Time

I built Ready Time to take the guesswork out of leaving on time. You tell it when you need to be somewhere and it tells you when to start each step. 
 There was one part of setting up steps that’s always been tedious and annoying: travel time. 
 Drive to the doctor, bike to soccer, walk to dinner. I’d switch to
Apple Maps, search for the address, get the travel time, come…

Next Chapter of Little Memory

I’ve been in the weeds getting Little Memory 2.0 ready. Well, honestly, it actually never had a proper
1.0 version! 
 One thing that’s bothered me over the years is having all these entries in my database. I’d rather have
people’s memories storied on their own devices where they’re safe and accessible even when offline. 
 I have most of the bones of…

Ready Time 3.2: Shared Plans and Daily Repeating Plans

This one’s been a long time coming. Ready Time 3.2 is here! 
 
 Shared Plans
 
 
 
 
 Having a backwards planning tool has been great, and my wife and I use it all the time to make sure we
 get out the door on time . But we found it redundant to each have to setup our own plans, especially if
we were going to be on the same flight or going to the same…

Technology is not enough

Daring Fireball : 
 
 Either you know that software can be art, and often should be, or you think what I’m talking about here is akin to astrology. One thing I learned long ago is that people who prioritize design , UI, and UX in the software they prefer can empathize with and understand the choices made by people who prioritize other factors (e.g. raw feature count, or the ability to…

Moving along on Ready Time relaunch


 Posted on r/SideProject . Had a little hiccup since my original post was filtered by reddit’s spam filter (boo!), but re-submitted a day later with fewer links in the post. I’d also been dormant on reddit for a while, so it may have smelled like spam with the initial post.
 
 Found out there’s an app by the name of ReadyBy with the same concept. After checking it…

It's like gonna have like this tab

Kids and Vibe Coding : 
 
 It’s easy for us to spot the issues. However, the bit that’s surprised me, though, is that they are…aware of it? Even as a 9 year old. Is this a potential byproduct of growing up in the digital age? They know it doesn’t feel right, and they can’t really say why yet, they just know it feels off. 
 That’s hardly surprising, as design and user experience are…

Ready Time

We’re always underestimating how long things take: 
 
 mornings with a kid 
 catching a flight 
 getting out the door for dinner 
 appointments you can’t be late to 
 
 It always feels like there’s enough time until suddenly there isn’t. 
 Ready Time works backward from your deadline. You add your steps: shower, pack lunch, get the…

Getting Ready for Ready Time

Ready Time is the rebranded name for Little Countdown . Domain: check. Website: check . App update: almost. 

 /ready-time #ios-development #nerdtower 


Time Lock, New Premium Feature

Sometimes you need a task to happen at a specific time. Maybe you need to leave for the airport at exactly 3:00 PM, or you have a hard deadline to be at a meeting at 10:00 AM. Little Countdown normally schedules all your tasks backward from your deadline, but that doesn’t work when one task needs to happen at a fixed time. 
 Time Lock lets you set a fixed start time for any Task in your…

Development login credentials in Xcode

Danijela Vrzan posted
a very cool solution to streamlining entering login credentials in Xcode and the iOS Simulator
using breakpoints. I’ll admit that I probably haven’t fully unlocked the
full potential of Xcode breakpoints in my development workflow. 
 If you’re an app developer, no doubt you’ve run into the case where you’re tediously
typing in…

Little Countdown 2.0


 
 Little Countdown 
2.0 is now available for iOS. Just in time for helping you stay on time and stress free for your holiday travels. We rebuilt the app from the ground up and streamlined adding and editing Countdowns. 
 Your meeting’s at 9. Packing up for the kids takes 15 minutes. Dropping them off takes half an hour. Getting to the office is another 20 minutes. What time…

iOS Developer Resources


 Developer News and Community
 
 
 
 
 If I could give any advice to all new iOS developers, it’s that they should
keep up with the ever-changing iOS ecosystem. Apple pushes out a new
version of iOS every year, so it’s important (and exciting!) to keep up
with the latest going on in the world of iOS Developmenet. I like to keep
my ears on the…

SwiftUI: Link phone numbers, emails, URLs in Text without Markdown

SwiftUI provides an easy way to link URLs and emails inside of a Text view
using AttributedString ’s markdown initializer: 
 let text = 'Jenny's at 867-5309.' 
 + ' Email her at jenny@tutone.net.' 
 + ' Find out more: https://en.wikipedia.org/wiki/867-5309/Jenny' 
 
 VStack {
 Text( try ! AttributedString(markdown: text))
 }
 However, this has a few…

CoreData: All that is left to us is honor



 My life for Aiur 
 
 How to do?
 
 
 
 
 
 Add -com.apple.CoreData.ConcurrencyDebug 1 to your Xcode launch arguments . 
 Execute some non-thread safe CoreData code . 
 Crash, but at least you’ll still have your dignity. 
 
 
 See also
 
 
 
 
 
 The Laws of Core Data 
 Stack Overflow 
 

…

Beginnings: Birth of Little Memory

In 2011, I was co-founder of Dojo , a startup focused on helping people build and keep habits. We set out to truly make a difference in people’s lives by helping them do the things they always wanted to do: work out, meditate, stop smoking, create art, and a whole list of other practices that we were learning from our early beta testers. 
 Even though Dojo ultimately didn’t…

iPhone Upgrade Program vs Buying, Trade In

Every year, when Apple makes its big announcement about the new iPhone being the most amazing device ever, you’re wondering whether you should upgrade or not. You consider whether the new features are worth it or whether you want a better camera or a better battery life. 
 Maybe your iPhone’s becoming gruelingly slow because you’re 3 years behind. Or maybe you can tell that…

Swift: Immutable Struct Singleton Initialization

How can you initialize a struct singleton that has dependencies? You likely chose to use a struct because you’re trying to reduce state and keep things immutable in your code. You’re also likely wanting to use the singleton pattern for a shared service or model in your project. 
 I’m a fan of keeping things immutable if possible, and I default to struct s and let s before…

Fastlane: Downloading AppStore Metadata

Just like we use git to be able to audit changes to our code over time, doing so with our app’s AppStore metadata lets us keep an eye on changes made to our AppStore page as well. 
 The first step in getting more control of our metadata is by having it live in our project’s repository. Keeping a copy of our metadata in git lets us keep track of changes to our app’s…

Swift: Converting String to Date

When consuming an API response, we’ll often see an ISO 8601 formatted date String like this: 
 2020-04-20T16:20:42+02:00
 As a String , it’s not really useful for us, as it’s not really something you want to show your users.
We may want to be able to extract just the hour, calculate the time interval between this date and others, or just format it in a way…

Horizontal Stack Content Hugging

In your iOS app, you’ve got a Horizontal Stack with subviews layed out like so: 
 
 
 override func viewDidLoad () {
 super .viewDidLoad()
 
 let loveLabel = UILabel()
 loveLabel.text = 'LOVE' 
 loveLabel.backgroundColor = .systemRed
 
 let kissesLabel = UILabel()
 kissesLabel.text = 'Kisses' 
 kissesLabel.backgroundColor = .systemYellow
…

Adding an Instructional Overlay for first time users to your app in iOS

Sometimes called Coachmarks , a Wizard , or an Onboarding Flow , this common UX pattern is used to guide first time users to an app on its features in your UI. 
 
 
 Here’s a quick and simple way to implement this pattern: 
 private func buildButton (with title: String) -> UIButton {
 let button = UIButton(type: .system)
 button.backgroundColor = .systemOrange
…

Little Countdown iOS app adds alerts for upcoming flights


 With latest update to iOS app, Little Countdown users can easily add a new Countdown pre-filled with upcoming flight details
 
 
 
 
 A new update to the Little Countdown app for iOS makes planning even easier for frequent flyers by notifying users of upcoming flights and letting them immediately add a Countdown to get ready for their day of departure. 
 This latest…

Bitrise: Mobile CI Service

With the small iOS team at Hipmunk, having to maintain a box to run Xcode Server would have been costly in terms of: 
 
 Buying hardware 
 Upgrading/maintaining the hardware 
 Keeping the OS/software up to date 
 
 Furthermore, we’d have to find a separate solution for our Android team and gain expertise on maintaining their CI as well. 
 We ended up deciding to use…

Automated Beta/Internal Change Notes with Fastlane

Do your TestFlight or Crashlytics have change notes that say something useless like Fixed bugs ? This is probably as useful as the equally ambiguous commit message fixed . 
 Or maybe you painstakingly look through your PRs to find out what changes went in since your last release and scribble something out quickly so you can just get the build ready for your product or testing teams. 
 This…

Little Countdown app integrates with iOS Calendar


 Latest Little Countdown update lets users quickly add new Countdowns based on iOS Calendar events
 
 
 
 
 
 
 A new version of Little Countdown is now available on the Apple App Store that
integrates with the iOS Calendar. Now, when users begin typing a Countdown title, they’ll be
presented with a list of upcoming Calendar events that they can…

Little Countdown iOS app adds support for Siri Shortcuts


 With latest update to iOS app, Little Countdown users can now hear their current task by asking Siri.
 
 
 
 
 A new update to the Little Countdown app for iOS helps users save time by not having to open the app to check their current task. With a simple voice command such as, “Hey Siri, get my current task,” users will hear the task that they’ve…

Introducing the Little Countdown iOS app: helping travelers get to the gate on time


 New app from creator of the mindfulness app, Little Memory, helps relieve traveler stress by getting them ready and out the door to the airport on time.
 
 
 
 
 Available today, Little Countdown for iOS helps travelers prepare for their trip and stay on schedule to avoid missing their flight. After entering tasks they need to accomplish before their flight, users of…