Learning WatchKit Programming. Second Edition

Size: px
Start display at page:

Download "Learning WatchKit Programming. Second Edition"

Transcription

1

2 Learning WatchKit Programming Second Edition

3 Addison-Wesley Learning Series Visit informit.com/learningseries for a complete list of available publications. The Addison-Wesley Learning Series is a collection of hands-on programming guides that help you quickly learn a new technology or language so you can apply what you ve learned right away. Each title comes with sample code for the application or applications built in the text. This code is fully annotated and can be reused in your own projects with no strings attached. Many chapters end with a series of exercises to encourage you to reexamine what you have just learned, and to tweak or adjust the code as a way of learning. Titles in this series take a simple approach: they get you going right away and leave you with the ability to walk off and build your own application and apply the language or technology to whatever you are working on.

4 Learning WatchKit Programming A Hands-On Guide to Creating watchos 2 Applications Second Edition Wei-Meng Lee Boston Columbus Indianapolis New York San Francisco Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto Delhi Mexico City Sao Paulo Sidney Hong Kong Seoul Singapore Taipei Tokyo

5 Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at corpsales@pearsoned.com or (800) For government sales inquiries, please contact governmentsales@pearsoned.com. For questions about sales outside the United States, please contact international@pearsoned.com. Visit us on the Web: informit.com/aw Library of Congress Control Number: Copyright 2016 Pearson Education, Inc. All rights reserved. Printed in the United States of America. This publication is protected by copy-right, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, request forms and the appropriate contacts within the Pearson Education Global Rights & Permissions Department, please visit Apple, the Apple logo, Apple TV, Apple Watch, Cocoa, Cocoa Touch, emac, FaceTime, Finder, ibook, ibooks, ical, Instruments, ipad, ipad Air, ipad mini, iphone, iphoto, itunes, the itunes logo, iwork, Keychain, Launchpad, Lightning, LocalTalk, Mac, the Mac logo, MacApp, MacBook, MacBook Air, MacBook Pro, MacDNS, Macintosh, Mac OS, Mac Pro, MacTCP, the Made for ipad logo, the Made for iphone logo, the Made for ipod logo, Metal, the Metal logo, the Monaco computer font, MultiTouch, the New York computer font, Objective-C, OpenCL, OS X, Passbook, Pixlet, PowerBook, Power Mac, Quartz, QuickDraw, QuickTime, the QuickTime logo, Retina, Safari, the Sand computer font, Shake, Siri, the Skia computer font, Swift, the Swift Logo, the Textile computer font, Touch ID, TrueType, WebObjects, WebScript, and Xcode are trademarks of Apple, Inc., registered in the United States and other countries. OpenGL and the logo are registered trademarks of Silicon Graphics, Inc. Intel, Intel Core, and Xeon are trademarks of Intel Corp. in the United States and other countries. ISBN-13: ISBN-10: X Text printed in the United States on recycled paper at RR Donnelley in Crawfordsville, Indiana. First printing, December 2015 Editor-in-Chief Mark L. Taub Senior Acquisitions Editor Trina MacDonald Development Editor Sheri Replin Managing Editor John Fuller Full-Service Production Manager Julie B. Nahil Copy Editor Barbara Wood Indexer Jack Lewis Proofreader Anna Popick Technical Reviewers Mark H. Granoff Chaim Krause Niklas Saers Editorial Assistant Olivia Basegio Cover Designer Chuti Prasertsith Compositor The CIP Group

6 I dedicate this book with love to my family, and to my dearest wife, who has had to endure my irregular work schedule and take care of things while I was trying to meet writing deadlines!

7 This page intentionally left blank

8 Contents at a Glance Preface xiii Acknowledgments About the Author xvii xix 1 Getting Started with WatchKit Programming 1 2 Apple Watch Interface Navigation 17 3 Responding to User Actions 49 4 Displaying and Gathering Information 73 5 Accessing the Apple Watch Hardware Programming Complications Interfacing with ios Apps Displaying Notifications Displaying Glances 237 Index 253

9 This page intentionally left blank

10 Contents Preface xiii Acknowledgments About the Author xvii xix 1 Getting Started with WatchKit Programming 1 Specifications of the Apple Watch 1 Getting the Tools for Development 2 Understanding the WatchKit App Architecture 3 Deploying Apple Watch Apps 4 Interaction between the Apple Watch and iphone 5 Types of Apple Watch Applications 6 Hello, World! 7 Creating an iphone Project 7 Examining the Storyboard 10 WatchKit App Lifecycle 10 Modifying the Interface Controller 13 Running the Application on the Simulator 13 Summary 15 2 Apple Watch Interface Navigation 17 Interface Controllers and Storyboard 17 Lifecycle of an Interface Controller 19 Navigating between Interface Controllers 22 Hierarchical Navigation 23 Page-Based Navigation 26 Passing Data between Interface Controllers 27 Customizing the Title of the Chevron or Cancel Button 33 Navigating Using Code 34 Presenting a Series of Pages 37 Changing the Current Page to Display 39 Returning Data from an Interface Controller 42 Summary 48

11 x Contents 3 Responding to User Actions 49 Using the Tap Gesture to Interact with Controls 49 Button 50 Switch 62 Slider 65 Alerts and Action Sheets 68 Summary 72 4 Displaying and Gathering Information 73 Displaying Information 73 Label 73 Image 74 Table 80 Picker 90 Playing Media Files 100 Gathering Information 106 Getting Text Inputs 106 Getting Emojis 109 Laying Out the Controls 111 Force Touch 115 Displaying a Context Menu 115 Adding Menu Items Programmatically 121 Summary Accessing the Apple Watch Hardware 125 Making Phone Calls and Sending Messages 125 Recording Audio 127 Digital Crown 130 Accelerometer 131 Taptic Engine 134 Summary Programming Complications 137 Introducing the ClockKit Framework 138 Placement for Complications 139 Using the Template Classes 140

12 Contents xi Building a Movie Showtime Complication Example 141 Creating the Project 141 Selecting Complication Families Support 143 Creating the Complication Placeholder Template 143 Setting Privacy Behavior 149 Populating the Complications with Real Data 150 Time Travel 154 Setting the Refresh Frequency 159 Summary Interfacing with ios Apps 161 Introducing the Watch Connectivity Framework 161 Types of Communication 162 Using the Watch Connectivity Framework 165 Comparing the Different Modes 183 Connecting to the Outside World 185 Getting Location Data 185 Display Map 192 Accessing Web Services 194 Saving Data 198 Creating the Project 198 Writing to Files 199 Using NSUserDefaults 202 Summary Displaying Notifications 205 What Is a Notification? 205 Types of Notifications on the Apple Watch 208 Implementing the Short-Look Interface 209 Implementing the Long-Look Interface 225 Summary Displaying Glances 237 What Is a Glance? 237 Implementing Glances 238 Customizing the Glance 240 Testing the Glance 244

13 xii Contents Making the Glance Useful 244 Implementing Background Fetch 245 Updating the Glance 249 Summary 252 Index 253

14 Preface Welcome to Learning WatchKit Programming, Second Edition! This is an exciting time to be a programmer, as we are witnessing a new era of wearables. Although the Apple Watch is not the first wearable device in the market, its launch signified the intention of Apple to enter the wearable market in a big way. After successfully changing various industries music, computer, phone, and mobile computing Apple looks set to change the wearable industry. And nobody is taking this lightly. As with the iphone, much of the usefulness and functionality of the Apple Watch device actually come from the creativity of the third-party developers. In the early days of the iphone, Apple restricted all third-party apps to web applications, as it wanted to retain the monopoly on developing natively for the device. However, due to the overwhelming protests of developers, Apple finally relented by releasing an SDK to support third-party apps. It was this decision that changed the fate of the iphone; the iphone would never have been so successful without the ability to support third-party apps. When the Apple Watch was announced, Apple was quick to learn its lesson and realized that the success of the Apple Watch largely depends on the availability of apps that support it. Hence, before the release of the Apple Watch, the SDK was made available to developers to have a hand in developing Apple Watch apps. Barely two months after the Apple Watch was made available for sale, Apple announced the second version of the Apple Watch OS, aptly named watchos 2. Unsurprisingly, watchos 2 now supports native apps and comes with a slew of new features. The book you are holding in your hands right now (or reading on your phone or tablet) is a collection of tutorials that help you navigate the jungle of Apple Watch programming. This book contains all the fundamental topics that you need to get started in Apple Watch programming. In particular, this second edition has been fully updated to cover watchos 2 programming. Because this is a book on Apple Watch programming, I make a couple of assumptions about you, the reader: n n You should already be familiar with the basics of developing an ios application. In particular, concepts like outlets and actions should not be new to you. You should be comfortable with the Swift programming language, but see the next section on how to get started with Swift if you are new to it. xiii

15 xiv Preface What You ll Need To get the most out of this book, note the following: n n n n n n n You need a Mac, together with Xcode. Your Mac should be running at least Mac OS X Yosemite (v10.10) or later. You can download the latest version of Xcode from the Mac App Store. All of the code samples for this book have been tested against Xcode 7. If you plan to test your apps on a real device, you need to register to become a paying Apple developer ( The program costs $99 per year for individuals. Once registered, you can register your Apple Watch s UDID with Apple (necessary for testing on Apple Watch). The Apple Watch works only with iphone 5, iphone 5c, iphone 5s, iphone 6, iphone 6 Plus, iphone 6s, and iphone 6s Plus (or newer versions of the iphones). Most of the code samples in this book can be tested and run on the iphone Simulator without the need for a real device or Apple Watch. However, for some code examples, you need access to a real Apple Watch (for example, to access the hardware features like accelerometer, microphone, etc.). A number of examples in this book require an Internet connection in order to work, so ensure that you have an Internet connection when trying out the examples. All of the examples in this book are written in Swift 2.0. If you are not familiar with Swift, you can refer to Apple s web page on Swift at swift/resources/. How This Book Is Organized This book is styled as a tutorial. You try out the examples as I explain the concepts. This is a proven way to learn a new technology, and I strongly encourage you to type in the code as you work on the examples. n n Chapter 1, Getting Started with WatchKit Programming : In this chapter, you learn about the architecture of Apple Watch applications and how it ties in with your ios apps. Most importantly, you get your chance to write a simple Apple Watch app and deploy it onto the Apple Watch Simulator. Chapter 2, Apple Watch Interface Navigation : In this chapter, you dive deeper into how your Apple Watch application navigates between multiple screens. You get to see how data is passed between screens and how to customize the look and feel of each screen.

16 Preface xv n Chapter 3, Responding to User Actions : Designing the user interface (UI) for your Apple Watch application is similar to designing for iphone apps. However, space is at a premium on the Apple Watch, and every millimeter on the screen must be put to good use in order to convey the exact intention of your app. In this chapter, you learn how to use the various UI controls in the Apple Watch to build your application. You will start off with the controls with which the user interacts. n Chapter 4, Displaying and Gathering Information : While Chapter 3 covers the various controls with which the user interacts through the tap gesture, this chapter continues to explore the various controls available in the WatchKit framework, focusing on controls that display information, as well as controls that gather information. n Chapter 5, Accessing the Apple Watch Hardware : In watchos 1, Apple did not provide third-party developers access to the various hardware features of the Apple Watch, such as accelerometer, microphone, and Taptic Engine. However, in watchos 2, Apple has exposed some of these features to developers so that they can create more exciting watch apps. In this chapter, you learn how to access some of these hardware features and see how they can be useful to the apps you are building. n Chapter 6, Programming Complications : A complication is a function on a timepiece that does more than just tell the time. Complications on a timepiece include alarms, tachymeters, chronographs, calendars, and so on. In watchos 2, third-party apps can now also display data in watch face complications. In this chapter, you learn the process of creating an application that displays complication data. n Chapter 7, Interfacing with ios Apps : This chapter discusses the Watch Connectivity Framework, a set of APIs that allow the containing ios app to communicate with the watch app (and vice versa). In addition to discussing how apps intercommunicate, this chapter also discusses how to use location services in your watch app, as well as how to consume web services. Last, but not least, this chapter ends with a discussion on persisting data on your watch. n Chapter 8, Displaying Notifications : In this chapter, you learn how to display notifications on your Apple Watch. Notifications received by the iphone are sent to the Apple Watch, and you have the chance to customize the notifications so that you can display their essence quickly to the user. n Chapter 9, Displaying Glances : Glances on the Apple Watch provide the user a quick way to gather information from apps. For example, Instagram s glance on the Apple Watch may show the most recently shared photo, and Twitter may show the latest trending tweets. In this chapter, you learn how to implement glances for your own apps.

17 xvi Preface About the Sample Code The code samples in this book are written to provide the simplest way to understand core concepts without getting bogged down with details like beautifying the UI or detailed error checking. The philosophy is to convey key ideas in the simplest manner possible. In real-life apps, you are expected to perform detailed error handling and to create a user-friendly UI for your apps. Although I do provide several scenarios in which a certain concept is useful, it is ultimately up to you, the reader, to exercise your creativity to put the concepts to work, and perhaps create the next killer app. Getting the Sample Code To download the sample code used in this book, visit the book s web page on informit.com at click the Extras tab, and register your book. Contacting the Author If you have any comments or questions about this book, drop me an at weimenglee@learn2develop.net, or stop by my web site at

18 Acknowledgments Writing a book on emerging technology is always an exciting and perilous journey. On one end, you are dealing with the latest developments, going where not many have ventured, and on the other end you are dealing with many unknowns. To endure this journey, you need a lot of help and family support. I want to take this opportunity to thank the people who make all this happen. I am indebted to Trina MacDonald, senior acquisitions editor at Pearson, for giving me the chance to work on this book. She has always been supportive of my proposals for new titles, and I am really glad that we have the chance to work together on this project. Thank you very much for the opportunity and guidance, Trina! I hope I did not disappoint you. I want to thank the many heroes working behind the scenes copy editor Barbara Wood; production editor Julie Nahil; and technical reviewers Mark H. Granoff, Chaim Krause, and Niklas Saers for turning the manuscript into a book that I am proud of! Last, but not least, I want to thank my family for all the support that they have always given me. Without their encouragement, this book would never have been possible. xvii

19 This page intentionally left blank

20 About the Author Wei-Meng Lee is a technologist and founder of Developer Learning Solutions ( a technology company specializing in hands-on training on the latest web and mobile technologies. Wei-Meng speaks regularly at international conferences and has authored and coauthored numerous books on.net, XML, Android, and ios technologies. He writes extensively for informit.com and mobiforge.com. xix

21 This page intentionally left blank

22 3 Responding to User Actions If you haven t found it yet, keep looking. Don t settle. As with all matters of the heart, you ll know when you find it. And like any great relationship, it just gets better and better as the years roll on. Steve Jobs Designing the user interface (UI) for your Apple Watch application is similar to designing for the iphone. However, space is at a premium on the Apple Watch, and every millimeter on the screen must be put to good use in order to convey the exact intention of your app. The UI of an Apple Watch application is represented by various controls (commonly known as views in ios programming), and they are divided into two main categories: n n Responding to user actions: Users directly interact with these controls to perform some actions. Examples of such controls are Button, Switch, Slider, Picker, and Table. Displaying information: These controls mainly display information to the user. Examples of such controls are Label, Image, and Table. In this and the next chapter, you learn how to use these various controls to build the UI of your application. Using the Tap Gesture to Interact with Controls One key way to interact with the Apple Watch is to use the tap gesture. You can tap the following controls: n n n n Button Switch Slider Table

23 50 Chapter 3 Responding to User Actions Let s take a more detailed look at these objects! Note I cover the Table control in the next chapter where we discuss controls that display information. Button The Button control is the most direct way of interacting with an Apple Watch application. A button can display text as well as a background image. Tapping a button triggers an action on the Interface Controller where you can write the code to perform the appropriate action. Adding a Button to an Interface Controller In this section, you create a project that uses a Button control. Subsequent sections show you how to customize the button by creating an action for it and then displaying its title using custom fonts. 1. Using Xcode, create a new ios App with WatchKit App project and name it Buttons. Uncheck the option Include Notification Scene so that we can keep the WatchKit project to a bare minimum. 2. Select the Interface.storyboard file to edit it in the Storyboard Editor. 3. Drag and drop a Button control onto the storyboard, as shown in Figure 3.1. Figure 3.1 Adding a Button control to the Interface Controller 4. In the Attributes Inspector window, set the Title attribute to Play (see Figure 3.2).

24 Using the Tap Gesture to Interact with Controls 51 Figure 3.2 Changing the title of the button 5. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. You should see the button on the Apple Watch Simulator (see Figure 3.3). You can click it (or tap it on a real Apple Watch). Figure 3.3 Testing the button on the Apple Watch Simulator Creating an Action for a Button For the Button control to do anything useful, you need to create an action for it so that when the user taps it, your application performs some actions. To create this action, follow these steps: 1. In the Storyboard Editor, select the View Assistant Editor Show Assistant Editor menu item to show the InterfaceController.swift file. 2. Control-click the Button control in the Interface Controller and drag it over the InterfaceController class (see Figure 3.4).

25 52 Chapter 3 Responding to User Actions Figure 3.4 Creating an action for the button 3. Create an action for the button and name it btnplay (see Figure 3.5). Click Connect. Figure 3.5 Naming the action 4. You now see the action created in the InterfaceController.swift file: import WatchKit import Foundation class InterfaceController: WKInterfaceController func btnplay() { } 5. Add the following statement in bold to the InterfaceController.swift func btnplay() { print("the button was tapped!") } 6. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. Click the Play button and observe the statement printed in the Output window (see Figure 3.6).

26 Using the Tap Gesture to Interact with Controls 53 Figure 3.6 Clicking the button fires the action Creating an Outlet for a Button You can also programmatically change the title of the Button control during runtime. To do so, you need to create an outlet for the button: 1. With the Assistant Editor shown, control-click the button and drag it over the InterfaceController.swift file. Name the outlet button1 (see Figure 3.7) and click Connect. Figure 3.7 Creating an outlet for the button 2. This creates an outlet in the InterfaceController.swift file: import WatchKit import Foundation class InterfaceController: WKInterfaceController var button1: func btnplay() { print("the button was tapped!") }

27 54 Chapter 3 Responding to User Actions 3. Add the following statements in bold to the InterfaceController.swift file: override func awakewithcontext(context: AnyObject?) { super.awakewithcontext(context) } // Configure interface objects here. button1.settitle("play Video") Note Observe that, while you can change the title of a button, you cannot get the title of the button programmatically. 4. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. You should now see the title of the button changed to Play Video (see Figure 3.8). Figure 3.8 Changing the title of the button dynamically Displaying Attributed Strings The Button control supports attributed strings. Attributed strings allow you to specify different attributes (such as color, font, size, etc.) for different parts of a string. In the following steps, you display the title of the button using different colors: 1. Add the following statements in bold to the InterfaceController.swift file: override func awakewithcontext(context: AnyObject?) { super.awakewithcontext(context) // Configure interface objects here. // button1.settitle("play Video") let str = NSMutableAttributedString( string: "Hello, Apple Watch!")

28 Using the Tap Gesture to Interact with Controls 55 //------display the Hello in yellow--- str.addattribute(nsforegroundcolorattributename, value: UIColor.yellowColor(), range: NSMakeRange(0, 5)) //---display the, in red--- str.addattribute(nsforegroundcolorattributename, value: UIColor.redColor(), range: NSMakeRange(5, 1)) } //---display Apple Watch! in green--- str.addattribute(nsforegroundcolorattributename, value: UIColor.greenColor(), range: NSMakeRange(7, 12)) button1.setattributedtitle(str) 2. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. You should see the title of the button displayed in multiple colors, as shown in Figure 3.9 (readers of the print book will not see the colors in the figure). Figure 3.9 Displaying the button title with mixed colors Using Custom Fonts Using attributed strings, you can also use different fonts for parts of a string. To illustrate this, let s modify the example in the previous section to display part of the button s title using a custom font. For this example, use the Impact font that is installed on your Mac. The Impact font is represented using the Impact.ttf file located in the /Library/Fonts/ folder. 1. Drag and drop a copy of the Impact.ttf file onto the Extension project in Xcode. 2. You are asked to choose a few options. Select the options shown in Figure This adds the Impact.ttf file onto the Extension and WatchKit App projects.

29 56 Chapter 3 Responding to User Actions Figure 3.10 Adding the font file to the Extension and the WatchKit App Note Remember to add the font file to both the WatchKit Extension and WatchKit App. Also, be aware that adding custom fonts to the project adds considerable size and memory usage to your watch app. So, try to use the system font unless you have a very good reason not to. 3. Figure 3.11 shows the Impact.ttf file in the project. Figure 3.11 The font file in the project

30 Using the Tap Gesture to Interact with Controls Add a new key named UIAppFonts to the Info.plist file located in the Extension and set its Item 0 to Impact.ttf (see Figure 3.12). Note If your Info.plist file does not show the items as shown in Figure 3.12, simply rightclick any of the items in it and select Show Raw Keys/Values. Figure 3.12 Specifying the font filename in the Extension project 5. Likewise, add a new key named UIAppFonts to the Info.plist file located in the WatchKit App and set its Item 0 to Impact.ttf (see Figure 3.13). Figure 3.13 Specifying the font filename in the WatchKit app project

31 58 Chapter 3 Responding to User Actions 6. Add the following statements in bold to the InterfaceController.swift file: } override func awakewithcontext(context: AnyObject?) { super.awakewithcontext(context) // Configure interface objects here. // button1.settitle("play Video") let str = NSMutableAttributedString( string: "Hello, Apple Watch!") //---display the Hello in yellow--- str.addattribute(nsforegroundcolorattributename, value: UIColor.yellowColor(), range: NSMakeRange(0, 5)) //---display Hello using the Impact font, size str.addattribute(nsfontattributename, value: UIFont(name: "Impact", size: 22.0)!, range: NSMakeRange(0, 5)) //---display the, in red--- str.addattribute(nsforegroundcolorattributename, value: UIColor.redColor(), range: NSMakeRange(5, 1)) //---display Apple Watch! in green--- str.addattribute(nsforegroundcolorattributename, value: UIColor.greenColor(), range: NSMakeRange(7, 12)) button1.setattributedtitle(str) 7. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. You should now see Hello displayed using the Impact font (see Figure 3.14). Figure 3.14 Displaying Hello using a custom font

32 Using the Tap Gesture to Interact with Controls 59 Note Once you have added a custom font to your project, you can use the font directly in Interface Builder by setting the Font attribute of a control to Custom and then selecting the font that you want to use in the Family attribute. Getting the Font Name One common problem in dealing with fonts is that the filename of the custom font that you are using is not always the same as the font name. The following code snippet allows you to print out the name of each font family and its corresponding font name: for family in UIFont.familyNames() { print(family) for name in UIFont.fontNamesForFamilyName(family as String) { print("--\(name)") } } This code snippet prints the output as shown in Figure For example, if you want to use the Helvetica Neue font, you have to specify in your code one of the font names printed: HelveticaNeue-Italic, HelveticaNeue-Bold, etc. Figure 3.15 Printing out the font families and their associated font names

33 60 Chapter 3 Responding to User Actions Changing the Background Image of Button Besides displaying text, the Button control can also display a background image. The following exercise shows you how to add an image to the project and use it as the background of a button: 1. Drag and drop the image named play.png onto the Assets.xcassets item in the WatchKit App (see Figure 3.16). Note You can find a copy of this image in the source code download for this book. Figure 3.16 Adding an image to the project 2. In the Attributes Inspector window for the play.png image, check the watchos checkbox (see Figure 3.17, right). Then, move the play.png into the box labeled Figure 3.17 Specifying device-specific images to use

34 Using the Tap Gesture to Interact with Controls 61 2 (see Figure 3.17, middle). This signifies that this image will be displayed for all sizes of Apple Watch. If you want to use different images for the 38mm Apple Watch and the 42mm Apple Watch, you can drag and drop different images onto the boxes labeled 38 mm 2 and 42 mm 2. For this example, you will use the same image for the two different watch sizes. 3. In the InterfaceController.swift file, add the following statements in bold: override func awakewithcontext(context: AnyObject?) { super.awakewithcontext(context) // Configure interface objects here. // button1.settitle("play Video") /* let str = NSMutableAttributedString( string: "Hello, Apple Watch!") //---display the Hello in yellow--- str.addattribute(nsforegroundcolorattributename, value: UIColor.yellowColor(), range: NSMakeRange(0, 5)) //---display Hello using the Impact font, size str.addattribute(nsfontattributename, value: UIFont(name: "Impact", size: 22.0)!, range: NSMakeRange(0, 5)) //---display the, in red--- str.addattribute(nsforegroundcolorattributename, value: UIColor.redColor(), range: NSMakeRange(5, 1)) //---display Apple Watch! in green--- str.addattribute(nsforegroundcolorattributename, value: UIColor.greenColor(), range: NSMakeRange(7, 12)) button1.setattributedtitle(str) */ button1.setbackgroundimagenamed("play") } 4. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. You should now see the image on the button (see Figure 3.18).

35 62 Chapter 3 Responding to User Actions Figure 3.18 Displaying an image on the button Do not use the setbackgroundimage: method by passing it a UIImage instance, like this: button1.setbackgroundimage(uiimage(named: "play")) This is because the UIImage class looks for the specified image ("play") in the main bundle (the Extension). And because the play.png file is in the Watch- Kit App, the image cannot be found and, therefore, the image will not be set successfully. 5. You can also set the background image of the button in the storyboard via the Background attribute in the Attributes Inspector window. Switch The Switch control allows the user to toggle between the ON and OFF states. It is commonly used in cases where you allow users to enable or disable a particular setting. In the following example, you will create a project and see how the Switch control works: 1. Using Xcode, create a new ios App with WatchKit App project and name it Switches. Uncheck the option Include Notification Scene so that we can keep the WatchKit project to a bare minimum. 2. Select the Interface.storyboard file to edit it in the Storyboard Editor. 3. Drag and drop a Switch control onto the default Interface Controller (see Figure 3.19). 4. In the Attributes Inspector window, set the Title attribute of the Switch control to Aircon (see Figure 3.20).

36 Using the Tap Gesture to Interact with Controls 63 Figure 3.19 Adding a Switch control to the Interface Controller Figure 3.20 Changing the title of the Switch control 5. Add a Label control to the Interface Controller (see Figure 3.21). Figure 3.21 Adding a Label control to the Interface Controller

37 64 Chapter 3 Responding to User Actions 6. Create an outlet for the Switch control and name it switch. Likewise, create an outlet for the Label control and name it label. Then, create an action for the Switch control and name it switchaction. The InterfaceController.swift file should now look like this: import WatchKit import Foundation class InterfaceController: WKInterfaceController var `switch`: var label: func switchaction(value: Bool) { } Note Because switch is a reserved word in the Swift programming language, if you try to use it as the name of an outlet, you have to enclose it with a pair of back quotes (``). 8. Add the following statements in bold to the InterfaceController.swift func switchaction(value: Bool) { value? label.settext("aircon is on") : label.settext("aircon is off") } override func awakewithcontext(context: AnyObject?) { super.awakewithcontext(context) } // Configure interface objects here. `switch`.seton(false) label.settext("") Note You can programmatically set the value of a Switch control, but you will not be able to get its value. To know its value, you need to implement the action of the Switch control and save its value whenever its state changes. 9. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. On the Apple Watch Simulator, click the Switch control to turn it on and off and observe the message printed in the Label control (see Figure 3.22).

38 Using the Tap Gesture to Interact with Controls 65 Figure 3.22 Testing the Switch control Slider The Slider control is a visual control with two buttons ( and +) that allow the user to decrement or increment a floating-point value. It is usually used in situations where you want the user to select from a range of values, such as the temperature settings in a thermostat or the volume of the iphone. 1. Using Xcode, create a new ios App with WatchKit App project and name it Sliders. Uncheck the option Include Notification Scene so that we can keep the WatchKit project to a bare minimum. 2. Select the Interface.storyboard file to edit it in the Storyboard Editor. 3. Drag and drop a Slider control onto the default Interface Controller (see Figure 3.23). Figure 3.23 Adding a Slider control to the Interface Controller

39 66 Chapter 3 Responding to User Actions 4. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. On the Apple Watch Simulator, click the + and buttons (see Figure 3.24) and observe the slider. Figure 3.24 Testing the slider 5. Add a Label control to the Interface Controller (see Figure 3.25). Figure 3.25 Adding a label to the Interface Controller 6. Create an outlet for the Slider control and name it slider. Likewise, create an outlet for the Label control and name it label. Then, create an action for the Slider control and name it slideraction. The InterfaceController.swift file should now look like this: import WatchKit import Foundation

40 Using the Tap Gesture to Interact with Controls 67 class InterfaceController: WKInterfaceController var slider: var label: func slideraction(value: Float) { } 7. Set the attributes for the Slider control as follows (see Figure 3.26): Maximum: 10 Steps: 5 Figure 3.26 Setting the attributes for the Slider control 8. Add the following statements in bold to the InterfaceController.swift func slideraction(value: Float) { label.settext("\(value)") } override func awakewithcontext(context: AnyObject?) { super.awakewithcontext(context) } // Configure interface objects here. slider.setvalue(0.0) label.settext("0.0") Note You can programmatically set the value of a Slider control, but you will not be able to get its value. To know its value, you need to implement the action of the Slider control and save its value whenever the value changes.

41 68 Chapter 3 Responding to User Actions 9. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. Click the and + buttons and observe the value printed on the Label control (see Figure 3.27). Figure 3.27 Testing the slider The Steps attribute specifies how many times you can click the slider to reach its maximum value. The increment or decrement value of the slider at any point is dependent on the length of the slider (Maximum value minus Minimum value) divided by the value of Steps. In this example, the length of the slider is 10 (maximum of 10 minus minimum of 0) and the value of Steps is 5; hence, the slider increments or decrements by 2 whenever the + or button is clicked. Alerts and Action Sheets In watchos 2, Apple now allows developers to display alerts and actions just like they did in iphone and ipad: 1. Using Xcode, create a new ios App with WatchKit App project and name it UsingAlerts. Uncheck the option Include Notification Scene so that we can keep the WatchKit project to a bare minimum. 2. Select the Interface.storyboard file to edit it in the Storyboard Editor. 3. Drag and drop a Button control onto the default Interface Controller (see Figure 3.28) and set its title to Show Alerts. 4. Create an action for the Button control and name it btnshowalerts. The InterfaceController.swift file should now look like this: import WatchKit import Foundation class InterfaceController: WKInterfaceController func btnshowalerts() { }

42 Using the Tap Gesture to Interact with Controls 69 Figure 3.28 Adding a button to the Interface Controller 5. Add the following statements in bold to the InterfaceController.swift file: import WatchKit import Foundation class InterfaceController: WKInterfaceController { func performaction(actionstyle: WKAlertActionStyle) { switch actionstyle { case.default: print("ok") case.cancel: print("cancel") case.destructive: print("destructive") } func btnshowalerts() { let okaction = WKAlertAction(title: "OK", style: WKAlertActionStyle.Default) { () -> Void in self.performaction(wkalertactionstyle.default) } let cancelaction = WKAlertAction(title: "Cancel", style: WKAlertActionStyle.Cancel) { () -> Void in self.performaction(wkalertactionstyle.cancel) } let abortaction = WKAlertAction(title: "Abort", style: WKAlertActionStyle.Destructive) { () -> Void in self.performaction(wkalertactionstyle.destructive) }

43 70 Chapter 3 Responding to User Actions } presentalertcontrollerwithtitle("title", message: "Message", preferredstyle: WKAlertControllerStyle.Alert, actions: [okaction, cancelaction, abortaction]) Here, you first defined a function named performaction: that prints out a message depending on the style that is passed in as the argument. Next, in the btnshowalerts action, you created three WKAlertAction instances, each with a specific style (Default, Cancel, and Destructive). Within each instance, you have a closure that is fired when the user clicks on the action buttons. When each button is clicked, you simply call the performaction: function to print out a message so that you know which button was clicked. Finally, you called the presentalertcontrollerwithtitle:message:preferredstyle:actions: method to display an alert, together with the three action buttons. 6. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. Clicking the button displays an alert (see Figure 3.29). Figure 3.29 Displaying an alert in the Apple Watch Note Note that the Abort button in the alert is displayed in red as its style is set to Destructive. 7. Modify the presentalertcontrollerwithtitle:message:preferred- Style:actions: method, as follows: //---SideBySideButtonsAlert supports exactly two actions--- presentalertcontrollerwithtitle("title", message: "Message", preferredstyle: WKAlertControllerStyle.SideBySideButtonsAlert, actions: [okaction, cancelaction])

44 Using the Tap Gesture to Interact with Controls Select the WatchKit App scheme and run the project on the Apple Watch Simulator. Clicking the button displays an alert with the two buttons displayed side by side (see Figure 3.30). Figure 3.30 Displaying an alert with two buttons side by side in the Apple Watch Note For the SideBySideButtonsAlert style, you need to specify exactly two action buttons. 9. Modify the presentalertcontrollerwithtitle:message:preferred- Style:actions: method as follows: presentalertcontrollerwithtitle("title", message: "Message", preferredstyle: WKAlertControllerStyle.ActionSheet, actions: [okaction, cancelaction, abortaction]) 10. Select the WatchKit App scheme and run the project on the Apple Watch Simulator. Clicking the button displays an alert, as shown in Figure Note When using the ActionSheet style, the action button that is set to the Cancel style is displayed at the top-left corner of the screen. Even if you do not specify the cancel action button, a default Cancel button is still displayed to close the action sheet (though in this case you cannot handle the event that is fired when the user taps the Cancel button).

45 72 Chapter 3 Responding to User Actions Summary Figure 3.31 Displaying an action sheet in the Apple Watch In this chapter, you looked at the various controls that you can use to build the UI of your Apple Watch application. In particular, you saw the various controls that you can interact with by using the tap gesture, such as the Button, Switch, and Slider controls. In addition, you learned about the new alerts and action sheets that you can use to display information in watchos 2. In the next chapter, you learn more about the other controls that primarily display information to the user.

46 Index Symbols and Numbers < (chevron), 25, mm (small) watch, mm (large) watch, 1 2 A Accelerometer, Action buttons in , in notifications, generally, in notifications, handling, types of controls, Actions segues in, 24 sheets for, Alerts. See also Notifications, Apple Watch Application Context for, creating apps in, generally, 7 creating iphone apps in, 7 9 deploying apps in, 4 5 development tools for, 2 File Transfer for, 164 hardware in. See Hardware, Apple Watch Hello, World! app in. See Hello, World! app Interface Controller in. See Interface Controller introduction to, 1 2 iphones interacting with, 5 6 lifecycle of apps in, live communications in, 165 Send Message mode in, 165 Simulator in. See Apple Watch Simulator specifications of, 1 2 storyboards in, types of apps in, 6 User Info for, user interfaces in. See User interfaces (UI) WatchKit architecture and, 3 4 Apple Watch Simulator adding images in, animation in, 80 background images in, 74 didactivate method in, display of Current page in, emojis in, 110 Force Touch in, Glance scenes in, 244 hierarchical navigation in, 25 26, 32 images next to text in, 89 interactive messaging in, introduction to, location data in, Map controls in, menu items in, adding programmatically, Movie controls in, navigation using code in, 36, 38 notifications in, 210 page-based navigation in, 26 27, 33 passing data between Interface Controllers in, Picker controls in, 92, 94 97, 100 selecting items in tables in, 90 Table controls in, 86 text input in, 108 Watch Connectivity Framework in, 171, 174 writing data to files in,

47 254 Index Application Context background transfers in, comparing to other modes, 184 introduction to, 162 sending data in ios app, sending data in WatchKit Extension, on Simulators, 171 testing applications in, 171 Application tests. See Testing applications Architecture, 3 4 Assets.xcassets files animation in, 78 background images in, 60, context menus in, control knobs in, 99 images next to text in, 86 Picker displaying images in, 93 playing movies in, 104 poster images in, 105 Attributed strings, Attributes Inspector, 24 25, Audio recordings, awakewithcontext method in display of Current page, for Glance scenes, 240 in Interface Controller, in Label controls, in ReturningValues project, B Background action buttons, 206 Background fetch, Background images in Button controls, 60 62, 74 in Interface Controller, in notifications, Background transfers in Application Context, comparison of communication modes for, 184 in File Transfer, 164 in User Info, in Watch Connectivity Framework, Bluetooth LE (Low Energy) connections, 3 Bundles, 3 Button controls action sheets in, adding to Interface Controller, alerts in, for audio recordings, for background actions, 206 background images and, 60 62, 74 for cancellations, chevron, creating actions for, creating outlets for, custom fonts in, displaying attributed strings in, for displaying screens, for actions, for foreground actions, 206 Group controls and, introduction to, 50 for making phone calls, for notification actions, for open actions, for reply actions, for saving data, for sending messages, Slider controls in, Switch controls in, in Taptic Engine, text input and, C Cancellations in Interface Controller, in Watch Connectivity Framework, Chevron (<), 25, Circular Small complications introduction to, in Movie Showtime project, 153, 156, 158 support for, 143 CLKComplicationDataSource protocol, , 143 ClockKit Framework introduction to, placement of complications in, template classes in, 140

48 Index 255 Code Editor Label controls and, navigation using, 35 returning data with, 44 Communications Application Context mode of. See Application Context comparison of modes of, 184 File Transfer mode of. See File Transfer live, 165 User Info mode of. See User Info in Watch Connectivity Framework, generally, , 184 in WatchKit Extension, 175 Complications ClockKit Framework for, families of, 143 introduction to, 6, Movie Showtime project example of. See Movie Showtime project placeholder templates for, placement of, populating with data, privacy behavior in, refresh frequency in, 159 summary of, 159 template classes for, 140 Time Travel for, Connectivity location data in, Map display in, Web services, accessing, Containing ios Apps. See also ios Apps, 3, 10 Controllers Dynamic Interface, 210, 216 Glance Interface, Static Interface. See Static Interface Controller View. See View Controller WKInterfaceController class for, 12 Controls Button. See Button controls Group, Image. See Image controls Label. See Label controls layout of, Menu, Movie, 73 Picker. See Picker controls Slider, Switch, Table, 73, in user interfaces. See User interfaces (UI) Cook, Tim, 1 Custom fonts, D Data passing between Interface Controllers, returning from Interface Controllers, saving, sending. See Sending data Delegation design patterns, 42 Deploying Apple Watch apps, 4 5 Development tools, 2 didactivate method in display of Current page, 40 for Glance scenes, 240 in Label controls, 31 in LifeCycle project, Digital Crown Apple Watch hardware and, introduction to, 2 Picker controls in, 90, 92, 97 dismisscontroller method, 36 Displaying information. See also Displays background images in, Force Touch for, adding items programatically, Force Touch for, context menus in, Force Touch for, generally, Image controls for, animations in, Image controls for, generally, 74, images next to text in, introduction to, 73 Label controls for, generally, 73 laying out controls for, Movie controls for,

49 256 Index Displaying information (continued) movies, playing programatically, Picker controls for, captions in, Picker controls for, control knobs in, Picker controls for, displaying images in, Picker controls for, generally, 90 Picker controls for, lists of text in, Picker controls for, scrolling style in, playing media files, summary of, 123 Table controls for, adding Image controls to, Table controls for, generally, Table controls for, selecting items in, Displays of Current page, Display Screen buttons for, of Glance scenes. See Glance scenes of information. See Displaying information of Interface Controller pages, of maps, Modal, of notifications. See User Info Dynamic Interface Controller, 210, 216 E , Emojis, F File Transfer background transfers in, 164 canceling outstanding transfers in, comparison to other communication modes, 184 introduction to, 162 sending data/files in ios app, sending data/files in WatchKit Extension, testing applications in, 179 Fonts, Force Touch context menus, adding items programmatically, context menus for, generally, introduction to, 2, Menu Item, Foreground action buttons, 206 G Gathering information emojis, introduction to, 73, 106 summary of, 123 text inputs, Get Weather, Glance Interface Controller, , Glance scenes background fetch in, customizing, implementing, introduction to, 6, 237 summary of, 252 testing, 244 updating, usefulness of, 244 Gmail, Group controls, H Hardware, Apple Watch accelerometer and, for audio recording, Digital Crown and, introduction to, 125 for phone calls, for sending messages, Taptic Engine and, Hello, World! app, 7 9 Hierarchical navigation between Interface Controllers, using code for, 36 Home Screen, I Icons, Identifier attributes, 43 Image controls animation with, emojis in,

Learning WatchKit Programming

Learning WatchKit Programming Learning WatchKit Programming Addison-Wesley Learning Series Visit informit.com/learningseries for a complete list of available publications. The Addison-Wesley Learning Series is a collection of hands-on

More information

Apple Watch Docs. Release 0.1. Michael Hahn

Apple Watch Docs. Release 0.1. Michael Hahn Apple Watch Docs Release 0.1 Michael Hahn Nov 20, 2017 Contents 1 First Watch Glance 3 1.1 Create an iphone App.......................................... 3 1.2 Add WatchKit Targets..........................................

More information

Lesson 1: Hello ios! 1

Lesson 1: Hello ios! 1 Contents Introduction xxv Lesson 1: Hello ios! 1 ios Developer Essentials 1 A Suitable Mac 1 A Device for Testing 2 Device Differences 2 An ios Developer Account 4 The Official ios SDK 6 The Typical App

More information

Registering for the Apple Developer Program

Registering for the Apple Developer Program It isn t necessary to be a member of the Apple Developer Program if you don t intend to submit apps to the App Stores, or don t need the cloud-dependent features. We strongly recommend joining, though,

More information

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney 1 Build Your First App The way to get started is to quit talking and begin doing. Walt Disney Copyright 2015 AppCoda Limited All rights reserved. Please do not distribute or share without permission. No

More information

Introduction to WatchKit. CS193W - Spring Lecture 1

Introduction to WatchKit. CS193W - Spring Lecture 1 Introduction to WatchKit CS193W - Spring 2016 - Lecture 1 appleᴡᴀᴛᴄʜ Released April 24, 2015 No updates to the hardware yet. Three collections, over 30 models Two sizes The Screen OLED (organic light-emitting

More information

App Development. Quick Guides for Masterminds. J.D Gauchat Cover Illustration by Patrice Garden

App Development. Quick Guides for Masterminds. J.D Gauchat   Cover Illustration by Patrice Garden App Development Quick Guides for Masterminds J.D Gauchat www.jdgauchat.com Cover Illustration by Patrice Garden www.smartcreativz.com Quick Guides for Masterminds Copyright 2018 by John D Gauchat All Rights

More information

This page intentionally left blank

This page intentionally left blank Database Concepts This page intentionally left blank Database Concepts Seventh Edition David M. Kroenke David J. Auer Western Washington University Boston Columbus Indianapolis New York San Francisco Hoboken

More information

COPYRIGHTED MATERIAL. 1Hello ios! A Suitable Mac. ios Developer Essentials

COPYRIGHTED MATERIAL. 1Hello ios! A Suitable Mac. ios Developer Essentials 1Hello ios! Hello and welcome to the exciting world of ios application development. ios is Apple s operating system for mobile devices; the current version as of writing this book is 5.0. It was originally

More information

Hello! ios Development

Hello! ios Development SAMPLE CHAPTER Hello! ios Development by Lou Franco Eitan Mendelowitz Chapter 1 Copyright 2013 Manning Publications Brief contents PART 1 HELLO! IPHONE 1 1 Hello! iphone 3 2 Thinking like an iphone developer

More information

Quick Interaction Techniques for watchos

Quick Interaction Techniques for watchos App Frameworks #WWDC16 Quick Interaction Techniques for watchos Session 211 Tom Witkin watchos Engineer Miguel Sanchez watchos Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display

More information

Xcode 6 Start to Finish

Xcode 6 Start to Finish Xcode 6 Start to Finish ios and OS X Development Fritz Anderson VAddison-Wesley New York Boston Indianapolis San Francisco Toronto Montreal Capetown Sydney London Munich Paris Madrid Tokyo Singapore Mexico

More information

Contents at a Glance

Contents at a Glance Contents at a Glance Introduction... 1 Part I: Making the ipad Yours... 5 Chapter 1: Buying Your ipad...7 Chapter 2: Looking Over the Home Screen...27 Chapter 3: Getting Going...55 Chapter 4: Making Your

More information

Learn to make watchosle

Learn to make watchosle HACKING WITH SWIFT COMPLETE TUTORIAL COURSE Learn to make watchosle P apps with real-worldam S Swift projects REEPaul Hudson F Project 1 NoteDictate 2 www.hackingwithswift.com Setting up In this project

More information

Hello. Quick Start Guide

Hello. Quick Start Guide Hello. Quick Start Guide Welcome to your new MacBook Pro. Let us show you around. This guide shows you what s on your Mac, helps you set it up, and gets you up and running with tips for the apps you ll

More information

Kony Visualizer. Wearables Developer's Guide

Kony Visualizer. Wearables Developer's Guide Kony Visualizer Wearables Developer's Guide Release 7.0 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and the document version stated on

More information

Introduction... 1 Part I: Getting Started... 7

Introduction... 1 Part I: Getting Started... 7 Contents at a Glance Introduction... 1 Part I: Getting Started... 7 Chapter 1: Creating Killer iphone Applications...9 Chapter 2: Looking Behind the Screen...25 Chapter 3: Enlisting in the Developer Corps...43

More information

Kony Visualizer. Wearables Developer's Guide

Kony Visualizer. Wearables Developer's Guide Kony Visualizer Wearables Developer's Guide Release 7.3 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and the document version stated on

More information

iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5

iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5 iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5 Questions? Announcements Assignment #1 due this evening by 11:59pm Remember, if you wish to use a free late you must email me before

More information

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs PROGRAMMING THE World Wide Web EIGHTH EDITION ROBERT W. SEBESTA University of Colorado at Colorado Springs PEARSON Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape

More information

ios Simulator User Guide

ios Simulator User Guide ios Simulator User Guide Contents About ios Simulator 5 At a Glance 5 Organization of This Document 6 See Also 6 Getting Started in ios Simulator 7 Access ios Simulator from Xcode 7 Running Your App in

More information

The MVC Design Pattern

The MVC Design Pattern The MVC Design Pattern The structure of iphone applications is based on the Model-View-Controller (MVC) design pattern because it benefits object-oriented programs in several ways. MVC based programs tend

More information

ITP 342 Mobile App Dev. Interface Fun

ITP 342 Mobile App Dev. Interface Fun ITP 342 Mobile App Dev Interface Fun Human Interface Guidelines ios Human Interface Guidelines https://developer.apple.com/ library/ios/documentation/ userexperience/conceptual/ MobileHIG/index.html 2

More information

Hello. Quick Start Guide

Hello. Quick Start Guide Hello. Quick Start Guide Welcome to your new MacBook Pro. Let us show you around. This guide shows you what s on your Mac, helps you set it up, and gets you up and running with tips for the apps you ll

More information

My First iphone App. 1. Tutorial Overview

My First iphone App. 1. Tutorial Overview My First iphone App 1. Tutorial Overview In this tutorial, you re going to create a very simple application on the iphone or ipod Touch. It has a text field, a label, and a button. You can type your name

More information

Introducing OS X El Capitan 7

Introducing OS X El Capitan 7 Contents Contents 3 Introducing OS X El Capitan 7 About OS X El Capitan 8 Installing OS X El Capitan 9 The OS X Environment 0 About Your Mac About System Preferences 6 Changing the Appearance 7 Changing

More information

Learn to make desktop LE

Learn to make desktop LE HACKING WITH SWIFT COMPLETE TUTORIAL COURSE Learn to make desktop LE P apps with real-worldam S Swift projects REEPaul Hudson F Project 1 Storm Viewer Get started coding in Swift by making an image viewer

More information

ITP 342 Mobile App Dev. Interface Components

ITP 342 Mobile App Dev. Interface Components ITP 342 Mobile App Dev Interface Components Human Interface Guidelines ios Human Interface Guidelines (HIG) https://developer.apple.com/ library/ios/documentation/us erexperience/conceptual/m obilehig/index.html

More information

Building Mapping Apps for ios With Swift

Building Mapping Apps for ios With Swift Building Mapping Apps for ios With Swift Jeff Linwood This book is for sale at http://leanpub.com/buildingmappingappsforioswithswift This version was published on 2017-09-09 This is a Leanpub book. Leanpub

More information

My First iphone App (for Xcode version 6.4)

My First iphone App (for Xcode version 6.4) My First iphone App (for Xcode version 6.4) 1. Tutorial Overview In this tutorial, you re going to create a very simple application on the iphone or ipod Touch. It has a text field, a label, and a button

More information

Introducing Mountain Lion 7

Introducing Mountain Lion 7 Contents Contents Introducing Mountain Lion 7 About OS X Mountain Lion 8 Installing Mountain Lion 9 The OS X Environment 0 Aqua Interface About Your Mac About System Preferences 7 Changing the Background

More information

COPYRIGHTED MATERIAL. Using Adobe Bridge. Lesson 1

COPYRIGHTED MATERIAL. Using Adobe Bridge. Lesson 1 Lesson Using Adobe Bridge What you ll learn in this lesson: Navigating Adobe Bridge Using folders in Bridge Making a Favorite Creating metadata Using automated tools Adobe Bridge is the command center

More information

My First Cocoa Program

My First Cocoa Program My First Cocoa Program 1. Tutorial Overview In this tutorial, you re going to create a very simple Cocoa application for the Mac. Unlike a line-command program, a Cocoa program uses a graphical window

More information

S A M P L E C H A P T E R

S A M P L E C H A P T E R SAMPLE CHAPTER Anyone Can Create an App by Wendy L. Wise Chapter 5 Copyright 2017 Manning Publications brief contents PART 1 YOUR VERY FIRST APP...1 1 Getting started 3 2 Building your first app 14 3 Your

More information

MacMost.com (hosted by Gary Rosenzweig)

MacMost.com (hosted by Gary Rosenzweig) Note: This discussion is based on MacOS, 10.14.1 (Mojave). Some illustrations may differ when using other versions of macos or OS X. Illustrations are from screenshots on my imac. In this presentation

More information

IPHONE FOR PROGRAMMERS: AN APP-DRIVEN APPROACH

IPHONE FOR PROGRAMMERS: AN APP-DRIVEN APPROACH IPHONE FOR PROGRAMMERS AN APP-DRIVEN APPROACH DEITEL DEVELOPER SERIES Paul Deitel Harvey Deitel Abbey Deitel Eric Kern Michael Morgano All of Deitel & Associates, Inc. I '..'.' I; ' ' '. '... '. ".. '

More information

CENTER FOR INNOVATION IN TEACHING AND RESEARCH. ibooks Author. An ibook About Creating ibooks. Create Interactive Books for ipad BY CHAD DENNIS

CENTER FOR INNOVATION IN TEACHING AND RESEARCH. ibooks Author. An ibook About Creating ibooks. Create Interactive Books for ipad BY CHAD DENNIS CENTER FOR INNOVATION IN TEACHING AND RESEARCH ibooks Author An ibook About Creating ibooks. Create Interactive Books for ipad BY CHAD DENNIS CHAPTER 1 Get Started Chapter Objectives After completing this

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Evaluation Individual

More information

ios 9 SDK Development

ios 9 SDK Development Extracted from: ios 9 SDK Development Creating iphone and ipad Apps with Swift This PDF file contains pages extracted from ios 9 SDK Development, published by the Pragmatic Bookshelf. For more information

More information

Getting to Know Pages on ipad

Getting to Know Pages on ipad Getting to Know Pages on ipad This guide will give you the basic instructions of how to use the Pages App on ipad. Documents Step 1 To create new documents and find the ones you ve worked on before, go

More information

In the first class, you'll learn how to create a simple single-view app, following a 3-step process:

In the first class, you'll learn how to create a simple single-view app, following a 3-step process: Class 1 In the first class, you'll learn how to create a simple single-view app, following a 3-step process: 1. Design the app's user interface (UI) in Xcode's storyboard. 2. Open the assistant editor,

More information

S A M P L E C H A P T E R

S A M P L E C H A P T E R SAMPLE CHAPTER Anyone Can Create an App by Wendy L. Wise Chapter 2 Copyright 2017 Manning Publications brief contents PART 1 YOUR VERY FIRST APP...1 1 Getting started 3 2 Building your first app 14 3 Your

More information

ITP 342 Mobile App Dev. Interface Builder in Xcode

ITP 342 Mobile App Dev. Interface Builder in Xcode ITP 342 Mobile App Dev Interface Builder in Xcode New Project From the Main Menu, select the File à New à Project option For the template, make sure Application is selected under ios on the left-hand side

More information

John Ray. Sams Teach Yourself. iphone. Application Development. Second Edition. S^/MS 800 East 96th Street, Indianapolis, Indiana, USA

John Ray. Sams Teach Yourself. iphone. Application Development. Second Edition. S^/MS 800 East 96th Street, Indianapolis, Indiana, USA John Ray Sams Teach Yourself iphone Application Development Second Edition S^/MS 800 East 96th Street, Indianapolis, Indiana, 46240 USA Table of Contents Introduction 1 Who Can Become an iphone Developer?

More information

Beginning Mac Programming

Beginning Mac Programming Extracted from: Beginning Mac Programming Develop with Objective-C and Cocoa This PDF file contains pages extracted from Beginning Mac Programming, published by the Pragmatic Bookshelf. For more information

More information

CarPlay Navigation App Programming Guide. September 28, 2018

CarPlay Navigation App Programming Guide. September 28, 2018 CarPlay Navigation App Programming Guide September 28, 2018 apple Developer Table of Contents Introduction... 3 CarPlay Navigation Apps... 4 CarPlay Navigation App Entitlement... 4 Development Environment...

More information

Apple Human Interface Guidelines

Apple Human Interface Guidelines Apple Human Interface Guidelines 2005-06-04 Apple Computer, Inc. 1992, 2001-2003, 2005 Apple Computer, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,

More information

iphone Programming Patrick H. Madden SUNY Binghamton Computer Science Department

iphone Programming Patrick H. Madden SUNY Binghamton Computer Science Department iphone Programming Patrick H. Madden SUNY Binghamton Computer Science Department pmadden@acm.org http://optimal.cs.binghamton.edu General Outline Overview of the tools, and where to get more information

More information

Introducing macos High Sierra 7

Introducing macos High Sierra 7 Contents 3 Contents Introducing macos High Sierra 7 About macos High Sierra 8 Installing macos High Sierra 9 The macos Environment 0 About Your Mac About System Preferences 6 Search Options 7 Using Siri

More information

Taking Your ipad 2. to the Max. Michael Grothai. Erica Sadun. Steve Sande

Taking Your ipad 2. to the Max. Michael Grothai. Erica Sadun. Steve Sande Taking Your ipad 2 to the Max Erica Sadun Michael Grothai Steve Sande Contents Contents at a Glance About the Authors About the Technical Reviewer.. Acknowledgments Introduction iv xiii xiv xv xvi Chapter

More information

User Experience: Windows & Views

User Experience: Windows & Views View Controller Programming Guide for ios User Experience: Windows & Views 2011-01-07 Apple Inc. 2011 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval

More information

ony Gaddis Haywood Community College STARTING OUT WITH PEARSON Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto

ony Gaddis Haywood Community College STARTING OUT WITH PEARSON Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto STARTING OUT WITH J^"* 1 Ti * ony Gaddis Haywood Community College PEARSON Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape Town Dubai London Madrid Milan Munich Paris

More information

Your . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU

Your  . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU fuzzylime WE KNOW DESIGN WEB DESIGN AND CONTENT MANAGEMENT 19 Kingsford Avenue, Glasgow G44 3EU 0141 416 1040 hello@fuzzylime.co.uk www.fuzzylime.co.uk Your email A setup guide Last updated March 7, 2017

More information

Structuring an App Copyright 2013 Apple Inc. All Rights Reserved.

Structuring an App Copyright 2013 Apple Inc. All Rights Reserved. Structuring an App App Development Process (page 30) Designing a User Interface (page 36) Defining the Interaction (page 42) Tutorial: Storyboards (page 47) 29 App Development Process Although the task

More information

IOS 9 App Development Essentials: Learn To Develop IOS 9 Apps Using Xcode 7 And Swift 2 PDF

IOS 9 App Development Essentials: Learn To Develop IOS 9 Apps Using Xcode 7 And Swift 2 PDF IOS 9 App Development Essentials: Learn To Develop IOS 9 Apps Using Xcode 7 And Swift 2 PDF ios 9 App Development Essentials is latest edition of this popular book series and has now been fully updated

More information

Teach Yourself VISUALLY IMac (Teach Yourself VISUALLY (Tech)) Ebooks Free

Teach Yourself VISUALLY IMac (Teach Yourself VISUALLY (Tech)) Ebooks Free Teach Yourself VISUALLY IMac (Teach Yourself VISUALLY (Tech)) Ebooks Free This fully updated guide helps you get the most from your imac As the imac continues to evolve and become more sophisticated, this

More information

iphone User Guide For iphone OS 3.1 Software SoftView Exhibit Kyocera Corp. v. SoftView LLC IPR

iphone User Guide For iphone OS 3.1 Software SoftView Exhibit Kyocera Corp. v. SoftView LLC IPR iphone User Guide For iphone OS 3.1 Software SoftView Exhibit 2019-1 Contents 9 Chapter 1: Getting Started 9 Viewing the User Guide on iphone 9 What You Need 10 Activating iphone 10 Installing the SIM

More information

Lesson 2 page 1. ipad # 17 Font Size for Notepad (and other apps) Task: Program your default text to be smaller or larger for Notepad

Lesson 2 page 1. ipad # 17 Font Size for Notepad (and other apps) Task: Program your default text to be smaller or larger for Notepad Lesson 2 page 1 1/20/14 Hi everyone and hope you feel positive about your first week in the course. Our WIKI is taking shape and I thank you for contributing. I have had a number of good conversations

More information

Quick guide to connectivity and the ReSound Smart 3D app

Quick guide to connectivity and the ReSound Smart 3D app Quick guide to connectivity and the ReSound Smart 3D app Content Compatibility: Hearing aids and mobile devices...4 Get started with your iphone, ipad or ipod touch...6 Pair with your ReSound Smart Hearing

More information

Triggertrap Timelapse Pro User Manual for ios Version 1.2.1

Triggertrap Timelapse Pro User Manual for ios Version 1.2.1 Triggertrap Timelapse Pro User Manual for ios Version 1.2.1 Updated: 12 June 2015 Table of Contents Introduction...3 Compatible Devices...3 What do I need to use Timelapse Pro?... 4 Timelapse Pro app...4

More information

How to set up Restrictions on the ipad

How to set up Restrictions on the ipad 1) Tap on the Settings icon. How to set up Restrictions on the ipad ***You must have an itunes account*** 2) Tap on icloud-you will sign into icloud with your itunes account information. 3) Once you are

More information

Created by Eugene Stephens ios 8.2

Created by Eugene Stephens ios 8.2 ios 8.2 Physical Buttons - Sleep / Wake Used to turn the device on /off or wake / sleep. Located on the top, right corner (iphone 6 located on right side). - Ring / Silent Used to turn off the ringer.

More information

ios 11 and ipads ipad only Now lists latest runs apps New ipad Dock Can now add up to 15 items in the dock Can swipe up from bottom to display dock. E

ios 11 and ipads ipad only Now lists latest runs apps New ipad Dock Can now add up to 15 items in the dock Can swipe up from bottom to display dock. E Leslie Fisher sher.com @lesliefisher A look at all of the new things that are ios 11 ipad only new things All new things Same apps, new stuff in them Accessibility Changes System Setting Changes What's

More information

Samsung Galaxy S3 Repair Video Call Apple Tv

Samsung Galaxy S3 Repair Video Call Apple Tv Samsung Galaxy S3 Repair Video Call Apple Tv With Apple users continuing to rave about Facetime, we ask what is the As the first popular video-calling software, Skype is a well known and widely used alternative

More information

Guides. The Insider s Guide to the Apple Watch

Guides. The Insider s Guide to the Apple Watch Guides The Insider s Guide to the Apple Watch C ongratulations! After months of patiently waiting for your Apple Watch to arrive at your doorstep, it s finally on your wrist but now what? Here s everything

More information

AirDrop Cheat Sheet. AirDrop files between your devices In OS X Yosemite, AirDrop helps you quickly transfer files between your Mac and nearby Mac

AirDrop Cheat Sheet. AirDrop files between your devices In OS X Yosemite, AirDrop helps you quickly transfer files between your Mac and nearby Mac AirDrop Cheat Sheet Mac Basics: AirDrop lets you send files from your Mac to nearby Macs and ios devices AirDrop makes it easy to send files wirelessly from your Mac to other Mac computers, and with OS

More information

Where Did I Save That File?

Where Did I Save That File? Note: This discussion is based on MacOS, 10.13.6 (High Sierra). Some illustrations may differ when using other versions of macos or OS X. Illustrations are from screenshots on my imac. As I mentioned in

More information

Object-Oriented Programming in Objective-C

Object-Oriented Programming in Objective-C In order to build the powerful, complex, and attractive apps that people want today, you need more complex tools than a keyboard and an empty file. In this section, you visit some of the concepts behind

More information

Objectives. Submission. Register for an Apple account. Notes on Saving Projects. Xcode Shortcuts. CprE 388 Lab 1: Introduction to Xcode

Objectives. Submission. Register for an Apple account. Notes on Saving Projects. Xcode Shortcuts. CprE 388 Lab 1: Introduction to Xcode Objectives Register for an Apple account Create an application using Xcode Test your application with the iphone simulator Import certificates for development Build your application to the device Expand

More information

Eanes ios5 Upgrade Guide

Eanes ios5 Upgrade Guide Eanes ios5 Upgrade Guide These instructions are intended for people to follow on their home machine. District machines have deep freeze and older versions of itunes which could complicate the process.

More information

Mobile Application Development

Mobile Application Development Android Native Application Development Mobile Application Development 1. Android Framework and Android Studio b. Android Software Layers c. Android Libraries d. Components of an Android Application e.

More information

iphone" 5 Jason R. Rich Mc Graw Hill Sari Juan Seoul Singapore Sydney Toronto

iphone 5 Jason R. Rich Mc Graw Hill Sari Juan Seoul Singapore Sydney Toronto iphone" 5 Jason R. Rich Mc Graw Hill New York Chicago San Francisco Lisbon London Madrid Mexico City Milan New Delhi Sari Juan Seoul Singapore Sydney Toronto Acknowledgments Introduction xv xvii PART I

More information

Image from Google Images tabtimes.com. CS87 Barbee Kiker

Image from Google Images tabtimes.com. CS87 Barbee Kiker Image from Google Images tabtimes.com CS87 Barbee Kiker bjkik@comcast.net Table of Contents ipad Parts... 3 Home Button... 3 Touch Gestures... 4 Additional Gestures... 4 Control Center... 5 Notification

More information

2017 NMUG CLASSES MANAGING THE IPHONE AND IPAD IN IOS 10

2017 NMUG CLASSES MANAGING THE IPHONE AND IPAD IN IOS 10 2017 NMUG CLASSES MANAGING THE IPHONE AND IPAD IN IOS 10 1 iphone Overview Your Apple ID is the account you use for just about everything you do with Apple. If you already have an Apple ID use it when

More information

Typing Software For Macbook Pro Facebook Application

Typing Software For Macbook Pro Facebook Application Typing Software For Macbook Pro Facebook Application Because MacBook Pro already comes with apps you need and want, you can The all-new Photos app for Mac makes it simpler than ever to manage a And post

More information

ios 9.3 ipads & iphones What you need to know! Jere Minich, APCUG Advisor, Region 5 Program Chair, Lake-Sumter Computer Society

ios 9.3 ipads & iphones What you need to know! Jere Minich, APCUG Advisor, Region 5 Program Chair, Lake-Sumter Computer Society ios 9.3 ipads & iphones What you need to know! Jere Minich, APCUG Advisor, Region 5 Program Chair, Lake-Sumter Computer Society Everything you need to know about ios 9.3 ios 9.3 brings new features to

More information

Teach Yourself VISUALLY IPhone 4S free ebooks on line

Teach Yourself VISUALLY IPhone 4S free ebooks on line Teach Yourself VISUALLY IPhone 4S free ebooks on line Step-by-step guidance on all the new iphone features No matter what version of iphone you need guidance on, this visual guide is an ideal resource

More information

PROBLEM SOLVING USING JAVA WITH DATA STRUCTURES. A Multimedia Approach. Mark Guzdial and Barbara Ericson PEARSON. College of Computing

PROBLEM SOLVING USING JAVA WITH DATA STRUCTURES. A Multimedia Approach. Mark Guzdial and Barbara Ericson PEARSON. College of Computing PROBLEM SOLVING WITH DATA STRUCTURES USING JAVA A Multimedia Approach Mark Guzdial and Barbara Ericson College of Computing Georgia Institute of Technology PEARSON Boston Columbus Indianapolis New York

More information

ibooks Author: An Instructional Guide for Educators

ibooks Author: An Instructional Guide for Educators USING IBOOKS AUTHOR ibooks Author: An Instructional Guide for Educators ETEC533 - MANNY LOYLA SECTION 1 Before you Begin This section provides information on how to download and install the ibooks Author

More information

Created by John Helfen. Edited by Janice Miller. Autodesk, Inc.

Created by John Helfen. Edited by Janice Miller. Autodesk, Inc. Activity Summary: Everyone loves to tell a good story from youth exploring their creativity to professional engineers documenting their designs. As part of 4-H National Youth Science Day (NYSD), you will

More information

MAC BASICS. 125 S. Prospect Avenue, Elmhurst, IL (630) elmhurstpubliclibrary.org. Start Using Computers, Tablets, and Internet

MAC BASICS. 125 S. Prospect Avenue, Elmhurst, IL (630) elmhurstpubliclibrary.org. Start Using Computers, Tablets, and Internet MAC BASICS WHAT IS MAC? Introduction What We ll Cover While many users are only familiar with Windows computers, working on a Mac is both extremely user friendly and offers a variety of included creative

More information

Welcome to. Manager s User Guide. 1 Claris Healthcare

Welcome to. Manager s User Guide. 1 Claris Healthcare Welcome to Manager s User Guide 1 Claris Healthcare support@clariscompanion.com 1-866-284-4939 Manager s Guide Table of Contents Introduction... 3 What are Members, Managers, Responders and Contributors?...

More information

Cocoa Programming A Quick-Start Guide for Developers

Cocoa Programming A Quick-Start Guide for Developers Extracted from: Cocoa Programming A Quick-Start Guide for Developers This PDF file contains pages extracted from Cocoa Programming, published by the Pragmatic Bookshelf. For more information or to purchase

More information

lecture 10 UI/UX and Programmatic Design cs : spring 2018

lecture 10 UI/UX and Programmatic Design cs : spring 2018 lecture 10 UI/UX and Programmatic Design cs198-001 : spring 2018 1 Announcements custom app progress form due before lab (~1 minute) will be released after lecture only 2 labs left (both very important)

More information

ipad Basics Class Handouts Presented by: Ashlee Tominey Adult Services Librarian

ipad Basics Class Handouts Presented by: Ashlee Tominey Adult Services Librarian ipad Basics Class Handouts Presented by: Ashlee Tominey Adult Services Librarian atominey@clpl.org 815-526-5152 Parts of the ipad Front camera takes pictures or video of whatever is facing or looking at

More information

Thunderbolt 3 (USB-C) Charge MacBook Pro and connect external storage or an external display

Thunderbolt 3 (USB-C) Charge MacBook Pro and connect external storage or an external display Welcome to your MacBook Pro Let s begin. MacBook Pro will automatically start up when you lift the lid. Setup Assistant will then guide you through a few simple steps to get you up and running. It will

More information

Mobile Print Guide for Brother iprint&label (Apple Devices)

Mobile Print Guide for Brother iprint&label (Apple Devices) Mobile Print Guide for Brother iprint&label (Apple Devices) Before You Use Your Brother Label Printer Definitions of Notes We use the following symbol and convention throughout this User's Guide: Tips

More information

One of the fundamental kinds of websites that SharePoint 2010 allows

One of the fundamental kinds of websites that SharePoint 2010 allows Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental

More information

Battery Power Saving Tips

Battery Power Saving Tips Battery Power Saving Tips ios Android Page 1 Table of Contents Page No 1. IOS BATTERY LIFE HINTS & TIPS... 03 I. VIEW BATTERY USAGE INFORMATION. 03 II. DUPLICATE ACTIVESYNC CONFIGURATIONS. 04 III. IOS

More information

dvanced ipad Q&A, Apps Bayswater Public Library

dvanced ipad Q&A, Apps Bayswater Public Library dvanced ipad Q&A, Apps Bayswater Public Library This is NOT a beginner s class We will assume you know the basics: What an ipad is How to turn it on What all the buttons do and generally how to interact

More information

Google Apps Guide. Written to: NPOs Affiliated with HandsOn Tech Pittsburgh. Written by: Franco Nicola Colaizzi

Google Apps Guide. Written to: NPOs Affiliated with HandsOn Tech Pittsburgh. Written by: Franco Nicola Colaizzi Google Apps Guide Written to: NPOs Affiliated with HandsOn Tech Pittsburgh Written by: Franco Nicola Colaizzi About the author: Franco N. Colaizzi is a Skill- Based Volunteer, originally from Pittsburgh,

More information

GENERAL SET-UP & APP PAIRING/SYNCING FEATURES BATTERY ACCOUNT & DEVICE SETTINGS PRIVACY WARRANTY GENERAL SET-UP & APP ANDROID

GENERAL SET-UP & APP PAIRING/SYNCING FEATURES BATTERY ACCOUNT & DEVICE SETTINGS PRIVACY WARRANTY GENERAL SET-UP & APP ANDROID ANDROID GENERAL SET-UP & APP PAIRING/SYNCING FEATURES BATTERY ACCOUNT & DEVICE SETTINGS PRIVACY WARRANTY GENERAL SET-UP & APP WHICH PHONES ARE COMPATIBLE WITH MY SMARTWATCH? Wear OS by Google works with

More information

CS193P: HelloPoly Walkthrough

CS193P: HelloPoly Walkthrough CS193P: HelloPoly Walkthrough Overview The goal of this walkthrough is to give you a fairly step by step path through building a simple Cocoa Touch application. You are encouraged to follow the walkthrough,

More information

Browse the internet, send and receive s and text messages, play music and movies, take and display photos and videos, and more.

Browse the internet, send and receive  s and text messages, play music and movies, take and display photos and videos, and more. What is an ipad? The ipad is a tablet computer designed and sold by Apple Inc. What can it do? Browse the internet, send and receive emails and text messages, play music and movies, take and display photos

More information

Creating an with Constant Contact. A step-by-step guide

Creating an  with Constant Contact. A step-by-step guide Creating an Email with Constant Contact A step-by-step guide About this Manual Once your Constant Contact account is established, use this manual as a guide to help you create your email campaign Here

More information

Mendeley Help Guide. What is Mendeley? Mendeley is freemium software which is available

Mendeley Help Guide. What is Mendeley? Mendeley is freemium software which is available Mendeley Help Guide What is Mendeley? Mendeley is freemium software which is available Getting Started across a number of different platforms. You can run The first thing you ll need to do is to Mendeley

More information

Visual C# Tony Gaddis. Haywood Community College STARTING OUT WITH. Piyali Sengupta. Third Edition. Global Edition contributions by.

Visual C# Tony Gaddis. Haywood Community College STARTING OUT WITH. Piyali Sengupta. Third Edition. Global Edition contributions by. STARTING OUT WITH Visual C# 2012 Third Edition Global Edition Tony Gaddis Haywood Community College Global Edition contributions by Piyali Sengupta PEARSON Boston Columbus Indianapolis New York San Francisco

More information

Magic Trackpad Gestures Not Working Mountain Lion

Magic Trackpad Gestures Not Working Mountain Lion Magic Trackpad Gestures Not Working Mountain Lion Gestures not working on client side, both running 10.8.2 and Synergy 1.4.10. Yes the mutlitouch gestures don't work on 10.8 (Mountain Lion) 10.9 (Mavericks).

More information

Create, Customize & Send an

Create, Customize & Send an How-To Guide Create, Customize & Send an Email Getting your first email out the door is easy with Constant Contact. This guide will walk you through creating, customizing, and sending an email to your

More information

Maxime Defauw. Learning Swift

Maxime Defauw. Learning Swift Maxime Defauw Learning Swift SAMPLE CHAPTERS 1 Introduction Begin at the beginning, the King said, very gravely, and go on till you come to the end: then stop. Lewis Carroll, Alice in Wonderland Hi and

More information