Learn your way! Get started

iOS Adv Development Using MonoTouch 5.2

with expert Martin Bowling


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack
  • Power Pack Plus

Release date Release date 5/8/2012
Level Level Intermediate
Runtime Runtime 6h 12m
Closed captioning Closed captioning N/A
Transcript Transcript N/A
eBooks / courseware eBooks / courseware N/A
Hands-on labs Hands-on labs N/A
Sample code Sample code Included
Exams Exams Included


Enterprise Solutions
Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

This course builds on the introduction to MonoTouch course. After learning the foundation of iOS programming with MonoTouch, you will explore some of the new features that Apple has added to iOS and how to utilize these features in MonoTouch. The course will be going through the fundamentals to working examples of these concepts and features.

Prerequisites

You should already be familiar working with MonoTouch and Xcode on a Mac.

Learning Paths

This course is part of the following LearnNowOnline SuccessPaths™:
Mobile Development Using Xamarin

Meet the expert

Martin Bowling Martin Bowling is a mobile developer at Digital Relativity. He has been building apps and lending a hand in the marketing arena for over 13 years. Martin has consulted for several Fortune 500 companies and some of the top educational institutions in America. Last summer, he co-authored a book that was published by Wrox: Professional entitled iPhone Programming with MonoTouch and .NET/C#.


Course outline



Module 1

Intro to MonoTouch.Dialog (15:28)
  • Introduction (02:02)
  • What is MonoTouch.Dialog (00:39)
  • Why MonoToch.Dialog (00:33)
  • The Two Approaches In MT.D (01:16)
  • Getting To Know MT.D (00:35)
  • Meet DialogViewController (00:40)
  • Meet RootElement (00:38)
  • More About RootElement (00:25)
  • Meet Section (01:05)
  • Meet Elements (00:30)
  • Element Values (00:43)
  • Meet StringElement (00:29)
  • StringElement As A Button (00:16)
  • Demo: MonoTouch.Dialog (03:05)
  • Demo: StringElment (02:09)
  • Summary (00:17)
MonoTouch.Dialog Elements (18:23)
  • Introduction (00:29)
  • Meet StyledStringElement (00:32)
  • More On StyledStringElement (00:38)
  • Demo: StyledStringElement (05:27)
  • Meet MultilineElement (00:21)
  • Demo:MultilineElement (03:34)
  • Meet StyledMultilineElement (00:31)
  • Demo: StyledMultilineElement (02:44)
  • Meet EntryElement (00:43)
  • More About EnetryElement (01:39)
  • Demo: EntryElement (01:28)
  • Summary (00:12)
MonoTouch.DialogDataElements (13:54)
  • Introduction (00:36)
  • Meet BooleanElement (00:18)
  • Meet BooleanImageElement (00:18)
  • Meet CheckBoxElement (00:34)
  • Demo: Code for Elements (01:03)
  • Meet RadioElement (00:57)
  • More About RadioElement (00:14)
  • Demo: RadioElement (01:18)
  • Meet BadgeElement (00:30)
  • More About BadgeElement (00:25)
  • Demo: BadgeElement (01:31)
  • Meet FloatElement (00:44)
  • Demo: FloatElement (00:48)
  • Meet ActivityElement (00:26)
  • Demo: ActivityElement (01:11)
  • Date and Time Elements (00:53)
  • More Date and Time Elements (00:20)
  • Demo: Date and Time Elements (01:29)
  • Summary (00:12)

Module 2

Advanced Elements (28:31)
  • Introduction (00:38)
  • Meet HTMLElement (00:28)
  • Demo: HTMLElement (00:55)
  • Meet MessageElement (00:40)
  • More About MessageElement (00:31)
  • Demo: MessageElement (02:25)
  • Meet LoadMoreElement (00:58)
  • Demo: LoadMoreElement (02:36)
  • Meet OwnerDrawnElement (01:21)
  • Demo: OwnerDrawnElement (02:22)
  • Meet UIViewElement (01:13)
  • Demo: UIViewElement (01:56)
  • Meet JSONElement (00:38)
  • Demo: JSONElement (02:11)
  • Meet Pull-to-Refresh (01:03)
  • Demo: Pull-to-Refresh (02:14)
  • Meet Search Support (00:37)
  • More About Search Support (00:44)
  • Demo: Search Support (00:53)
  • Meet Your Custom Elements (00:21)
  • Inheriting From ExistingElement (00:47)
  • Totally Custom Elements (01:34)
  • More On Custome Elements (00:55)
  • Summary (00:19)
Expense Demo (13:01)
  • Introduction (00:30)
  • Demo: MonoTouchDialog (03:28)
  • Demo: doSaveExpense (02:44)
  • Demo: Low Level API (04:36)
  • Demo: Run in Simulator (01:27)
  • Summary (00:14)
Twitter Integration (11:42)
  • Introduction (00:37)
  • Twitter Integration (00:27)
  • Granting Twitter Permissions (00:16)
  • But There is No Account (00:12)
  • Twitter Setup (00:11)
  • Be Nice to Your Users (00:35)
  • Two Ways To Tweet (00:33)
  • TWTweetComposeViewController (01:19)
  • What Does This Look Like (00:16)
  • Did They Send Or Cancel? (00:31)
  • What If The Tweet Fails? (00:26)
  • Demo: TWTCVController (04:19)
  • Demo: Emulator (01:34)
  • Summary (00:20)
Twitter Authentication (11:08)
  • Introduction (00:36)
  • What About Authentication? (00:37)
  • ACAccountStore (00:22)
  • More ACAccountStore (00:55)
  • Demo:ACAccountStore (04:41)
  • Demo: Load Twitter Account (03:43)
  • Summary (00:12)

Module 3

TWRequest (32:06)
  • Introduction (00:34)
  • TWRequest (00:49)
  • TWRequestHandler (01:22)
  • Explore the Twitter API (00:19)
  • Demo: Send a Tweet (02:47)
  • Demo: Send Tweet Function (03:01)
  • Demo: Preform Request (02:23)
  • Demo: TWRequest Method (01:01)
  • Demo: Building UI (01:34)
  • Demo: TW ViewController (02:29)
  • Demo: Timeline Function (04:32)
  • Demo: Search with API (04:22)
  • Demo: doTwitterSearch (04:11)
  • Demo: Run in Simulator (02:17)
  • Summary (00:16)
Using UI Page View Controller (13:53)
  • Introduction (00:44)
  • UIPageViewController (00:17)
  • Setting Up UIPageViewControl (00:28)
  • Spine Location (00:37)
  • Setting the View Controllers (00:37)
  • Next Page, Previous Page? (00:26)
  • Implementing the Delegates (00:29)
  • Demo: UIPageViewController (01:31)
  • Demo: Custom View (02:24)
  • Demo: Photo Book (02:39)
  • Demo: Next and Previous (02:27)
  • Demo: Run in Simulator (00:58)
  • Summary (00:12)
Data using Text Files (11:34)
  • Introduction (00:38)
  • What are Our Options (00:32)
  • Just Like on the Desktop (00:20)
  • Where do We Have Access (00:33)
  • We Have a Path Now What (00:21)
  • Want Binary Data Instead (00:08)
  • Our Documents Folder (00:37)
  • Demo: SimpleText Files (03:06)
  • Demo: Uneven Rows (01:01)
  • Demo: IO Functions (01:32)
  • Demo: Writing Data (01:09)
  • Demo: Run in Simulator (01:18)
  • Summary (00:14)

Module 4

Data Using Binary Formatter (14:15)
  • Introduction (00:33)
  • Storing Data (00:48)
  • What if You Need More (00:26)
  • Lets Serialize This Class (00:36)
  • How About Deserializing (00:36)
  • Demo: Binary Formatter (02:21)
  • Demo: Creating the UI (03:07)
  • Demo: Deserialize Data (04:25)
  • Demo: Run in Simulator (01:08)
  • Summary (00:12)
Data Using Serialized XML (13:58)
  • Introduction (00:39)
  • Serialization With XML (00:28)
  • Lets Get Started (00:20)
  • XML Serializer (00:43)
  • More About Serialize Method (00:34)
  • Deserialize XML (00:28)
  • Demo: XML Serialization (01:00)
  • Demo: Data Model Class (01:40)
  • Demo: Helper Function (01:56)
  • Demo: Deserialize Data (01:09)
  • Demo: Read & Write Function (00:41)
  • Demo: Serialize Helper (01:31)
  • Demo: Deserialize Helper (01:10)
  • Demo: Run in Simulator (01:19)
  • Summary (00:12)
Data with SQL Lite-Net (21:57)
  • Introduction (00:32)
  • What is SQLite-net (00:30)
  • More About SQLite-net (01:13)
  • How Does This Thing Work (00:59)
  • Creating Your Tables (00:39)
  • Tables in SQLite-net (00:20)
  • Queries in SQLite-net (00:19)
  • Insert in SQLite-net (00:23)
  • Demo: SQLite-net (00:31)
  • Demo: Add Instance of SQLite (01:37)
  • Demo: Create Database (01:06)
  • Demo: Call Create Table (01:39)
  • Demo: Static Class (01:29)
  • Demo: Expense ListView (01:00)
  • Demo: Create Data Section (02:21)
  • Demo: String Element (01:43)
  • Demo: UI Components (01:28)
  • Demo: Create Root Element (01:50)
  • Demo: Run in Simulator (01:47)
  • Summary (00:21)
Introduction To Core Image (17:59)
  • Introduction (00:49)
  • What is CoreImage (00:33)
  • CoreImage Filters (01:12)
  • CoreImage Class Overview (00:40)
  • Basic Image Filtering (00:57)
  • Get Images Back From CIContext (00:36)
  • CoreImage Resources (00:27)
  • GPU vs CPU (00:45)
  • Demo: Image Filtering (03:29)
  • Demo: UI Work (01:45)
  • Demo: Create Image Preview (02:37)
  • Demo: Adjust Image Function (01:21)
  • Demo: Output from Controls (00:55)
  • Demo: Run in Simulator (01:28)
  • Summary (00:17)

Module 5

Core Image Face Detection (15:02)
  • Introduction (00:50)
  • Face Detection (00:38)
  • What if a Face is Detected (01:10)
  • Demo: Face Detection (00:32)
  • Demo: Image View (01:40)
  • Demo: Override Draw (01:58)
  • Demo: DialogViewController (01:19)
  • Demo: UI Creation (01:56)
  • Demo: FaceDetection Routine (03:43)
  • Demo: Run in Simulator (01:01)
  • Summary (00:10)
Going Retro with Core Image (14:37)
  • Introduction (00:42)
  • Retro With CoreImage (00:18)
  • Apps Have in Common (00:22)
  • How Do They Do It (00:23)
  • Underneath The Hood (00:24)
  • More Underneath The Hood (00:15)
  • CoreImage Funhouse (01:00)
  • Demo: Retro Camera (01:04)
  • Demo: RetroEffectsView (02:09)
  • Demo: CreateImagePreview Func (01:23)
  • Demo: Effects (03:04)
  • Demo: Image Output (01:12)
  • Demo: Run in Simulator (01:53)
  • Summary (00:19)
Introduction To Multitasking (25:13)
  • Introduction (00:23)
  • Multitasking In iOS (00:35)
  • We Now Have Multitasking But... (00:38)
  • Detecting Any Application State (00:47)
  • More on Application State (01:13)
  • Two Events? (00:23)
  • UIApplication (00:49)
  • Not Every Device (00:39)
  • Be Sure To Check For Support (00:49)
  • Demo: Multitasking (02:31)
  • Demo: Events in the Background (03:41)
  • Beyond UIApplication Delegate (02:32)
  • Demo: NSNotification Center (03:10)
  • Demo: ApplicationStateObservers (03:20)
  • Demo: Run in Simulator (03:24)
  • Summary (00:12)
Code in the Background (17:45)
  • Introduction (00:45)
  • How To Use These Methods (00:59)
  • Running Code in Background (00:36)
  • Can We Prevent Being Suspended (00:37)
  • Starting A Background Task (00:54)
  • More On Background Tasks (01:39)
  • Things to Remember (00:55)
  • Demo: Running In The Background (03:41)
  • Demo: Background Observer (04:28)
  • Demo: Long Running Process (02:49)
  • Summary (00:15)

Module 6

Playing Background Audio (10:41)
  • Introduction (00:34)
  • Playing Audio In The Background (00:40)
  • More Audio in the Background (00:44)
  • AVAudioSession Categories (02:04)
  • Demo: Playing Background Audio (02:34)
  • Demo: Play Audio Function (03:50)
  • Summary (00:12)
Network Connections (07:58)
  • Introduction (00:38)
  • Keeping Network Connection Alive (00:33)
  • SetKeepAliveTimeOut (00:47)
  • Keep Alive Handler (00:30)
  • One More Thing... (00:43)
  • Demo: SetKeepAliveTimeOut (04:31)
  • Summary (00:12)
Binding Objective-C Types (16:19)
  • Introduction (00:41)
  • Binding Objective-C Libraries (00:33)
  • Binding C APIs (01:18)
  • How to Bind an API (00:51)
  • Producing the Binding (00:50)
  • API Definition File (00:25)
  • Combining The Files (00:39)
  • Building The Binding (00:23)
  • After Adding The Native Library (00:43)
  • More On API Definition (00:42)
  • Binding Methods (00:28)
  • More On Binding Methods (00:12)
  • Null Parameters (00:09)
  • Binding Properties (01:19)
  • Binding Constructors (01:17)
  • Binding Protocols (00:25)
  • Binding Class Extensions (00:21)
  • Objective-C Types to C# (01:22)
  • Memory Management Attributes (00:46)
  • Binding Fields (00:53)
  • Linking The Dependencies (00:55)
  • The Basics Of Binding (00:45)
  • Summary (00:12)
Facebook (15:15)
  • Introduction (00:41)
  • Demo: Objective C Libraries (02:07)
  • Demo: Facebook Binding Enums (04:19)
  • Demo: Facebook User Likes (04:22)
  • Demo: Facebook Connect Functions (03:28)
  • Summary (00:16)
Real World Binding Samples (11:59)
  • Introduction (00:42)
  • Demo: Flurry Analytics (03:19)
  • Demo: Flurry App Circles (03:52)
  • Demo: Atomic HUD (03:49)
  • Summary (00:14)