Escort Missions Logo

Escort Missions

You ever get the feeling that life is just one long series of Escort Missions?

WatchKit Resources—Week 1

It’s now been a week since Apple’s WatchKit was announced, and I’ve been collecting resources. I figured this would be just as good a place to put them as any.

If you run across more resources, feel free to let me know on twitter. Enjoy.

Official Apple Resources:

First Impression Posts

Mutual Mobile (Here in Austin)

_DavidSmith

Hacking

Apple’s DevForums (Login Required)

Tech Sites

Tutorials

Ray Wenderlich

Natasha The Robot

David McGraw

GitHub Sample Projects

HULK BASH! - the Internet Is Broken, but My Part Is Fine

Well, the Internet is broken again. It sucks to be us (and by “us” I mean “people whose income depends on a working Internet”).

I Am Chroot But as for my piece of the Internet, I’m not too worried. I’m paranoid, but not worried.

I’ve been hacked a lot over the years. The first Unix machine I ever had root on was hacked within a week of me becoming responsible for it — because it was one of the few unmetered machines at the university where I was working my way through school.

And that made me paranoid, and paranoia made me take precautions.

The host to which I am posting this runs OpenBSD. And that means its webserver runs chroot by default. That means that, even if the webserver was vulnerable (and its not), the amount of damage that an attacker could do would be severely limited. I had to look pretty hard to find a hosting company that allowed OpenBSD, but it was worth it.

I also am using a statically generated blog, currently using OctoPress. No database, no PHP, no executed code. It’s much safer.

I missed the ability to post dynamically, so I wrote OctoPSI which I am using to edit this. I connect to it over localhost on my Mac, so it’s far more secure than the vast majority of blogs.

I understand that there are real applications that need to run real code on the Internet, and they are (hopefully) actively maintained, but for things like my blog, which I don’t have time to treat like a shipping product, some amount of security paranoia is important.

What I AM worried about—the BIG problem we’re going to have, is the number of Internet of Things devices that exhibit this bug. These devices aren’t actively maintained. Many of them CAN’T be actively maintained. There’s no excuse for them to be less securely designed than my blog.

We as consumers, and we as Internet-dependent professionals deserve more. And we should demand more. Otherwise Infosec Taylor Swift will be right.

Fragmented Capital - It Just Got Harder to Be an iOS Indie Developer

With Apple’s announcements yesterday, it just got a lot more expensive to develop for Apple’s ecosystem.

I’ve written before about why it’s important to test your code on as many different devices as you can before you ship. That’s been getting harder and harder over time, but it just got a whole lot worse. Up until now, Apple pretty much only released one new iPhone a year. Yes, they released two last year, but the 5C wasn’t all that different from the 5 for programming purposes, so many of the devs I know skipped it. We couldn’t safely skip the 5S (at least in my opinion), since the processor changed from 32bit->64 bit. That meant that the code that ran on the 5S behaved differently than the ones on the 5/5C, and so (again, in my opinion), we really needed to test both.

The year before that, we really needed to buy an iPhone 5 (or the corresponding iPod Touch) since the screen size changed, and that affected how apps behaved enormously. Prior to that, I got away with getting a new iPhone only every other year.

This year, though, there are two new iPhones, both with completely new screen sizes (and one with a completely different keyboard). We need to test on both of those.

Generally, any given person only has one phone under contract, so one of those, we’ll have to pay full price for (and if we bought a 5S last year on contract, you’d have to pay full price for both).

Early on, Apple used to release new iPod touches that were cheaper versions of the iPhones, and we could use them for development, but they haven’t done that in quite a while.

So the price of keeping up with the Apple ecosystem has just gone up, and that doesn’t even consider the WATCH or any new iPads that get released later this year. That’s not a big problem for large corporations, but it’s real money for the little guys.

I don’t blame Apple for this — they’re just going where the market is leading them. But it’s getting harder to be an indie all the time.

Making the Most of Your (iOS) Dev Conference Experience

Next weekend 360iDev starts, and last weekend was the first CocoaConf of the fall 2014 season. I’ve seen on twitter at least one request for advice from a first-time attendee. I had more to say than I could fit into a tweet, so I thought I’d respond here.

Core Theme: It’s All About the People

There’s a lot going on at conferences, but the most important thing to remember is that you have access to people at conferences that exists no other place. Making the most of your experience (and time and money) is all about making the most of your contact with the people around you.

Just Because There Was a Bubble Doesn’t Mean App Store Developers Are Doomed

Let’s just call it what it was, shall we? We had an App Store Bubble.

It’s deflating now, although (at least with games) there are still remnants.

Take a deep breath. It’s all going to be okay.

When I started working on mobile apps back in 2005 on Palm devices, we had horrible distribution by today’s standards. There were no integrated payments, no integrated stores. People had to buy your app, download it to their PC, and then copy it to their PDA via a serial cable. And yet, even back then, people made a living at it (although, I never managed to do so).

I don’t make my living from my own apps now, either. I’m not an iOS indie, I’m a consultant/freelancer. I’ve tried being an indie, and I’m not good at it (and I’m one of those weird people that actually likes consulting). But it is possible to make a living from iOS app revenue, because many people I know from my consulting practice have and do.

But let’s think for a minute about where we are before we call the App Store a disaster.

“App Accomplished” Nearing Accomplishment

It’s been a long time since I’ve done much (really any) blogging, but hopefully that drought will be coming to an end soon. I’ve just turned in my 13th (of 14) chapters of my upcoming book, App Accomplished.

It’s been a lot of work. I knew it was going to be a huge time commitment, and I wasn’t wrong. There were many times I wondered if I would ever be done, but now that I can see the light at the end of the tunnel, it feels really good.

I’ve learned a lot in the process. Much of which I’ll be writing about here, since a) I’ve gotten used to doing a lot of writing, b) I won’t be spending all my writing time on the book, and c) blogging about the book will hopefully help people find out about the book.

So now it’s time to finish the final chapter (which, if you’re curious, is about submitting your app and planning the next version), and start the editing (and marketing) process.

It should be fun.

I Am Now Officially Writing a Book

I’ve been working on writing a book for some time now. It’s been through many stages, conversations, outlines, contracts, etc., etc. But for some reason, it never felt real, until now.

Oddly enough, the thing that made it feel real was that I found out the book has been issued an ISBN number. I’m not exactly sure why that made such a difference – maybe it’s all the years I’ve spent writing applications for which the unique ID in the database was the de-facto proof of existence. But in any case, it feels real now. I’m no longer worried that it’s going to fall through or that by announcing it I might be setting myself up for failure.

So there it is, I’m writing a book for Addison-Wesley Professional called App Accomplished: Strategies for App Development Success. The book has its own companion blog as well.

Although I’m a developer by trade and have spent my last few years as an iOS developer for hire, it’s not a programming book. It’s a book for a group I call App Creators: people that have an idea for an app that they want to have built, and are willing to take responsibility for making sure it ends up in the app store. Sure, some of them are coders, but many, if not most, are entrepreneurs or managers that don’t program. This book is for them.

I’m writing it because I’ve seen too many projects that failed because of a lack of knowledge or understanding. I’ve seen too many apps that could have been so much better if only requirements had been clearer, or features communicated better or decisions had been made earlier in the process.

I hope that, through it, I can keep some projects from failing that otherwise would have, and I can contribute to making some apps better that otherwise would have been worse.

There’s a lot of work between where I am (having just turned in my second of fourteen chapters) and the book being completed and published. But I’m very excited to go through that process, and I’m grateful to the folks at Addison-Wesley Professional for giving me the chance and helping me make the book a better one that what I could have written by myself.

Migrated From SquareSpace to Octopress

I’ve moved my blog from Squarespace to OctoPress.

I’ve gotten more and more frustrated with SquareSpace over the last couple of years. They moved to their new version 6 product, but it has no API access. This is a real annoyance for me, but SquareSpace doesn’t seem to care.

So my only options for adding content there are their buggy web interface, their even buggier iPad app, or stay on their old version 5, which is very buggy, and not getting any development resources.

So, I went in search of another blogging platform, and I decided on OctoPress. I tried a couple of others first, notably WordPress (via WPEngine), but trying to import my old blog content and have it show up at the correct old URLs was just too much work.

So I wrote this ruby script to convert my old content from SquareSpace to Octopress. There might be some glitches (like, I haven’t gotten comments set up), but I think I like it so far.

Finding Relevant WWDC Videos

As I’ve said before, I find the WWDC videos to be invaluable and I try watch all of them eventually. But there are a lot of them, and it can be hard to find what’s relevant. And a lot of them I go back and watch again when I start working with a different part of a project.

So I’ve developed a trick, and I thought I’d share it with you all.

I go to the site where the videos are hosted and click on the “view all in iTunes button”. From iTunes, I download all the slides (Click a track like “Essentials”, then click “Slides” just above the list, and then click the “Get Tracks” button in the header).

I keep all the slides for WWDC 2010, 2011 and 2012 in subdirectories of a folder named “WWDC slides” in my Documents directory. It’s indexed by Spotlight on my Mac.

From then on, when I’m working on a project, and I’m having trouble with something, or trying to remember something I might have seen, I open up that folder in Finder, and type the Class or Method names of the Classes I’m working with, and Spotlight will tell me the session names of the videos I might want to watch.

So, for example, if I type ‘NSFetchRequest’, the first result is “Session 214 – Core Data Best Practices” from WWDC2012. I type ‘registerNib:’, and I get “Session 125 – UITableView Changes, Tips, Tricks” from WWDC2011 (among others).

Then I just go to iTunes or the website, and I know which video to go watch.

It’s a handy trick (and I use it to search through all my eBooks on programming, as well), and when I’ve recommended specific videos to people, I’ve had several of them ask me how I keep the videos straight.

So hopefully it’s useful to some of you.

New Work in Progress - Million Words: Multiplayer Crossword Game for Parents and Kids That Grades on a Curve

Although I do iOS Contracting to pay my bills (at least to date), I hope one day to earn a living from my own apps, and, although it’s not ready for release, the time has come to unveil my new project.

GamePlay ExampleMillion Words is a turn-based crossword game where you’re scored not by what letters you managed to get into your word, but by the grade level of your word, relative to your age. This way my six-year-old daughter could play “HELLO” and I could play “HELICOPTER” and we would get the same number of points (more or less).