Federico Viticci

9062 posts on MacStories since April 2009

Federico is the founder and Editor-in-Chief of MacStories, where he writes about Apple with a focus on apps, developers, and iOS productivity. He founded MacStories in April 2009 and has been writing about Apple since. Federico is also the co-host of AppStories, a weekly podcast exploring the world of apps.

He can also be found on his three other podcasts on Relay FM – Connected, Canvas, and Remaster.


This week's sponsor


An app for every job, already on your Mac

10 Years of iPhone SDK

Whether you’re a developer who’s working on mobile apps, or just someone enjoying the millions of apps available for your phone, today is a very special day. It’s the ten year anniversary of the original iPhone SDK.

I don’t think it’s an understatement to say that this release changed a lot of people’s lives. I know it changed mine and had a fundamental impact on this company’s business. So let’s take a moment and look back on what happened a decade ago.

Craig Hockenberry published a fantastic retrospective on a decade of the iPhone SDK, which, after months of jailbreaking, allowed developers to start making real iPhone apps in 2008. It's an excellent, well-researched story (with a lot of links, which you should open in new tabs; take your time to explore) that brings back a lot of memories. You should also check out the replies (standard and quoted) to Craig's tweet for a lot more interesting stories.

It's not an exaggeration to say that I wouldn't be here, typing this post today, hadn't Apple decided to open iPhone app development to third-party developers 10 years ago. I think many of us in this community of people who still care about this stuff at least partially owe our careers to the iPhone SDK. I've shared this story before, but in 2008 I dropped out of university, got a job at a physical "eBay store", and later started blogging with a free WordPress website because I wanted to write about apps. But really, I wanted to write about iPhone apps and try as many as possible to share my thoughts with other people. That website eventually became MacStories and these words I've been putting out for almost 9 years now.

In hindsight, it feels strange that thousands of jobs around the world were created or inspired by a huge and sprawling corporation, but it didn't feel that way back then. Even as a nobody watching and blogging (in poor English) from the sidelines of a burgeoning industry, that period between the spring of 2008 and early 2009 carried a palpable sense of discovery, surprise, and wild experimentation that I remember fondly. I saw app developers as pioneers charting a future we couldn't even imagine. It was, in many ways, a different, ingenuous, more enthusiastic era – one that I hope to live through again someday.


Halide 1.7 Brings New Depth Photography and ARKit Features, Darkroom Integration

We first reviewed Halide, the powerful third-party camera app by Ben Sandofsky and Sebastiaan de With, when it debuted in the summer of 2017, providing a powerful and elegant alternative to Apple's Camera app that fully embraced RAW photography and advanced controls in an intuitive interface. We later showcased Halide's iPhone X update as one of the most thoughtful approaches to adapting for the device's Super Retina Display; to this day, Halide is a shining example of how the iPhone X's novel form factor can aid, instead of hindering, complex app UIs.

While Halide was already regarded as an appealing alternative to Apple's stock app for professional photographers and RAW-curious iPhone users (something that designer de With covered in depth in his excellent guide), it was lacking a handful of key features of the modern iPhone photography experience. Sandofsky and de With want to eliminate some of these important gaps with today's 1.7 update, which focuses on bringing the power of Portrait mode to Halide, supporting the iPhone X's TrueDepth camera system, and extending the app's integrations via a special ARKit mode, new export options, and native integration with the popular Darkroom photo editing tool.

Read more

Things Automation: Building a “Natural Language” Parser in Workflow

One of the Todoist features I miss the most as a Things user is the service's natural language parser. Available in the Quick Add field of Todoist for iOS, web, and macOS, this feature is, effectively, Fantastical for tasks. Instead of having to manually select task fields such as projects, tags, or dates, you can take advantage of an easy-to-remember syntax and quickly type them out. As you do that, Todoist will highlight the parts it understands in red, indicating that it knows how to parse them. I entered hundreds of tasks in Todoist using this system, and I think it's an aspect of task creation that every other task manager should implement as well. It makes perfect sense, and it saves a lot of time.

Aside from a half-baked attempt at supporting natural language entry in its date assignment UI, Things doesn't unfortunately offer a quick entry feature comparable to Todoist's. So, of course, I set out to make my own using the app's latest automation features.

Well, kind of. For starters, as much as I'd love to, automation doesn't mean I can make my own interfaces in Things, supplementing the app with my custom UI to more easily create tasks. Things' new URL scheme only lets us send data from other apps such as Workflow or Drafts. More importantly though, the workflow I'm sharing today isn't based on a complex natural language engine such as the one used by Todoist or, say, the Chrono JS parser; I'm just using some special characters sprinkled with some delicious regex to make sure Workflow knows what constitutes a task title, a project, or a due date. Thus the quoted "natural language" in the headline of this story: it's only natural as long as you don't forego the special syntax required to make the workflow run.

That said, I'm quite happy with how this workflow lets me add multiple tasks to Things at once. I've been finding it especially useful at the end of the work day or during my weekly review, when I make a list of all the things I'm supposed to do next and want an easy way to add them all to Things. For this reason, rather than restricting this workflow to Club MacStories members, I thought every MacStories reader could benefit from it and modify it to their needs.

If you're a Club member, you can still look forward to advanced Things workflows over the next few issues of MacStories Weekly; this one, however, has been too useful for me not to share with everyone.

Read more

Connected, Episode 182: Wireless Charging Denier

Federico and Myke slander Stephen's good name before talking about iPhone and headphone rumors and Amazon's acquisition of Ring.

Also on this week's episode of Connected: a discussion about the long-term impact of Apple's Beats acquisition and the company's approach to an increasingly growing ecosystem of smart devices. You can listen here.

Sponsored by:

  • Squarespace: Make your next move. Enter offer code WORLD at checkout to get 10% off your first purchase.
  • PDFpen, from Smile: Everything you need for more powerful PDF editing.
  • Pingdom: Start monitoring your websites and servers today. Use offer code CONNECTED to get 30% off.

WatchKit as a “Sweet Solution”

Marco Arment (who's been struggling with Watch app development for a while now) makes the case for WatchKit to be either discontinued or substantially expanded as, in its current form, it hinders the creation of more powerful apps.

Developing Apple Watch apps is extremely frustrating and limited for one big reason: unlike on iOS, Apple doesn’t give app developers access to the same watchOS frameworks that they use on Apple Watch.

Instead, we’re only allowed to use WatchKit, a baby UI framework that would’ve seemed rudimentary to developers even in the 1990s. But unlike the iPhone’s web apps, WatchKit doesn’t appear to be a stopgap — it seems to be Apple’s long-term solution to third-party app development on the Apple Watch.

When I first read his post, I thought that asking Apple to discontinue and replace WatchKit was perhaps too much. But after spending some time reorganizing my Watch favorites and complications last night and this morning, I agree with Marco. My favorite apps on the Watch are all made by Apple and are not based on WatchKit. The only exception is Workouts++ (which, as a workout app, has specific privileges). The only third-party Watch apps I regularly use besides Smith's app are Things and Shazam (which is somewhat ironic) and they're both accessed via complications; they're okay, but I don't love them because they're often slow to sync data with their iPhone counterparts or take too long to launch and be in a usable state. When I'm out and about, I still don't trust Watch apps to be as reliable as iPhone apps.

Despite three years of watchOS updates and more powerful hardware (I use a Series 3), the Apple Watch still doesn't feel like the rich, diverse, and vibrant app platform that the iPhone is. Some might say that's precisely the point – it doesn't have to be because the Watch works best through notifications and complications. However, I often ask myself if such argument is the wearable equivalent of Aesop's sour grapesreal Watch apps wouldn't make sense anyway. Like Marco, I wonder what would happen if only Apple exposed real watchOS development tools to app makers.


The Evolution of Alto’s Odyssey

iMore's Serenity Caldwell and Luke Filipowicz put together a great Q&A with Team Alto to discuss the making of Alto's Odyssey.

Here's my favorite bit, which only adds to my love for this game:

One of the big breaks in the new game's theming came from the lives of Team Alto's members themselves. "Things really clicked when we reflected as a group on how much our lives had changed since the release of Alto's Adventure," wrote Cymet. "The team had grown, some of us had moved away from the homes we knew to live in other places, and we had all experienced big personal upheaval in different ways.

"What we arrived at was a desire to capture the feeling of going outside your comfort zone, exploring the unfamiliar, and accepting that the concept of 'home' is related to the people close to you, not any one place. In many ways, this is what led us to the grandeur of Alto's Odyssey's setting. This idea of a fantastical place far from what you know as home, where you learn to see the beauty in embracing the unknown."


Connected, Episode 181: Headspaced Against My Will

Federico has a surprise for the group, then goes on to teach about Things 3 before Stephen complains about its repeating task support. In a shocking turn of events, Myke has the need for a Mac app.

I had a lot of fun on this week's episode of Connected. You don't want to miss the surprise I'd been keeping from the group. You can listen here.

Sponsored by:

  • Ting: A smarter way to do mobile. Save $25 on selected devices or keep it as Ting credit.
  • Pingdom: Start monitoring your websites and servers today. Use offer code CONNECTED to get 30% off.
  • Squarespace: Make your next move. Enter offer code WORLD at checkout to get 10% off your first purchase.

Smart Speakers and Speech Impairment

Steven Aquino covers an important accessibility angle of smart speakers that I've never truly considered:

Since the HomePod started shipping last week, I’ve taken to Twitter on multiple occasions to (rightfully) rant about the inability of Siri—and its competitors—to parse non-fluent speech. By “non-fluent speech,” I’m mostly referring to stutterers because I am one, but it equally applies to others, such as deaf speakers.

This is a topic I’ve covered before. There has been much talk about Apple’s prospects in the smart speaker market; the consensus seems to be the company lags behind Amazon and Google because Alexa and Google Home are smarter than Siri. What is missing from these discussions and from reviews of these products is the accessibility of a HomePod or Echo or Sonos.

As I see it, this lack of consideration, whether intentional or not, overlooks a crucial part of a speaker product’s story. Smart speakers are a unique product, accessibility-wise, insofar as the voice-first interaction model presents an interesting set of conditions. You can accommodate for blindness and low vision with adjustable font sizes and screen readers. You can accommodate physical motor delays with switches. You can accommodate deafness and hard-of-hearing with closed captioning and using the camera’s flash for alerts.

But how do you accommodate for a speech impairment?

A human assistant would know how to deal with stuttering, dialects, or even just the need to repeat a part of a sentence you got wrong. None of the modern digital assistants currently goes beyond being a slightly humanized command line activated by voice, and I wonder who will get there first.


Unread Gains Inoreader Integration and Automatic Safari Reader Option

As John and I recently discussed on AppStories, there's never been a better time to use RSS. There are several powerful services to choose from (we both like Inoreader), and the selection of modern RSS clients for iOS is also solid these days.

Unread, now developed by Golden Hill Software, is one of the more elegant options based on comfortable gestures and a focused reading experience. I linked to the app in November when it received support for the iPhone X and iPad multitasking; in the post, I noted that I still wanted to see Unread gain Inoreader integration and haptic feedback on the latest iPhones.

With version 1.9 released today, Unread now fully supports Inoreader and plays subtle taps for different kinds of swipe gestures. Syncing subscriptions with Inoreader supports the full range of options available on the service: in addition to unread and starred articles, you can view your active searches, browse websites by folder, or open articles for individual subscriptions. Along with the aforementioned Taptic Engine integration, I also want to point out that Unread 1.9 supports one of the lesser known Safari View Controller features on iOS: in the app's settings, you can now enable an option to load Safari View Controller in Reader mode by default when you tap any link in the app.

Unread isn't my default RSS client (I use Fiery Feeds 2 now), but I keep the app on my devices when I feel like I want to take a more relaxed approach to reading articles I've starred.

Unread 1.9 is available on the App Store.