
Join an experienced instructor to learn how to develop applications for the iOS platform, from fundamentals to competence, with step-by-step guidance for beginners and experienced developers.
Install Xcode on a Mac or use IBM's Windows tool, then open a Swift playground to learn imports, variables, strings, and print statements with live results.
Download Xcode 9 beta from the Apple developer site, create a free account, run the setup wizard, and launch Xcode beta from your applications directory.
Set up your iOS quiz project in Xcode 9 beta, create a single view app, prepare user interactions by tapping a button, while organizing files in the project navigator.
Explore model-view-controller pattern, where the model handles data, the view presents the interface, and the controller coordinates user actions. Apply the pattern to a quiz with questions and answers.
Use Interface Builder to manage the main storyboard with the document outline and canvas, drag two labels and two buttons from the library, and connect them to code.
Configure view objects by renaming labels to reflect content, adjust alignment, and set button titles such as next question and answer to illustrate basic UI setup.
Run the app in the iOS simulator to test the UI on iPhone 7 and 7 Plus, and compare with interface builder while preparing for auto layout.
Learn how auto layout uses position and size constraints to align views across devices, anchor elements to a top label, and apply horizontal center constraints to resolve alignment issues.
Map outlets and actions in a view controller to connect model data with the user interface, using Interface Builder, IBOutlet, and IBAction to handle next question and show answers.
Explore the model layer in Swift, implementing data as arrays of questions and answers. Track current index and show next question and show answer to display aligned questions and answers.
This quiz app demo shows next-question navigation, aligning questions with answers via parallel arrays, wrapping the index, and setting up for adding icons in a future lesson.
Set the home screen icon with the asset catalog by dragging and dropping the icon, then run on the iOS simulator. Learn about app icons, launch images, and launch screen.
Learn types, constants, and variables in Swift, apply type checking, and use type casting and string interpolation to compute a rounded total cost and print a message.
Learn how conditional statements govern program flow using if-else, comparison and logical operators, including nested conditionals and the ternary form, with practical code examples.
Explore how numbers are stored in memory, including min and max values, signed versus unsigned integers, bit widths, truncation, and type casting.
Discover how switch statements optimize decision making in Swift, replacing long if-else chains with exhaustive cases, ranges, value binding, where clauses, and tuples for clear, efficient control flow.
Explore loops in iOS development: use for and while loops to iterate over ranges, with do-while concepts and break statements. See Pac-Man level progression with lives, points, and randomness.
Explore how Swift handles strings, iterates over characters using the string's characters property, and works with Unicode scalars, extended grapheme clusters, and string indexing with a start index and ranges.
Master optionals by understanding how Swift variables may be nil, then learn safe unwrapping with optional binding, avoid forced unwrap, and use optional chaining for multiple optionals.
Master arrays in an Xcode playground: declare a string array, use append, remove, and insert, and loop with for loops to populate a grocery list.
Explore dictionaries as key-value containers, learn dictionary syntax, access via keys, and manage updates, removals, and safe unwrapping of optional values with if let.
Explore how sets enforce unique elements, show insertion outcomes, and demonstrate union, intersection, and contains with examples like movies and contact lists.
Explore enumerations in Swift, using months of the year to illustrate raw values, associated values, and how switch statements and functions interact with enums.
Define a struct in Swift to model a movie inventory, and use the main entry point with a default initializer and mutating methods to manage stock.
Explore how classes enable inheritance in Swift by building an inventory manager and a movie manager, overriding stock movies, using super, final, and proper initialization.
Explore Swift properties by implementing computed properties with getters and setters, handling optionals, and applying private and static type properties to manage a movie inventory.
Learn how to implement initialization for structs and classes, create initializers that can fail with guard checks, and manage inheritance and memory using super.init and deinit.
Set up a new Xcode project in Swift to build a temperature converter app, covering view hierarchy, input delegation, view controllers, pragmatic views, localization, and core data.
Explore view hierarchy by building and layering views within frames, adding subviews to the main view, and understanding how a root window hosts the initial view controller.
Customize labels via the attributes inspector to set background and colors with hex values. Adjust font sizes and use size to fit content, then explore auto layout for alignment properly.
Use auto layout to add top, width, and height constraints that stabilize a label's size and position, fix horizontal ambiguity with a center alignment, and debug constraints in the simulator.
Replace the interface label with a text field, drag it in, and set constraints; customize its burnt orange color, font size 70, placeholder, and border, and note keyboard behavior.
Configure a numeric input by setting the keyboard type to decimal pad and enabling spellchecking for a text field, allowing only digits 0-9 and a decimal point.
Create a conversion view controller to handle text field changes and Celsius to Fahrenheit input. Wire outlets and actions in Interface Builder, and update the Celsius label in real time.
Learn to dismiss the iOS keyboard with a tap gesture by resigning the text field's first responder, wiring a tap recognizer in the view controller, and updating the storyboard connection.
learn how to convert fahrenheit to celsius in an iOS app, tracing the entry point from the fahrenheit text field and updating the celsius label using a measurement-based conversion.
Use a number formatter to control results, set digits to 1 and values converted to strings. The lecture previews delegation for validating input, including a Fahrenheit to Celsius example.
Explore how delegates function as callbacks to validate text input in iOS, using a UI textfield delegate to prevent multiple decimal points in a conversion view controller example.
Add a new view controller with a map view and link the MapKit framework, then set the initial view in the storyboard and preview switching to a tab bar controller.
Set up a tab bar controller as the app entry point, link view controllers (Fahrenheit converter to Celsius and maps) via relationships, and switch between them with tab bar items.
Assign meaningful icons from the assets folder to map and convert tabs, giving descriptive titles in the storyboard. This makes features intuitive without explicit instructions.
Create a swift file for a map view controller, subclass UIViewController, and connect it to the storyboard by setting a custom class in the identity inspector.
Programmatically implement an MKMapView by overriding loadView, creating the map view in code, and assigning it to the view controller's view to replace interface builder.
Add a segmented control to the map view with standard, hybrid, and satellite options using programmatic constraints, and disable translatesAutoresizingMaskIntoConstraints to prepare for anchors in the next lecture.
Learn to create and activate layout constraints with anchors to pin a segmented control to the top, leading, and trailing edges of its super view, using isActive and programmatic constraints.
Learn to apply layout margins to create spacing between views by using the parent layout margins guide and constraining leading and trailing anchors to the margins.
Toggle the iOS map type from standard to hybrid to satellite with a segmented control and a map type changed method, and learn localization for global translation.
Explore internationalization and localization to build apps that adapt to multiple cultures and languages, avoiding hardcoded language, currency, and date formats, and adapting a temperature converter to Spanish localization.
Explore internationalization by using locale to format numbers, highlighting how Spain's comma substitutes the decimal point and the need to adapt code for region-specific decimal behavior.
Explore how internationalization handles decimal separators by using the current locale and number formatter to recognize commas as decimals, update the text field delegate, and enable locale-aware computations.
Explore base internationalization to localize iOS resources, manage locale-specific bundles and .lproj directories, and use layout constraints to truncate dynamic strings across languages.
Learn how to localize an iOS app by creating localized strings from the base storyboard, selecting Spanish (Mexico), and testing in the simulator with proper regional settings.
Learn how to localize an iOS map app by generating string tables, creating a localized file, and applying Spanish translations to map view segmented controls, using terminal commands and genstrings.
This course is designed for students who wish to learn about the IOS platform. More specifically, this course is designed for beginners who may or may not have any experience with Developing apps for the Apple iPhone using IOS 11. Don't know Swift 4? well this course includes everything you need to get started with this new and growing language from Apple. The course has been carefully designed for students who wish to be taken from a beginner to paid professional. Everyone can get something out of this course as it will cover everything you need to know to feel most comfortable designing and creating your own applications for the Apple Store. Please join me in your journey in becoming a successful apple developer.
Best Practices: (Please Read)
1.) Watch the lecture. Seems self explanatory so let me elaborate; I would prefer students to put your pencils down(not write any code) and watch closely to the lecture and its content. This will allow you to download all important information to your brain before trying it yourself. Also, watch the class in order from beginning to end; students sometimes like to jump ahead, this I cannot recommend doing. The way this class is structured is intended to be done from start to finish line.
2.) After each lecture, please note that the code covered in class is readily available for download. It is my expectation of the student to download this code and load it into their environments to play around and be creative. This is the exercise I expect students to do before moving onto the next lecture. This is an important time for students to go and break things; that's right break the code I give you. In learning to code especially, you learn from fixing what is broken! So I encourage the student to be creative with how they want to treat the downloadable resources; There are no wrong ways to approach this method of learning on your own.
3.) As the facilitator of your learning, if you get stuck on something or would like to share with the class your experience, please add your thoughts and comments to the Q and A section of this course. An open dialogue with myself or other students will reinforce the ideas covered in the lectures.
Note: The brutal truth to learning how to code, is that there are "no free lunches" or experiences of instant gratification. Coding is learned through brute force and trial and error. This method of learning never goes away, as I myself go through it everyday. This class is about learning how to learn, and improving the problem solving skills that you will need to succeed not only in this course, but with the rest of your careers as programmers.