Swift MyWonders App: Core Data, Maps & Media
4.5 (159 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
6,171 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Swift MyWonders App: Core Data, Maps & Media to your Wishlist.

Add to Wishlist

Swift MyWonders App: Core Data, Maps & Media

Build a Fully-Functional Advanced Swift App with Data, Maps, Photos, Audios and Videos.
4.5 (159 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
6,171 students enrolled
Created by Mazen Kilani
Last updated 7/2016
Price: Free
  • 7 hours on-demand video
  • 3 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Transform your professional expertise by building a fully-functional and advanced app that you can then finalize with your own enhancements to make it ready for the App Store.
  • Present your App Store app as a testament to your full-circle expertise to potential employers and/or partners.
  • Share a practical real-life app with family, friends and colleagues that they can use daily.
  • Build a fully-functional Swift app with Core Data, maps, photos, audios and videos.
  • Automatically locate the users iPhone, facilitate fast capture of wonders info, map, photos, audios and videos and provide a 'FindMe' function at any time.
  • Learn Swift code structures to add, view and edit Core Data database records.
  • Show maps of any location (using latitude and longitude, spans and regions).
  • Show address (reverse geocoding) of any map location (pin).
  • Select photos from the iPhone Photo Library or capture new photos by camera, add them to wonders, view in a photos table and delete their core data records as needed.
  • Record sounds via microphone and add to wonders. Play and/or delete their core data records as needed from a sounds table.
  • Record videos or select from Photos Library, add to wonders, play and/or delete their core data records as needed from a videos table.
  • Upload to social media, with a Facebook example.
  • Enrich your personal revenue stream with a proven source of income from the App Store, should you choose to market/sell your final app later.
View Curriculum
  • Development of iOS apps assume access to a Mac (desktop or laptop) and download of Xcode IDE (Integrated Development Environment) and Swift.
  • This course, in particular, needs a physical iPhone! The Xcode Simulator does not have a Camera feature, hence the Camera and Videos sections of the course need connection of a physical (real) iPhone. Also, the Maps AutoLocation and FindMe features need the physical iPhone as there are only limited pre-defined locations on the Xcode Simulator.

Note: Xcode 7.3 & Swift 2.2 Videos.

The Swift Core Data, Maps & Media course is unique, because the ultimate deliverable is already delivered! The course app, MyWonders, is similar to 8Apps published 8Wonders app, which already fulfilled all strict Apple's App Store requirements & guidelines.

The course is structured in a step-by-step approach, utilizing advanced instruction methodologies and techniques (including videos with annotations & visual special effects, crystal clear slides of major code text and colorful diagrams) ending with a fully-functional iOS Swift app that you can use as a template for your own ideas. The foundation will be set; you can then build on it many varied and interesting apps.

The course offers a coherent application, which seamlessly allows the user to add their data records and associate them with notes, maps and unlimited photos, audios and videos. MyWonders is a collection of the wonders in your world. It's deliberately fast, simply elegant and totally practical, as you can use it on your own iPhone every day while you are building it.

All course videos are recorded in Full HD 1080p and audios with a Blue Yeti microphone. All major code segments are presented in the videos twice: in Xcode during recording and then PowerPoint slides for crisp crystal clear text and images.

Who is the target audience?
  • The course is designed for aspiring developers, who are a bit familar with Xcode IDE and Swift basic concepts and code structures. Our 'Swift Fast Track' course, see below, is recommended but not required; you will learn everything you need for this course topics inside the course itself.
  • Take this course if you wish to advance your knowledge and real-world expertise, building a complete, fully-functional, advanced, practical App Store ready app.
  • The course focus is Core Data, Maps and Media (photos, audios & videos) covering adding, viewing/playing, editing Core Data records, so suitable for developers who wish to build apps that utilize these functions. Practically, every app that needs persistent storage of data (keep data after app close or phone being switched off) needs Core Data.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
66 Lectures
Introduction and Overview
4 Lectures 05:52
  • Course Introduction
  • Instructor Introduction ( Mazen Kilani / 8Apps )
  • Course Topics
  • Course Objectives
  • Course Audience
Hello and Welcome

What will the course app MyWonders do?

  • Wonders table maintenance (add/edit/delete wonder records)
  • Wonder objects maintenance (add/delete a wonder photos/audios/videos records)
  • 'Where Am I' auto location & Find Me (auto-location, auto-date/time, map view, photo library, camera, audio, video, upload to social media and other share options)
MyWonders: The App Overview

  • Recommended Course Approach to Lectures
  • Optimum Video Playback Settings
  • Optimum Audio Playback Settings
Course Methodology & Techniques

  • Xcode IDE (Integrated Development Environment)
  • Launch Screen Image
  • External App Icons
  • Internal App Icons
Setup Your Mac
Project Setup
6 Lectures 36:42
  • Create New Xcode Project
  • Choose Correct App Template
  • Choose Project Options
  • Check Project Identity & Deployment Info
New Project Creation and Setup

  • Storyboard Tab Bar Controller with 3 Tabs: WhereAmI, Wonders and Settings
  • Storyboard 3 View Controllers: WhereAmI, Wonders and Settings
  • Tab Bar Icons Segue to the View Controllers
Storyboard Tab Controller and Major Views

  • Add Tab Bar Item Images
  • Design and Build Launch Screen
  • Add WhereAmI View Label ‘Hello, MyWonders’
Storyboard Icons, Launch Screen and 'Hello, MyWonders'

  • Assign Attributes to the 3 Storyboard View Controllers: WhereAmI, Wonders and Settings
  • Create 3 Classes, One for Each View Controller.
  • Link Each View Controller to Its Class
Storyboard View Controllers and Classes

  • Wonders Table View Controller (VC) Code Setups for Table Sections, Rows and Cells.
  • Settings Table View Controller (VC) Code Setups for Table Sections, Rows and Cells.
Table View Controllers, Sections, Rows and Cells

  • Build Project Core Data Entities
    • Wonders (Basic Wonder Data)
    • Photos (Photo Objects of a Wonder)
    • Sounds (Audio Objects of a Wonder)
    • Videos (Movie Objects of a Wonder)
    • Settings (General App Settings)
Core Data Entities and Attributes
Add Wonder to Core Data
4 Lectures 28:00
  • Wonders Table ‘Add’ Button
  • Storyboard Add Wonder View Controller Setup
    • Add Wonder View Controller to Storyboard
    • Setup Labels, Text Fields and Buttons on View Controller
  • Wonders Table Segue to Add Wonder
Add Wonder: Storyboard View

  • Add Wonders View Controller Class File
  • Link Storyboard View Controller Elements to Class
  • Class ‘viewDidLoad’ Function Shows ’Save’ Button
Add Wonder: View Links to Class File

  • Add Wonders ’Save’ Button Action
  • Access Core Data App Delegate & Context
  • Access Entity ‘Wonders’
  • Insert Object ’New Wonder’
  • Assign Values to ‘New Wonder’ Core Data Attributes
  • Review Assignment Differences Between:
    • Value Key
    • Class
Add Wonder: Save to Core Data

  • Wonders Table
    • Access Core Data App Delegate & Context
    • Access Entity ‘Wonders’
    • Retrieve and Show All Wonders
  • Add Wonder
    • Save Confirmation Label
Add Wonder: Show Data in Wonders Table View
View Wonder from Core Data
4 Lectures 30:36
  • Add a New Storyboard ’View Wonder’ View Controller
  • Segue from Wonder Table Row to View Wonder View Controller
  • All Labels and Fields to View Wonder View Controller
  • Add Class File of View Controller
View Wonder: Storyboard View

  • Use AutoLayout to Fix View Wonder VC Elements Alignments
  • Use AutoLayout to Fix Add Wonder VC Elements Alignments
View Wonder: Storyboard View AutoLayout

  • Link View Wonder View Controller Elements to Class File
  • Wonders Table Cell Name and Location
  • Wonders Table Delete Action Deletes the Wonder Record from Core Data
View Wonder: View Links to Class and Table Cells

  • Wonders Table Row Selection Segues to View Wonder
  • View Wonder Variables and viewDidLoad Shows Initial Values of Data Fields
View Wonder: Wonders Table Segue to View Wonder
Edit Wonder in Core Data
3 Lectures 18:13
  • Add Edit Wonder View to Storyboard
  • Segue to the View from Wonders Table
  • Add Edit Wonder Class File
  • Add View Labels & Text Fields with AutoLayout
Edit Wonder: Storyboard View

  • Edit Wonder View Element Links to Class
  • Class Variables & viewDidLoad Initialization
  • Class editSaveButtonAction to Core Data Code
  • Wonder Table Class Function to Launch Edit
Edit Wonder: Class Variables and Code

  • Add a New Wonder (with Deliberate Typos)
  • View the Wonder Details
  • Edit the Wonder Details (Correct Typos)
  • Delete Wonder Table Record
Edit Wonder: Recap Add, View, Edit, Table View and Segues
3 Lectures 10:33
  • Add Map View to View Wonder
  • Add Map & Location Frameworks to Project
  • Import Frameworks into View Wonder Class
  • Utilize Map & Location Delegates
Maps: Map Framework and MapView in View Wonder

  • View Wonder Shows a Map View of Wonder Location
  • Location Translates Latitude & Longitude into a Visual Map
  • View Wonder Adds Annotations to the Map View
Maps: Map Code in View Wonder

  • Review Old and New World Wonders
  • Add Sample World Wonders & View
Maps: Map Locations of Old and New World Wonders
13 Lectures 01:39:47
  • Add the Photos View
  • Populate the Photos View with Labels & Buttons
  • Segue from Add Wonder to Photos View
  • Add the Photos View Controller Class
Photos: Storyboard View Controller and Layout

  • Add Photos View Elements (Labels, Switches, Buttons)
  • Link Photos View Elements to Class
  • Test Setup
Photos: Storyboard View Links to Class

  • Photos View
    • Imports & Delegates
    • Func to Access Photos Library or Camera
    • Func ImagePicker Cancel
    • Add Image to Core Data
Photos: Add Photos and Save to Core Data

  • Add Wonder Photos Segue to Directly Access the Photos Library for Selection
    • Photos View ’Bypass’ Allows Direct Access
  • Add Wonder Name Keyboard Control to Dismiss Soft Keyboard
    • Return Key Press/Touch
    • Outside TextField Touch
Photos: Add Wonder Direct Access to Photos Library

  • Add the App Icon Using Sketch 3.3
  • Add the App Launch Screen Image
Photos: App Icon and Launch Screen Image

  • ‘Add Wonder’ View Controller [VC] Photos Button Image
  • Wonder Photos Table View Controller
  • Segue View Wonder VC to Wonder Photos Table VC
Photos: Wonder Photos Button & Table

  • Wonder Photos Table Cell Image & Label
  • New Wonder Photos table VC Class File
  • Wonder Photos Table Class Section, Row and Cell Code
  • View Wonder VC 1st Photo Button Image and No. of Photos Label
Photos: Wonder Photos Table Class

  • Add Wonder Photos View Tags
  • View Wonder VC
    • viewWillAppear [Select Photos]
  • Wonder Photos VC
    • viewWillAppear [Select Photos]
    • Table Cells [Show Photos in a Table]
  • Add Multiple Photos and View Them
  • Change Table Row Height to Show Full Image
Photos: Add & View Wonder Photos

  • Edit Wonder Storyboard VC
    • Add Buttons for Photo Library & Wonder Photos
    • Segue to Photos Library
  • New Wonder Photos Storyboard Table VC
    • Cell to Contain Photo Image
    • Segue from Edit Wonder to Wonder Photos Table
Photos: Edit Wonder and Wonder Photos

  • Edit Wonder Storyboard VC
    • Buttons & Label for Photo Library Constraints
    • Prepare Segue ‘editToPhotos’
    • viewWillAppear Function
  • Wonder Photos Storyboard Table VC
    • Image Tag 100
  • Edit Wonder Storyboard VC
    • Button & Label Link to Class VC
  • Edit Photos Table VC
    • viewWillAppear Function
    • Table Rows and Cell Configuration
    • viewDidLoad Edit Button
Photos: Edit Wonder Photos

  • Edit Wonder Class View Controller Keyboard Control
  • Edit Wonder Storyboard View Controller TextField Background
  • Final Test
    • Add new wonder
    • Add wonder photos
    • View wonder and its photos
    • Edit wonder, delete photos, view
    • Edit wonder, add photos, view
Photos: Polish & Final Test

  • Add Wonder Storyboard VC Camera Button
  • Add Wonder to Photos Segue ‘addToCamera’
  • Add Wonder Class VC
    • Hide/Show Camera Button
    • Prepare for Segue Logic
  • Photos Class VC
    • Photo Source Type ‘Camera’ Logic
    • No Camera Logic
Camera: Add Wonder & Photos Camera Logic

  • Edit Wonder Storyboard VC Camera Button
  • Edit Wonder to Photos Segue ‘editToCamera’
  • Edit Wonder Class VC
    • Prepare for Segue Logic
Camera: Edit Wonder & Camera Connection
Sounds / Audios
9 Lectures 01:07:20
  • Add Wonder Microphone Button
  • Edit Wonder Microphone Button
  • Sounds View Controller
  • Add to Sounds Segue
  • Edit to Sounds Segue
Sounds: Storyboard Setups

  • New Wonder Sounds Table
  • View Wonder Sounds Button
  • Edit Wonder Sounds Button
  • View to Wonder Sounds Segue
  • Edit to Wonder Sounds Segue
Sounds: Storyboard Wonder Sounds View

  • Build Sounds Microphone View Controller
    • Wonder Name, Save Confirmation & Status Labels
    • Record, Stop & Play Buttons Outlets & Actions
    • Save Button Action
  • Add AVKit Framework
  • Add Sounds VC Variables
Sounds: Sounds View Controller

  • Sounds View Controller viewDidLoad
    • Disable Stop & Play Buttons
    • Setup Audio File URL
    • Setup Audio Session Parameters
    • Prepare Recorder to Record
  • AutoLayout: Record, Stop & Play Buttons
  • Stack View: Record, Stop & Play Buttons
Sounds: AutoLayout & viewDidLoad

  • Sounds View Controller
    • Keyboard Control
    • Record Button Logic
    • Stop Button Logic
    • Play Button Logic
  • Add Wonder Hide/Show Microphone Icon
Sounds: Record, Stop and Play

  • Sounds View Controller
    • Record Button
      • Enabled / Selected Logic
      • Pause Logic
    • Stop Button Enabled / Selected Logic
    • Play Button Enabled / Selected Logic
    • audioRecorderDidFinishRecording
    • audioPlayerDidFinishPlaying
Sounds: Pause and Finish Recording/Playing

  • Sounds View Controller
    • setupRecorder() Function to Prepare Recorder
    • viewDidLoad calls setupRecorder()
    • soundSaveButtonAction
      • Saves SoundURL to Core Data and
      • Calls setupRecorder() to Prepare for Next Recording
Sounds: Setup Recorder and Save to Core Data

  • View Wonder to
    • Retrieve Sounds and Display Number
    • Segue to Sounds Table View Controller
  • Wonder Sounds Table View to
    • Retrieve Sounds and Populate Table
    • Play Sound When Row Cell Selected
Sounds: View Wonder and Sounds Table

  • Edit Wonder to
    • Retrieve Sounds and Display Number
    • Segue to Sounds Table View Controller
    • Add More Sounds
    • Delete Sounds
Sounds: Edit Wonder Sounds
10 Lectures 01:04:41
  • Storyboard Video View
    • Labels
    • Buttons to
      • Record New Video
      • Select Video from Library
      • Play Last Video
    • Switch to Save or Delete Video
Videos: Setup Storyboard Videos View

  • Storyboard Video View
    • Add New Label
    • Create File Class Videos View Controller
    • Connect View Elements to Class Videos View Controller
Videos: Storyboard View Links to Class File

  • Storyboard Video View Connected to it’s Class View Controller
    • Connect All Labels
    • Connect All Action Buttons and Switches
  • New Elements on the View Need AutoLayout to Re-Arrange Affected Current Elements
Videos: Storyboard View and Class Code

  • Videos View Controller Code
    • Record New Video
    • viewDidLoad
    • View Library Button Action
    • Image Picker Saving Videos
    • Test on Physical iPhone 6 Plus
Videos: Record New Video

  • Add Wonder Storyboard & Class
    • Link Video Rec Button to Class UIButton
    • Update Code for New Button
      • viewDidLoad
      • Segue ‘addToVideos’
  • Videos VC Class
    • viewDidLoad (Wonder Name)
  • Edit Wonder Storyboard & Class
    • Add Video Rec Button & Segue to Videos
    • Update Code
Videos: Add and Edit Wonder to Wonder Videos

  • Replace Deprecated Code with Recommended Alternatives
  • Remove All Yellow Warning Messages in Xcode
  • Videos VC Class (deprecated in iOS 9)
    • MoviePlayer to AVPlayer
    • ALAssetLibrary to PHPhotoLibrary
Videos: Deprecated Code Handling [New AVPlayer]

  • Add Storyboard Wonder Videos Table View
  • Add Videos Rec Button to View Wonder & Segue to Wonder Videos Table View
  • Add Wonder Videos Table VC Class File
  • Add Videos Rec Button to Edit Wonder & Segue to Wonder Videos Table View
Videos: Wonder Videos Table

  • Add Label of Number of Videos to the View Wonder View
  • Update View Wonder VC Class Code for the New Segue to Wonder Videos
  • Add Label of Number of Videos to the Edit Wonder View
  • Update Edit Wonder VC Class Code for the New Segue to Wonder Videos
  • Update Add and Edit Wonder VC Class to Show Number of Videos of a Wonder
Videos: View and Edit Wonder Views

  • Update Code of Wonder Videos Table Class
    • Imports
    • Variables
    • viewWillAppear
    • Section, Row, Cell
    • Select Row to Play Video
    • Edit to Delete Video
    • viewWillDisappear (to pause/stop video)
Videos: Wonder Videos Table View

  • Delete a Wonder from Wonders Table Should
    • Delete Wonder Record from Wonders Entity
    • Delete Wonder Photos Records from Photos Entity
    • Delete Wonder Sounds Records from Sounds Entity
    • Delete Wonder Videos Records from Videos Entity
Videos: Wonder Table Delete
2 Lectures 08:24
  • Add Settings Help
    • Create New View for Help
    • Add a Web View to the Help View
    • Segue from Settings Table Row to Help View
    • Add Help Class File & Link Web View
    • Create Help HTML File and Embed in Web View
Settings: Help View and HTML File

Hints, Tips & Tricks

  • Settings Hue & Saturation Color Sliders
  • Wonder Table Color Defaults
Settings: Optional Project Table Colors
2 More Sections
About the Instructor
Mazen Kilani
4.5 Average rating
242 Reviews
8,094 Students
2 Courses

Hi, I am Mazen Kilani. I worked at multinational companies like D&B Software, PeopleSoft and Oracle for most of my professional career. My last employment role was as a Senior Principal Technical Support Engineer at Oracle, one of the world’s leading software companies. Academically, I graduated with a B.Sc. (Computer Science) and M.Phil. (Electrical Engineering) degrees from the University of Sussex, Brighton, UK.

I spent 18 years at Oracle/PeopleSoft, and, among other responsibilities, became a Coach on Knowledge Management and Oracle Diagnostic Methodology. I achieved an IC5, the highest technical grade level at Oracle. Use LinkedIn link for my complete profile.

I carry my commitment to excellence to my new ventures. I currently have 29 apps on Apple's App Store, 2 eBooks and 2 courses on Udemy. All are completely free.

I bring to my products (apps, courses and books) extensive experience and a renowned passion for sharing knowledge, with sophistication and comprehensiveness masquerading as elegant simplicity. Explore and enjoy. All the best.