
Explore intermediate iOS development with Swift 3, learning to download content from the internet and display images via URLSession, manage downloads, customize layer properties, use 3D Touch, gestures, core data.
Advance your Swift development from basics to intermediate topics in iOS with Xcode, exploring Touch ID, 3D touch, Quick Actions, graphics, animations, and data handling.
Meet the instructor, a five-year iOS developer with bachelor and master degrees, who freelances and teaches intermediate Swift 3 app development; he also highlights the beginner course with 43 hours.
Design the user interface for a single JSON app, implementing a searchable table view, customizable background colors, a transparent table, and bold white text to demonstrate basic UI design.
Json, or javascript object notation, is a lightweight data interchange format easy for humans to read and machines to parse, using key-value structures and validation before adding to your app.
Learn to read JSON from the bundle, obtain the data, and print it to verify contents. Then convert the data to an object for later use.
Learn to deserialize json from data using json serialization within a do catch syntax, try it, and use the fragment option to access the top level object and dictionary values.
Extract the top-level object from JSON, access the friends key, cast to dictionaries, and use the resulting data to populate a table view.
Set up the table view, connect outlets, and implement the data source to display json contents in table cells by mapping dictionary keys such as name and detail.
design a core data enabled user interface by building a simple table view in storyboard, wiring the data source and delegate, and implementing a save action.
Add UIAlertController to collect user input by presenting an alert with a configured text field for the user to type their name, including a placeholder and a save action.
Register user input from a text field, save it to a model array, and display names in a table view by wiring the data source and reloading the table.
Modify UIAlertController to take two text fields for name and year of birth, wire up inputs, and populate a simple model in Swift 3 for iOS 10.
Set up a Core Data model by creating an entity called people, with attributes such as name and year stored as strings, treated as a database table.
Learn how to save an NSManagedObject to Core Data by creating a managed object context, defining a people entity, inserting an object, setting values, and persisting with a save.
Fetch all objects from core data using a fetch request on app launch, using a managed context and the app delegate, and display the results in a table.
Demonstrates displaying an NSManagedObject detail using value for key, casting to string, and safely accessing the name key to populate table text with data persisted across launches.
Edit an existing NSManagedObject by updating a single key with setValue(forKey:), handle errors with do-catch, and refresh the table view by fetching data.
Access the managed context to delete objects, save the context, and refresh the table; understand deleting from the data model and its relationships to design most apps.
Install CocoaPods and streamline library integration for your Swift projects by running pod install, replacing manual copy-and-drag with a simple dependency workflow.
Learn how to use CocoaPods to add a library by running pod init, editing the Podfile, and running pod install, then open the workspace in Xcode.
Learn how to use a third-party library with cocoapods in an iOS app, including setting up the workspace, importing the library, wiring image filtering, and implementing delegates.
Discover how to find and integrate a third-party library using CocoaPods, add it with a Podfile, run pod install, and manage dependencies to complete the integration.
Create a basic UI for a CALayer app sample by configuring a view, setting its size to 50 by 15, changing the background color, and centering it on screen.
Explore how CALayer defines a backing store for image-based content, manages visuals, and exposes properties such as background color, border, and shadow, including cg color versus ui color usage.
Learn to add a border to any view by configuring its layer, including setting the border color with cgColor and applying it to labels or views.
Learn how to add rounded corners to a view or layer by setting the corner radius, and make a circle by setting it to half the view's width or height.
Learn how to add a shadow to a layer, set its offset (width and height), choose a dark grey color, and adjust opacity for a subtle shadow effect.
Learn how to add an image to a layer by hiding existing content in a view, supply the image asset, run the app, and address layout issues.
Learn how to use the maskToBounds property to bound layer corners, compare with clipsToBounds, and understand how masking affects shadows and edge drawing.
Add a layer as a sublayer inside the view, set its frame to 80 by 80, background color red, and corner radius about 40, and mask it to another layer.
Create a gradient layer and apply it to a view, defining gradient colors as CGColor stops, and arrange multiple colors with adjustable spacing for smooth black-to-red transitions.
Learn a one line code trick to flip a layer's content, adjust the bottom radius to the top, and use opacity and hiding options to control visibility.
Learn how to use the layer's contents gravity to control image positioning and center images within bounds for proper display, distinguishing small from large image behavior.
Design a multi-screen UI by duplicating four controllers, color-labeling them blue, red, and orange, and enabling 3d touch to switch between three screens with zoom and rearrange features.
Explore creating app shortcut items inside info.plist with key-value arrays, including title, subtitle, icon type, and user info, plus the delegate approach for shortcuts.
Create shortcut items inside the app delegate for blue, red, and orange screens, initializing localized titles, subtitles, and an icon, then test in the simulator.
Intercept home screen quick action shortcut item selections in app launch and perform actions using a switch over the shortcut type, handling blue, red, and orange cases with a default.
Discover how to present different screens from a shortcut item by configuring storyboards and view controllers, assigning storyboard IDs, and managing routes with 3D touch and debugging with print statements.
Create and apply a custom, single-color icon for a shortcut item by using a template image in your bundle or asset catalog, then verify the Facebook icon appears.
Discover how to check whether a device has 3d touch capability before taking action, using a simple availability check and running code only when it is available.
Design the ui for the graphics app by configuring a custom drawing view, subclassing a ui view, and overriding the draw method to perform custom drawing in a storyboard-connected component.
Create a graphics context, set the stroke color, move to a start point, draw a line to an end point, and stroke the path to render the 2d line.
Discover a simpler method to create a cgcolor from a ui color using color creation functions and a reference approach.
Learn to draw paths by refactoring code into a dedicated function, configuring the graphics context, setting stroke color, and drawing a triangular path with move-to and line-to commands.
Learn to draw a rectangle path by moving to starting points, copying coordinates, adjusting stroke color, and closing the path to complete the shape.
Draw a rectangle using AddRect by defining an origin point (x, y) and its width and height, then stroke the brown rectangle in the context.
learn to fill a path with color in a graphics context by setting the color and filling the path, using a rectangle example and distinguishing fill from stroke.
Learn how to fill a rectangle with color and apply stroke and border colors in Swift 3, using context fill and stroke operations to create bold, colored graphics.
Learn to draw a circle by defining a canvas, creating a rectangle, drawing an ellipse inside it, stroking the path, and filling the shape with color to render a circle.
Learn to draw ellipses by adjusting parameters to shape loops and achieve a globe-like form, exploring different positions and proportions.
Draw a circle with a shadow by configuring the graphics context, setting a shadow offset, and saving and restoring state for accurate shading.
Learn to draw an image using Phong draw, starting from point 0,0. Plot each dot to form the image.
Draw the image inside a 200 by 200 rectangle starting at (10, 10) to ensure it fits the space without distortion, illustrating rectangle-based image rendering.
Learn to redraw a view by calling setNeedsDisplay when a button is pressed, cycling through drawings via a tracker and a switch case that renders circles, rectangles, or images.
Design a basic user interface for a gesture recognizer app in a single storyboard view, with an image, a feedback label, outlets, and an orange background.
Learn to add a tap gesture recognizer to a view or image, configure target and action, enable user interaction, and customize tap counts for live or test mode.
Add a long press gesture recogniser in Swift 3 for iOS 10, detect a five-second press, print the image, and tune finger movement thresholds to trigger the action.
Add and customize a swipe gesture recognizer in a Swift 3 iOS app, set the direction to left, implement the swipe action to reset a counter, and test the interaction.
Add a pinch gesture recognizer to a view, use the transform to scale the view, and reset the scale back to 1 to prevent it from continuing to grow.
Add a pan gesture recognizer to track user movement, translate the view's position by the gesture's translation, and reset translation to keep the object movable without drift.
Learn how to add a tap recognizer from the object library in storyboard, configure its properties, and connect it to an action to handle a double tap.
Learn to design a Touch ID-secured iOS UI that prompts for the ID, reveals secret information, and uses status labels, color cues, and a close action.
Explore using the local authentication framework to check if a device supports Touch ID, preflight biometrics policy, and handle errors with code-based cases such as not enrolled or no passcode.
Demonstrate a successful Touch ID on the device and display an error on a label by connecting the device, enrolling a finger, and testing success and failure.
Evaluate biometric authentication policies using Touch ID in a Swift 3 iOS app, handle success or error outcomes, and securely reveal information after confirming user identity.
Learn how to implement a successful authentication flow and unwind segue to access a secret page, handle biometric and password fallback, and manage storyboard transitions in Swift 3 for iOS.
Implement a fallback password flow by creating a check password function, presenting a password alert with a text field, and authenticating input to grant access via password or touch ID.
Design the app user interface by laying out an internet image and four 70x70 buttons (play, stop, pause, resume) with constraints, a black background, and outlets in Xcode.
Learn to use URLSession and download task objects, including background downloads with a background session configuration, and track progress via delegate methods while downloading data to a temp file.
Demonstrates implementing a download with progress feedback, converting downloaded data to an image, and displaying it in the UI, while moving temporary data to permanent storage.
Learn how to use the download completed with error delegate method for download tasks, handle error descriptions, and trigger UI updates like showing a fallback image when needed.
Add a bottom progress bar to monitor downloads, adjust height and track color, bind progress to a model with animated updates, and dispatch updates on the main thread.
Master how to stop, pause, and resume a download task, including canceling, suspending, and resuming downloads, and track progress to completion.
Configure app transport security in the info.plist to enable loading from http links by adding the App Transport Security Settings key and Allow Arbitrary Loads option.
Are you a beginner developer that’s looking to improve your skills? Do you want to take your iOS development skills to the next level? Do you want to learn some of the new Apple API such as Touch ID and Quick Action? If you answered yes to any of these questions, then this course is for you. Also, if you have taken my beginner course, then this course will take you to the next level.
After completing this course, you will be ready to apply for jobs. You will gain a confidence boost in your skills and your ability.
In this course you will work on 10 different APIs, including drawing with Core Graphics, Using Touch ID, persisting data with Core Data and much more (see full curriculum below).
It is recommended that you have a basic working knowledge of iOS development before enrolling in this course. If you don’t have any knowledge of iOS development, I recommend starting with my Mobile App Development for Beginners course first.
After completing this course:
1) You will be ready to for an iOS development job.
2) You will be able to develop medium to complex apps.
3) You will have a better understanding of working with repository and integrating third party libraries into your own app.
4) You will have more confidence in your skills and ability.
Here is what you will learn in the course:
3D Touch Quick Action
- Learn the two different ways to create home screen shortcut menu when a user 3D Touches on the icon
- How to perform different actions based on the menu selected from the quick action
- How to add custom icons to shortcut item
- How to check the force touch capability of a device
CALayer
- Learn how to get the layer of a view and how to change some of the properties such as background colour
- Learn how to add a border to a layer
- Learn how to add a corner radius and a shadow to a layer
- Learn how to add content such as an image to the layer
- Understand the Mask to bounds property of a layer
- Learn how to add gradient to a layer
- Learn how to add flip a layer
Cocoapods & 3rd Party Libraries
- Installing cocoapods
- How to initialize pod file for Xcode project
- How to integrate third party libraries into our project
Core Data
- How to add UIAlertController to obtain user inputs
- How to set up core data model, entity and properties
- How to save value to core data
- How to fetch all records from core data
- How to display NSManagedObject record
- How to edit core data records
- How to delete an object from Core Data
Core Graphics
- How to use Quartz 2D API to draw a 2D line
- How to draw paths
- How to draw a rectangle
- How to fill a path with a color
- How to fill a rectangle with color while preserving it’s path color
- How to draw a circle/ellipse
- How to add shadow to drawings
- How to draw an image on a view at a point, or in a rect
- How to redraw a view with the SetNeedsDisplay method
Gesture Recognizers
- How to add tap gesture to a view that does not have a tap gesture
- How to add long press gesture to an image view
- How to add swipe gestures to a view
- How to add pinch gesture recognizer
- How to add pan gesture recognizer
- How to add gestures directly on the storyboard object.
JSON Tutorial
- How to read a JSON file using a built-in API
- How to display the contents on any JSON in a table
Touch ID
- Checking a device support for Touch ID
- Dealing with an error where user has a Touch ID capable device but has not set a passcode.
- How to use Touch ID to protect sensitive information on iOS devices
- How to set a fall back password when a Touch ID fails
Download from Internet using URLSession
- Create URLSession and Download task objects
- Delegate methods to track completed and download errors
- Set progress view to monitor download progress
- How to stop, pause and resume an active download task
- Configure app transport security setting in order to work with http links
Version Control with Bitbucket and SourceTree App
Topics include;
- Creating an account with BitBucket
- How to connect Xcode to a repository on BitBucket
- How to commit and push code from within the Xcode
- How to create a new Xcode project from an online repository
- How to pull changes from a repository
- How to use source tree to commit, push and pull changes
- How to checkout another version of a app.
This course is going to help you take your app development skills to a whole new level.
If you're ready to become a proficient app developer so you can work as a freelance or full-time developer, click the "Buy Now" button and join the course today!