SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Bring Your iPhone Apps and Skills to Windows Phone 7—or Build Apps for Both Mobile Platforms at Once
If you’ve been developing for the crowded iPhone marketplace, this book will help you leverage your iOS skills on a fast-growing new platform: Windows Phone 7 (WP7). If you’re a .NET programmer, it will help you build advanced WP7 mobile solutions that reflect valuable lessons learned by iPhone developers. If you’re a mobile development manager, it offers indispensable insights for planning cross-platform projects.
Kevin Hoffman guides you through the entire WP7 SDK, showing how it resembles Apple’s iOS SDK, where it differs, and how to build production-quality WP7 apps that sell. Step by step, you’ll master each technology you’ll need, including C#, Silverlight and XAML. Every new concept is introduced along with all the tools and background needed to apply it.
Hoffman’s practical insights extend into every facet of WP7 development: building user interfaces; hardware and device services; WP7’s unique Application Tiles; Push Notifications; the Phone Execution Model, local storage, smart clients, MVVM design, security, social gaming, testing, debugging, deployment, and more. A pleasure to read and packed with realistic examples, this is the most useful Windows Phone 7 development book you can find.
·¿¿¿¿¿¿¿¿ Compare Apple’s Objective-C and Microsoft’s C#: “second cousins twice removed”
·¿¿¿¿¿¿¿¿ Apply C# object techniques—including encapsulation, inheritance, contracts, and interfaces
·¿¿¿¿¿¿¿¿ Build rich, compelling user interfaces based on Silverlight, XAML, and events
·¿¿¿¿¿¿¿¿ Move from Apple’s Xcode to Visual Studio 2010 and from Interface Builder to Expression Blend
·¿¿¿¿¿¿¿¿ Leverage hardware and device services, including the accelerometer, GPS, photos, contacts, e-mail, and SMS
·¿¿¿¿¿¿¿¿ Create dynamic application Tiles to appear on the Start screen
·¿¿¿¿¿¿¿¿ “Push” raw data notifications to running apps
·¿¿¿¿¿¿¿¿ Understand and use the Windows Phone 7 phone execution model
·¿¿¿¿¿¿¿¿ Efficiently store and retrieve data on WP7 phones
·¿¿¿¿¿¿¿¿ Build “smart clients” that sync locally stored data with web services
·¿¿¿¿¿¿¿¿ Manage growing app complexity through “separation of concerns” and MVVM (Model-View-View Model)
·¿¿¿¿¿¿¿¿ Use TDD and automated testing to accelerate and streamline development
·¿¿¿¿¿¿¿¿ Create casual, connected games and social apps
·¿¿¿¿¿¿¿¿ Secure apps without incurring unacceptable tradeoffs
·¿¿¿¿¿¿¿¿ Successfully deploy apps to the Marketplace
Chapter 1: Introduction 1
Who Are You and Why Should I Care? 1
Why Should I Read This Book? 2
What’s in This Book? 3
Chapter 2: C# and Objective-C: Second Cousins Twice Removed 9
The Origin of Objective-C 9
The Origin of C# 10
Language Basics 11
Core Syntax 11
Method Calls and Message Passing 14
Memory Management 15
Reference Counting and Object Ownership 15
Garbage Collection 16
Cleaning Up After Yourself–Object Finalization 18
Chapter 3: Object-Oriented Programming 21
Why OOP? 21
Building a Class 22
Encapsulating Data 23
Adding Behavior 26
Inheritance 28
Programming with Contracts 32
Namespaces Versus Naming Conventions 35
Extending Other People’s Classes 35
Chapter 4: Event-Driven Programming 39
What Is Event-Driven Programming? 39
Using the Delegate Pattern in Objective-C 40
Using Events in C# 42
Global Events and NSNotifications 46
Chapter 5: Rendering and View System Basics 51
Review of the UIKit View System 51
Displaying Graphics and Rendering in iOS 52
Introduction to XAML and Silverlight 53
Introduction to Silverlight Layout and Rendering 55
The Two-Pass Mantra: Measure and Arrange 55
Chapter 6: From Xcode to Visual Studio 59
Xcode and iOS Application Development 59
Getting Started with Visual Studio 2010 62
Introduction to Visual Studio 2010 63
Chapter 7: Introducing Expression Blend 69
Overview of Apple’s Interface Builder 69
Introduction to Expression Blend 72
Blend Tutorial–Working with Visual States 76
Chapter 8: Using Basic UI Elements 83
Using the Basic Controls 83
Using Text Blocks 84
Accepting User Input with TextBoxes 86
Working with Buttons 88
Accepting Other Forms of User Input 91
Displaying Images 93
Using a Basic List Box 94
Performing Basic Animations 97
Introduction to Layout in Silverlight 100
Painting on Canvas 100
Working with the StackPanel 101
Using the Grid Control 101
Chapter 9: Using Advanced UI Elements 105
Migrating from Navigation Bars 105
Using the Silverlight Navigation System 107
Spicing Up Navigation Events with Animation 111
Migrating from Tab Bar Applications 115
Using the Pivot Control 115
Using a Panorama Application 118
Using the Application Bar 120
Chapter 10: Using Hardware and Device Services 125
Review of Device Capabilities 125
Using Launchers 127
Using the Save Phone Number Task 128
Using the Save Email Address Task 129
Using the Search Task 130
Launching a Web Browser 131
Launching the Media Player 131
Launching the Phone Application 132
Sending a Text Message 132
Composing an Email Message 133
Using Choosers 133
Using the Phone Number Chooser Task 134
Using the Email Address Chooser Task 134
Choosing or Capturing Photos on the Device 135
Using Hardware Services and Sensors 136
Controlling Vibration 136
Accessing a Radio Tuner 137
Using the Accelerometer 138
Using the GPS 141
Chapter 11: Introduction to Application Tiles 145
What Is a Tile? 145
Creating Your First Tile 147
Working with Tile Schedules 148
Using Remote Background Images 151
Chapter 12: Using Push Notifications 153
Review of Apple Push Notification Services (APNS) 153
WP7 Push Notifications Overview 155
Using Toast Notifications 156
Using Raw Notifications 162
Using Tile Notifications 165
Chapter 13: The Phone Execution Model 169
Multitasking on iOS 4 169
Introducing the Phone Execution Model 171
Application Life Cycle Walkthrough 171
Managing Application and Page State 175
Chapter 14: Local Storage on the Phone 181
Core Data on the iPhone 181
Reading and Writing Local Data with WP7 184
Isolated Storage 101 185
Building a Storage-Backed Databound Application 186
Chapter 15: Building Smart Clients 197
Consuming RESTful Services 197
Why LINQ to XML Is Your New Best Friend 198
Consuming WCF Services 204
Chapter 16: Separating Your Concerns 207
A Brief History of MVC 208
Introduction to MVVM 211
Working with MVVM Light for WP7 212
Building a View Model 213
Yes, But Will It Blend? 218
Working with Commands 220
Sending Messages with MVVM Light 223
Look Ma, No Code-Behind! 225
Using Service Providers 227
The AutoMapper 230
Chapter 17: Unit Testing and TDD 233
What Is Test-Driven Development? 233
Red, Green, Refactor 234
Mocks and Stubs 235
Unit Testing iOS Applications 237
Logic Testing 238
Application Testing 239
Unit Testing Windows Phone 7 Applications 239
Working with nUnit 240
Working with the Silverlight Unit Test Framework 241
Mocking and Stubbing 246
Arrange, Act, Assert 248
Refactor. Again. 250
Chapter 18: Building Connected Social Games 253
Features of Connected Mobile Gaming Platforms 254
Lobbies and Matchmakers 254
Leaderboards and Achievements 255
Turn-Based Game Play 256
Real-Time Multiplayer Gaming 257
Overview of Apple’s Game Center and GameKit API 257
Achievements 257
Leaderboards 258
Networking API 258
In-Game Voice Chat 259
Connected Gaming Options for WP7 259
Lobbies and Matchmakers 259
Leaderboards and Achievements 261
Turn-Based Game Play 263
Real-Time Multiplayer Gaming 264
Chapter 19: Securing WP7 Applications 267
What Is a Secure Application? 267
A Fool and His Money 268
WP7 Secure by Default 269
Protecting Data 270
Protecting Intellectual Property 275
Chapter 20: Debugging and Troubleshooting 279
Debugging and Tuning iOS Applications 279
Debugging 101 280
Debugging Windows Phone 7 Applications 281
Using Breakpoints 281
Logging and the Debug Class 284
Using Static Analysis 285
Chapter 21: Deploying Applications to the Marketplace 289
Introducing Zombie Apocalypse Trainer 289
Registering and Deploying to Test Devices 292
Prepping Your Application for Submission 294
Submitting an App to the Marketplace 296
Earning Money with the Mobile Advertising SDK 300
Index 301