Swift, you’ve changed so much

During the crazy week of WWDC 2014—right after the announcement of Swift—I decided to spend a little time trying to implement a quick weather app using the new language. I managed to wrap it up in a few hours (and spent way too much time trying to figure out how to parse JSON with a generically-typed dictionary) and open sourced it. There it sat for all these months while several versions of Swift were released.

Continue Reading »

Where I change my mind about CocoaPods

It has almost become a joke at our local NSCoder Night. Bring up CocoaPods and a long and heated discussion about whether it is a good idea will begin. I’ve always been on the “I don’t like it” side of the argument. Then today during our weekly “CocoaBrains” tech talk at Two Toasters we re-review this dependency management solution. Spoiler: I am changing my mind about CocoaPods. Reasons I didn’t like it I tried CocoaPods when it was pretty new.

Continue Reading »

Objective-C Hackathon and JNJProgressButton

A few weeks ago I saw a tweet talking about how Objective-C lost it’s 10th place on the GitHub top language list. A bunch of developers thought this was a shame and started “Back on the Map” as a hackathon to get a bunch of developers committing some Objective-C to GitHub. I thought is was a cool idea and it is always fun to hack on an open source project, so I played along and made JNJProgressButton.

Continue Reading »

→ Accelerated Download Operation with AFNetworking

Late last year I started working on a little experiment. I wondered if it was possible to speed up a download of a large file by splitting up a request and making multiple concurrent requests using HTTP Byte range requests.

So I put together a subclass of AFNetworking’s AFHTTPRequestOperation that can do just that. I found that it works best with about 3 concurrent requests. Any more than that and the overhead of the different operations and combining them seems to take longer than one request. Overall, when running on WiFi it seems to work faster than one operation.

I also created a custom progress bar that can show different parts of the download being finished. It is a pretty cool little project in itself! Even though it is slower with more than 3 requests, the progress bar looks really cool when you tell it to split into 100 requests and it shows them all completing.

Check out the source and send me any comments ideas you have or contribute, if you like. There are a lot of things I’d like to experiment with this idea and try to do some testing to see if it really is faster.

→ JNJGoogleMapsActivity: UIActivity for Google Maps App

At our October CocoaHeads I gave a small talk on using UIActivity to create nice little wrappers around your application’s URL Schemes. I wanted to look for an app to implement a quick version of this on, but got busy and forgot.

Tonight, Google released the Google Maps App for iOS and matching documentation for their URL Scheme. I thought it was worth trying to wrap it in a UIActivity. It is far from tested or complete, but it was a fun little project to hack on.

Check it out on Github.

I'm still working without a clock

Last year I wrote a post about how I was going to work without a clock. This was completely inspired by Cocoa developer Zach Waugh who wrote about the same topic. As part of this post, he also talked about his small Mac app called Clock.app which is an open source project. Since you sometimes need to know the time, the app provides a quick way to get the time using Alfred or Quicksilver to launch this simple app.

Continue Reading »