
Explore the iOS 11 Swift 4 development course, starting with beginner-friendly Xcode basics and layout concepts like preview layouts and constraints, then build apps with table view and core data.
Introduce the florist app project and basic iOS concepts by exploring Xcode basics, navigation controller, view properties, and running the app on iPhone, including screen transitions.
Download Xcode from the App Store by opening the App Store app, search for Xcode, install if needed, enter your username and password, and start coding.
Create a fast iPhone app with a single view, storyboard, label, and button; customize background and font, then run in the iPhone simulator; and submit to the App Store.
The instructor shares his background as an experienced iPhone and iOS developer on the Apple platform, with 100–150 apps, freelancing, and a startup, guiding a comprehensive, hands-on learning journey.
Master essential Xcode settings, including deployment target, orientation, and status bar style, and learn to fix storyboard issues by matching the main interface to the correct storyboard.
Explore the Xcode interface, including the navigator, utilities, document outline, object library, and inspectors, and learn how to adjust attributes and size for on-screen elements.
Learn how to create and configure UILabels in iOS using Swift, covering text, color, font, alignment, number of lines, and auto shrink behavior.
Learn to create and arrange three to four home screen buttons, size 70 by 70, duplicate, and apply background images from flat icon for Facebook, Twitter, and YouTube.
Learn to use Xcode preview to quickly view your app on different screen sizes without the slow simulator, using the assistant editor to add or remove previews.
Learn to automatically add missing constraints to views with auto layout, inspect layout issues across different iPhone sizes, and understand why manual adjustments remain necessary.
Add layout constraints manually to views by pinning edges and setting top margins and sizes to keep a consistent UI across devices such as iPhone 6 and 6 Plus.
Explore building an iOS interface with stack views to organize twelve images into four stacks, adjust spacing and alignment, and use auto layout to create a responsive screen.
Learn to toggle between software and hardware keyboards in the iOS simulator, ensure the software keyboard appears, and use the connect with keyboard option to switch between keyboards.
Learn navigation control and segues between two view controllers, using interface builder or code to create transitions and back-and-forth movement across two scenes.
Embed the first scene in a navigation controller to gain a top navigation bar and back button. Explore push and modal transitions, animation differences, and how to navigate between screens.
Learn to fix laggy image transitions in a Swift iOS app by enabling clips to bounds on image views, ensuring smooth segues when returning to the previous screen.
Discover a quick hack to fix a hidden navigation bar title in iOS apps by tweaking in code and using the push segue, while avoiding deprecated APIs.
Learn how to customize the back button text in a navigation bar, using a custom label like 'go back' or a space hack to show no text, with interface-based adjustments.
Learn how push segues behave without a navigation controller and how to fix by setting a navigation controller as the initial view controller and using the correct show segue.
Change the status bar color to white by setting the status bar style to light content when using a black navigation bar.
Hide the status bar by toggling its appearance, noting that the default is visible and the Info.plist key for view controller-based status bar appearance enables this behavior.
Create an icon in Canva by uploading your image, centering it on a 1024 by 1024 canvas, and adding text before saving a high‑quality 1024 by 1024 icon.
Drag the icon files from the icons folder into Xcode, copy them to the project, and set the app icons in the target. Build and run to view the icon.
Resolve build time issues in the app by removing unreachable view controllers, ensuring entry points and runtime access, and updating segues to address deprecated behavior, achieving zero warnings and errors.
Explore memory usage basics by watching how app memory grows in the simulator as you navigate screens and load images, and understand how object reuse prevents leaks and crashes.
Learn to add UIImageView programmatically without Interface Builder, inspect class definitions via the command-click trick, and configure image view properties such as frame, image, content mode, and center.
Learn to create and connect IBOutlet in interface builder, reference UI elements like labels and buttons, and modify properties such as text and background color via code.
Learn to create and connect IBActions for UIButtons using Interface Builder, assign touch up inside events, and print button clicks to test behavior.
Discover how the view controller life cycle governs refreshing the user interface; call viewWillAppear to update data every time the view is about to appear, preserving state on return.
Explore the four basic data types in Swift: integers, strings, floating point numbers, and booleans, with practical examples for choosing the right type in apps.
Explore the string data type in Swift by declaring variables and constants, using type inference and type annotation, and applying operations like uppercased, isEmpty, and has prefix or suffix.
Explore the integer data type, including type inference with constants and variables, using examples like five and seven to sum to twelve. Learn about signed, unsigned, and 64-bit integers.
Explore Swift's float and double types, how type safety affects assignments, compare precision and memory trade-offs, and why double is generally recommended for floating point numbers.
Learn how string interpolation combines variables and constants inside strings. Explore examples with name, age, and body temperature, and see how plus and multiply operators work within interpolated expressions.
Learn how to properly concatenate strings in Swift using string interpolation, avoiding plus signs to join strings with integers or doubles, and using full interpolation for efficiency.
Learn to improve code readability through descriptive naming conventions for variables and constants, using camel case or underscores, with classes starting in capital letters and variables in lowercase.
Explore the four basic arithmetic operators, namely addition, subtraction, multiplication, and division, and apply brackets, operator precedence, and the order of operations to evaluate expressions.
Learn how integer division in Swift truncates to integers, causing precision issues in calculations. Master fixes by converting operands to doubles or using explicit type casting to ensure accurate results.
Explore the remainder operator, its use in modulo division, and real-world examples like converting points to coins, including handling doubles and truncation.
Learn how compound assignment operators provide in-place shorthand for updating values with plus equals, minus equals, divide equals, and multiply equals on x, and note ++ removal in Swift 3.
Master five comparison operators, including the equality check, and learn to compare values using less than, less than or equal to, and greater than, yielding true or false results.
Inspect variable data types in Swift by option-clicking a variable to reveal its type, such as int, double, or string, and explore string methods like isEmpty and contains.
Explore type casting in Swift by converting values between int and double. See how precision is preserved or lost when casting between types and back.
Learn to compute fruit percentages from a 17-item total, using doubles to avoid integer division and verify percentages sum to 100 percent.
Learn how if statements evaluate boolean conditions to control code execution in Swift, printing only when the condition is met. Use comparison operators to decide when actions run.
Explore the else branch in if statements and how code executes when the condition is false, with examples from rain and umbrella.
Explore nested if else conditions to check multiple criteria, such as age over 20 and total items at least 30, and learn braces usage and code readability.
Replace deeply nested ifs with an else-if style chain to handle many conditions, such as days of the week or fruit types, and include a final else as a catch-all.
Apply if statements to find the maximum of two numbers and print the larger value. Address edge cases when numbers are equal and explore using greater than or equal to.
Learn to determine if a number is even or odd using the remainder operator and an if statement; use division by two to check zero or one remainder.
Explore how to determine divisibility of numbers by 6 and 9 by checking for zero remainder, using problem-solving steps shown in the video.
Master divisibility in Swift using or and and operators to test if a number is divisible by at least one of 3, 6, 9 or all of 3, 5, 7.
Master using switch statements to match multiple values in Swift, applying cases that handle several values and a default, with examples for breakfast and lunch.
Explore how Swift's switch statements differ from Objective-C by not requiring breaks, learn when to use break to indicate no code, and see case and default handling with voice examples.
Explore Swift switch statements and the fall through behavior, learn how cases stop by default, and how to opt into fall through with the fall through keyword.
Group related values into a single array, declare arrays in Swift using type inference or explicit types, and learn that arrays are ordered and indexed from zero.
Explore how to modify values in arrays by direct assignment, deleting and inserting, and replacing specific or ranged segments, while handling index out of range errors.
Explore how copying an array yields a value copy rather than a reference, why changes to one copy don’t affect the other, and how references share memory.
Learn how to declare dictionaries with typed notation, initialize empty ones, and retrieve values using keys in square brackets; handle optionals and potential type mismatches when accessing data.
Learn how to add a new key-value pair to a dictionary in Swift, avoid mixing key and value types, and retrieve values by key rather than index.
Learn how to update dictionary values using updateValue(forKey:), which returns the previous value when the key exists; if the key doesn't exist, the method adds it and returns nil.
Remove a value from a dictionary using remove value for key, and learn how the method returns the old value after deleting the key.
Explore useful dictionary methods in Swift, including counting pairs, retrieving keys and values, and converting them to arrays, with examples of type casting and printing entries.
Master using the loop counter value and the underscore placeholder in Swift, printing multiplication tables and building strings with interpolation while optimizing code when the loop variable isn't needed.
Learn to loop over arrays using for loops in Swift, access each fruit and its index, and handle array bounds safely with count and range.
Learn to find the maximum value in an array by iterating through each element, updating a max variable, and printing the result.
Learn how the while loop runs until a condition becomes false, compare it with the for loop, and see practical examples that demonstrate counters and safe index use.
Identify and prevent infinite loops by checking loop conditions before execution. Avoid repeatedly running code when a condition remains true, and use counters and comments to stop runaway processes.
Explore the repeat while loop and how it differs from the while loop: the loop checks the condition at the bottom, so the body runs at least once.
Separate a number into its digits using a while loop, modulo 10, and integer division, storing digits in an array and reversing the result for correct order.
Learn to use functions to avoid repeating code by applying the dry principle. Define a function with code and call it by name to reuse it across screens.
Define a function with three integer parameters, add them, and print the result when called with 3, 6, and 18, producing 27.
Explain that a function parameter is a constant that cannot be reassigned. Copy the value into a new variable inside the function to safely reduce an integer by one.
Explore the optional type and the concept of returning nothing in functions. Understand how sentinel values like -1 are used in indexing and why optionals help represent absence in Swift.
Discover how optionals safeguard code by preventing access to uninitialized or missing values, compare Swift and Objective-C behavior, and learn to return nothing when appropriate to avoid crashes.
Learn how to return nil from a Swift function using optional types and a question mark, and handle 0–10 mood cases with a switch.
Explore how to wrap and unwrap optionals in Swift, using if let to safely unwrap values and avoid crashes while building iOS apps.
Learn to force unwrap optional types in Swift with the exclamation mark, and know when to use it safely, avoiding fatal errors and unsafe if statements.
Explore implicitly unwrapped optionals in Swift and how they differ from regular optionals. Learn why they require caution, when to initialize them, and how optional binding prevents nil value crashes.
Explore the nil coalescing operator in Swift, using optional values and the ?? operator to provide a default when a value is nil.
Learn how optional chaining in Swift lets you chain property, method, and subscript calls so the whole chain fails gracefully when any link is nil.
Explore variable scopes in Swift, distinguishing local and global variables and optional binding, and understand how scope confines access within functions while global variables remain accessible throughout code.
Design the bill splitter UI by launching a new Xcode project, configuring the iPhone interface, and adding labels, text fields, and a large button with a results screen.
Create and connect IBOutlets and IBActions for the bill splitter app using the assistant editor, linking text fields and the result label, and implement a calculate action on the button.
Learn a quick method to dismiss the keyboard by placing a full-screen button that covers the view, wiring an action, and calling a single line of code to end editing.
Learn how to use prepare for segue to pass a final text to the next screen, by validating text fields and downcasting the destination controller.
Explore how shouldPerformSegue determines whether a segue runs, override to add pre-checks, validate input, and pass data via prepare for segue to the destination view.
Learn how to dismiss a view controller in iOS using Swift, with animation options and optional completion handlers, to cleanly close presented interfaces.
present a view controller by code without segues, using storyboard IDs and instantiating view controllers, and understand when this approach suits large, complex apps.
Explore managing navigation with a navigation controller, set up segues between multiple screens, and implement pop to root and pop to specific view controllers with animated transitions.
Reference a third storyboard manually by creating a new storyboard file, copying scenes, and wiring segues to navigate between storyboards.
embed a view controller in a navigation controller to practice sending information via segues. cast the destination with the navigation controller's top view controller to avoid crashes.
Implement forward and back buttons to cycle through image assets named 0–9 in the iOS 11 Swift 4 development course, using an index and array to update the image view.
Explore an alternative method for populating images without a for loop by indexing image names from 0 to 9, retrieving by index, and creating images from those names.
Persist a favorite image using user defaults by saving a small index under a favorite key and loading it in the favorites screen to display the saved image.
Learn to implement an app theme switch from dark to light on the settings screen using a segmented control and outlet collections, updating background colors and UI elements immediately.
We continue implementing the theme by updating label and control colors when the segment changes, using a loop to update all settings labels.
Toggle borders on UIImageViews with a switch, defaulting to no border. Turn on to draw a red border with a defined width and preserve this state across app launches.
Learn to customize the tab bar across your iOS app using the appearance proxy to set colors for light and dark modes.
Continue UI design by adding your interview text to the screen, ensure copy right text, set a clear color, and implement a close button for the modal.
Add a plist file to the app to store data as a dictionary or array, including image names and descriptions, and learn basic data integrity checks.
Design a custom button by creating a subclass, override initializers, and set background color, font, text color, and corner radius so all buttons share a single style across the app.
Explore customizing views on the second screen by looping through subviews, casting to buttons, and applying styles. Learn to differentiate elements with tags to selectively style labels and other controls.
Discover how to send data to the details screen from a list by using binding, a go to details action, and a dictionary to populate the detail view.
Learn to customize the details screen by wiring a close action, using segues to pass data, and tagging view objects. Adjust the image, background color, and description text.
Define a central constants file in Swift to store color values, enabling one-time changes across the app. Use a three-segment control to switch colors (green, blue, orange) globally.
Build the mini tasks app by adding tasks with text and date/time, learn to navigate a table view, and implement delegates and data sources for dynamic data handling.
Design the two-screen minitask UI by embedding in a navigation controller, using a segmented control, and adding a bottom new task button with a table view for tasks.
Capture the selected picker item with didSelectRow and update the app's data source; enable the add task button only after a valid selection.
Learn to implement a table view in iOS apps by wiring its delegate and data source, dequeuing reusable cells with identifiers, and reloading data.
Refine the user interface by adding a button in view did load, adjusting colors to white text, and tweaking font style and shapes to achieve a perfect circle.
Learn how to subclass a UITableViewController in Swift 4, set up name and image data sources, and configure sections and rows with template-driven code.
Explore counting characters in a text field with the UITextFieldDelegate, focusing on should change characters in range and optional handling to enforce a max length of 30, with debugging tips.
Use the image picker with delegates to access the photo library and handle media after selection with did finish picking media with info, while addressing privacy keys.
Learn to pop a view controller safely, insert items at the top of a list, and configure UI elements like corner radius and text fields for a polished table view.
Create a convenient load function to populate your car list in the app, wiring a button to insert car names and images into the table and refresh the data.
Create a custom UITableViewCell, connect outlets for image and labels, and bind the cell to data to display car sale items in a reusable table view.
Master how table view didSelectRowAt triggers a segue to another view controller, configure cell selection, and pass data with prepare for segue for seamless navigation.
Learn to obtain the index path of the selected table row in prepare for segue, unwrap it, retrieve the row data, and pass it to the destination view controller.
Learn to display data in a collection view by building a custom collection view controller, wiring a data source of image names and titles, and configuring cells with images.
Master how to check camera availability before launching and present an alert using UIAlertAction with a title, message, and multiple actions, including default and destructive styles.
Size collection view cells for different screens by implementing sizeForItemAt. Compute width from the collection view frame and divide by three or four, adjusting insets.
Learn to pass a selected image from a collection view to a detail screen using prepare for segue in a storyboard, handling index paths and destination image assignment.
Explore tuples in swift as a way to group mixed data types and return multiple values from a function, using labeled elements for readability and index-based access.
Learn to declare multiple constants and variables using tuples, apply shorthand assignments, and ignore unused values with underscores for clean, efficient Swift code.
Learn how to change tuple values by declaring them as var and updating elements with dot notation and indices, illustrated with a person example.
Explain that tuples are value types in Swift: copying a tuple creates an independent copy, so changes to one do not affect the original.
Learn how structs define functions as instance methods to deposit, adjust overdraft, and manage basic and premium accounts, with self referencing the current instance and functions returning updated balances.
Learn how declaring stored properties with let protects data by preventing changes even when the instance is var, and how to use access control to ensure data integrity in Swift.
Learn how classes differ from structs as reference types, requiring custom or default initializers, with optional properties, and the basics of creating and inheriting classes.
Master type methods, called on the class itself with the class keyword, so you can perform actions for all instances without creating objects.
Explore how to define a class initializer in Swift, assigning stored properties via init, with parameters for account number, balance, and type, and creating instances.
Explore class inheritance by creating a base accounts class and a basic account subclass. Override gets balance plus interest to add functionality while reusing balance, account number, and type.
Explore how a black account inherits from a platinum account to access balance, overdraft, and interest features, demonstrating how inheritance extends functionality in class hierarchies.
Explore Swift class extensions to add properties and methods to existing classes without subclassing, enabling universal features for all instances, including UI elements and system classes.
Extend the double type with an extension to add a computed property that doubles the value, implement a 20 percent function, and format results as currency with a dollar sign.
Explore access control for properties in Swift, learn why default public access can expose data, and implement private properties with getters, setters, and computed properties to enforce valid values.
Learn how property observers in Swift track changes to a property using willSet and didSet, with computed properties' get and set, to trigger UI updates and notifications.
Explore how to use willSet and didSet in Swift to access the oldValue and newValue when a property changes, enabling on-the-fly calculations and state updates.
***NEW Section added on how to send push notification on iOS using OneSignal SDK.
MAKE YOUR DREAMS A REALITY
Do you want to develop your own dream apps or become a pro iOS developer? Do you want to change career and become an iPhone app developer? You have come to the right course.
I am Dee Odus and I have created this course to make your app development dream a reality. This course will TEACH you the basic, intermediate and advanced skills needed to call yourself an iOS app developer. Whether you want to create apps for yourself, change career to become an iOS developer and apply for iOS jobs or you want to earn money as a freelance developer, this course will get you started on your DREAMS, you will learn how to design and develop 28 apps.
In this course, you will develop professional quality apps. You don't need any previous programming skills. You simply need a desire to learn and a Mac computer.
The course is app-based, which means you will build a complete and professional app step-by-step during each section of the course. No other course teaches you this same way.
By the end of the course, you'll be able to:
1. Design and build simple and complex apps (we’ll develop 28 apps in this course)
2. Call yourself an app developer.
3. Create your own apps worthy of publishing to the app store.
4. You will be able to apply for iOS development jobs
5. You will gain a confidence boost in your skills and your ability.
ABOUT ME
I have been developing on iOS platform for the last five years. In this period of time I have developed over 120 apps and worked with 2 successful startups in bringing their apps to the market. I work full time as an iOS developer, as a freelancer. I have also developed around 10 apps of my own that you can find on my website.
ABOUT YOU
This course has been developed for beginner and intermediate programmer in mind. If you have never programmed before but you have a strong desire to learn programming on the iOS platform you will find this course adequate. Also if you are intermediate developer you will find lots of topics that will improve your skills and also some of the latest hot topics such as artificial reality, machine learning, vision framework, drag and drop and so on.
HOW LONG DOES IT TAKE
Mastering any skills takes time and iOS development is no different. This course is over 40 hours long which means if you study 1 hour per day you are looking to complete the course in just over a month. However you will develop your first basic app within 30 mins into the course and within 2 hours of the course you develop a beautiful app that you will be proud of.
SIGN UP/ENROLL NOW
Enroll in the course now so you can start learning immediately. You have a 30 days money back guarantee if you change your mind. There’s no better time to learn iOS development. If you are ready to begin your iOS development journey CLICK THE ENROLL BUTTON now to begin your iOS development career.
SUPPORT WHEN YOU NEED IT
You will be supported throughout your journey in this course. If you get stuck on any of the lectures, you can use the Q/A section of the course to ask for assistance. I am committed to supporting my students on this course, I am constantly involved in the Q/A to provide assistance to anyone that needs it.
SOME OF THE TOPICS COVERED
iOS development basics
Navigation and Tab bar controller
Storyboard, segues, and common controls
Swift beginner and intermediate, and object oriented programming
How to use tableview and collection view
Playing and recording audio
Video playback
Location and map API
Rich user notification
Sharing to Facebook and Twitter
How to work with JSON
Core data
3D Quick action
Core graphics and Quartz 2D
Gesture recognizers
Touch ID
How to download with URLSession
Version control with Xcode, Bitbucket and Source Tree app
And so on…
WHAT ABOUT IOS 11, XCODE 9 AND SWIFT 4
The course include new features added to iOS 11 and Xcode 9. We are going to create multiple apps that focus on each of the new features. Some of these new features include;
ARKit
Artificial Reality app used to take thousands of lines of code and complex algorithm to achieve but with the new iOS 11 ARkit, it takes only few lines of code to make an AR app.
Machine Learning
Machine learning is gaining traction in the computer industry and there’s no better time to learn machine learning and how to develop an app that take advantage of it. We’ll develop a simple app that can recognise dominant object in a photo and an app that can recognise the faces of the people in a photo
Drag and Drop
iOS 11 allows user to drag and drop content within one app and also between two different apps. We’ll develop a basic app that allows dragging text from one part to another part.
Vision
We’ll develop an app that allows you to track real world object directly through your phone’s camera. This is a nice feature.
Many more...
I’ll be adding more iOS 11 topics that include Natural Language Processing, SiriKit, PDFKit, Apple Music integration, new camera APIs, new Files app and so on…
Now’s the best time to learn iOS 11, Swift 4 and Xcode now before the official release of the public version to the users.
If you're ready to become a proficient app developer to develop your own apps or to work as a freelance or full-time developer, click the "Buy Now" button and join the course today!
STILL NOT CONVINCED?
Watch some of the FREE preview lectures to learn more about the course. Click the enroll button to join the course today.
(*** All videos in this course will be updated to Xcode 9 once it's released by Apple)