There is so many great tutorials on the internet about how to create mobile apps for iOS devices such as the iPhone and iPad, but very few that cover enterprise mobile development requirements - authentication, business processes, connecting with existing systems etc. I thought that I would try and change that by combining the best of both worlds: write a series of tutorials on how to build mobile apps using Swift, Apple's fantastic new programming language, and write the tutorials designed to assist enterprise developers.
These tutorials are designed to take you from zero experience in iOS development and mobile app design, to building complete native mobile apps. Throughout the series we are going use the Salesforce1 Platform as the mBaaS provider. I work for Salesforce.com in our developer relations team where, almost on a daily basis, I meet with enterprise developers that are being asked to extend salesforce into custom mobile apps, but don't know where to get started. The Salesforce1 Platform provides some amazing features for mobile developers including instant RESTful APIs for all data entities and business processes, cloud based logic that may be shared between mobile and enterprise apps, identity services, and more - all the kinds of things you want to have taken care of, and let you focus on extended business apps to iOS devices.
But that's enough talking. Let's get into the tutorials.
The TutorialsThe list of tutorials below provide a path to begin your journey in learning Swift and building enterprise mobile apps. These tutorials are intended to be a living, and evolving, resource. The goal is to produce a new tutorial roughly each week.
Enterprise Mobile App Prototypes with FlintoAlmost every customer I talk to gets stuck on how to start designing their mobile app. This tutorial covers some very simple prototype techniques using pen and paper, and Flinto, a rapid prototyping tool to get user feedback early.
Using Sketch To Design Your AppLike most of our there, we are not design experts, but that doesn't mean you can't create beautiful apps. This tutorial will take our basic prototypes and add some design using Sketch.
Prepare Your Base App with Swift and the Salesforce Mobile SDKThe Mobile SDK currently provides Objective-C based template projects. This tutorial shows you how to take these template projects, show you how to handle authentication, and quickly make them Swift and Storyboard ready.
Adding Your Designs To XcodeIn our last design tutorial, we will take the artboards and add them to Xcode. This tutorial will provide a brief introduction to storyboards, seques, and handling tap gestures.
Introduction to iOS
Learning SwiftSwift, Apple's new development language is incredibly easy to use. This tutorial will introduce you to XCode, the Apple Developer IDE, and use the Playground feature to teach you the basics of Swift 2.
Intro to Storyboards, UI and ControllersWith a basic understanding of Swift under our belt, this tutorial will introduce you to the UI controls and framework within XCode.
Learn the Salesforce Mobile SDK
Using Salesforce as a Mobile BackendIt's time to configure our backend data model and cloud logic. This tutorial will show you how to use the Salesforce1 platform as an MBaaS to create data objects, add custom cloud logic and connected app definitions.
Working With Data and the Mobile SDKAt the core of everything we are doing is retrieving data from Salesforce via the Mobile SDK. This tutorial will teach you how to perform standard CRUD operations, manage user tokens, and work with the Mobile SDK responses and delegates.
Connecting ViewControllers and Tables to Salesforce DataNow that we have our UI and data, we can connect everyhthing together to finish off our mobile app.
Adding Sync and Encrypted Offline SupportMany enterprises require the ability to sync data and still information securely offline. This tutorial which teach you have to use SmartSync and SmartStore within the Mobile SDK.
Deploying and Testing on DevicesUp until now, we have been developing entirely on the iOS simulator. It's time to get your app onto your physical device and test it out. This tutorial will teach you how to work with Apple's developer certificates, as well as cover tips on deployment if you are part of an (Apple Developer) enterprise team.
Using Test Flight for Beta TestingTestFlight is an amazing tool for getting your app into the hands of your users before you list it officially in an appstore. This tutorial will show you how to do.
Get Your App into the Public or Private Apps StoresIt's time to put all of your hard work out there for the world to see. This tutorial will teach you how to get your app into the public Apple App Store, as well as how to list it in an enterprise app store just for your organization.
Adding WatchKitWatchKit, the latest addition to the developer toolbelt, offers some unique value props for enterprise efficiency. This tutorial will show you how to connect the Mobile SDK and WatchKit for a killer enterprise app.
Adding HealthKitHealth is going to be a huge focus for many connected devices. This tutorial will show you how to use HealthKit, and potentially use it to promote employee health and well being.
Adding HomeKitAs we see more and more devices in our home connected to the internet, there are infinite possibilities for organizations to improve customer service and support. This tutorial will leverage the Salesforce Service Cloud and the Salesforce1 Platform to introduce you to next generation app ideas for the connected home.
Adding CloudKitAs more and more businesses move their systems to the cloud, it will become increasingly important to connect across clouds for a comprehensive view of customers. This tutorial will show you how to leverage both the Salesforce1 Platform and CloudKit to understand more about the customers using your apps.
Adding Twitter CrashlyticsLike it or not, apps crash. The most important thing is knowing why. This tutorial will leverage Twitter Fabric to include Crashlytics to gain valuable insights why your app crashed, and how to fix it - fast.
Authors and Contributors
All tutorials are written by @quintonwall, but hopefully I'll get some help from the community as we build these out. If you are interested in contributing to the effort, please send me a message on Twitter.Tweet