Apple announced Swift, a new programming language for Cocoa and Cocoa Touch, at its Worldwide Developer Conference (WWDC) in June 2014. This session will provide details on this new programming language and how it can be leveraged for iOS 8, which is slated for a fall 2014 release. Resources, frameworks, and design considerations for iOS development will also be explored, with a tie into iOS app development for enterprise and business. This talk will also touch on HTML5 for iOS.
3. Apple Developer Programs
Separate programs for iOS & OS X (Individual
vs. Company)
Apps distributed on App Store
iOS Developer Enterprise Program
iOS Developer University Program
Safari Developer Program
Register as an Apple Developer
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
4. Apple Developer Library
For iOS, OS X, Safari, iAd
Programming Guides
Reference Code
Sample Code
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
5. Tools & Frameworks
Xcode
Xcode Service
Instruments
The Developer Library
Other Tools
iOS SDK
Frameworks
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
6. Xcode
Suite of Development Tools
Write & Debug
iOS Simulator
Instruments
Interface Builder
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
8. Xcode Service
OS X Server
Enable Access to Source Code Repositories
Configure Bots to Perform Continuous
Integrations
Manage & Monitor Bots from Log Navigator &
Web Browser
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
9. Instruments
Analyze performance
of iOS apps
Gathers data about:
Memory Usage
Disk Activity
Network Activity
Graphics
Correlation of data
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
10. Playgrounds
A new type of document in
Xcode 6
Design a new algorithm
Create new tests
Experiment with new APIs
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
11. Other Tools
AppCode
Injection for Xcode
Dash
Objective-Clean
Hockey Coach
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
12. iOS SDK
Cocoa Touch Layer: Key frameworks
Media Layer: Graphics, audio, and video
technologies
Core Services Layer: Fundamental
system services for apps
Core OS Layer: Low-level features
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
13. Cocoa Touch Layer
Key Technologies
AirDrop
Text Kit
UI Kit Dynamics
Multitasking
Auto Layout
Storyboards
APNS
Gesture Recognizers
Standard SystemView Controllers
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
15. Core Services Layer
Peer-to-Peer Services
iCloud Storage
Automatic Reference
Counting
Block Objects
Data Protection
File-Sharing Support
Grand Central Dispatch
In-App Purchase
SQLite
XML Support
Key Technologies
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
16. Core Services Layer
Frameworks
Accounts Event Kit
Address Book Foundation
Ad Support HealthKit
CFNetwork HomeKit
Core Data JavaScript Core
Core Foundation PassKit
Core Location PushKit
Core Motion StoreKit
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
17. Core Services Layer
New for iOS 8
HealthKit Headers
!
HKDefines
HKHealthStore
HKMetadata
HKObjectType
HKStatistics
HKType Identifiers
HKUnit
HomeKit Headers
!
HMAccessory
HMCharacteristic
HKCharacteristicMetadata
HMError
HMHome
HM Service
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
18. Core Services Layer
New for iOS 8
Network Extension Headers
!
NEOnDemandRule
NEVPNConnection
NEVPNProtocolIKEv2
NEVPNProtocolIPSec
!
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
19. Core Services
!
iBeacon/Location Based Apps
Passes & Passbook
Health/Fitness Apps
Home Automation Apps
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
20. Core OS Layer
Frameworks
Accelerate
Core Bluetooth
External Accessory
Generic Security Service
Security
System
64-bit Support
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
21. Swift
Cocoa & Cocoa Touch
Objective-C & C
Xcode 6 (beta)
Fast, Modern, Safe,
Interactive
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
22. Swift - The Basics
var languageName: String = “Swift”
var version: Double = 1.0
var introduced: Int = 2014
var isAwesome: Bool = true
Constants &Variables
let languageName: String = “Swift”
var version: Double = 1.0
let introduced: Int = 2014
let isAwesome: Bool = true
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
23. Swift - The Basics
var languageName: String = “Swift”
var version: Double = 1.0
var introduced: Int = 2014
var isAwesome: Bool = true
Type Inference
let languageName:“Swift”
var version = 1.0
let introduced = 2014
let isAwesome = true
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
24. Swift - The Basics
Strings
let someString = “I appear to be a string”
// inferred to be of type String
!
urlRequest.HTTPMethod = “POST”
!
let components = “~/Documents/Swift”.pathComponents
// [“~”,“Documents”,“Swift”]
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
25. Swift - The Basics
Characters
for character in “chicago” {
printIn(character)
}
!
c
h
i
c
a
g
o
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
26. Swift - The Basics
Building Complex Strings
let a = 3, b = 5
!
// “3 times 5 is 15”
!
let mathResult = “(a) times (b) is (a * b)”
!
// “3 times 5 is 15”
!
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
27. Swift - The Basics
Array & Dictionary
let components = “~/Documents/Swift”.pathComponents
// [“~”,“Documents”,“Swift”]
// returns an Array, not an NS array
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
28. Swift - The Basics
Typed Collections
var names: String [ ] = [“Aaron”,“Anne”,“Bill”,“Jim”]
var names = [“Aaron”,“Anne”,“Bill”,“Jim”]
// an array of String values
var numberOfLegs = [“dog”: 4, “spider”: 8, “zebra”: 4]
// an Dictionary with String keys and Int values
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
30. Swift - The Basics
Modifying a Dictionary
var numberOfLegs = [“dog”: 3, spider”: 8, “zebra”: 4]
numberOfLegs[“snake”] = 0
numberOfLegs[“dog”] = 4
[ “dog”: 3,“spider”: 8, “zebra”: 4]
[ “dog”: 3,“spider”: 8, “zebra”: 4, “snake”: 0]
[ “dog”: 4,“spider”: 8, “zebra”: 4, “snake”: 0]
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
31. Swift - The Basics
RetrievingValue from a Dictionary using Optionals
var numberOfLegs = [“dog”: 4, spider”: 8, “zebra”: 4]
!
let possibleLegCount: Int? = numberOfLegs [ “ant” ]
!
if possibleLegCount == nil {
printIn(“Ant wasn’t found”)
} else {
let legCount = possibleLegCount!
printIn(“An ant has (legCount) legs”)
}
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
32. HTML5
!
Safari Developer Library
Safari Extensions
Web Inspector
Web App & iOS Web Apps
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014
33. References
WWDC 2014 Videos
Introduction to Swift
Swift Playgrounds
Other Tools
Adam Swinden: http://ios.devtools.me
Ben Scheirman: http://benscheirman.com/2013/08/the-ios-developers-toolbelt/
iOS Developer Library
Xcode Overview: https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/
Xcode_Overview/Xcode_Overview.pdf
Xcode Service: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-
continuous_integration/000-About_Continuous_Integration/about_continuous_integration.html#//apple_ref/
doc/uid/TP40013292-CH1-SW1
iOS Technology Overview: https://developer.apple.com/library/ios/documentation/miscellaneous/conceptual/
iphoneostechoverview/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007898-CH1-SW1
iOS Technology Overview: iOS Developer Tools: https://developer.apple.com/library/ios/documentation/
miscellaneous/conceptual/iphoneostechoverview/iPhoneOSDeveloperTools/iPhoneOSDeveloperTools.html
Safari for Developers: https://developer.apple.com/safari/features/
iOS 7.1 to iOS 8.0 API Differences: https://developer.apple.com/library/prerelease/ios/releasenotes/General/
iOS80APIDiffs/index.html#//apple_ref/doc/uid/TP40014455
Teri Grossheim - Tools & Libraries for iOS - Mobile+Web Devcon Chicago 2014