Mastering MVVM with Swift: Updated for Xcode 9 and Swift 4


Book Description

"I don't feel in control of my project's architecture." - You"MVC simply doesn't cut it. There must be a better solution." - Yours TrulyDespite its widespread, the Model-View-Controller pattern just doesn't cut it for most Swift projects. Take control of your Swift projects with the Model-View-ViewModel pattern.Massive View Controller SyndromeFiring up Xcode and starting a new project is a great feeling. The first few days or weeks don't feel like work. Everything goes according to plan.But as the code base of your project grows, it becomes harder and harder to manage the project. The view controllers of your project start to put on weight ... a lot of weight. They become more than view controllers. They take on responsibilities they didn't sign up for. Don't they?Yet you've done everything right. You've stuck to the rules of the Model-View-Controller pattern. Why have you coded yourself in a corner? And why is it frustrating or downright scary to add features or refactor existing functionality?It's Time to Cure MVCIf your project is suffering from Massive View Controller syndrome, then the Model-View-ViewModel pattern is the cure to your problem. The Model-View-ViewModel pattern has been around for many, many years, but it only recently gained traction in the Cocoa community.MVVM extends MVC by resolving common issues. The result is a robust application architecture with lean view controllers, improved testability, and a better separation of concerns. How does that sound?Take Control of Your Project With MVVMIn Mastering MVVM With Swift, we refactor an existing application built with MVC to use MVVM instead. The results are dramatic and the MVVM pattern is surprisingly easy to adopt in your own projects.You learn the differences between Model-View-Controller and Model-View-ViewModel, highlighting the benefits Model-View-ViewModel has over Model-View-Controller.After a short introduction, we take an application built with Model-View-Controller and refactor it to use Model-View-ViewModel instead. Along the way, you learn about the anatomy of view models, how to create them, and how to test them.Last but not least, we add protocols and protocol-oriented programming to the mix to further simplify the view controllers in the project.At the end of this course, you have the knowledge and, more importantly, the hands-on experience to apply Model-View-ViewModel in your own projects.Ready for Xcode 9 and Swift 4In Mastering MVVM With Swift, you learn everything you need to know to integrate MVVM in a new or an existing Swift project. We focus on the key aspects of the pattern and refactor an application that takes advantage of the core features of MVVM. We use the latest and greatest to build an application, which means we use Xcode 9 and Swift 4.Battling Massive View Controller SyndromeAre the view controllers of your projects suffering from Massive View Controller syndrome? You've carefully crafted the architecture of your application using the Model-View-Controller pattern and, yet, the view controllers of your project are ready to burst and they're impossible to test.Adding a feature forces you to wade through hundreds of lines of code. You hope you don't break anything while you carefully add a few lines of code. Don't get me wrong. Your code isn't bad. But there's just so much of it. You've applied the Model-View-Controller pattern like you were told to and you still end up with an architecture you aren't quite happy with. Does this sound familiar?It's Not You. It's MVC.Because Apple's frameworks are impregnated with the Model-View-Controller pattern we think it's the right or only tool for the job. Don't make the same mistake. There's nothing wrong with the Model-View-Controller pattern, but there are better alternatives, especially if you're using Swift.




Mastering iOS 14 Programming


Book Description

Become a professional iOS developer with the most in-depth and advanced guide to Swift 5.3, Xcode 12.4, ARKit 4, Core ML, and iOS 14’s new features Key FeaturesExplore the world of iOS app development through practical examplesUnderstand core iOS programming concepts such as Core Data, networking, and the Combine frameworkExtend your iOS apps by adding augmented reality and machine learning capabilities, widgets, App Clips, Dark Mode, and animationsBook Description Mastering iOS 14 development isn’t a straightforward task, but this book can help you do just that. With the help of Swift 5.3, you’ll not only learn how to program for iOS 14 but also be able to write efficient, readable, and maintainable Swift code that reflects industry best practices. This updated fourth edition of the iOS 14 book will help you to build apps and get to grips with real-world app development flow. You’ll find detailed background information and practical examples that will help you get hands-on with using iOS 14's new features. The book also contains examples that highlight the language changes in Swift 5.3. As you advance through the chapters, you'll see how to apply Dark Mode to your app, understand lists and tables, and use animations effectively. You’ll then create your code using generics, protocols, and extensions and focus on using Core Data, before progressing to perform network calls and update your storage and UI with the help of sample projects. Toward the end, you'll make your apps smarter using machine learning, streamline the flow of your code with the Combine framework, and amaze users by using Vision framework and ARKit 4.0 features. By the end of this iOS development book, you’ll be able to build apps that harness advanced techniques and make the best use of iOS 14’s features. What you will learnBuild a professional iOS application using Xcode 12.4 and Swift 5.3Create impressive new widgets for your apps with iOS 14Extend the audience of your app by creating an App ClipImprove the flow of your code with the Combine frameworkEnhance your app by using Core LocationIntegrate Core Data to persist information in your appTrain and use machine learning models with Core MLCreate engaging augmented reality experiences with ARKit 4 and the Vision frameworkWho this book is for This book is for developers with some experience in iOS programming who want to enhance their application development skills by unlocking the full potential of the latest iOS version with Swift.




Mastering Swift 5


Book Description

Harness the power of the latest edition with this in-depth and comprehensive guide to the Swift language Key FeaturesFifth edition of this bestselling book, improved and updated to cover the latest version of the Swift 5 programming languageGet to grips with popular and modern design techniques to write easy-to-manage Swift codeLearn how to use core Swift features such as concurrency, generics, and copy-on-write in your codeBook Description Over the years, the Mastering Swift book has established itself amongst developers as a popular choice as an in-depth and practical guide to the Swift programming language. The latest edition is fully updated and revised to cover the new version: Swift 5. Inside this book, you'll find the key features of Swift 5 easily explained with complete sets of examples. From the basics of the language to popular features such as concurrency, generics, and memory management, this definitive guide will help you develop your expertise and mastery of the Swift language. Mastering Swift 5, Fifth Edition will give you an in-depth knowledge of some of the most sophisticated elements in Swift development, including protocol extensions, error handling, and closures. It will guide you on how to use and apply them in your own projects. Later, you'll see how to leverage the power of protocol-oriented programming to write flexible and easier-to-manage code. You will also see how to add the copy-on-write feature to your custom value types and how to avoid memory management issues caused by strong reference cycles. What you will learnUnderstand core Swift components, including operators, collections, control flows, and functionsLearn how and when to use classes, structures, and enumerationsUnderstand how to use protocol-oriented design with extensions to write easier-to-manage codeUse design patterns with Swift, to solve commonly occurring design problemsImplement copy-on-write for you custom value types to improve performanceAdd concurrency to your applications using Grand Central Dispatch and Operation QueuesImplement generics to write flexible and reusable codeWho this book is for This book is for developers who want to delve into the newest version of Swift. If you are a developer and learn best by looking at and working with code, then this book is for you. A basic understanding of Apple's tools would be beneficial but not mandatory. All examples should work on the Linux platform as well.




Learn Swift by Building Applications


Book Description

Start building your very own mobile apps with this comprehensive introduction to Swift and object-oriented programming Key Features A complete beginner's guide to Swift programming language Understand core Swift programming concepts and techniques for creating popular iOS apps Start your journey toward building mobile app development with this practical guide Book Description Swift Language is now more powerful than ever; it has introduced new ways to solve old problems and has gone on to become one of the fastest growing popular languages. It is now a de-facto choice for iOS developers and it powers most of the newly released and popular apps. This practical guide will help you to begin your journey with Swift programming through learning how to build iOS apps. You will learn all about basic variables, if clauses, functions, loops, and other core concepts; then structures, classes, and inheritance will be discussed. Next, you’ll dive into developing a weather app that consumes data from the internet and presents information to the user. The final project is more complex, involving creating an Instagram like app that integrates different external libraries. The app also uses CocoaPods as its package dependency manager, to give you a cutting-edge tool to add to your skillset. By the end of the book, you will have learned how to model real-world apps in Swift. What you will learn Become a pro at iOS development by creating simple-to-complex iOS mobile applications Master Playgrounds, a unique and intuitive approach to teaching Xcode Tackle the basics, including variables, if clauses, functions, loops and structures, classes, and inheritance Model real-world objects in Swift and have an in-depth understanding of the data structures used, along with OOP concepts and protocols Use CocoaPods, an open source Swift package manager to ease your everyday developer requirements Develop a wide range of apps, from a simple weather app to an Instagram-like social app Get ahead in the industry by learning how to use third-party libraries efficiently in your apps Who this book is for This book is for beginners who are new to Swift or may have some preliminary knowledge of Objective-C. If you are interested in learning and mastering Swift in Apple’s ecosystem, namely mobile development, then this book is for you.




Learning Core Data for iOS with Swift


Book Description

Get Started Fast with Core Data App Development Using iOS 9, Swift, and Xcode 7 Core Data is a remarkably mature, stable, and fast platform for data access, and Swift is a world-class language for applying it. Now, there’s a complete guide to using Core Data and Swift together in production apps. Tim Roadley shows you how to gain the benefits of a relational database without writing SQL queries, so you can get more done faster, with less coding. This book fully reflects Apple’s latest iOS 9 platform innovations and teaches Core Data entirely with Swift examples. It guides you step-by-step through creating a modern data-driven iOS app that fully integrates iCloud via CloudKit for public data sharing. Roadley introduces up-to-date patterns and best practices designed to overcome the frustrations of Core Data development. Each chapter builds on the last, introducing new topics in the order you’ll implement them and extending your skills simply and intuitively. Each chapter offers downloadable project code, along with exercises to help you explore even further, either as a self-learner or a student in an iOS development course. Roadley even shows how to build helper classes that simplify reuse of his example code. If you’re an experienced iOS developer, here are all the Swift skills and resources you need to integrate data into any app—quickly, easily, and painlessly. Coverage includes Understanding what Core Data is and what it can (and can’t) do Configuring basic managed object models, and choosing data types Expanding data models without introducing errors Using relationships and entity inheritance to unlock more power Delivering memory-efficient, high performance table views Enabling users to easily modify managed object attributes Generating persistent stores of preloaded default data Using Deep Copy to copy objects and relationships between persistent stores Optimizing performance by eliminating bottlenecks and offloading intensive tasks to the background Implementing efficient search Integrating diverse iCloud accounts and preferences Mastering advanced iCloud integration, including entity-level seeding and unique object de-dupe Leveraging public CloudKit databases to sync data across users with different iCloud accounts About the Website All code samples are available for download at timroadley.com. informit.com/learningseries timroadley.com




iOS 12 Programming Fundamentals with Swift


Book Description

Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode 9 IDE, Cocoa Touch, and the latest version of Apple’s acclaimed programming language, Swift 4. With this thoroughly updated guide, you’ll learn the Swift language, understand Apple’s Xcode development tools, and discover the Cocoa framework. Explore Swift’s object-oriented concepts Become familiar with built-in Swift types Dive deep into Swift objects, protocols, and generics Tour the lifecycle of an Xcode project Learn how nibs are loaded Understand Cocoa’s event-driven design Communicate with C and Objective-C Once you master the fundamentals, you’ll be ready to tackle the details of iOS app development with author Matt Neuburg’s companion guide, Programming iOS 12.




Swift Programming


Book Description

This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book. Through the authors' carefully constructed explanations and examples, you will develop an understanding of Swift grammar and the elements of effective Swift style. This book is written for Swift 3.0 and will also show you how to navigate Xcode 8 and get the most out of Apple's documentation. Throughout the book, the authors share their insights into Swift to ensure that you understand the hows and whys of Swift and can put that understanding to use in different contexts. After working through the book, you will have the knowledge and confidence to develop your own solutions to a wide range of programming challenges using Swift.




Swift Data Structure and Algorithms


Book Description

Master the most common algorithms and data structures, and learn how to implement them efficiently using the most up-to-date features of Swift 3 About This Book Develop a deep understanding of the collections in the Swift Standard Library with this step-by-step guide Develop native Swift data structures and algorithms for use in mobile, desktop, and server-based applications Learn about performance efficiency between different data structures and algorithms Who This Book Is For This book is for developers who want to learn how to implement and use common data structures and algorithms natively in Swift. Whether you are a self-taught developer without a formal technical background or you have a degree in Computer Science, this book will provide with the knowledge you need to develop advanced data structures and algorithms in Swift using the latest language features. What You Will Learn Get to know about the basic data structures and how to use the Swift REPL Use the Swift Standard Library collections bridging to Objective-C collections, and find out about protocol-oriented programming Find out about Swift generators and sequences, and see how to use them to implement advanced data structures such as Stack, StackList, Queue, and LinkedList Implement sorting algorithms such as Insertion Sort, Merge Sort, and Quick Sort and understand the performance trade-offs between them See how to implement various binary trees, B-Tree, and Splay Trees Perform advanced searching methods using Red-Black trees, AVL trees, and Trie trees, and take a look at several substring search algorithms Get to know about the data structures used in graphs and how to implement graphs such as depth-first search, breadth-first search, directed graphs, spanning tree, and shortest path Explore algorithm efficiency and see how to measure it In Detail Apple's Swift language has expressive features that are familiar to those working with modern functional languages, but also provides backward support for Objective-C and Apple's legacy frameworks. These features are attracting many new developers to start creating applications for OS X and iOS using Swift. Designing an application to scale while processing large amounts of data or provide fast and efficient searching can be complex, especially running on mobile devices with limited memory and bandwidth. Learning about best practices and knowing how to select the best data structure and algorithm in Swift is crucial to the success of your application and will help ensure your application is a success. That's what this book will teach you. Starting at the beginning, this book will cover the basic data structures and Swift types, and introduce asymptotic analysis. You'll learn about the standard library collections and bridging between Swift and Objective-C collections. You will see how to implement advanced data structures, sort algorithms, work with trees, advanced searching methods, use graphs, and performance and algorithm efficiency. You'll also see how to choose the perfect algorithm for your problem. Style and approach This easy-to-follow yet comprehensive guide can either be read from beginning to end, or depending on your current knowledge level, you can jump to the specific chapter that interests you. Each chapter topic starts with an introduction to the topic and algorithm before moving on to the hands-on implementation and analysis.




Mastering iOS 18 Development


Book Description

Elevate your iOS development skills with this comprehensive iOS 18 guide covering the latest changes and improvements in iOS SDK and Swift, while mastering practical techniques to become an exceptional iOS developer Key Features Stay up to date with the latest changes and improvements in iOS SDK and Swift programming language Learn how you can improve user experience by focusing on customizing components and animations Get to grips with advanced topics such as SwiftData and high-efficiency applications through an in-depth discussion Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionEmbark on a comprehensive iOS 18 development journey with Avi Tsadok, a veteran iOS developer and author of 4 books and over 40 tutorials and articles. A recognized public speaker, Avi has a knack for demystifying complex concepts and brings unparalleled expertise to the forefront of iOS 18 development education. This guide focuses on iOS 18 advancements, equipping developers with tools to maximize its potential. This book covers essential topics for seasoned developers, including Swift, SwiftUI, Xcode foundations, and the latest iOS SDK updates. You’ll get to grips with optimizing performance and understanding advanced architectural paradigms. By implementing the newest iOS updates, you’ll also explore intricate animation methods and harness a new framework, SwiftData that replaces Core Data for having persistent storage. The book builds your proficiency in advanced networking with URLSession and shows you how to conjure stunning visuals and adopt sophisticated testing techniques. You'll explore the world of machine learning with Apple’s Core ML diving into built-in frameworks like NLP, vision, and sound analysis to train and integrate your own models into iOS apps. By the end of the book, you'll possess skills to build exceptional apps, excel in advanced roles, and confidently tackle iOS development challenges.What you will learn Develop functional iOS applications on the iOS platform Build intricate custom animations and UI elements Master data handling and persistence in iOS apps Utilize Combine for efficient data management Harness the power of the neural engine through CoreML Explore architectures and streamline programming with Swift Macros Improve engagement by adding Widgets and App Intents Who this book is for If you are an experienced iOS developer looking to enhance your mobile development skills, create exceptional applications, and excel in advanced positions, this book is designed for you. To derive maximum benefit from this book and ensure a strong understanding of the advanced content, it is recommended that you have a solid foundation in Swift, SwiftUI, and Xcode.




iOS 14 Programming for Beginners


Book Description

Publisher's note: This edition from 2020 is outdated and does not make use of the most recent iOS and swift features. A new sixth edition, updated for iOS 15 and including new advanced topics, such as Mac Catalyst, SwiftUI, Swift Concurrency, and SharePlay, has now been published Key FeaturesExplore the latest features of Xcode 12 and the Swift 5.3 programming language in this updated fifth editionKick-start your iOS programming career and have fun building your own iOS appsDiscover the new features of iOS 14 such as Mac Catalyst, SwiftUI, widgets and App ClipsBook Description If you're looking to work and experiment with powerful iOS 14 features such as widgets and App Clips to create your own apps, this iOS programming guide is for you. The book offers a comprehensive introduction for experienced programmers who are new to iOS, taking you through the entire process of learning the Swift language, writing your own apps, and publishing them on the App Store. Fully updated to cover the new iOS 14 features, along with Xcode 12 and Swift 5.3, this fifth edition of iOS 14 Programming for Beginners starts with an introduction to the Swift programming language and shows you how to accomplish common programming tasks with it. You'll then start building the user interface (UI) of a complete real-world app using the storyboards feature in the latest version of Xcode and implement the code for views, view controllers, data managers, and other aspects of mobile apps. The book will also help you apply iOS 14 features to existing apps and introduce you to SwiftUI, a new way to build apps for all Apple devices. Finally, you’ll set up testers for your app and understand what you need to do to publish your app on the App Store. By the end of this book, you'll not only be well versed in writing and publishing applications, but you’ll also be able to apply your iOS development skills to enhance existing apps. What you will learnGet to grips with the fundamentals of Xcode 12 and Swift 5.3, the building blocks of iOS developmentUnderstand how to prototype an app using storyboardsDiscover the Model-View-Controller design pattern and how to implement the desired functionality within an appImplement the latest iOS features, such as widgets and App ClipsConvert an existing iPad app into an Apple Silicon Mac appDesign, deploy, and test your iOS applications with design patterns and best practicesWho this book is for This book is for anyone who has programming experience but is new to Swift and iOS app development. Experienced programmers looking to explore the latest iOS 14 features will also find this book useful.