ios


Advice for new iOS freelancers

A friend of mine told me this morning she quit her job and is now freelancing as an iOS developer. She asked if I had any advice to share. The first thoughts to pop into my mind were:

Continue reading →


How I post to my Jekyll site using my iPhone

My blog site, thecave.com, is a static HTML site generated by Jekyll and hosted on Github Pages. I love that the site is static HTML as it means I can host the site virtually anywhere. But, unlike dynamic blog sites, like those powered by WordPress, I haven’t been able to publish new posts from my iPhone. And with the upcoming release of micro.blog, creating new micro-posts for thecave.com from my iPhone is something I want to do, but how? How can I update my Jekyll site, with its source code hosted on Github and custom plug-ins that can’t run on Github Pages, using my iPhone?

Continue reading →


The Experienced Programmer's Guide to Getting Started with Swift

A couple Vermont-based software developers recently asked me how to get started with Swift and writing apps for iOS. I emailed them individually, but when I was asked again today, I thought, time to write a blog post.

Continue reading →


From Trace To Slopes

Need to download your Trace Snow recordings? I did and this is how I did it so I could import the recordings into Slopes.

Continue reading →


How To Do A Case Insensitive Search Using Parse SDK

I recently came across this question about searching using the Parse SDK for iOS. Simon asks:

Continue reading →


How To Present An Alert View Using UIAlertController When You Don't Have A View Controller

Over the summer I updated a number of apps to iOS 9. A common tasks for me was replacing the deprecated UIAlertView with new UIAlertController class. Generally this is easy to do, but there is one scenario that UIAlertView handles well that UIAlertController doesn’t support at all: displaying an alert view from parts of your code without a reference to the current view controller, for instance, displaying an alert view from the app delegate.

Continue reading →


My Upcoming Share Extension Talk At 360idev-Min

I’m excited to be one of the speakers at the upcoming 360idev-min conference in Greenville, SC. In my talk I’ll share the things you need to know about when writing a share extension for your iOS app.

Continue reading →


Wish I Could Help But It's Not My App

A well known global company is using some open source code I wrote in one of their apps (yay!). Like a good company, they included my name and licensing information in app’s about screen. Now I’m getting emails from one of the app’s users seeking help with the app. The person thinks I wrote the app because my name appears in the licensing section.

Continue reading →


Maintain Your iOS App With Peak App Care

Last month I briefly mentioned my plan to productize some of the services I offer through White Peak Software. The main idea is to take a consulting service that I already offer to my clients and turn it into a product that my clients and others will hopefully subscribe to thus creating a monthly recurring revenue stream for my company. My goal was to spend no more than 40 hours over the span of a few weeks setting up this new product. And now, after spending 38.75 hours over the last few weeks, I’m ready to share more details.

Continue reading →


Boston Area Mac And iOS Dev Community Is Awesome

This past Wednesday I had a chance to attend NSHappyHour. It’s was my first time attending since moving to Vermont two years ago. I had a great time catching up with everyone, and I was reminded just how awesome the Mac and iOS developer community is in the Boston area.

Continue reading →


Building An App From Start To Finish

Amy Hoy wrote the first version of her book Just Fucking Ship in 24 hours, which is awesome. Along those same lines, David Smith built an app from start to finish in about 6 hours - also awesome, and he posted this video that shows the entire process.

Continue reading →


Views Created In Code

Last year I posted an article that talks about why I stopped using Interface Builder in favor of writing code to create views. There are some who disagree with me, and to them I say, “To each his own.” And there are some who agree with me, but choose not to publicize it. No matter. Every programmer has tricks that make them more productive, and creating views in code just happens to be one trick that works well for me.

Continue reading →


No WWDC Or SF Trip

Apple announced the dates for this year’s WWDC, and once again a lottery is being used to decide who gets to buy a ticket. I have no interesting is attending WWDC other than to attend the labs since I do have questions I would love to ask an Apple engineer. But it’s not worth spending $1599 on a ticket just for that.

Continue reading →


Apple Watch Will Make iPhone 6 Plus Size Less Annoying

One of the things that annoys me most about the size of my iPhone 6 Plus is pulling it out of my pocket while at a bar or restaurant just to see why my phone buzzed. The majority of the time my phone buzzes because of an incoming text message. I have notifications turned off for almost all other apps, and I rarely. if ever, get phone calls these days, which is why I know the buzz is most likely a text message. And if I’m at the bar without my wife, then the person trying to reach me is most likely my wife.

Continue reading →


Après Code: A New Developer Meetup In Stowe Vt

I started organizing developer related meetups in 2001 starting with a weekly happy hour for dev friends and co-workers. Over the years I ended up organizing different types of events, from monthly meetings that included speakers to parties and happy hours to annual snowboarding trips. I even started NSHappyHour for Mac and iOS developers, which is still going on each month in Salem, MA.

Continue reading →


For-In Loop vs Using Block

Brent Simmons talks about for-in loops in a recent post. In it he says:

Continue reading →


Eliminating Distractions

Dan Counsell wrote an excellent post about removing distractions. In the post he talks about how he removed distractions by removing social media apps such as Twitter and Facebook from his iPhone. He’s done other things too such as reading a book instead of checking Twitter, and he started a “No Technology Day” on Saturdays, which is something I think I might start doing as well.

Continue reading →


No Plans For A Third Edition

A number of people have recently asked if there will be a third edition of Learning iPad Programming. The short answer is no, there are no plans. There are many reasons why I decided to not update the book, but a few key reasons stand out more than others.

Continue reading →


iPhone 6 Plus Is Too Big For Me, But I Bought It Anyways

A few weeks back I said I would be buying the iPhone 6, not the 6 Plus. The 6 Plus is simply too large for me. But I have since changed my mind.

Continue reading →


Microblogging, the Open Web, and Cross Post

Recently Manton Reece has been talking a lot about microblogging in an open web world using RSS. He has touched on points that are important to me, specifically content ownership. Like many people I post regularly to App.net, Facebook, Twitter, and other social networks, but I’ve always had one big problem with these networks. My micro-posts do not appear on my web site, and if these networks were to disappear in the future, then my content disappears too.

Continue reading →


Using xcodebuild To Export a .ipa From an Archive

Xcode 6 changes how you export a .ipa from an archive for adhoc distribution. It used to be that you could export the archive to a .ipa as long as you had the right provisioning profile and distribution certificate on your machine. Starting with Xcode 6 you need to be a team member of the particular Developer Program account and you need to have the rights to make a distribution build. This means you need to be a team agent. However, I work with a number of clients who don’t have the clue what Xcode is much less are willing to make distribution builds, so I need to way to make distribution builds within this new limitation from Xcode 6.

Continue reading →


Reporting Errors in Cross Post Part 2

Yesterday I talked about options for reporting errors (and statuses) from the server back to the Cross Post app. Later I came up with a third option, which I like the best…hosting the error reports on Cloud Files.

Continue reading →


Reporting Errors in Cross Post

A friend sent me suggestions on handling error reporting for Cross Post. I decided write up my current thinking here to see if my approach makes sense. Besides, trying to explain it in a set of 140 character tweets is less than ideal.

Continue reading →


Cross Posting to App.net, Facebook, and Twitter

Last year my wife told me more family and friends would “like” my photos on Facebook if I posted the them directly to Facebook. At the time I was using ifttt to selectively cross post to App.net and Facebook. This meant my photos on Facebook were actually links to the App.net, which is where the photos were being stored, and this required my Facebook followers to tap the link to see the photos. Not the best experience for my followers.

Continue reading →


iPhone 6 and 6 Plus Pocket Test

I printed out this iPhone 6 and 6 Plus paper template. I cut out each template and taped cardboard to the back. Then I did a pocket test with each one. I tested each template with different pants and shorts that I wear often. I found that both the iPhone 6 and iPhone 6 Plus fit in all my pockets, but a corner of the iPhone 6 Plus cutout does stick out of the pocket on my gym shorts. I also found that while the iPhone 6 Plus does fit in the pockets of my Levis 501, my jeans of choice, the cutout was annoyingly noticeable when I sat down.

Continue reading →


I Am Not The Android Expert You Seek

I do not own an Android device. I have spent less than 2 hours in my entire life playing with an Android device. I have never written an app for Android. Heck, I have never even written a single line of Java code in a shipping app. So, for the love of god, please stop asking me if I can look into problems related to Android and Android apps. I am the last person in the world you want to ask to help you with Android related problems.

Continue reading →


Wait, Justin and I Agree?

My friend Justin wrote a post explaining why he thinks you should use Interface Builder with Auto Layout. It was in response to my post about why I don’t use Interface Builder these days thanks to Auto Layout. Justin’s post is good with plenty of valid points. Justin and I also agree iOS and Mac developers should be using Auto Layout. But he said something that got me wondering…does Justin agree with me more than he realizes. Regarding writing layout constraints in code, Justin says:

Continue reading →


I Stopped Using NIBs Thanks to Auto Layout

The subject to this post might suggest I don’t like Auto Layout, but on the contrary I really like Auto Layout. I didn’t always like Auto Layout. For the longest time Auto Layout was a major pain in my ass, but it turns out it was Interface Builder that was causing me the majority of headaches when I used Auto Layout. So I stopped using Auto Layout in IB and I started using it in code only.

Continue reading →


WTF Ruby Gems

I’m working with a client to update one of their iOS apps. The Xcode project uses CocoaPods for dependency management. I’m not a fan of CocoaPods, but I grin and bear it when working with existing client projects.

Continue reading →


Send Camera Video to Your TV

Believe it or not, I finally released a new app for iOS. It’s my first new app for White Peak Software in more than 2 years. Somewhere along the way over the last two years I lost my way, but I’m back.

Continue reading →