Advanced iOS

Take your iOS skills to the next level with this intensive dive into performance tuning, debugging, and exploring a wide range of iOS’ frameworks and APIs.

  • 19 April
    5 days, 09:00 AM - 05:00 PM
    • $4,200.00 excl.
    Register10 places remaining


Work with APIs from all corners of iOS in this intensive 5-day course to build faster, more stable, stand-out apps. Study a broad range of topics from animations and custom drawing to debugging and performance tuning.

Bootcamp Price: $4200

Bootcamp price includes hotel, meals, and a shuttle to and from the hotel.

In the Atlanta area? Interested in commuting to class? Contact training@bignerdranch.com to discuss commuting options and discounts.

Who should take this class?

  • iOS developers using Swift with at least 6 months experience are ideally suited for this course.

  • Experience working with view controllers, table views, collection views, and web services is strongly recommended.

What you'll learn:

  • Create custom views, animations, and behaviors across and beyond UIKit.

  • Write robust asynchronous code and understand app performance concerns.

  • Use Swift together with Objective-C harmoniously in the same project.

  • Explore media processing, networking, and data modeling APIs.

  • Debug and troubleshoot performance and memory problems.

  • Understand what’s happening under the hood of iOS’ interface.

How to prepare:

Pre-Course Assignment

There is no pre-course assignment, so long as you consider yourself proficient enough in iOS development to create simple apps without much assistance. 

Xcode and iOS

Please download the latest version of Xcode, which is necessary for the class. You can get the latest version of Xcode from the Mac App Store. iOS 12 is available as an over-the-air update for your iOS device if you’ll be bringing one. Please plan to download Xcode and run OS updates prior to arriving for class. Xcode requires that your Mac be running macOS 10.13.6 or later.

Device Provisioning 

In order to get the best possible experience from the class, we recommend that you bring an iPhone, iPad, or iPod touch with you. Testing the apps that we write in class will be much more fun if you can see them on your device.

*We will be using iOS 12 for all examples and exercises in this class, so devices should be running iOS 12.

If you are unable to provide a device for testing, let us know so that we can talk about which bits you might miss out on.


Model Architecture

  • Configure your application for dependency injection using Dagger 2 so your application components can get the dependencies they need without unnecessary coupling.

  • Explore the usage of functional-reactive programming with RxJava and RxAndroid.

  • Add Data Binding to your application to help implement the Model-View-ViewModel architecture pattern.

  • Understand View Binding and how it relates to Data Binding.

  • Reap the benefits of dependency injection by easily testing your model layer objects.

Advanced Networking 

  • Explore the Retrofit library and learn how it can reduce the network boilerplate in your applications.

  • Learn how to authorize your application with a back-end server and make authenticated requests using OAuth

  • Implement common patterns to deal with network exceptions and background threading.

  • Test your networking code using both unit and integration tests for a full test suite.

Android Views

  • Create a fully custom list item view to gain as much performance as possible from your UI.

  • Support accessibility in your custom views.

  • Maintain user focus as they navigate about your app using shared element transitions.

  • Animate changes to your UI using Motion Layout.

  • Apply a notification style to change how your data is displayed to the user depending on the type of data.

  • Test the UI of your application by using the Espresso framework to write your integration tests.

Performance Testing

  • Utilize the built-in testing tools to identify view performance issues that can lead to dropped frames and suboptimal user experience.

  • Identify memory leaks in your application as well as conditions that can lead to high battery drain and unhappy users.

Creating Builds

  • Configure your application to produce different build flavors and identify how these can be used.

  • Prepare your application for release in the Play store by configuring your application, signing it, and learning about the release process.

Not Happy with Your Current App, or Digital Product?

Submit your event

Let's Discuss Your Project

Let's Discuss Your Project