Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.
Some "rules"
Jeff Linwood
jlinwood@gmail.com
@jefflinwood
www.jefflinwood.com
Major thanks to our Sponsor, GE!
Day 1 12:00pm - 12:30pm - Introduction to the class, students intro, agenda, set up 12:30pm - 1:00pm - Swift and iOS Programming - What goes into building an iPhone app? (Presentation) 1:00pm - 2:00pm - Intro to Swift the Programming Language using Xcode Playgrounds (Hands on Exercise) 2:00pm - 2:15pm - Break 2:15pm - 2:45pm - iPhone App Development Concepts (Presentation) 2:45pm - 3:45pm - Building your first iOS App (Hands on Exercise) 3:45pm - 4:00pm - Wrap Up/Feedback Day 2 12:00pm - 12:30pm - Review of Day 1 12:30pm - 1:00pm - iPhone App User Interface Design (Paper Prototyping) (Team Exercise) 1:00pm - 2:00pm - Designing a User Interface with Storyboard (Hands on Exercise) 2:00pm - 2:15pm - Break 2:15pm - 2:45pm - Developing a Camera App for iOS (Presentation) 2:45pm - 3:45pm - Building a Camera App (Hands on Exercise) 3:45pm - 4:00pm - Wrap Up/Next Steps
Enjoy teaching Intro to iOS Development at UT-Austin
Teach corporate training sessions
Mobile app developer for 6 years, enterprise Java developer before that for 10 years
Does everyone have Xcode downloaded on their Mac?
If not, get it from the App Store
Highly recommend the free App Development with Swift ebook from Apple's iBooks Store
Swift Playgrounds app on newer iPads
What goes into building a mobile app? Lots of different choices when you create an app for iOS or Android. Most of the time, there will be wireframes or mockups, a detailed visual design, a mobile app component for each platform, and a server component. An iOS app is usually written in Swift or Objective-C, and an Android app uses Java or Kotlin. There are also cross-platform options like PhoneGap and React Native.
You can use existing services such as Google's Firebase. Another option is Parse, which Buddy hosts, or you can run your own Parse Server. You could also build your mobile app to work with a server you write in a language like Python, Ruby, or Javascript with Node.js.
When you write code for iOS, you can use one of two languages - Swift or Objective-C. Swift is the newer progamming language we will use in this class. Objective-C is older, so you may find examples of it when you search on Google for solutions, or if you are working with an older project.
Xcode lets you design your application screens in Storyboard, which is a visual editor. To make your screens work on all sizes of iPhones and iPads, you can use Auto Layout tools. These are more complicated than using CSS rules with HTML.
File->New Playground...
Make sure iOS is selected
let name = "Jeff"
let greeting = "Hello, \(name)"
print(greeting)
var isAdult:Bool
if age >= 18 {
isAdult = true
} else {
isAdult = false
}
print(isAdult)
func isAdult(age:Int) -> Bool {
if age >= 18 {
return true
} else {
return false
}
}
@IBAction func pickAPhoto(_ sender: Any) {
if !UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
return;
}
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .photoLibrary
present(picker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
photoImageView.image = image
}
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
@IBAction func shareAPhoto(_ sender: Any) {
guard let image = photoImageView.image else {
return
}
let activityViewController = UIActivityViewController(activityItems: [image],
applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
}