A developer’s MacBook Pro upgrade (6 month’s later)

The developer community has anticipated updated Macs from Apple for quite a while, as most Macs had not been updated for some time. Apple’s flagship notebook, Macbook Pro, seems like a developer favorite as it has traditionally, powerful Intel processors, fast storage, and an awesome display with great support for multiple monitors (thanks to macOS). With my current setup, I felt like my workflow was in great rhythm. The best I could hope for from Apple would be a spec bump to solve a few performance problems that I encounter with my aging 2013 MacBook Pro 15. Apple’s answer to a long drought was the redesigned 2016 MacBook Pro. My purpose is to provide a “realistic” scenario of upgrading while heavily involved in work. In order to fully appreciate the results of my upgrade experience, it’s important that I detail how my current MacBook Pro is used from a developer’s perspective. This isn’t a formal “review” per se, but more of an honest assessment that details my transition from my old 2013 MacBook Pro 15,” to the new MacBook Pro 15.”


Day to day activity — How I use the MacBook Pro

I currently spend a majority of development time on projects for iOS, while also being involved in Mac, Apple TV, Apple Watch, Android, and web services projects on a day to day basis. Aside from actual development, I’m also heavily involved in the business’ operations. This means I spend 1 or 2 days a week away from the desk, in front of clients and partners, while the other 4 to 5 days I’m at the desk, writing code or managing projects. I have an agile standup meeting through Google Hangouts at least once a day (sometimes twice). There are also times where I’m screen recording with Quicktime, while having large Xcode projects open. It is not uncommon for me to use Xcode to compile a large project, while using Handbrake to compress/re-encode some screen recordings all at once.


Current equipment & Software

MacBook Pro Retina 15” (Early 2013) setup:

● 2.4 GHz Core i7 (Ivy Bridge)

● 8 GB 1600 MHz DDR3

● 256 GB Sata SSD (420 MB/s read — 400 MB/s write)

● LG Thunderbolt ultra wide 34" 3440 X 1440 (10bit color) http://a.co/f5LS2uH

● 3 TB External HDD & 2 TB HDD

● Apple Magic Mouse and magic keyboard

● Battery Cycle Count: 373

My desk setup is a minimalist’s dream by only having 2 cables connected (3 when I have an iPhone or iPad connected in developer mode), the Magsafe power adapter, and the Thunderbolt cable, while at the desk. The LG 34UM95 Ultrawide monitor acts as a dock, providing 3x USB ports, 2x Thunderbolt ports, 2x HDMI, and stereo audio out connection to my speakers. I have 2 external hard drives connected to the monitor, providing my MacBook Pro with an additional 5 TBs of storage. When I need to leave the office, I simply disconnect the Magsafe and Thunderbolt cable and I’m on my way.

Software used:

● Xcode — Open all of the time

● Safari — Open all of the time (75–100 browser tabs open — Seriously)

● Messages — Open all of the time

● Sublime — Open all of the time

● PhpStorm — Open 2 days a week (3 hours when open)

● Terminal — Open all of the time (Usually 5 windows)

● Photoshop — Open about 10% of the time

● Final Cut Pro X

● Slack — Open all of the time

● Handbrake

● Parallels (Linux virtual machines)

● Transmit FTP

● QuickTime (screen recording)

● Safari daily browser usage (75–100 browser tabs open)

● Google Chrome

● Microsoft Word, Excel

The 8GB of RAM worked out great with macOS 10.9 Mavericks, but really started bottlenecking with 10.10 Yosemite. Not only did the RAM usage greatly increase in 10.10, but the graphics performance, namely system animations and transitions were very sluggish. Keep in mind, the Geforce 650m with only 1GB of VRAM was tasked with driving both the built in Retina display of 2880 x 1800 (over 5 megapixels), and the external LG 34UM95 monitor of 3440 x 1440 (4.9 megapixels), for a grand total over 10.1 megapixels. However, the reconstructed memory management and graphics subsystem in 10.11 El Capitan greatly improved memory and graphics performance of my MacBook Pro. No longer did I experience dropped frames, overfilled RAM, and sluggish performance while performing the same exact tasks as I had performed in 10.10 Yosemite. The upgrade to 10.12 Sierra had no noticeable performance changes or workflow changes.

Cons about the old setup’s experience

1. The monitor that I have is a 10-bit color monitor. In a nutshell, it can provide over a billion colors in the sRGB color space. However, the nVidia Geforce 650m inside of my MacBook Pro only supports 8-bit color.

2. This MacBook Pro only has Thunderbolt version 1, which means I can’t use a 4K display at 60hz, and can’t use a 5K display at all.

3. Compile times for very large projects take longer than I’d like.

4. 4K video editing and encoding/transcoding 1080p causes the machine to struggle and processor temp to rise to over 100 degrees celsius.

5. Encoding videos with Handbrake uses a lot of ram and processor resources, creating performance problems when Xcode and Photoshop are open at the same time.

6. 8 GB RAM falls flat if I run 2 virtual machines while having my necessary programs running (see above).

Experience away from desk (old 2013 Macbook Pro)

As I already stated, I am usually away from my desk once or twice a week. When I leave my desk I unplug the Thunderbolt cable and the Magsafe power adapter and I’m out the door. I never take my power adapter with me unless I’m going far out of town. I’m currently at 381 charge cycles on my battery, and it still performs great. What must also be noted is that I use GFXCard Status (https://gfx.io), a tool which allows you to manually switch from the Geforce 650m to the Intel HD 4000 integrated graphics. 99% of the time I have forced my MacBook to use the integrated graphics, rather than the Geforce 650m to improve battery life. I have only experienced a noticeable performance drop when watching a 4K video on YouTube, or editing Final Cut Pro videos, which is a rarity when I’m away from my desk. I am able to go to meetings with no problem, or make a trip to Starbucks when I need to a different environment to code. I get approximately 6 hours of usage with this MacBook Pro while manually disabling the discrete graphics card, running the workload I’ve mentioned above.

Additionally, if I need to connect MacBook Pro to a projector with the HDMI port, the discrete graphics chip is REQUIRED by macOS, greatly reducing battery life. I have never experienced more than 3 ½ hours of battery life while using the discrete graphics chip, even when the computer was brand new.


The upgraded experience | MacBook Pro — 15inch (2016)

Specs:

2.6 GHz Intel Core i7 (Skylake)

16 GB 2133 MHz DDR3 Ram

512 GB SSD

Radeon 460 (4GB)

It’s obvious I can’t represent every developer accurately, but at the very least, my transition experience may help you think through purchasing the correct machine(s) going forward to remain productive in your environment. I was very skeptical about this computer and how it would alter my experience with work. Most of this skepticism came from reviews and rants of others who are dissatisfied. Many developers have threatened to switch ecosystems and abandon Apple because of this new machine and the questionable commitment to notebooks and desktops by Apple. Many are knee jerk reactions, while others are legitimate concerns being expressed. Trust me, I’ve criticized this machine myself and thought about cancelling my order based on a few things. I want to bring these concerns to the forefront, address them, then move on from them.

Concerns before my MacBook Pro — 15 inch (2016) arrived

● Smaller battery

● Radeon 450/455/460 — Well I wasn’t concerned but you all were! This is what I had to say about this http://www.imore.com/amd-radeon-it-pro-enough-macbook-pro

● No USB-A

● Keyboard usability

● Trackpad too large (palm rejection)

● No Magsafe

● No HDMI

● No function keys (I wanted to keep function keys alongside the touchbar)

● Soldered SSD Drive

The Transition

To properly transition, I needed some adapters. This isn’t too bad of a problem for me as I only needed the Thunderbolt 3 to Thunderbolt 2 adapter, and a USB-C to USB-A adapter. The only reason I need a USB-A adapter is simply because someone at a meeting could hand me a USB drive. At my desk my LG monitor has USB-A ports integrated.

Battery: I was able to get about 7 hours from full charge down to zero. I have not installed GFX Card Status on the new machine so macOS is automatically managing the usage of the graphics chips. This is a step up from where I was with my old MacBook Pro.

Noticeable compute strength: I have an Xcode project that I’m currently working on. It’s a Swift 3/Objective-C project which has about 40 Swift 3 source files, and 300 Objective-C source files. My old machine can compile and run after 2 minutes 40 seconds. My new 2016 MacBook Pro completed this task in 1 minute 14 seconds. That’s a huge jump in performance when compiling code. In another scenario, I was able to perform an Agile standup on Google Hangouts (video), while encoding a video on Handbrake, while compiling a program at once. Handbrake finished the video on the new MacBook Pro in 75 seconds. I also encoded the same video on my old MacBook Pro. It took 155 seconds while only running Handbrake. I was also able to maneuver through some of my Xcode storyboard files which really bogged down my old machine when there were more than 10 view controllers within a storyboard. This alone makes Xcode more responsive and less stressful. This alone was worth the upgrade for me. Lastly, Final Cut Pro now cuts through 4K video like butter. FCPX isn’t a necessity for me, but it’s nice to have and performs better than my older machine.

Ports: Initially I believed 4 USB-C ports weren’t enough and really thought I’d feel comfortable with 6. Why 6? I’m not sure. I only use 1 Thunderbolt cable and a power connection on my old setup, why do I need more? Because as humans we want more for “just in case.” Based on my environment, this is a non-issue for me. I did purchase a USB-C to A adapter just in case I may need it, but it isn’t completely necessary for me.

Touch Bar: So far, I have not used the touch bar much because I’m usually at the desk and docked. When I do use it I find it as a welcome addition. It definitely doesn’t greatly improve my efficiency, but it works well and I have no issue with the touch bar. If I could pick between the function keys and the Touch Bar I’d choose the Touch Bar any day of the week. The Touch Bar doesn’t not significantly change my current workflow.

Keyboard: I never gravitated to the 2015 12” MacBook. It was and still is far underpowered for my uses. I did try the keyboard and I remember not liking it very much. The keyboard on the 2016 MacBook Pro feels similar, but also feels a little different. It could possibly be because I’ve spent more time with this machine than the 12.” While coding on the go I have come to prefer it better than the older keyboard. It takes less effort to achieve a keypress, which adds up big time when you’re coding for hours at Starbucks or somewhere other than a desk. I realize this is a personal preference but this is how I feel about the keyboard after using it for hours on end. It is a noticeably louder keyboard than previous ones however.

Magsafe: I rarely have this notebook charging while using it away from my desk. Not having Magsafe does not affect me, even though I like the idea of how well it works on my old machine.

Concerns after 6 months of usage

No HDMI — I feel annoyed about buying an HDMI adapter, but I will need to at some point when doing presentations (still haven’t purchased one). Yes, that’s it.

What does this all mean for me as a developer?

I didn’t ask Apple for a redesign. I wanted a spec bump to improve my efficiency, or an upgrade that would solve problems that I currently endured while developing software and services. Essentially what I received was just that, with a few chassis tweaks which don’t matter much when I’m at the desk. I’m satisfied and have a much more capable machine than I had with my 2013 MacBook Pro. Everything I didn’t like about my experience with my old machine was rectified with new MacBook Pro. So I ask my fellow developers, what problems are you currently facing on your current machine(s) setup, and does the new MacBook Pro solve those problems or create new problems?

Anything I wish Apple would’ve done?

I would have liked a higher resolution screen. Don’t get me wrong, the screen is magnificent, but I realize there is room for it to be even better and I wish they wouldve included something close to 4K resolution. I also would’ve liked a better webcam. Other than that I’m satisfied.