Dec 4, 2012

2012 is coming to an end, and I thought I would take some time to share the tools, web sites, and other development resources that I've been using throughout this year as a reference to both new and old developers who may not have heard of some of them before. Most of these products are integral parts of my work flow, and I am not sponsored by any company or person responsible for these products, so this is just an honest list of what I use on a day to day basis.

Apps

Xcode (free) - The iOS and Mac IDE that everyone has a love/hate relationship. I was very much disappointed with the earlier versions of Xcode 4, but it is continually improving and is definitely much better today than it was mere months ago. I must say that it is much more stable and usable when RAM isn't scarce.

Sublime Text 2 (free trial, $59) - While I use Xcode for all Mac and iOS development, I prefer a lighter editor for other tasks like web development, script writing, etc. With many great text editors out there on the market, I found it difficult to settle with one, but Sublime Text's unrivaled speed and flexibility won me over. This is a great editor for control freaks who like to customize every aspect of their text editing experience, and Sublime Text 2 has no shortage of extensions, preferences, and styles that make it suitable for almost any type of task.

Gitbox (free trial, $19.99) - Gitbox is a git client for minimalists. It gets rid of all the buttons and options of traditional clients that try to be a wrapper for everything the command line interface can do. It has great keyboard shortcuts, and all the common functions are just a few clicks away. Combine that with support for submodules and a pleasant native Mac UI, and you have a winner.

Kickoff 2 (private beta) - Collaboration is a huge part of my workflow, and Kickoff just makes everything so much easier by combining all the important functions into a clean, single window interface. I can't say much more, but Kickoff will rock your socks off when it launches publicly.

Kaleidoscope 2 (public beta) - Kaleidoscope was always the best looking diff tool for the Mac, but it lacked the powerful functionality of other, less appealing tools. Kaleidoscope 2 brings the best of both worlds, and maintains a beautiful UI while providing much needed features like merging and folder diffs.

Mou (free) - I write all my code documentation and blog posts using Markdown, and Mou is the best Markdown editor I've ever used. It features a novel split pane editing concept where you can see the raw text and the generated HTML preview simultaneously.

xScope ($29) - xScope has about a million different functions to aid in everything from picking colors from the screen (e.g. from a mockup) to precisely measuring pixel dimensions. A must have tool for implementing custom user interfaces.

Skala Preview ($5.49) - I'm no designer, but I use this app all the time to preview mockups on my iDevice. It has some pretty useful features like direct connection to Photoshop so you can watch your mockup live update on device as you work.

Slicy ($29) - I don't always slice my own assets, but when I do, I use Slicy. Generating assets using Slicy is as easy as renaming layers in your PSD to the names of image files to generate, then dropping that PSD file on Slicy. It can even automatically update the generated assets when you make a change to the PSD.

Tokens (free for one app) - Beautiful and simple tool for generating and sharing promo codes for your apps in a single click.

Dash (free trial, $9.99) - Dash is an excellent improvement over Xcode's built in documentation browser. It presents everything in a much more useful layout, and has support for just about every other library and language you can think of as well (e.g. HTML, CSS, JavaScript, OpenGL, Android, Arduino, etc.).

CodeBox ($9.99) - Elegant code snippet manager with Dropbox sync, smart groups, and support for many syntaxes.

Anvil (free) - Testing sites locally can be a somewhat cumbersome process, but Anvil does away with all of that. It puts all of your local sites in a neat popover accessible from your menu bar, and assigns local .dev URLs to all of your web sites. It works with all static HTML sites and Rack apps. In addition to Anvil, the same guys have shipped a full featured app called Hammer that handles even more tasks related to managing local sites.

Fetcher (free) - Simple app for testing POST/GET requests.

Services

GitHub (free for open source) - I'm continually amazed by how much time I spend using GitHub. It's a great way to share your work, collaborate, discover other exciting projects, and find lots of resources to use when building your next project.

Dropbox (free for 2GB) - Simply the best cloud storage and sync service ever. File sharing via short links and shared folders are a valuable asset to collaboration.

TestFlight (free) - Beta distribution, crash reporting, and analytics. Hard to believe that you get this much for free.

HockeyApp (plans starting at $10/mo) - Similar functionality to TestFlight, with a few more bells and whistles like a built in discussion forum for your app, and the ability to collect crash reports in a production environment.

App Annie (free) - Analytics and rankings for the iOS/Mac App Stores and Google Play, with daily emailed reports. Good way to keep an eye on how your app sales are doing.

Web Sites/Blogs

NSHipster - My favorite Apple development blog ever. NSHipster focuses on things you don't already know. With articles on a weekly basis, it introduces you to new classes and concepts that don't get as much attention as they should. If you want an easy way to expand your knowledge of Foundation, UIKit, and many other frameworks, NSHipster is the way to go.

CocoaControls - A collection of curated open source controls for OS X and iOS. If you're thinking of implementing a custom control, there's a good chance that someone may already have a great implementation of it.

Nov 11, 2012

It's been about 3 months since I bought my 15 inch Retina MacBook Pro. I think that period of time has been long enough for me to develop a fairly comphrehensive opinion on the strengths and weaknesses of this machine. Hopefully this will help others who are debating on whether buying into this first generation product is a good choice.

My Configuration

The configuration I bought was the base model with a 16GB RAM upgrade. The important specs:

  • 15.4" LED backlit IPS Retina display (2880 x 1800 native resolution)
  • 2.3GHz Intel Core i7
  • 16GB DDR3 1600MHz RAM
  • Intel HD 4000 + NVIDIA GeForce GT 650M 1GB
  • 256GB flash memory

Form Factor

Aside from the Retina display, the form factor is perhaps Apple's greatest innovation when it comes to notebooks in recent years. It has the same aluminum unibody as the entire MacBook Pro line has had for several years, albeit in a much thinner and lighter form. This is largely due to the removal of the optical drive and the replacement of the HDD with flash memory soldered directly onto the logic board.

As the owner of an older 2008 MacBook Pro, pictures can not do justice as to how much less bulky the Retina MacBook Pro looks and feels in comparison. Despite being a 15" notebook, at approximately one pound lighter than previous generations, this machine is actually comfortable to carry around for extended periods of time. The numbers don't look incredible on paper, but the difference between the rMBP and the classic MacBook Pro is analogous to the difference between the iPhone 4/4S and the iPhone 5.

Performance

A lot of the controversy around the Retina MacBook Pro revolves around whether it has enough juice to power the resource hungry Retina display. This is a mistake that Apple has made in the past with the iPad 3, so consumers are right to be concerned.

There's no doubt about the fact that in a comparison between classic MacBook Pro and a Retina MacBook Pro with the exact same specs, the classic MBP would most certainly outperform. The question is whether this difference is noticeable in day to day use. My conclusion on this matter is that unless you're looking to find performance issues, this is not something that will affect normal usage of the machine. Everything feels instantaneous. In fact, the only place I've seen any indication of performance issues occassionally is when scrolling through large, complex web pages.

That said, I haven't tested performance with Apple's Pro apps (e.g. Final Cut Pro X) or a secondary display, but as a developer I find that the Retina MacBook Pro is a perfect development machine. Aside from the usual bugginess, Xcode is fast and responsive, and builds are super snappy.

The Display

Words can not describe how incredible and crisp the Retina display is. In my opinion, this is the biggest thing to happen to consumer level computing in many years. Once you go Retina, you can't go back. You can not truly appreciate the prowess of this beautiful screen until you have used it for quite a while longer than the 10 minutes you spent playing with it at the Apple Store. Everything just looks perfect. While the resolution is something to be expected, what surprised me was how great the colors were. There is an astounding improvement in color accuracy in comparison to previous generation MacBooks. Put the rMBP side by side with an older MBP and the difference will blow you out of the water.

Software

One of the biggest reasons I love the Mac software community is how much the developers care about user experience. As a result, many Mac apps were updated for the Retina display on day one, and many more have been updated since then. There isn't a single application I use on a regular basis that hasn't been updated to take advatange of the Retina display. Not only does the OS itself look beautiful, all of your other apps will too. That said, designers and illustrators beware: Adobe has not yet updated their products to take advantage of the Retina display, so you may want to hold off on buying one until an update is available.

Upgradeability

This is one area that the Retina MacBook pro falls short, without question. There is basically nothing in this machine that is upgreadable or replaceable at all. Everything is soldered to the logic board, and if one component fails, chances are that you're looking at getting the entire logic board replaced (which will get extremely expensive). This is why iFixit awarded the 15" Retina MacBook Pro the lowest repairability score possible. In other words, a) get AppleCare and b) put some serious thought and consideration into the configuration before you order.

Score: 9.5/10

Sep 19, 2012

Like

  • Facebook integration. Facebook sharing and status posting is cool and all, but my favorite part is synchronizing all your Facebook contacts and calendar events with your iOS Contacts & Calendar. Super convenient.
  • Passbook. We're getting closer and closer to not needing to carry around a wallet at all. Use Passbook to store digital copies of tickets, boarding passes, gift cards, and many other things to come.
  • Maps (the functionality). While the map data is a problem (addressed later in this post), the app itself with all its new functionality is quite nice. Turn by turn navigation is a great feature (no need to pay for $50 navigation apps), as is 3D maps. Not relying on a third party has also allowed Apple to optimize the app a lot, and the increase in performance is noticeable.
  • Phone number and Apple ID unification. Now iMessages sent to your phone number can also be forwarded to your Mac and iPhone. It even works for FaceTime, so you can answer a FaceTime call sent to your phone from your iPad or Mac.
  • Developer goodies. iOS 6 has some of the greatest APIs I've ever seen. One word: UICollectionView.

Don't Like

  • App Store. I have nothing good to say about the iOS 6 App Store app. The design is neither here nor there, and the performance is absolutely atrocious. Not to mention major issues with the new layout for both users and developers alike.
  • Music app redesign. It just looks bad.
  • Dial pad redesign. I really don't know what kind of logic resulted in this being shipped.
  • Maps (the data). This is something that will (and really needs to) improve in the future, but at the moment the data is almost useless outside of the US. And even in areas where its usable, the level of detail is severely lacking in comparison to Google Maps. Also, no Street View or transit directions.