Book Image

Learning Xcode 8

By : Jak Tiano
Book Image

Learning Xcode 8

By: Jak Tiano

Overview of this book

Over the last few years, we’ve seen a breakthrough in mobile computing and the birth of world-changing mobile apps. With a reputation as one of the most user-centric and developer-friendly platforms, iOS is the best place to launch your next great app idea. As the official tool to create iOS applications, Xcode is chock full of features aimed at making a developer’s job easier, faster, and more fun. This book will take you from complete novice to a published app developer, and covers every step in between. You’ll learn the basics of iOS application development by taking a guided tour through the Xcode software and Swift programming language, before putting that knowledge to use by building your first app called “Snippets.” Over the course of the book, you will continue to explore the many facets of iOS development in Xcode by adding new features to your app, integrating gestures and sensors, and even creating an Apple Watch companion app. You’ll also learn how to use the debugging tools, write unit tests, and optimize and distribute your app. By the time you make it to the end of this book, you will have successfully built and published your first iOS application.
Table of Contents (23 chapters)
Learning Xcode 8
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Gyroscope


The accelerometer is similar to the gyroscope. While the accelerometer detects translation along the x, y, and z axes, the gyroscope detects rotation around those axes:

Figure 11.2: Rotational motion along the x, y, and z axes

Using the gyroscope is very similar to using the accelerometer; we still need to set up our motionManager with an operation queue and a handler to process the data. Let's take a look at what the code looks like:

class ViewController: UIViewController {

    let motionManager = CMMotionManager()
    let motionQueue = OperationQueue()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        if motionManager.isAccelerometerAvailable {
            motionManager.accelerometerUpdateInterval = 0.25
            motionManager.startAccelerometerUpdates(to: motionQueue, withHandler: onAccelerometerUpdate)
        }
        
        if motionManager.isGyroAvailable {
            motionManager.gyroUpdateInterval = 0.25
            motionManager.startGyroUpdates...