Swift iOS 24-Hour Trainer
Published by
John Wiley & Sons, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright 2016 by John Wiley & Sons, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-1-119-07355-0
ISBN: 978-1-119-07346-8 (ebk)
ISBN: 978-1-119-07342-0 (ebk)
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions
.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at http://booksupport.wiley.com
. For more information about Wiley products, visit www.wiley.com
.
Library of Congress Control Number: 2015957030
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Swift is a trademark of Apple, Inc. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or vendor mentioned in this book.
About the Author
Abhishek Mishra has been developing software for over 18 years and has experience with a diverse set of programming languages and platforms. He is the author of iPhone and iPad App 24-Hour Trainer and the technical reviewer of Professional iOS Programming. He holds a Master's degree in Computer Science from the University of London and is a freelance consultant and trainer specializing in mobile application development. His clients include British Sky Broadcasting, Centrica PLC, Expedia Inc., Kantar Media, and Havas Media. He lives with his wife and daughter in London.
About the Technical Editor
Chaim Krause is a Simulation Specialist for the U.S. Army. One of his responsibilities is to develop small games for use at the Army University. Chaim has been developing software for about 30 years, progressing through BASIC, Delphi/Pascal, C++, Java, Objective-C, and C# on platforms from the TRS-80 through Windows, OS X, Android, and iOS. He has also worked with Arduinos. Chaim has been the Technical Editor for a dozen books on topics as varied as iPhone/iPad, Android, iWatch, Arduino, and Unity. When not working in front of a computer at his day job, Chaim is often sitting in front of a computer at home playing wargames or developing his own game. Chaim can be reached at .
Credits
- ACQUISITIONS EDITOR
- Aaron Black
- PROJECT EDITOR
- Christina Haviland
- TECHNICAL EDITOR
- Chaim Krause
- PRODUCTION EDITOR
- Joel Jones
- COPY EDITOR
- Nancy Rapoport
- MANAGER OF CONTENT DEVELOPMENT & ASSEMBLY
- Mary Beth Wakefield
- PRODUCTION MANAGER
- Kathleen Wisor
- MARKETING DIRECTOR
- David Mayhew
- MARKETING MANAGER
- Carrie Sherrill
- PROFESSIONAL TECHNOLOGY & STRATEGY DIRECTOR
- Barry Pruett
- BUSINESS MANAGER
- Amy Knies
- ASSOCIATE PUBLISHER
- Jim Minatel
- PROJECT COORDINATOR, COVER
- Brent Savage
- PROOFREADER
- Nancy Bell
- INDEXER
- Nancy Guenther
- COVER DESIGNER
- Wiley
- COVER IMAGE
- nyul/iStockphoto
Acknowledgments
This book would not have been possible without the support of the team at John Wiley and SonsAaron Black, Christina Haviland, Nancy Rapoport, and Mariann Barsolo. I would also like to thank Chaim Krause for taking the time to read the entire manuscript and his keen eye for detail. It has been my privilege to work with you. Thank you.
Introduction
When I first began learning iOS development, I started out like most developers, from the humble Hello World application. I was overwhelmed with new concepts, such as view controllers and table views. My background with C++ did not help much when it came to working with Objective-C, and I had to start from scratch. There was no book written on the subject and everything had to be learned from Apple's documentation and personal blogs.
Eventually I came to grips with Objective-C, and with practice, I grew more proficient. With the launch of iOS 7, Apple announced a new language called Swift, and it felt almost like going back to square one again, as I learned how to perform familiar tasks with a new language.
This book is written to help someone new to iOS development learn the basic concepts and (I hope) avoid making the mistakes I made when starting out myself. That being said, this book should also be useful for an experienced Objective-C developer who is looking to transition over to Swift. This book adopts a hands-on Try It approach, and you get to try out each new concept as you progress through the book.
iOS application development is a huge topic, and it is just not possible to include every single topic related to iOS application development in this book. When selecting topics to include in this book, I have tried to strike a balance between the absolute basics and more advanced topics such as Test Driven Development, CloudKit, and UI testing.
Next page