Fixer of explicitly unwrapped optionals

Walkin Technology

Theres a lot to Walkin. As a developer I think sharing the included Libraries of the Project is a great overview of the Technologies used, if you are not a developer feel free to skip ahead for a higher level explaination of what makes up Walkin.

  • UIKit and Foundation, standard iOS User Interfaces

  • CoreLocation for checkins to stores

  • CoreBluetooth for iBeacons which confirm checkins

  • AdSupport for the advertising identifier

  • libsqlite3 for analytics
  • libxml2.2 for analytics
  • SystemConfiguration for device infromation such as your phone's version
  • MobileCoreServices for device tracking, mostly to prevent cheating

  • MediaPlayer for our tutorial Movie

  • CoreMedia for Video Playback
  • CoreVideo from Video Playback

  • Social for sharing on Weibo

  • ImageIO for manipulating the image when posting to social sites
  • Addressbook and AddressbookUI for sending emails
  • CoreTelephony for calling customer support

  • QuartzCore for a lot of custom animations in the User Interface

  • CoreGraphics for animations as well
  • OpenGLES for particle emmiters and rendering our Augmented Reality scanner
  • GLKit for rendering the same things as above
  • CoreMotion for augmented reality games

  • CoreText for rendering HTML type text into the views of Walkin

  • AudioToolbox for playing our cool checkin sound

  • OpenAL for the same

  • Mapkit for finding nearby stores

  • XCTest for testing my code

I love cocoapods and open source code. It helped Walkin progress much faster as a one man project. Heres our podfile

platform :ios, "5.0"

xcodeproj 'Walkin.xcodeproj'

pod 'SSToolkit', '~> 1.0.4' ##For Collection Views
pod 'AFNetworking', '~> 1.3.1' ##For talking to our API over the network
pod 'SDWebImage', '<= data-preserve-html-node="true" 3.4' ## Great for persisting commonly viewed images
pod 'FPPopover', '~> 1.4.1' ## Dropdown view from a button on the iPhone, similar to the popover on iPad appd
pod 'AFOAuth2Client', '~> 0.1.1' ##Communicationg with Weibo
pod 'FlurrySDK', '~> 4.2.3' ##Analytics
pod 'SSKeychain', '~> 1.1.0' ##Weibo again
pod 'SSPullToRefresh', '~> 1.1.2' ##Pull to Refresh with iOS 5 compatibility
pod 'AFUrbanAirshipClient', '0.0.1' ##
pod 'SVProgressHUD', '~> 1.0'
pod 'Tapstream'
pod 'NoticeView', '~> 3.0.7'
pod 'TTTAttributedLabel'
pod 'DTCoreText', '~> 1.6.3'
pod 'MWPhotoBrowser', '<= data-preserve-html-node="true" 1.1.3'
pod 'NJKWebViewProgress'
pod 'SAMRateLimit', '~> 0.2.0'
##pod "BugshotKit", :git => ''
pod 'KSCrash', '~> 0.0.3'

target :WalkinGHUnit do
    pod 'GHUnit', '0.5.8'

Not everything we use is from cocoapods though, Heres the open source code used by Walkin

  • NSURLRequest+CURL
  • KIImagePager
  • RIAlertViewBlocks
  • CocoaTouchBarcodes
  • Cocoa With Love's PageTableView Subclasses
  • WeChat SDK
  • Weibokit, a framework I made for connectiong to Weibo on iOS 5

Deelopment wise, Walkin has a little of everything in it. but back to the top level view of Walkin I promised at the start of this page

At its Core Walkin is a customer loyalty program. When our customers check into stores they get points, later they can use those points for rewards that are sent to their door.