iOS Dev Weekly - iOS Dev Weekly - Issue 619

How do you build a habit-building UI for the long term? ♻️
 

iOS Dev Weekly

 
View on the Web    Archives

ISSUE 619  July 21st 2023

 
Comment

  Comment  

 

Note: This issue’s comment relates to app design, but the writing is less focused and more personal than I usually try to be in my comment. Feel free to skip it and go straight to the links if that doesn’t sound like it’s for you.


This article by Lukas Mathis on streaks and habit building¹ that I linked to a few weeks ago has stuck with me since I read it. He opens with:

For a lot of people, including myself, streaks are a powerful motivator.

They are for me, too, but I always hit a limit with daily streaks after a few years. I reached that limit this week with an app that Lukas talks about in the article and one that generally does a great job with its implementation. Duolingo.

I started learning Spanish using only Duolingo almost two years ago, and until a few weeks ago, my daily trip to see Duo and friends was something I looked forward to. I felt myself progressing from month to month, and while I am far from fluent, ¡puedo hablar un poco de español ahora!

Yesterday, I deliberately let my Duolingo streak lapse. It had stopped being something I looked forward to, and I had even begun to “cheat” by finding the quickest way to extend my streak. I could get it done in less than a minute, but I didn’t feel good when I used that. Worse, while a minute of Spanish every day is better than nothing, I knew I wasn’t learning anything new.

In Lukas’ article, he references Craig Grannell’s idea of offering “redemption” after your streak is lost. That’s a good idea, but it wouldn’t have worked here. I need a break from doing it every day.

The worst bit about losing a streak in an app you care about is that it’s a total loss. I’m now back on day one, and I know that tomorrow, Duo or Zari will attempt to push me to start a new streak, which I don’t want to do. I need something to keep a little pressure on me to continue learning, though.

The design of any habit-building feature like a streak counter is a delicate balance between being so forgiving that it loses its motivational benefit and the completely unforgiving stance that Apple Fitness takes, where a one-calorie slip-up can bring a years-long ring-closing streak to an end.

Of course, I have thoughts on how both of these apps could work on this issue, but this isn’t a feature request to Duolingo or the Apple Fitness team. I’m sure their internal conversations have covered this topic more times than I can imagine!

I have a couple of ideas that might go beyond the obvious, though. Rather than go into specifics, I’ll broadly outline them. The first is less valuable motivationally as there’s no urgency to it, but I’d love to see historical stats in areas I’m trying to build positive habits. How many days have I practised in the last year? Is that trending up or down? How many hours have I spent practising? How many new words did I learn this month? I’d like to see my overall progress, which brings its own kind of motivation. Apple Fitness already has already started implementing this kind of feature.

Then, I think quests and achievements² are interesting, especially for long-term goals rather than as a daily motivation. I’d love Duolingo to work with me to push me towards areas of Spanish in which I am weak or want to improve. Or, with Apple Fitness, rather than assigning me an auto-generated monthly quest, I’d love to feel part of the process by guiding it on what I’d like to achieve before setting my monthly goal. Would this work for everyone? Nope! Some people want something simple, and some want nothing at all. I’m sure a group of people who would benefit exists, though. I know I would.

For now, I’ll give HabitBoard and Streaks a go again, and I hope this perspective on the user side of these features was useful if you're designing something like this.


¹ You can ask difficult questions about the morality of habit-building techniques in apps, but when the habit is learning something or improving fitness, I don’t think that’s an issue, and that aspect of this kind of feature is not the subject of today’s comment.

² I know David Smith did some work with achievements in Pedometer++.

Dave Verwer  Permalink

 
 

  Sponsored Link  

 

Join a FREE iOS Architect Crash Course before it ends

If you're a mid/senior iOS developer looking to improve both your skills and salary level, join this free online crash course. It’s available only for a limited time, so get it now.

essentialdeveloper.com  Permalink

 
 
 

  News  

 

Unity Beta Program for visionOS

Here we go! Apple talked about building visionOS apps in Unity at WWDC, and we now have a way to sign up for the beta. It’s unclear how many people/companies will get access, but with the visionOS beta being open to anyone and this feeling like a massive opportunity for Unity, I’d expect them to be generous with access. Sign up here.

businesswire.com  Permalink

 
 

  Tools  

 

Developer Duck

If you feel left out from all the CoPilot fun happening in tools like VS Code and the JetBrains IDEs, then Adam Wulf has just the thing for you. It’s an Xcode plugin providing GPT-powered completion, suggestions, and code analysis for your Swift projects.

It doesn’t change my concerns about GPL-licensed code generated by GPT, but that’s not the biggest problem with this app, and it’s not Adam’s fault. The behaviour of the Xcode extensions API makes this tool really hard to use, with vague error messages and a terrible UI for long-running tasks. However, if you find it too frustrating to use inside Xcode, there’s a separate app window where you can talk to the duck without Xcode! 🦆

apple.com  Permalink

 
 

  Code  

 

Checking in dependency sources from SwiftPM

Back in the CocoaPods days¹, I was a big fan of checking in all dependency source code alongside app code. As long as I didn’t use too many dependencies, size wasn’t a huge issue, and it was just a single commit every time I ran a pod update. Checking dependency source files in to your app’s repository became much more challenging to do with SwiftPM, but Geor Kasapidi has been looking into achieving the goal of gathering all necessary source files when using SwiftPM. I’m not sure I’d recommend this method for everyone, but I learned some things about SwiftPM while reading the article!

¹ Yes, I know “the CocoaPods days” are not over for many of you, but it’s been quite a while since I used it!

betterprogramming.pub  Permalink

 

Flutter for SwiftUI developers

It’s always good to stay aware of what’s happening outside the UIKit, AppKit, and SwiftUI world. You’ll always get a different perspective and usually learn something new. I enjoyed reading about Natascha Fadeeva’s experience of looking at Dart and Flutter and comparing it to SwiftUI.

tanaschita.com  Permalink

 

Swift Macro Toolkit

This new package is self-proclaimed as a work in progress, but still undoubtedly useful if you’re diving deeper into 5.9 macro development. 👍

swift.org  Permalink

 
 

  And finally...  

 

As someone who discovered both Ruby and Objective-C at about the same time, this spoke to me. ❤️

 Permalink

 
You received this email because you subscribed via the iOS Dev Weekly site.
We'll be sorry to see you go but you can unsubscribe instantly.
 
Shiny Development Ltd. Daresbury Innovation Centre Keckwick Lane Daresbury Cheshire WA4 4FS United Kingdom
 
 

 
 

RSS

 
©2023 iOS Dev Weekly | Privacy Policy | Mastodon | Twitter | Suggest a Link
 
Published with Curated

Older messages

iOS Dev Weekly - Issue 618

Sunday, July 16, 2023

Hearing about the experience of using Vision Pro from a developer's perspective is important 🧑‍🔬 View on the Web Archives ISSUE 618 July 14th 2023 Comment It's been a few weeks since they were

iOS Dev Weekly - Issue 617

Friday, July 7, 2023

Is visionOS the first iOS-based platform where Xcode might make sense? 🥽 View on the Web Archives ISSUE 617 July 7th 2023 Comment I've never been very excited about the prospect of Xcode on iPad¹.

iOS Dev Weekly - Issue 616

Friday, June 30, 2023

Let's talk about nutrition, shall we? Wait, what do you mean "Not that type of macros!" 🫘 View on the Web Archives ISSUE 616 June 30th 2023 Comment Macros in Swift are this year's big

iOS Dev Weekly - Issue 615

Friday, June 23, 2023

Ride the visionOS rollercoaster with me! You can stop riding sometime in early 2024! 🎢 View on the Web Archives ISSUE 615 June 23rd 2023 Comment If you have been watching social media since the launch

iOS Dev Weekly - Issue 614

Tuesday, June 20, 2023

How many times last week did you hear "At Apple, we believe privacy is a fundamental human right. "? 🤫 View on the Web Archives ISSUE 614 June 16th 2023 Comment Did you spot this Apple

You Might Also Like

Iran's Charming Kitten Deploys BellaCPP: A New C++ Variant of BellaCiao Malware

Wednesday, December 25, 2024

THN Daily Updates Newsletter cover The Data Science Handbook, 2nd Edition ($60.00 Value) FREE for a Limited Time Practical, accessible guide to becoming a data scientist, updated to include the latest

Software Testing Weekly - Issue 251

Wednesday, December 25, 2024

GitHub Copilot is free! 🤖 View on the Web Archives ISSUE 251 December 25th 2024 COMMENT Welcome to the 251st issue! In case you missed it — GitHub Copilot is free! The free version works with Visual

Daily Coding Problem: Problem #1647 [Medium]

Tuesday, December 24, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Square. In front of you is a row of N coins, with values v 1 , v 1 , ..., v n . You are

Sentiment Analysis, Topological Sort, Web Security, and More

Tuesday, December 24, 2024

Exploring Modern Sentiment Analysis Approaches in Python #661 – DECEMBER 24, 2024 VIEW IN BROWSER The PyCoder's Weekly Logo Exploring Modern Sentiment Analysis Approaches in Python What are the

🤫 Do Not Disturb Mode Is My Secret to Sanity — 8 Gadgets I Want To See Nintendo Make

Tuesday, December 24, 2024

Also: The Best Christmas Movies to Watch on Netflix, and More! How-To Geek Logo December 24, 2024 Did You Know Their association with the Christmas season might make you think poinsettias hail from a

😱 AzureEdge.net DNS Retiring Jan. 2025, 🚀 Microsoft Phi-4 AI Outperforms, 🔒 Microsoft Secure Future Initiative

Tuesday, December 24, 2024

Blog | Advertise | View Online Your trusted source for Cloud, AI and DevOps guidance with industry expert Chris Pietschmann! Phi-4: Microsoft's New Small Language Model Outperforms Giants in AI

Mapped | The Top Health Insurance Companies by State 🏥

Tuesday, December 24, 2024

In 13 US states, a single company dominates the health insurance market, holding at least half of the total market share. View Online | Subscribe | Download Our App Presented by: Global X ETFs Power

The Stanford Grad Who Forgot How To Think

Tuesday, December 24, 2024

Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, December 24, 2024? The

The next big HDMI leap is coming

Tuesday, December 24, 2024

Sora side hustles; Casio's tiny watch comes to the US -- ZDNET ZDNET Tech Today - US December 24, 2024 Ecovacs Deebot T30S Combo robot vacuum and mop The next big HDMI leap is coming next month -

⚙️ Robo-suits

Tuesday, December 24, 2024

Plus: The data center energy surge ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌