Building Gitty 2 Part Two

This post is a series of posts where I write about building Gitty 2. If you missed any part of this series you can view them here:

Part 1

People often ask me, how did you build Gitty? What technologies did you use? Consider this a tell all post. I will take you under the hood and show you the ins and outs of how Gitty was built.

Objective-C

While I do have a background in C# and Ruby, Gitty is built in Objective-C using Xcode like most Apps in the App Store today.

Objective-C, for some, is considered a four letter word. Before I got into iOS Development, I though of Objective-C in the same way I think of Chinese…unreadable. For this and many other reasons, I guess Apple decided to create Swift. But given enough time and desire, I learned Objective-C and in fact, have grown to love it.

Open Source & Cocoapods

The backbone of Gitty is built upon Open Source. I cut my Objective-C teeth on Open Source, just notice how many stars I have on GitHub, for example.

In some ways, working with Open Source and Objective-C makes me feel like a conductor. I have all of these great instruments at my disposal but with that comes a lot of responsibility. Instead of mashing my favorite libraries together, Gitty is a carefully curated attempt at highlighting great Open Source projects by weaving them together into a beautiful cohesion.

platform :ios, '7.0'

xcodeproj 'gitty.xcodeproj'

target :gitty do
  # Networking
  pod 'AFNetworking', '~> 2.2.1'

  # Analytics
  pod "ARAnalytics/Crashlytics"
  pod 'ARAnalytics/GoogleAnalytics'

  # Base64 encoding/decoding
  pod 'Base64', '~> 1.0'

  # Modal Pickers
  pod 'BSModalPickerView', :git => 'https://github.com/mps/BSModalPickerView', :branch => 'fix_iOS7'

  # UIButton help
  pod 'CMDAwesomeButton', '~> 0.1'

  # Font Awesome
  pod 'FontAwesome+iOS', '~> 0.1'

  # Profile Picture Viewer
  pod 'IDMPhotoBrowser', '~> 1.3'

  # Date Formatting
  pod 'ISO8601DateFormatter', '~> 0.7'

  # Milestone Progress
  pod 'LDProgressView', '~> 1.2'

  # Helpers
  pod 'MPSCategories', :git => 'git@github.com:mps/MPSCategories.git'

  # Menu
  pod 'MPSHorizontalMenu', :git => 'https://github.com/mps/MPSHorizontalMenu'

  # Emoji
  pod 'NSStringEmojize', '~> 0.2'

  # Hamburger
  pod 'NVSlideMenuController', '~> 1.5.6'

  # Octicon goodness
  pod 'OcticonsIOS', :git => 'https://github.com/mps/OcticonsIOS'

  # Add comment bar
  pod 'PHFComposeBarView', '~> 2.0.1'

  # In App Routing
  pod 'Routable', '~> 0.0'

  # Action Sheet helpers
  pod 'RSActionSheet', '~> 1.0'

  # Helpers
  pod 'SAMCategories', '~> 0.4'

  # Do things so often
  pod 'SAMRateLimit', '~> 0.2'

  # Image caching
  pod 'SDWebImage', '~> 3.6'

  # Progress indicator
  pod 'SVProgressHUD', '~> 1.0'

  # Swipe
  pod 'SWTableViewCell', '~> 0.3'

  # Easy Web View
  pod 'SVWebViewController', :git => 'https://github.com/mps/SVWebViewController', :branch => 'master'

  # Hide Keyboard
  pod 'TPKeyboardAvoiding', '~> 1.2'

  # Attributed Label
  pod 'TTTAttributedLabel', '~> 1.9'

  # In App Messaging
  pod 'TWMessageBarManager', '~> 1.6'

  # View Helper
  pod 'UIView+Shake', '~> 0.2'
end

target :gittyTests do
  # Testing Framework
  pod 'Specta',  '~> 0.2.1'
  pod 'Expecta', '~> 0.3.0'

  # Mocking
  pod 'OCMock', '~> 2.2.3'
end