So I’m on my second Macbook. I use a Macbook Pro for iOS development and I was due for a new one. I went from a Late 2011 MBP to a late 2014 MBP. Except now I have a Retina display and a 512 SSD. I’ve gained an HDMI port, but lost the Ethernet port. I’m still not sure if that was a fair trade.
I no longer get laptops or PC’s with spinning rust drives. The performance benefits of a SSD out weigh the extra cost. The PCI Express controller is faster than SATA, even with full disk encryption (IT policy).
Now I have to get the tools that I need onto the MBP. I really don’t have a master list of what needs to be installed so I’m making one here. I’ll continue to update this blog post as I come across stuff to install for development.
Even though I do my coding with the .NET stack using Xamarin, I still need to have Xcode installed. Apple makes the Xcode compilers part of the tool chain. Plus that’s the only way you get the iOS Simulator.
Where to get it: Apple OS X App Store
Xcode simulator for iOS 7
A new Xcode install wiill just have the current version of iOS in the simulator. If you want to test against an older version, you need to install it manually.
Where to get it: Xcode, preferences, downloads
Xcode command line tools
Xamarin needs to have the command line tools installed. That’s the easiest way to get git and svn installed.
Where to get it: use Terminal to install Xcode Command Line Tools.
$ xcode-select --install
I’m not looking to go a Safari Adventure…
Where to get it: http://www.google.com/chrome/
We are not animals, why use anything else? I drank the Xamarin Koolaid 2 years ago and I can’t imagine doing mobile development any other way.
Where to get it: Subscription Downloads
Right after Xamarin has finished installing, update the Android SDK. The Android installer will install the latest bits, but if you want to support previous versions of Android, you’ll want to install those SDKs too.
Where to get it: Xamarin Studion -> Tools -> Open Android SDK Manager
Both the Xamarin Android Player and Genymotion require VirtualBox. VirtualBox is a free and open source virtual machine environment. If you install that first, it makes the Genymotion install easier.
Where to get it: Virtual Box Download Page
Genymotion is a fast Android emulator and supports more versions of Android than any other VM based Android Emulator. Friends don’t let friends use the Google Android Emulator. Google’s emulator emulates the CPU on the phone, but pays a performance penalty. Genmotion (and Xamarin and Microsoft) run a version of Android for x86, which gets you virtual machine performance.
Where to get it: Get Genymotion
Adobe Creative Cloud
When our graphic designers send me the artwork for our apps, they give it to me in Adobe Illustrator format. From the AI files, I can script the rendering the images through Photoshop for all of the iOS and Android sizes that I need.
Where to get it: Adobe CC
Alternatives to Adobe CC: GIMP is a very powerful image editor. An open source project, GIMP is available on many plaforms. If I didn’t have an Adobe CC subscription, GIMP would be my tool of choice. Inkscape is another open source tool, but for vector image editing. Inkscape has the ability to export to XAML, so you have the ability to use resolution independent images on the Windows platforms, Android 5 supports SVG for vector images and there is the svg-android library for older versions of Android. Which brings us to…
PaintCode is an OS X app that will take SVG files and generate iOS drawing code in Objective-C, Swift, or Xamarin C#. With the image as drawing code, you can manipulate it at runtime, it’s no longer a static image, but one that you can edit via.
I run Windows on my Macbook Pro. When I want to carry just one machine and compile for iOS and Windows Phone, this is the simplest solution for me. A cool thing with Fusion is that it supports Hyper-V, I can run the Windows Phone emulator in a Fusion session.
Where to get it: VMware Fusion
When I want to demo an actual iOS device and be able to display on my Macbook, I use AirServer. AirServer is an AirPlay receiver for OS X (and Windows). This works great for demos and for sharing with WbeEx or GotoMeeting. The only caveat is that it uses the same port as the Xamarin Build Host. The Xamarin Build Host is the app that lets Visual Studio on Window access the Xamarin and Xcode build tools on the Mac.
Where to get it: Airserver Download page
AirServer uses a bunch of ports, 5000 is used for audio and causes the conflict with Xamarin. To change the audio port used by AirServer, open up Terminal and run the following command:
defaults write com.pratikkumar.airserver-mac com.airserver.raopPort 5010
Paragon NTFS for OS X
Out of the box, OS X can read NTFS but it can’t write to it. If you have a large capacity USB drive, it’s going to be formatted with NTFS. Paragon makes a stable and cheap NTFS driver for OS X.
Where to get it: NTFS for Mac
Sublime is a very nice text editor that is available for multiple platforms. I like being able to use the same tools on Windows and OS X where possible. It makes for less things to learn and remember so you can concentrate on getting stuff done.
Where to get it: Sublime Text Download page
Balsamiq is a great tool for doing wireframe mockups. When doing quick designs, wireframe mockups let you walk do the basic design and flow, without getting distracted by pixel placement. This is a other one of the multi-platform tools.
Where to get it: Balsamiq download page
Adium is a free instant messaging application for OS X that supports multiple chat platforms. When I want to IM a co-worker, I use whatever platform that they prefer, AIM, Yahoo, Google, Facebook, etc. Using Adium lets me deal with just one app.
Where to get it: Adium.im
Right now I’m using the Microsoft Remote Desktop app for OS X. I used to use CoRD, but Microsoft Remote Desktop looks like it’s more up to date and I’ll stick with it. I don’t RDP to Windows from OS X that much, the MS one should be enough. Also CoRD doesn’t appear to support Mavericks or Yosemite.
Where to get it: Apple OS X App Store
Db Browser for SQLite
This is an open source, cross platform tool for working with SQLite databases. When writing code that writes to a SQLite database, an external database browser can help validate that you are writing the right data.
Where to get it: Github
When you use the iOS Simulator, you can access files from the simulator image with Finder. The location will vary, depending on the version of Xcode used. This Stack Overflow post is a good starting point.
This is a tool that Xamarin developed for building binding libraries for Objective-C libraries. It’s not the easiest tool to use, but it greatly cuts down the amount of work needed to created a Xamarin C# binding to an Objective-C library.
Where to get it: Objective Sharpie
I use OneDrive. A lot. Most of the documents that I work on, I tend to put into OneDrive. It just makes it easy to not care from which machine that I used to last edit the document. I have some PhotoShop scripts for generating different sized icons from a single source file. I keep it in the cloud so I can use it where ever I have Adobe PhotoShop installed. From a synching perspective, DropBox is probably a better choice, OneDrive is backed into everything else that I use so I’ll stay with it.
Where to get it: Apple OS X App Store
TechSmith makes the best screenshot capture tool period. I use this more often that I would have expected to. Also falls into the category of being available for OS X and Windows.
Where to get it: TechSmith
Android File Transfer
I had to move some large files from the old MBP to the new MBP and I left my thumb drives at home. So I used my Nexus tablet as a large, awkward thumb drive. With Windows, you can just use the tablet as a drive, with a Mac you need the Android File Transfer app. When you run the app it will display the file system of the connected Android device in a Finder-like window. You can drag and drop files between the Mac and the Android.
Where to get it: Android.com
We use Lync as our corporate IM and it’s handy to be able to use from the Mac. There is an OS X Lync app, but I prefer to use the web application. It requires a browser plugin, but it more or less works.
Where to get it: Lync Web App
After I get the tools installed, the next thing is to get Time Machine set up. I have an external 2TB USB 3 drive that I use for backing up the Macbook Pro. Time Machine is one of those OS X features that you can set and forget, it just works. The hard drive crashed on my previous MacBook Pro, I was able to completely recover my stuff from the Time Machine backup.