Hi, I am Ross. I am an iOS and Mac developer/meteorologist from Norman, Oklahoma. I write about things like software development, Apple, apps, Jesus, music, & beer.More About Me
Around this time last year, I wrote about how at each new milestone, I could not imagine parenting getting any better than it was right then. And then it did.
As we came up on Ollie turning two years old, I started thinking about my favorite parenting milestones from the last year.
Some of my it does not get any better than this moments from the last year:
- Stopping whatever he is doing and pointing at the sky and yelling “plane!” every time he hears a noise from above.
- Waking me up in the morning and immediately asking either for a waffle or for an episode of Daniel Tiger on the iPad.
- Giving me a big hug around my neck and saying “I love you, Daddy” every morning when I drop him off at daycare.
- Pointing at the lawnmower in the garage and calling it “Daddy’s vacuum”.
- Running around the house and showing everyone who will listen the puppies on the front of his PJs.
Next year, we are going to get to add a new one to the list. Next year, it is going to be really hard to beat “Watching Oliver grow into being a big brother”.
Carissa and I are excited to announce that baby #2 will be joining the family in January.
My favorite parenting moment in the last few weeks has been asking Ollie if he wants a little brother or sister and listening to him reply sister every time.
Last night, Apple rejected a new app that I had submitted to the iMessage App Store. I am not writing this to complain about the rejection1, but to talk about how it could have been avoided.
The app was pretty simple; it let you use Apple’s emoji as stickers in iMessage. It did this by creating an image for each emoji at runtime by calling
draw(at: withAttributes) on an
NSString that contains the emoji. I then made that image available as a
Before I even started writing the app, I knew that there was a chance that I was going to get rejected for using Apple’s emoji (even if I was not actually including images of the emoji in the app binary).
Even though I knew I was working in a potentially gray area, I decided to go ahead and write the app. The risk was pretty low because I know I could get the app finished in just a few days. Plus, I just wanted the app to exist; I liked the idea of being able to use the entire emoji set as stickers.
So all things considered, the potential reward of having the app and maybe making a little bit of money2 was worth the risk of a couple of evenings worth of development.
The problem here is with apps that are larger scale. If I came up with a larger scale app idea that lives in the App Store approval gray area, I probably would just not write it.
I think that Apple needs to have some feedback mechanism in place where developers can ask questions and get clear answers about the legality of a particular app concept before they spend months building it.
This exchange would have saved me two weeks of work that could have been spent working on other app ideas:
“Can I build an app that lets me use Apple emoji as stickers in iMessage?”
There are plenty of more substantial examples that took more than two weeks of work:
- Can I build an app launcher in a Widget?
- Can I build a calculator into a Widget?
- Can I send files from my FTP server to iCloud?
A system like this would benefit both Apple and developers. Developers would be able to proceed at building an app with confidence or be able to spend their time on something that could get approved.
Apple would be able to see how developers wanted to use certain APIs months earlier. If they are asked something about a use case that they never considered, they can decide earlier whether or not that use case should be allow (and if appropriate, update the App Store guidelines accordingly). This would be especially useful during the summers when developers are building new apps and features using APIs that are still in beta.
To be clear, I am not proposing any type of pre-approval of apps – apps should still be thoroughly checked to see if they follow all of the rules. There just needs to be an official way to find out if something fits within those rules without having to build and entire app and submit it to the App Store3.
A couple of years ago, I would have said that a change like this would never happen. However, the App Store has seen significant improvements over the last year since Phil Schiller has taken over. Under his leadership, the App Store has seen big changes that benefit both developers and customers. After seeing all of the recent App Store changes, I would not be surprised to see a system like this implemented.
In the meantime, I am able to satisfy my goal of using Apple’s emoji in my iMessage conversations, even if my friends can not use them to respond back 🙃.
Update: Just to be completely clear, I am not complaining about my app getting rejected. I am 100% okay with that.
I am just using my rejection as an example for how the App Store approval process could be improved by adding more clarity and transparency for what is allowed and what is not.
And I do mean a little bit of money. This is the iMessage App Store we are talking about after all. ↩︎
Quick aside about TestFlight: I had four builds of my app submitted through TestFlight. I submitted the first one after about two days of development.
A human has to review the first TestFlight build, so this issue should have been caught then.
If an app is doing something that it would get rejected for when it is reviewed in TestFlight, they should let the developer know then. This is not a substitute for being able to simply ask questions, but it is better than nothing. ↩︎
tl;dr — it is the best Mac I have ever owned.
I have a couple of iOS 11 app ideas that I want to work on over the summer and the idea of developing them on my 2011 MacBook Air was not appealing. Luckily, Apple had just refreshed their Mac lineup; so it was a great time to buy.
I do about 95% of my work at home from a desk, so the iMac would make a lot of sense for me. My ideal setup would be an iMac1 on my desk and a small laptop for those times when I need to work outside of my office.
After thinking about it some, I decided that (assuming I could only get one of them) the laptop makes the most sense for the flexibility2.
So I bought a 13” MacBook Pro with Touch Bar3. It would be a perfect secondary computer, but is modern and powerful enough that it could be my primary Mac for the next couple of years if my new app ideas don’t make any money.
So after using it for a couple of days, here are my first impressions. This is my first new Mac to use since 2012, so some of these things have been around for awhile; but they are new to me.
This is easily the best looking Mac I have ever seen. It immediately made my 2012 MacBook Pro that I use at work seem ancient.
I has the same footprint as the 11” MacBook Air. Price aside, this is the Retina MacBook Air that everyone wants.
I love the larger trackpad. The fake click using haptics completely fools me. Using Force Touch to look up words and to preview links seems more useful than 3D Touch on the iPhone4. My only wish here is that it supported the Apple Pencil.
I may be alone in this one, but I like the keyboard. The less key travel, the better. I would not be upset if the next Magic Keyboard uses this keyboard5. The only downside here is that the keyboard is definitely louder than before. This may get better as I learn to not hit them as hard.
The Touch Bar is a net positive, but it is not perfect. The first thing I noticed is that the resolution is pretty low. Everything looks a little fuzzy.
Sliding for volume adjustment is nice.
I don’t mind the
esckey being digital, but I wish they extended the left side of the Touch Bar to be flush with the keyboard. It is inset just enough that I miss it about half the time. I keep missing the key and getting stuck in
The app-specific area so far seems like it is mainly used for keyboard shortcuts. This is useful for apps that I am less familiar with.
The Touch Bar is visually subdued enough that I do not really notice the constant context-changing on my keyboard as I move around the system.
Having TouchID on here is great. Now I just have to make sure I don’t forget my 1Password password6.
Related, being able to use my Apple Watch to sign in is cool; but TouchID is way faster so I just use that. Hopefully the Apple Watch login gets faster in the future. Ideally I would be signed in and on the desktop by the time my screen turns on when I open the lid.
All of the new features above are fun, but the reason I bought it was to help me do app development faster. When using my MacBook Air, I was spending about half of my time waiting on the computer. When you only get an hour or two a day to work on a side project, your time is valuable.
I have had two nights of using this MacBook Pro for development and I have not had to wait on it yet. So for that alone, this Mac is a win in my book.
Or iMac Pro. ↩︎
Also, getting a MacBook Pro leaves the door open (like, barely open) to getting the iMac Pro at some point. Getting an iMac would have closed that door.
Here’s to hoping. ↩︎
Space Gray, 3.1 Ghz i5, 16 GB RAM, 512 GB SSD ↩︎
I don’t understand why Force Touch and 3D Touch have different marketing names. ↩︎
From what I gather, a bunch of other people would be upset. ↩︎
‘1Password password’ felt funny to type. ↩︎
My first post on this site was was an article looking forward to WWDC 2016, so I could not let WWDC happen this year without me giving my thoughts on it again.
Xcode 9 and Swift 4
Most of these are a carryover from last year.
- Swift Package Manager in Xcode: This one seems seems pretty likely this year. I am not going to miss using Carthage and CocoaPods.
- Better Swift support in CoreData: The
CoreDataAPI was written to be used from Objective-C. It would be nice to have a wrapper that was more was type-safe and less stringly typed. Bonus points if we can natively use Swift
- Run Server Side Swift Code on iCloud: Apple has made some big jumps in the last few years with CloudKit, but they will not catch up to the utility of AWS or Azure until we can run our own code on their servers. The Swift Server API Workgroup makes me think that this is possible this year.
- Xcode for iOS: I am going to buy my next portable development computer soon. I would much rather that computer be an iPad than a MacBook Pro. Make it happen Apple.
- Swift refactoring: Please.
iOS is the Apple platform that I interact the most with and care about the most. It is also the area that I feel does not need as many big changes.
- Better Sticker UI in Messages: I use a lot of Sticker apps, but they are a hassle to manage. It takes way too many taps to get from the main messaging UI to any particular Sticker pack. Discoverability is particularly bad. As someone with a monetary interest in this space, I hope that it gets better.
- Revamped multitasking on iPad: Frederico Viticci of MacStories had a great video showing what this could look like.
- Finder: I was never the type to want this before, but as I try to use my iPad to do more, I find myself wanting a better system for file management. Frederico covered this one in his iOS 11 video linked above.
- iCloud-powered reminders app: This is a carry-over from last year. The recent release of Things 3 (iPhone/Apple Watch | iPad | Mac) made this a lower priority for me.
- Cross platform App Store: I should be able to see and buy Mac and iPad-only apps from the App Store on my iPhone.
- UI Refresh: I would want something that builds on the visual design language of system apps like Music, TV, News, and Home.
- Shared iCloud Photo Libraries: Since having our son, not having a shared photo library has become a bigger and bigger pain point.
- More SiriKit domains: I mainly want to see support for task management apps and media (podcast) apps.
- Global Audio Up Next Queue: This one is a bit out of left field, but it would be cool to add audio from different sources to my Up Next queue. The use case would be starting an Overcast podcast when an Apple Music album ends.
The Mac is awesome, so this list is short.
- UIKit: Make it easier to write cross-platform apps.
- iMessage App Store: I do most of my texting from my Mac and I really miss having access to my Stickers.
Most of the changes that I want to see on the Apple Watch will most likely require new hardware, so this list will be short.
- Kill the honeycomb app picker: This has always been the worst part of the watch. watchOS 3’s dock made it so I did not have to use this screen much, but I would still like for it to be replaced by something simpler.
- Move Now Playing from the Dock to Control Center: The Now Playing card that is in the Dock really does not fit there. It is the only item in the Dock that is not an app. iOS already has a model for this: Swipe on Control Center to access Now Playing.
- Volume Control with Digital Crown: Since Time Travel is defaulted to off, the Digital Crown does not do anything for most watch faces. I want an option to have the Digital Crown control the volume when you are on the watch face. This would make using AirPods much nicer.
- More API Focus on doing things without the phone present: This hard been a trend with every new version of watchOS so far:
- watchOS 2 moved the watch extensions from running on the phone to running on the watch.
- watchOS 3 moved networking directly to the watch.
I expect watchOS to continue moving in this direction so that apps on the watch will immediately be useful when Apple eventually launches an Apple Watch with cellular networking1.
- User Profiles: More so than almost any other electronics device, a TV is meant to be shared by multiple people. The AppleTV needs to break out of its single user silo. Each person in the house should have their own Up Next queue in the (horribly-named) TV app.
- Live Video tab in TV app: I want a list of all the live video available to me across the AppleTV. They could open into their respective apps the same way the On Demand does now.
- YouTube in the TV App: File this under Not Going to Happen, but having channels that I am subscribed to in YouTube show up in Up Next would be awesome.
- Picture in Picture: Seems obvious (then again, it seemed obvious last year too).
- Push Notifications: Weather alerts, live shows starting, sports, and breaking news seem perfect for the TV.
- Amazon Prime: This one looks like a sure thing. However, it will be pretty disappointing if they do not support the Up Next queue in the TV app.
- Netflix in Up Next: I doubt this is going to happen, but this is a Wish List.
The AirPods are the best 1.0 product that Apple has shipped in years2, but there are a couple of small software changes I want.
- More Gestures: I want play/pause to be a single-tap so I can keep Siri as a double-tap.
- Support auto-resume when listening with one ear: If I am only listing to one AirPod (something I do often at work), taking it out currently pauses the audio. However, the auto-resume only works when listening to both AirPods. I want it to work if you are only listening to one AirPod.
This one is looking more and more likely. I am pretty excited about this product space, but I hope that Apple makes some improvements to what to what Amazon and Google are offering:
- Battery: I hope that the Siri Speaker is able to be used when not connected directly to power. I want to be able to take it outside when I’m grilling or when I’m playing with my kid and dogs in the front yard.
- W1 Chip: In addition to using it for Siri, I want to use it as a Bluetooth speaker. My AirPods have completely ruined every other Bluetooth audio device, so I hope the Siri speaker follows suit and has the W1 chip.
- Horizonal or Vertical: It would be nice if they designed so that I could stand it up (like the Amazon Echo) or lay it flat (like the Beats Pill).
There is a lot they could do here, but I have one specific prediction.
At CES 2017, Withings announced a HomeKit version of their Home video camera3. In April, they cancelled that camera due to a patient dispute between their parent company Nokia and Apple. Since then, Apple and Nokia have settled their dispute, but Withings is still refusing to discuss the state of their HomeKit camera. My guess (and hope) is that we hear about this on stage during the keynote.
One More Thing
I’m going to end with a vague hope that would cover most of Apple’s product lines.
I want Apple to improve the way all of their products communicate with and interact with each other.
Some examples of ways this could be realized:
- I should be able to control the media playback of any device from my Apple Watch, not just my phone. Similarly, I should be able to control the media playback of my iPad from my phone4.
- When I send videos to my Apple TV from my phone, it should work more like Handoff than AirPlay. Once I send the video, my phone should no longer be needed for playback.
- If my Apple Watch is unlocked and my phone is close, then it should be unlocked too (similar to the Mac).
This is not even close to an exhaustive list. I basically want my devices to be more aware of each other and more aware of the fact that I use them together5.
When I didn’t get my WWDC ticket earlier this year, I felt pretty okay about it. Now that the conference is almost here, I (unsurprisingly) really wish I was going.
Even just watching it here from Oklahoma, it should be a good time.
Hopefully this fall. ↩︎
Probably since the iPad. ↩︎
We use one of these as a baby monitor and love it. We would love a HomeKit version even more. ↩︎
A Siri speaker may make this less of a big deal for me though. ↩︎
The first major update to StickerBook, version 1.1, is out today. The headline feature is being able to use your Stickers outside of iMessage.
- Tapping on a Sticker in the main iOS app now opens the standard iOS share sheet so you can import that sticker in another app or copy it to your clipboard.
- Added two Today Widgets – one for copying your top Stickers to your clipboard and one for quickly creating new Stickers.
- Added 3D Touch quick actions for quickly creating new Stickers.
- Added URL scheme for adding stickers. To add stickers, simply use
- Added keyboard shortcuts for for adding Stickers in the main iOS app.
- Renamed the Document Provider source to iCloud Drive. It still behaves the same.
- Fixed crash when trying to add a new Sticker from your camera when the camera was unavailable.
You can pick it up on the App Store.
Most events in life feel ephemeral, the ever-ticking hands of time speeding them through your brain until they become distant memories. Burger Quest was not that. No matter how topically fun it seems, going to 30 cities and eating 330 burgers over the course of one year is a task, one that ropes in many of America’s greatest failings, like air and road travel, and overusing the word “logistics.” There were rental cars, and hotel rooms, and one Airbnb that looked like a mausoleum for an above-average Americana collector. And yet, this was also the greatest trip of my entire life.
Burgers are the most democratic of foods. The best burger in any one city might be in the dankest of dive bars, or in the fanciest of restaurants. Finding the ones that matter takes you all through a city (and outside it) and helps you understand a city’s geography, its class structure, its views on race. I drank warm rum out of plastic cups in a carpeted bar in Cleveland during their first championship parade in 52 years. I sat in a diner on a violently windy day in El Reno, Oklahoma, and watched a 9-year-old shovel ice into my root beer while his dad kept one eye on my burger and the other on a particularly competitive Family Feud. I ate burgers with liquored-up chefs, sober food writers, and moderately buzzed photographers. I ate burgers with some of my best friends in the world. I ate burgers with my mom.
This started as a fairly straightforward mission. I was sick of having to rely on other people’s opinions as to the greatest burger in America and I wanted to figure it out myself. And so I pitched an idea I never thought my editor (or his bosses) would approve – but when they did, and I set off, this somewhat simple exploration of our nation’s best burgers morphed into something much more complex. It became partly about that, but it also became a celebration and documentation of the culinary glory that abounds in America. It turned into stories of people and places as much as food. The quest became a living journal of the way we live, think, and eat now. But, yeah: I also ate a lot of f*cking burgers.
I am generally not interested in Top 10 or Top 100 lists, but for some reason, I make an exception for burgers.
I love that Kevin singled out the Oklahoma-style onion burger in his list (and I can confirm than no one does these better than Tucker’s).
I made sure to write down some of the best burgers from places around the US that I frequent1.
Also, I just now need an excuse to go visit Portland to get the best burger in America.
Dallas made the list an impressive number of times. ↩︎
This phrase get overused a lot, but I really can’t believe that it has been five years already. I guess that means we are having fun.
In the last five years you went from being a college student to being the best mom and wife I know. I can’t wait to see what the next five years brings.
Happy anniversary babe. I love you! 😍
Last week I escaped in the middle of the night from Indonesia. Then I got detained in an airport in Romania because the Turkish government canceled my passport. All on the same weekend. Maybe you saw the videos I posted.
It was my birthday on Saturday, too. I turned 25.
In one second, I was countryless. Just like that.
It was a very weird birthday.
It takes a special type of person to publicly stand up and risk everything to fight against injustice. As an NBA star, it would be easy (and tempting, I’m sure) to see all that you have to lose and just sit back and be quiet.
I have a tremendous amount of respect for Enes Kanter for not taking that easy road.
Ben Brooks on how Amazon and Microsoft are pushing products that bring back the old paradigm of computing devices that are meant to be shared by multiple people (instead of personal devices like phones that only one person primarily uses)1:
The current state of computing seemingly runs counter to the notion of shared computing. Our devices, at current, are highly personal devices and often shared only as a last resort. I think a good case could be made that even in a life and death situation a not insignificant amount of people would not share their phone passcode.
And now Amazon and Microsoft want us to loop back to a shared device? That seems unlikely. Would you rather share your iMac, or your iOS device, even if the iOS device had multi-user support, you’d likely share your iMac first. The reason for this is because the iMac feels like a less personal device and devices in general have become highly personal the more you diverge from a traditional desktop.
In fact, I have a quick test to determine if a device is meant to be highly personal or not: If the device comes in colors, it’s meant to be personal. iPhones, iPads, MacBooks — all things you would be reluctant to hand over to a stranger to use for even a moment — even reluctant to let a good friend or family member use. But a home phone? An desktop computer? Yeah sure, why the fuck not. Whatever.
And I don’t see that trend reversing either.
I think that his color test is a little off. I would propose that a more correct test would be: if I device is portable, it is meant to be shared. Currently, at least for Apple products, those two lists are pretty much the same.
- Personal: iPhone, Apple Watch, iPad, MacBook
- Shared: Apple TV, iMac, Apple Home (a.k.a. Siri Speaker)
He then goes on to talk about how the idea of sharing products does not really fit into Apple’s business model.
For Apple’s part, they want to sell you stuff. As much stuff as possible, so shared anything is bad for Apple. Buy more stuff, not fewer things. So colors are not only a way of getting people to buy more things, but making the devices feel like they cannot be shared.
For devices meant to be used around the house, being able to effectively share them across the house will not limit sales (the exception being desktop Macs). For devices like the hypothetical Apple Home and the Apple TV, being able to share them will lead to more sales.
I would put an Apple TV on every TV in the house if I knew that everyone in the family could access their content on any of them2.
I would put Apple Homes all over the house if everyone in the house could use them with their content.
I am not arguing that every device needs to have multiple user support3, but any device that is primarily meant to be used around the house needs to have it to be competitive. I am tired of seeing Sesame Street and Daniel Tiger on my Apple TV’s Up Next queue next to Better Call Saul and Westworld.
I would add Google to this list. The day before he wrote his piece, Google announced that their Google Home smart speaker is gaining the ability to tell who is speaking to it and do different things based on that information. ↩︎
This is a bad example for me because we only have one TV in the house, but you get the idea. ↩︎
There is a good case to make that the iPad should get it simply to be more compatible in schools. ↩︎
Ole Begemann made a Swift Playground that shows off some of the new features coming in Swift 4. Once you download the latest snapshot of Swift, you can run the playground in Xcode 8.3.
I have been following what has been accepted in Swift Evolution for Swift 4, but seeing it and being able to interact with it gives you a much better understanding of what it will be like to work with.
You can download the Playground on GitHub.