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:
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?
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.
Need to download your Trace Snow recordings? I did and this is how I did it so I could import the recordings into Slopes.
I recently came across this question about searching using the Parse SDK for iOS. Simon asks:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Brent Simmons talks about for-in loops in a recent post. In it he says:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.