Udemy - iOS 11 and Swift 4 for Beginners 200+ Hands-On Tutorials

mp4   Hot:22   Size:11.2 GB   Created:2017-10-21 16:40:56   Update:2021-07-22 05:28:21  

File List

  • 文件过大导致无法格式化,将以元数据展示。
    [{"path": "34-version-control-with-git-and-github-part-1-beginning-git/327-introduction.mp4", "length": 115055130}, {"path": "31-networking-with-urlsession/298-background-sessions.mp4", "length": 106160455}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/333-ignoring-files.mp4", "length": 99884228}, {"path": "12-programming-in-swift-part-6-classes/102-classes-vs-structures.mp4", "length": 97650727}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/328-cloning-a-repo.mp4", "length": 95040127}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/335-branching.mp4", "length": 93282673}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/336-merging.mp4", "length": 93127189}, {"path": "31-networking-with-urlsession/300-ats.mp4", "length": 90958139}, {"path": "10-programming-in-swift-part-4-collections/089-strings.mp4", "length": 88579931}, {"path": "31-networking-with-urlsession/303-testing-and-metrics.mp4", "length": 86332347}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/240-parallax-scrolling.mp4", "length": 84318764}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/337-syncing-with-a-remote.mp4", "length": 83018363}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/207-challenge-cell-deletion-animation/07-Challenge-Cell-Deletion-Animation.zip", "length": 79956627}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/205-challenge-enhance-section-headers/05-Challenge-Enhancing-Section-Headers.zip", "length": 79949566}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/206-subclassing-collection-view-layout/06-Subclassing-Layout.zip", "length": 79928871}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/208-moving-cells/08-Moving-Cells.zip", "length": 79925279}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/203-challenge-add-a-label/03-Challenge-Add-a-Label.zip", "length": 79918926}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/204-multiple-sections/04-Multiple-Sections.zip", "length": 79916141}, {"path": "22-beginning-collection-views-part-2-customization/attached_files/202-custom-cells/02-Custom-Cells.zip", "length": 79898262}, {"path": "31-networking-with-urlsession/299-authentication.mp4", "length": 79322692}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/338-pull-requests.mp4", "length": 79068702}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/348-filter-branch.mp4", "length": 73138966}, {"path": "10-programming-in-swift-part-4-collections/088-which-collection-to-use.mp4", "length": 72241883}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/017-objects-data-and-methods.mp4", "length": 71524799}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/239-custom-refresh-control.mp4", "length": 70120281}, {"path": "10-programming-in-swift-part-4-collections/080-arrays.mp4", "length": 69408942}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/344-rebase-a-merge-alternative.mp4", "length": 69322376}, {"path": "29-beginning-core-data-part-1/274-managed-objects.mp4", "length": 69311660}, {"path": "31-networking-with-urlsession/296-urlsession-cookbook-2.mp4", "length": 68502176}, {"path": "12-programming-in-swift-part-6-classes/104-inheritance.mp4", "length": 67402291}, {"path": "01-course-introduction/001-course-introduction.mp4", "length": 66422557}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/330-creating-a-remote.mp4", "length": 66092058}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/332-the-staging-area.mp4", "length": 65436979}, {"path": "31-networking-with-urlsession/302-architecture.mp4", "length": 64729590}, {"path": "31-networking-with-urlsession/294-urlsession.mp4", "length": 64596983}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/234-slide-out-sidebar.mp4", "length": 63762660}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/329-creating-a-repo.mp4", "length": 63715829}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/345-rebase-rewriting-history.mp4", "length": 63197881}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/349-many-faces-of-undo.mp4", "length": 62325257}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/230-paging-control.mp4", "length": 61336803}, {"path": "30-beginning-core-data-part-2/287-relationships-in-code.mp4", "length": 59965147}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/241-locking-scroll-views.mp4", "length": 58864734}, {"path": "36-xcode-tips-and-tricks/357-workspaces-and-frameworks.mp4", "length": 58783523}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/021-writing-methods.mp4", "length": 57783155}, {"path": "36-xcode-tips-and-tricks/361-code-snippets.mp4", "length": 57498896}, {"path": "30-beginning-core-data-part-2/284-displaying-data-by-section.mp4", "length": 56859140}, {"path": "11-programming-in-swift-part-5-structures/092-structures.mp4", "length": 56829365}, {"path": "11-programming-in-swift-part-5-structures/095-properties.mp4", "length": 56088426}, {"path": "36-xcode-tips-and-tricks/358-schemes-and-targets.mp4", "length": 55272945}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/218-auto-layout.mp4", "length": 52804984}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/220-stack-views.mp4", "length": 52737889}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/018-strings-and-variables.mp4", "length": 52532410}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/225-content-insets.mp4", "length": 52316239}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/325-challenge-online-user-count/online-user-count-challenge.zip", "length": 52275864}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/320-user-creation/user-creation-materials.zip", "length": 52270686}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/311-reading-data/reading-data-materials.zip", "length": 52270319}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/323-challenge-user-login/user-login-challenge-materials.zip", "length": 52269888}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/322-user-login/user-login-materials.zip", "length": 52269654}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/321-challenge-error-handling/error-handling-challenge-materials.zip", "length": 52269526}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/319-keychain/keychain-materials.zip", "length": 52268704}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/312-challenge-reading-data/reading-data-challenge-materials.zip", "length": 52267938}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/309-references/references-materials.zip", "length": 52266409}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/315-querying-data/querying-data-materials.zip", "length": 52266210}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/314-challenge-deleting-data/deleting-data-materials.zip", "length": 52266124}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/313-updating-and-deleting/updating-and-deleting-materials.zip", "length": 52265495}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/310-saving-data/saving-data-materials.zip", "length": 52265489}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/307-configuring-firebase/configuring-firebase-materials.zip", "length": 52257198}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/340-implementation-of-git.mp4", "length": 52138490}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/216-zooming.mp4", "length": 52103333}, {"path": "36-xcode-tips-and-tricks/360-breakpoints.mp4", "length": 52091296}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/346-gitignore-after-the-fact.mp4", "length": 51518148}, {"path": "10-programming-in-swift-part-4-collections/085-closures.mp4", "length": 50816444}, {"path": "31-networking-with-urlsession/293-http101.mp4", "length": 50538035}, {"path": "12-programming-in-swift-part-6-classes/105-initializers.mp4", "length": 50377165}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/334-viewing-history.mp4", "length": 50281531}, {"path": "29-beginning-core-data-part-1/278-filtering.mp4", "length": 50247900}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/020-connecting-outlets.mp4", "length": 49691566}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/242-finishing-touches.mp4", "length": 49547489}, {"path": "31-networking-with-urlsession/297-download-and-upload-task.mp4", "length": 49210920}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/229-paging-scroll-views.mp4", "length": 48612250}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/139-textfields-and-responder-chain.mp4", "length": 48107014}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/227-keyboard-insets.mp4", "length": 47650569}, {"path": "01-course-introduction/002-how-to-get-your-free-udemy-bonus-content.mp4", "length": 46925736}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/150-nsobject.mp4", "length": 46704786}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/214-your-first-scroll-view.mp4", "length": 46552982}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/347-cherry-picking.mp4", "length": 46192858}, {"path": "31-networking-with-urlsession/301-operationqueue.mp4", "length": 45526910}, {"path": "36-xcode-tips-and-tricks/362-behaviors.mp4", "length": 45468481}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/350-guis-gitk.mp4", "length": 45454822}, {"path": "29-beginning-core-data-part-1/272-introduction.mp4", "length": 45345048}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/341-merge-conflicts.mp4", "length": 45321128}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/045-styling-with-buttons-and-sliders.mp4", "length": 44429930}, {"path": "21-beginning-collection-views-part-1-the-basics/197-deleting-cells.mp4", "length": 43651360}, {"path": "31-networking-with-urlsession/295-urlsession-cookbook-1.mp4", "length": 43647360}, {"path": "30-beginning-core-data-part-2/283-fetched-results-controller.mp4", "length": 43455256}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/352-guis-gitup.mp4", "length": 43195460}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/123-mvc-first-attempt.mp4", "length": 42870878}, {"path": "36-xcode-tips-and-tricks/355-keyboard-shortcuts.mp4", "length": 42021226}, {"path": "36-xcode-tips-and-tricks/356-preferences-and-editing.mp4", "length": 42012127}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/331-committing-changes.mp4", "length": 41100199}, {"path": "12-programming-in-swift-part-6-classes/108-memory-management.mp4", "length": 41089538}, {"path": "12-programming-in-swift-part-6-classes/107-when-should-you-subclass.mp4", "length": 40247614}, {"path": "29-beginning-core-data-part-1/279-sorting.mp4", "length": 40148411}, {"path": "36-xcode-tips-and-tricks/359-storyboards-and-visual-debugging.mp4", "length": 40125872}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/351-guis-sourcetree.mp4", "length": 40055560}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/143-delegates.mp4", "length": 39876065}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/148-passing-data-in-segues.mp4", "length": 39792796}, {"path": "21-beginning-collection-views-part-1-the-basics/190-introduction.mp4", "length": 39775067}, {"path": "29-beginning-core-data-part-1/280-challenge-fixing-sorting-issues.mp4", "length": 39657897}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/136-adding-a-new-screen.mp4", "length": 39066722}, {"path": "27-beginning-ios-animations-part-2-animating-views/261-animating-with-keyframes.mp4", "length": 38916451}, {"path": "27-beginning-ios-animations-part-2-animating-views/260-concatenating-transforms.mp4", "length": 38827624}, {"path": "11-programming-in-swift-part-5-structures/098-methods.mp4", "length": 38806066}, {"path": "12-programming-in-swift-part-6-classes/103-challenge-classes-vs-structures.mp4", "length": 38770833}, {"path": "34-version-control-with-git-and-github-part-1-beginning-git/339-conclusion.mp4", "length": 38008642}, {"path": "11-programming-in-swift-part-5-structures/094-protocols.mp4", "length": 37976566}, {"path": "21-beginning-collection-views-part-1-the-basics/196-inserting-cells.mp4", "length": 37522116}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/245-animating-constraint-constants.mp4", "length": 37383448}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/217-centering-content.mp4", "length": 36919547}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/073-more-functions.mp4", "length": 36580491}, {"path": "11-programming-in-swift-part-5-structures/099-challenge-methods.mp4", "length": 36570423}, {"path": "31-networking-with-urlsession/292-introduction.mp4", "length": 35931664}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/269-dismiss-animation.mp4", "length": 35749812}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/342-stashes.mp4", "length": 35117214}, {"path": "20-beginning-auto-layout-section-2-constraints/183-introduction.mp4", "length": 35091060}, {"path": "27-beginning-ios-animations-part-2-animating-views/256-animating-view-properties.mp4", "length": 34325304}, {"path": "21-beginning-collection-views-part-1-the-basics/199-cleaning-up-the-ui.mp4", "length": 34169172}, {"path": "21-beginning-collection-views-part-1-the-basics/191-getting-started.mp4", "length": 34160056}, {"path": "32-beginning-firebase-part-1-basic-operations/310-saving-data.mp4", "length": 34090264}, {"path": "22-beginning-collection-views-part-2-customization/204-multiple-sections.mp4", "length": 34075933}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/224-nesting-scroll-views.mp4", "length": 33985921}, {"path": "07-programming-in-swift-part-1-core-concepts/058-booleans.mp4", "length": 33979985}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/144-segues.mp4", "length": 33867890}, {"path": "33-beginning-firebase-part-2-user-management/320-user-creation.mp4", "length": 33801859}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/125-classes-and-mvc.mp4", "length": 33778579}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/353-conclusion.mp4", "length": 33598469}, {"path": "37-course-conclusion/364-course-conclusion.mp4", "length": 33299225}, {"path": "07-programming-in-swift-part-1-core-concepts/053-introduction.mp4", "length": 33297904}, {"path": "19-beginning-auto-layout-section-1-stack-views/175-autoresizing.mp4", "length": 33204048}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/119-table-view-delegates.mp4", "length": 33083604}, {"path": "30-beginning-core-data-part-2/291-conclusion.mp4", "length": 32803977}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/140-control-events.mp4", "length": 32634994}, {"path": "22-beginning-collection-views-part-2-customization/206-subclassing-collection-view-layout.mp4", "length": 32054325}, {"path": "10-programming-in-swift-part-4-collections/082-dictionaries.mp4", "length": 31701576}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/267-presentation-animation.mp4", "length": 31665791}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/235-challenge-scroll-view-offset.mp4", "length": 31420388}, {"path": "29-beginning-core-data-part-1/277-binary-data.mp4", "length": 30950156}, {"path": "27-beginning-ios-animations-part-2-animating-views/258-animating-transform-properties.mp4", "length": 30670135}, {"path": "32-beginning-firebase-part-1-basic-operations/306-installing-firebase.mp4", "length": 30621361}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/236-fixing-slide-out-issues.mp4", "length": 30231456}, {"path": "30-beginning-core-data-part-2/290-fetched-results-controller-delegate.mp4", "length": 30063297}, {"path": "19-beginning-auto-layout-section-1-stack-views/176-stack-views.mp4", "length": 30043716}, {"path": "32-beginning-firebase-part-1-basic-operations/311-reading-data.mp4", "length": 29993085}, {"path": "21-beginning-collection-views-part-1-the-basics/198-challenge-deleting-cells.mp4", "length": 29964218}, {"path": "01-course-introduction/003-optional-registering-as-an-apple-developer.mp4", "length": 29529906}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/071-introduction-to-functions.mp4", "length": 29473140}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/249-animating-constraint-multipliers.mp4", "length": 29340081}, {"path": "17-saving-data-in-ios-section-1-files-and-data/154-introduction.mp4", "length": 29268050}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/117-adding-cell-content.mp4", "length": 29165126}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/146-detail-disclosure-indicator.mp4", "length": 29150005}, {"path": "29-beginning-core-data-part-1/276-attribute-types.mp4", "length": 28909901}, {"path": "22-beginning-collection-views-part-2-customization/202-custom-cells.mp4", "length": 28843142}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/076-more-optionals.mp4", "length": 28751667}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/126-incorporating-arrays.mp4", "length": 28586575}, {"path": "21-beginning-collection-views-part-1-the-basics/194-handling-segues.mp4", "length": 27728644}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/112-table-views.mp4", "length": 27724945}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/043-styling-with-images-and-labels.mp4", "length": 27575202}, {"path": "21-beginning-collection-views-part-1-the-basics/192-customize-collection-views.mp4", "length": 27542236}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/048-introduction-to-auto-layout.mp4", "length": 27340782}, {"path": "19-beginning-auto-layout-section-1-stack-views/180-stack-view-alignment-and-distribution.mp4", "length": 27258250}, {"path": "22-beginning-collection-views-part-2-customization/205-challenge-enhance-section-headers.mp4", "length": 27217622}, {"path": "10-programming-in-swift-part-4-collections/086-closures-and-collections.mp4", "length": 27141851}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/074-introduction-to-optionals.mp4", "length": 27064115}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/039-adding-extra-screens.mp4", "length": 27050081}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/025-challenge-how-to-calculate-the-difference.mp4", "length": 26563031}, {"path": "32-beginning-firebase-part-1-basic-operations/313-updating-and-deleting.mp4", "length": 26385797}, {"path": "32-beginning-firebase-part-1-basic-operations/attached_files/306-installing-firebase/installing-firebase-materials.zip", "length": 26267089}, {"path": "32-beginning-firebase-part-1-basic-operations/315-querying-data.mp4", "length": 26195745}, {"path": "33-beginning-firebase-part-2-user-management/attached_files/324-online-users/online-users-materials.zip", "length": 26135925}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/128-refactoring.mp4", "length": 26088331}, {"path": "32-beginning-firebase-part-1-basic-operations/309-references.mp4", "length": 25950412}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/051-running-the-app-on-your-device.mp4", "length": 25873291}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/270-adding-polish.mp4", "length": 25791961}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/343-aliases.mp4", "length": 25671784}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/131-navigation-controllers.mp4", "length": 25663873}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/251-adding-springs.mp4", "length": 25651325}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/223-embedding-layouts.mp4", "length": 25648004}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/212-diy-scroll-view.mp4", "length": 25150893}, {"path": "22-beginning-collection-views-part-2-customization/207-challenge-cell-deletion-animation.mp4", "length": 24984272}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/115-protocols.mp4", "length": 24840382}, {"path": "29-beginning-core-data-part-1/273-getting-started.mp4", "length": 24830301}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/022-challenge-connecting-outlets.mp4", "length": 24561342}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/013-portrait-vs.-landscape.mp4", "length": 24558827}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/007-challenge-making-a-programming-todo-list.mp4", "length": 24190692}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/012-how-does-an-app-work.mp4", "length": 24073024}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/210-introduction.mp4", "length": 24041860}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/008-buttons-and-actions.mp4", "length": 23784120}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/211-frames-and-bounds.mp4", "length": 23420382}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/265-setting-up-the-animator.mp4", "length": 23294413}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/010-solving-problems.mp4", "length": 22648234}, {"path": "22-beginning-collection-views-part-2-customization/201-introduction.mp4", "length": 22619960}, {"path": "08-programming-in-swift-part-2-flow-control/067-switch-statements.mp4", "length": 22596606}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/135-swipe-to-delete.mp4", "length": 22551141}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/151-xcode-refactoring.mp4", "length": 22525602}, {"path": "32-beginning-firebase-part-1-basic-operations/307-configuring-firebase.mp4", "length": 22443525}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/169-codable-hierarchies.mp4", "length": 22364304}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/113-table-view-cells.mp4", "length": 22329730}, {"path": "08-programming-in-swift-part-2-flow-control/065-for-loops.mp4", "length": 22316276}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/252-using-view-transitions.mp4", "length": 22167976}, {"path": "10-programming-in-swift-part-4-collections/087-challenge-closures.mp4", "length": 22095855}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/219-challenge-auto-layout-in-a-scroll-view.mp4", "length": 21968772}, {"path": "30-beginning-core-data-part-2/286-relationships.mp4", "length": 21714246}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/231-challenge-adding-a-paging-control.mp4", "length": 21693421}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/238-challenge-add-refresh-control.mp4", "length": 21648627}, {"path": "33-beginning-firebase-part-2-user-management/324-online-users.mp4", "length": 21572758}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/040-challenge-adding-extra-screens.mp4", "length": 21568038}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/122-model-view-controller.mp4", "length": 21306184}, {"path": "30-beginning-core-data-part-2/289-challenge-deleting-a-pet.mp4", "length": 21227188}, {"path": "29-beginning-core-data-part-1/275-challenge-adding-another-attribute.mp4", "length": 21205516}, {"path": "17-saving-data-in-ios-section-1-files-and-data/161-copying-image-data.mp4", "length": 21010866}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/247-animating-dynamically-created-views.mp4", "length": 20983156}, {"path": "19-beginning-auto-layout-section-1-stack-views/181-challenge-nesting-stack-views.mp4", "length": 20830372}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/213-challenge-update-frame-and-bounds.mp4", "length": 20567722}, {"path": "17-saving-data-in-ios-section-1-files-and-data/155-document-directory-url.mp4", "length": 20508492}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/215-challenge-set-content-size.mp4", "length": 20473332}, {"path": "36-xcode-tips-and-tricks/354-introduction.mp4", "length": 20306517}, {"path": "19-beginning-auto-layout-section-1-stack-views/178-intrinsic-content-size.mp4", "length": 20251290}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/134-challenge-checked-by-default.mp4", "length": 20160172}, {"path": "22-beginning-collection-views-part-2-customization/208-moving-cells.mp4", "length": 20126346}, {"path": "33-beginning-firebase-part-2-user-management/321-challenge-error-handling.mp4", "length": 20005435}, {"path": "21-beginning-collection-views-part-1-the-basics/193-challenge-selecting-cells.mp4", "length": 19990151}, {"path": "20-beginning-auto-layout-section-2-constraints/184-adding-new-constraints.mp4", "length": 19924496}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/165-codable-types.mp4", "length": 19855987}, {"path": "20-beginning-auto-layout-section-2-constraints/188-troubleshooting.mp4", "length": 19726908}, {"path": "08-programming-in-swift-part-2-flow-control/063-while-loops.mp4", "length": 19543958}, {"path": "11-programming-in-swift-part-5-structures/091-introduction.mp4", "length": 19495276}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/133-creating-new-checklist-items.mp4", "length": 19411159}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/110-introduction.mp4", "length": 19330733}, {"path": "32-beginning-firebase-part-1-basic-operations/312-challenge-reading-data.mp4", "length": 19080328}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/167-json-demo.mp4", "length": 18960058}, {"path": "07-programming-in-swift-part-1-core-concepts/059-challenge-booleans.mp4", "length": 18770233}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/166-json.mp4", "length": 18758444}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/170-challenge-property-lists.mp4", "length": 18751864}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/046-challenge-styling-the-about-screen.mp4", "length": 18718629}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/118-challenge-add-more-content.mp4", "length": 18605527}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/028-variables-vs.-constants.mp4", "length": 18599464}, {"path": "33-beginning-firebase-part-2-user-management/325-challenge-online-user-count.mp4", "length": 18507977}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/014-challenge-basic-controls.mp4", "length": 18300159}, {"path": "32-beginning-firebase-part-1-basic-operations/305-introduction.mp4", "length": 18284167}, {"path": "33-beginning-firebase-part-2-user-management/322-user-login.mp4", "length": 18259829}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/016-introduction.mp4", "length": 18200184}, {"path": "31-networking-with-urlsession/304-conclusion.mp4", "length": 18167497}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/011-challenge-connecting-actions.mp4", "length": 18079210}, {"path": "07-programming-in-swift-part-1-core-concepts/056-tuples.mp4", "length": 18047368}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/072-challenge-introduction-to-functions.mp4", "length": 17997249}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/032-adding-polish.mp4", "length": 17918936}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/253-challenge-triggering-view-transitions.mp4", "length": 17855960}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/172-comparing-property-lists-and-json.mp4", "length": 17610029}, {"path": "22-beginning-collection-views-part-2-customization/209-conclusion.mp4", "length": 17550048}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/049-challenge-introduction-to-auto-layout.mp4", "length": 17537556}, {"path": "22-beginning-collection-views-part-2-customization/203-challenge-add-a-label.mp4", "length": 17429418}, {"path": "07-programming-in-swift-part-1-core-concepts/054-swift-playgrounds.mp4", "length": 17332623}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/006-your-first-swift-4-and-ios-11-app-introduction.mp4", "length": 17242830}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/036-challenge-local-vs.-instance-variables.mp4", "length": 17222300}, {"path": "32-beginning-firebase-part-1-basic-operations/308-challenge-json.mp4", "length": 17217904}, {"path": "19-beginning-auto-layout-section-1-stack-views/174-introduction.mp4", "length": 17215904}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/149-challenge-dismissing-the-edit-controller.mp4", "length": 17080633}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/047-web-views.mp4", "length": 17014305}, {"path": "12-programming-in-swift-part-6-classes/101-introduction.mp4", "length": 16913035}, {"path": "12-programming-in-swift-part-6-classes/106-challenge-initializers.mp4", "length": 16853816}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/009-alerts.mp4", "length": 16807421}, {"path": "11-programming-in-swift-part-5-structures/093-challenge-structures.mp4", "length": 16752030}, {"path": "20-beginning-auto-layout-section-2-constraints/187-editing-constraints.mp4", "length": 16693074}, {"path": "33-beginning-firebase-part-2-user-management/319-keychain.mp4", "length": 16554606}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/244-introduction.mp4", "length": 16496648}, {"path": "30-beginning-core-data-part-2/288-delete-rules.mp4", "length": 16433984}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/246-challenge-animate-position-with-constants.mp4", "length": 16429200}, {"path": "33-beginning-firebase-part-2-user-management/323-challenge-user-login.mp4", "length": 16418714}, {"path": "17-saving-data-in-ios-section-1-files-and-data/158-data.mp4", "length": 16378153}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/132-challenge-add-bar-button.mp4", "length": 16268378}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/037-closures.mp4", "length": 15862456}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/137-static-cells.mp4", "length": 15697352}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/152-challenge-refactor-protocol.mp4", "length": 15610148}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/026-calculating-the-difference.mp4", "length": 15537534}, {"path": "11-programming-in-swift-part-5-structures/096-challenge-properties.mp4", "length": 15417862}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/237-refresh-control.mp4", "length": 15363769}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/228-challenge-adding-keyboard-insets.mp4", "length": 15169912}, {"path": "19-beginning-auto-layout-section-1-stack-views/179-nesting-stack-views.mp4", "length": 14965418}, {"path": "11-programming-in-swift-part-5-structures/097-computed-properties-vs-methods.mp4", "length": 14819916}, {"path": "11-programming-in-swift-part-5-structures/100-conclusion.mp4", "length": 14812712}, {"path": "33-beginning-firebase-part-2-user-management/317-introduction.mp4", "length": 14755080}, {"path": "10-programming-in-swift-part-4-collections/084-sets.mp4", "length": 14630969}, {"path": "20-beginning-auto-layout-section-2-constraints/189-conclusion.mp4", "length": 14576739}, {"path": "27-beginning-ios-animations-part-2-animating-views/255-introduction.mp4", "length": 14234883}, {"path": "21-beginning-collection-views-part-1-the-basics/200-conclusion.mp4", "length": 14138172}, {"path": "07-programming-in-swift-part-1-core-concepts/060-scope.mp4", "length": 14058828}, {"path": "08-programming-in-swift-part-2-flow-control/068-challenge-switch-statements.mp4", "length": 13949141}, {"path": "07-programming-in-swift-part-1-core-concepts/057-challenge-tuples.mp4", "length": 13864479}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/173-conclusion.mp4", "length": 13837954}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/031-challenge-tracking-rounds.mp4", "length": 13594059}, {"path": "10-programming-in-swift-part-4-collections/079-introduction.mp4", "length": 13559037}, {"path": "27-beginning-ios-animations-part-2-animating-views/262-challenge-practice-keyframes.mp4", "length": 13370097}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/226-challenge-adding-scroll-view-insets.mp4", "length": 13280658}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/038-challenge-starting-over.mp4", "length": 13273773}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/019-challenge-your-first-bug.mp4", "length": 13205460}, {"path": "21-beginning-collection-views-part-1-the-basics/195-challenge-segues-in-code.mp4", "length": 12949085}, {"path": "10-programming-in-swift-part-4-collections/083-challenge-dictionaries.mp4", "length": 12906815}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/130-introduction.mp4", "length": 12867543}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/145-challenge-edit-view-controller-checklist.mp4", "length": 12826618}, {"path": "20-beginning-auto-layout-section-2-constraints/186-challenge-constraints.mp4", "length": 12717979}, {"path": "30-beginning-core-data-part-2/282-introduction.mp4", "length": 12638169}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/138-challenge-a-text-field.mp4", "length": 12571629}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/171-property-list-anatomy.mp4", "length": 12390684}, {"path": "33-beginning-firebase-part-2-user-management/326-conclusion.mp4", "length": 12182680}, {"path": "08-programming-in-swift-part-2-flow-control/064-challenge-while-loops.mp4", "length": 12038237}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/250-challenge-toggle-constraints.mp4", "length": 11994062}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/030-challenge-showing-the-score.mp4", "length": 11973824}, {"path": "30-beginning-core-data-part-2/285-challenge-adding-more-entities.mp4", "length": 11968303}, {"path": "12-programming-in-swift-part-6-classes/109-conclusion.mp4", "length": 11842204}, {"path": "33-beginning-firebase-part-2-user-management/318-user-authentication.mp4", "length": 11763660}, {"path": "01-course-introduction/005-excercise-hello-xcode-9.mp4", "length": 11651298}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/268-challenge-plan-the-dismiss-animation.mp4", "length": 11649114}, {"path": "27-beginning-ios-animations-part-2-animating-views/259-challenge-add-variety.mp4", "length": 11588871}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/266-challenge-plan-the-presentation-animation.mp4", "length": 11554803}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/077-challenge-more-optionals.mp4", "length": 11422632}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/044-challenge-styling-with-labels.mp4", "length": 11409581}, {"path": "10-programming-in-swift-part-4-collections/081-challenge-arrays.mp4", "length": 11390913}, {"path": "32-beginning-firebase-part-1-basic-operations/314-challenge-deleting-data.mp4", "length": 11365500}, {"path": "27-beginning-ios-animations-part-2-animating-views/257-challenge-create-a-fade-animation.mp4", "length": 10797181}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/168-challenge-json-arrays.mp4", "length": 10764233}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/124-challenge-remove-duplication.mp4", "length": 10715884}, {"path": "19-beginning-auto-layout-section-1-stack-views/177-challenge-create-layouts-with-stack-views.mp4", "length": 10650847}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/147-challenge-second-segue.mp4", "length": 10447545}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/127-challenge-add-more-items.mp4", "length": 10096547}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/027-challenge-calculating-the-difference.mp4", "length": 10095400}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/142-introduction.mp4", "length": 10089878}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/033-challenge-adding-polish.mp4", "length": 9975875}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/023-conclusion.mp4", "length": 9744828}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/111-app-design.mp4", "length": 9654729}, {"path": "17-saving-data-in-ios-section-1-files-and-data/156-paths.mp4", "length": 9618347}, {"path": "01-course-introduction/004-optional-downloading-and-installing-xcode-9.mp4", "length": 9579976}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/248-challenge-animate-a-view-offscreen.mp4", "length": 9528216}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/042-introduction.mp4", "length": 9508236}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/029-type-inference.mp4", "length": 9488987}, {"path": "36-xcode-tips-and-tricks/363-conclusion.mp4", "length": 9379603}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/264-introduction.mp4", "length": 9374634}, {"path": "08-programming-in-swift-part-2-flow-control/066-challenge-for-loops.mp4", "length": 9351466}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/120-conclusion.mp4", "length": 9151239}, {"path": "20-beginning-auto-layout-section-2-constraints/185-dragging-constraints.mp4", "length": 8948993}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/121-introduction.mp4", "length": 8914951}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/243-conclusion.mp4", "length": 8797072}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/230-paging-control/09.zip", "length": 8677700}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/229-paging-scroll-views/08.zip", "length": 8672240}, {"path": "17-saving-data-in-ios-section-1-files-and-data/159-string.mp4", "length": 8619219}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/222-introduction.mp4", "length": 8498382}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/070-introduction.mp4", "length": 8389368}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/052-conclusion.mp4", "length": 8302885}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/114-challenge-add-a-label.mp4", "length": 7990512}, {"path": "08-programming-in-swift-part-2-flow-control/069-conclusion.mp4", "length": 7990368}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/153-conclusion.mp4", "length": 7922588}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/164-introduction.mp4", "length": 7860520}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/035-introduction.mp4", "length": 7806648}, {"path": "15-your-second-swift-4-and-ios-11-app-part-3-adding-and-deleting-items/141-conclusion.mp4", "length": 7633273}, {"path": "10-programming-in-swift-part-4-collections/090-conclusion.mp4", "length": 7620661}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/034-conclusion.mp4", "length": 7611417}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/271-conclusion.mp4", "length": 7570728}, {"path": "07-programming-in-swift-part-1-core-concepts/061-conclusion.mp4", "length": 7414569}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/075-challenge-introduction-to-optionals.mp4", "length": 7250355}, {"path": "07-programming-in-swift-part-1-core-concepts/055-comments.mp4", "length": 7220424}, {"path": "13-your-second-swift-4-and-ios-11-app-part-1-table-views/116-challenge-add-more-rows.mp4", "length": 7185006}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/024-introduction.mp4", "length": 7183512}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/233-introduction.mp4", "length": 7075873}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/050-app-icon-and-display-name.mp4", "length": 6904080}, {"path": "32-beginning-firebase-part-1-basic-operations/316-conclusion.mp4", "length": 6698873}, {"path": "17-saving-data-in-ios-section-1-files-and-data/162-challenge-loading-image-data.mp4", "length": 6671770}, {"path": "09-programming-in-swift-part-3-functions-and-optionals/078-conclusion.mp4", "length": 6555279}, {"path": "29-beginning-core-data-part-1/281-conclusion.mp4", "length": 6233228}, {"path": "08-programming-in-swift-part-2-flow-control/062-introduction.mp4", "length": 6226786}, {"path": "17-saving-data-in-ios-section-1-files-and-data/163-conclusion.mp4", "length": 5659384}, {"path": "14-your-second-swift-4-and-ios-11-app-part-2-mvc/129-conclusion.mp4", "length": 5485990}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/015-conclusion.mp4", "length": 5295254}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/232-conclusion.mp4", "length": 5082745}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/254-conclusion.mp4", "length": 4911513}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/216-zooming/07.zip", "length": 4816697}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/217-centering-content/08.zip", "length": 4816473}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/215-challenge-set-content-size/06.zip", "length": 4816372}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/218-auto-layout/09.zip", "length": 4815722}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/214-your-first-scroll-view/05.zip", "length": 4814543}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/221-conclusion.mp4", "length": 4485827}, {"path": "19-beginning-auto-layout-section-1-stack-views/attached_files/181-challenge-nesting-stack-views/08-Challenge-Nesting-Stack-Views.zip", "length": 4337011}, {"path": "17-saving-data-in-ios-section-1-files-and-data/160-challenge-string-data.mp4", "length": 4327174}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/041-conclusion.mp4", "length": 4297372}, {"path": "17-saving-data-in-ios-section-1-files-and-data/157-challenge-urls.mp4", "length": 4259726}, {"path": "27-beginning-ios-animations-part-2-animating-views/263-conclusion.mp4", "length": 3770320}, {"path": "19-beginning-auto-layout-section-1-stack-views/182-conclusion.mp4", "length": 3081786}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/attached_files/172-comparing-property-lists-and-json/9-Comparing-Property-Lists-and-JSON.zip", "length": 2601867}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/attached_files/170-challenge-property-lists/7-Challenge-Property-Lists.zip", "length": 2597852}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/attached_files/169-codable-hierarchies/6-Codable-Hierachies.zip", "length": 2597527}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/attached_files/168-challenge-json-arrays/5-Codable-Arrays.zip", "length": 2592154}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/attached_files/167-json-demo/4-JSON.zip", "length": 2591468}, {"path": "18-saving-data-in-ios-section-2-json-and-property-lists/attached_files/165-codable-types/2-Codable-Types.zip", "length": 2590291}, {"path": "17-saving-data-in-ios-section-1-files-and-data/attached_files/161-copying-image-data/8-Copying-Image-Data.zip", "length": 2589984}, {"path": "17-saving-data-in-ios-section-1-files-and-data/attached_files/162-challenge-loading-image-data/9-Challenge.zip", "length": 2588739}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/050-app-icon-and-display-name/app-icon-and-display-name-final.zip", "length": 2547720}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/043-styling-with-images-and-labels/styling-with-images-and-labels.zip", "length": 1877991}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/227-keyboard-insets/06.zip", "length": 1625372}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/225-content-insets/04.zip", "length": 1621930}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/212-diy-scroll-view/03.zip", "length": 1617534}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/224-nesting-scroll-views/03.zip", "length": 1617378}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/226-challenge-adding-scroll-view-insets/05.zip", "length": 1601879}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/attached_files/270-adding-polish/07-Polishing-the-Animation.zip", "length": 1321617}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/attached_files/267-presentation-animation/04-Presentation-Animation.zip", "length": 1320344}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/attached_files/265-setting-up-the-animator/02-Setting-up-the-Animator.zip", "length": 1320196}, {"path": "28-beginning-ios-animations-part-3-view-controller-transitions/attached_files/269-dismiss-animation/06-Dismiss-Animation.zip", "length": 1318842}, {"path": "31-networking-with-urlsession/attached_files/300-ats/09-ATS.zip", "length": 1249741}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/049-challenge-introduction-to-auto-layout/challenge-introduction-to-auto-layout-final.zip", "length": 1140460}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/048-introduction-to-auto-layout/introduction-to-auto-layout-final.zip", "length": 1138297}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/046-challenge-styling-the-about-screen/challenge-styling-the-about-screen.zip", "length": 1128273}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/045-styling-with-buttons-and-sliders/styling-with-buttons-and-sliders.zip", "length": 1127616}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/044-challenge-styling-with-labels/challenge-styling-with-labels.zip", "length": 1126454}, {"path": "06-your-first-swift-4-and-ios-11-app-part-5-styling-the-app/attached_files/047-web-views/web-views.zip", "length": 1124169}, {"path": "19-beginning-auto-layout-section-1-stack-views/attached_files/179-nesting-stack-views/06-Nesting-Stack-Views.zip", "length": 1121654}, {"path": "20-beginning-auto-layout-section-2-constraints/attached_files/185-dragging-constraints/3-Dragging-Constraints.zip", "length": 1052003}, {"path": "20-beginning-auto-layout-section-2-constraints/attached_files/184-adding-new-constraints/2-Add-New-Constraints.zip", "length": 1050886}, {"path": "19-beginning-auto-layout-section-1-stack-views/attached_files/176-stack-views/03-Stack-Views.zip", "length": 1048729}, {"path": "19-beginning-auto-layout-section-1-stack-views/attached_files/175-autoresizing/02-Autoresizing.zip", "length": 1045882}, {"path": "20-beginning-auto-layout-section-2-constraints/attached_files/186-challenge-constraints/4-Challenge-Constraints.zip", "length": 1045593}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/349-many-faces-of-undo/10-ManyFacesOfUndo.zip", "length": 894325}, {"path": "36-xcode-tips-and-tricks/attached_files/360-breakpoints/7-Breakpoints.zip", "length": 854699}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/246-challenge-animate-position-with-constants/03-Animate-Position-with-Constants.zip", "length": 854303}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/348-filter-branch/09-FilterBranch.zip", "length": 847930}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/253-challenge-triggering-view-transitions/10-Triggering-View-Transitions.zip", "length": 839035}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/251-adding-springs/08-Adding-Springs.zip", "length": 829498}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/258-animating-transform-properties/04-Animating-Transform-Properties.zip", "length": 815407}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/261-animating-with-keyframes/07-Animating-with-Keyframes.zip", "length": 813431}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/260-concatenating-transforms/06-Concatenating-Transforms.zip", "length": 812910}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/256-animating-view-properties/02-Animating-View-Properties.zip", "length": 812292}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/257-challenge-create-a-fade-animation/03-Create-a-Fade-Animation.zip", "length": 811588}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/262-challenge-practice-keyframes/08-Practice-Keyframes.zip", "length": 810685}, {"path": "27-beginning-ios-animations-part-2-animating-views/attached_files/259-challenge-add-variety/05-Add-Variety.zip", "length": 806216}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/347-cherry-picking/08-CherryPicking.zip", "length": 793130}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/346-gitignore-after-the-fact/07-GitignoreAfterTheFact.zip", "length": 771345}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/247-animating-dynamically-created-views/04-Animating-Dynamically-Created-Views.zip", "length": 756355}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/245-animating-constraint-constants/02-Animating-Constraint-Constants.zip", "length": 756335}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/249-animating-constraint-multipliers/06-Animating-Constraint-Multipliers.zip", "length": 750436}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/248-challenge-animate-a-view-offscreen/05-Animate-a-View-Offscreen.zip", "length": 746775}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/250-challenge-toggle-constraints/07-Toggle-Constraints.zip", "length": 738842}, {"path": "26-beginning-ios-animations-part-1-animating-constraints/attached_files/252-using-view-transitions/09-Using-View-Transitions.zip", "length": 738383}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/345-rebase-rewriting-history/06-Rebase-RewritingHistory.zip", "length": 734901}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/231-challenge-adding-a-paging-control/10.zip", "length": 695831}, {"path": "36-xcode-tips-and-tricks/attached_files/361-code-snippets/8-Code-Snippets.zip", "length": 683898}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/344-rebase-a-merge-alternative/05-Rebase-AMergeAlternative.zip", "length": 683487}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/343-aliases/04-Aliases.zip", "length": 658745}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/342-stashes/03-Stashes.zip", "length": 649804}, {"path": "36-xcode-tips-and-tricks/attached_files/359-storyboards-and-visual-debugging/6-Storyboards.zip", "length": 637736}, {"path": "36-xcode-tips-and-tricks/attached_files/358-schemes-and-targets/5-Schemes-and-Targets.zip", "length": 614608}, {"path": "35-version-control-with-git-and-github-part-2-mastering-git/attached_files/341-merge-conflicts/02-MergeConflicts.zip", "length": 614513}, {"path": "19-beginning-auto-layout-section-1-stack-views/attached_files/180-stack-view-alignment-and-distribution/07-Stack-View-Alignment-and-Distribution.zip", "length": 533022}, {"path": "36-xcode-tips-and-tricks/attached_files/357-workspaces-and-frameworks/4-Workspaces-and-Frameworks.zip", "length": 459885}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/236-fixing-slide-out-issues/04.zip", "length": 441884}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/235-challenge-scroll-view-offset/03.zip", "length": 439777}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/234-slide-out-sidebar/02.zip", "length": 434552}, {"path": "31-networking-with-urlsession/attached_files/293-http101/02-HTTP101.zip", "length": 381905}, {"path": "36-xcode-tips-and-tricks/attached_files/356-preferences-and-editing/3-Preferences-and-Editing.zip", "length": 375674}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/attached_files/040-challenge-adding-extra-screens/challenge-adding-extra-screens-final.zip", "length": 374907}, {"path": "31-networking-with-urlsession/attached_files/298-background-sessions/07-BackgroundSessions.zip", "length": 348409}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/241-locking-scroll-views/09.zip", "length": 340536}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/240-parallax-scrolling/08.zip", "length": 335885}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/239-custom-refresh-control/07.zip", "length": 329239}, {"path": "36-xcode-tips-and-tricks/attached_files/355-keyboard-shortcuts/2-Keyboard-Shortcuts.zip", "length": 255685}, {"path": "19-beginning-auto-layout-section-1-stack-views/attached_files/177-challenge-create-layouts-with-stack-views/04-Challenge-Create-Layouts-with-Stack-Views.zip", "length": 252301}, {"path": "31-networking-with-urlsession/attached_files/303-testing-and-metrics/12-Testing-Metrics.zip", "length": 248709}, {"path": "36-xcode-tips-and-tricks/attached_files/362-behaviors/9-Behaviors.zip", "length": 221023}, {"path": "31-networking-with-urlsession/attached_files/301-operationqueue/10-OperationQueue.zip", "length": 218353}, {"path": "31-networking-with-urlsession/attached_files/299-authentication/08-Authentication.zip", "length": 208693}, {"path": "31-networking-with-urlsession/attached_files/302-architecture/11-Architecture.zip", "length": 206161}, {"path": "31-networking-with-urlsession/attached_files/296-urlsession-cookbook-2/05-Cookbook2.zip", "length": 204908}, {"path": "31-networking-with-urlsession/attached_files/294-urlsession/03-URLSession.zip", "length": 192159}, {"path": "31-networking-with-urlsession/attached_files/304-conclusion/13-Conclusion.zip", "length": 191598}, {"path": "31-networking-with-urlsession/attached_files/292-introduction/01-Introduction.zip", "length": 185462}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/198-challenge-deleting-cells/09-Challenge-Deleting-Cells.zip", "length": 134102}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/199-cleaning-up-the-ui/10-Cleaning-Up-the-UI.zip", "length": 132613}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/228-challenge-adding-keyboard-insets/07.zip", "length": 131947}, {"path": "30-beginning-core-data-part-2/attached_files/290-fetched-results-controller-delegate/bca-s2-e9-materials.zip", "length": 127027}, {"path": "24-scroll-view-school-part-2-intermediate-scroll-views/attached_files/223-embedding-layouts/02.zip", "length": 125391}, {"path": "30-beginning-core-data-part-2/attached_files/289-challenge-deleting-a-pet/bca-s2-e8-materials.zip", "length": 125168}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/197-deleting-cells/08-Deleting-Cells.zip", "length": 119770}, {"path": "30-beginning-core-data-part-2/attached_files/286-relationships/bca-s2-e5-materials.zip", "length": 119140}, {"path": "29-beginning-core-data-part-1/attached_files/280-challenge-fixing-sorting-issues/Beg-Core-Data-S1-V9-Challenge-Fixing-Sorting-Issues.zip", "length": 117928}, {"path": "29-beginning-core-data-part-1/attached_files/279-sorting/Beg-Core-Data-S1-V8-Sorting.zip", "length": 117811}, {"path": "29-beginning-core-data-part-1/attached_files/278-filtering/Beg-Core-Data-S1-V7-Filtering.zip", "length": 117706}, {"path": "29-beginning-core-data-part-1/attached_files/277-binary-data/Beg-Core-Data-S1-V6-Binary-Data.zip", "length": 117477}, {"path": "30-beginning-core-data-part-2/attached_files/283-fetched-results-controller/bca-s2-e2-materials.zip", "length": 116715}, {"path": "29-beginning-core-data-part-1/attached_files/276-attribute-types/Beg-Core-Data-S1-V5-Attribute-Types.zip", "length": 116706}, {"path": "30-beginning-core-data-part-2/attached_files/284-displaying-data-by-section/bca-s2-e3-materials.zip", "length": 116551}, {"path": "30-beginning-core-data-part-2/attached_files/285-challenge-adding-more-entities/bca-s2-e4-materials.zip", "length": 115039}, {"path": "29-beginning-core-data-part-1/attached_files/275-challenge-adding-another-attribute/Beg-Core-Data-S1-V4-Challenge-Adding-Another-Attribute.zip", "length": 114548}, {"path": "29-beginning-core-data-part-1/attached_files/274-managed-objects/Beg-Core-Data-S1-V3-Managed-Objects.zip", "length": 109846}, {"path": "31-networking-with-urlsession/attached_files/297-download-and-upload-task/06-DownloadUploadTask.zip", "length": 107592}, {"path": "29-beginning-core-data-part-1/attached_files/273-getting-started/Beg-Core-Data-S1-V2-Getting-Started.zip", "length": 100508}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/220-stack-views/11.zip", "length": 99616}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/195-challenge-segues-in-code/06-Challenge-Segues-in-Code.zip", "length": 87835}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/196-inserting-cells/07-Inserting-Cells.zip", "length": 87617}, {"path": "30-beginning-core-data-part-2/attached_files/287-relationships-in-code/bca-s2-e6-materials.zip", "length": 86209}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/237-refresh-control/05.zip", "length": 80075}, {"path": "25-scroll-view-school-part-3-scroll-view-recipes/attached_files/238-challenge-add-refresh-control/06.zip", "length": 78635}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/213-challenge-update-frame-and-bounds/04.zip", "length": 77502}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/194-handling-segues/05-Handling-Segues.zip", "length": 76785}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/192-customize-collection-views/03-Customize-Collection-View.zip", "length": 73834}, {"path": "36-xcode-tips-and-tricks/attached_files/354-introduction/1-Introduction.zip", "length": 72091}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/193-challenge-selecting-cells/04-Challenge-Selecting-Cells.zip", "length": 72044}, {"path": "07-programming-in-swift-part-1-core-concepts/attached_files/053-introduction/introduction.zip", "length": 71791}, {"path": "23-scroll-view-school-part-1-beginning-scroll-views/attached_files/219-challenge-auto-layout-in-a-scroll-view/10.zip", "length": 67611}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/attached_files/039-adding-extra-screens/adding-extra-screens-final.zip", "length": 42547}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/attached_files/038-challenge-starting-over/challenge-starting-over-final.zip", "length": 40432}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/033-challenge-adding-polish/challenge-adding-polish-final.zip", "length": 39101}, {"path": "05-your-first-swift-4-and-ios-11-app-part-4-coding-practice/attached_files/037-closures/closures-final.zip", "length": 38719}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/031-challenge-tracking-rounds/challenge-tracking-rounds-final.zip", "length": 38275}, {"path": "20-beginning-auto-layout-section-2-constraints/attached_files/188-troubleshooting/6-Troubleshooting.zip", "length": 38171}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/032-adding-polish/adding-polish-final.zip", "length": 37747}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/030-challenge-showing-the-score/challenge-showing-the-score-final.zip", "length": 37743}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/027-challenge-calculating-the-difference/challenge-calculating-the-difference-final.zip", "length": 37400}, {"path": "21-beginning-collection-views-part-1-the-basics/attached_files/191-getting-started/02-Getting-Started.zip", "length": 36626}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/028-variables-vs.-constants/variables-vs-constants-final.zip", "length": 36520}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/026-calculating-the-difference/calculating-the-difference-final.zip", "length": 36424}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/attached_files/022-challenge-connecting-outlets/challenge-connecting-outlets-final.zip", "length": 36260}, {"path": "04-your-first-swift-4-and-ios-11-app-part-3-coding-basics/attached_files/029-type-inference/type-inference-final.zip", "length": 36164}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/attached_files/021-writing-methods/writing-methods-final.zip", "length": 34640}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/attached_files/020-connecting-outlets/connecting-outlets-final.zip", "length": 34452}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/attached_files/019-challenge-your-first-bug/challenge-your-first-bug-final.zip", "length": 33488}, {"path": "03-your-first-swift-4-and-ios-11-app-part-2-outlets/attached_files/018-strings-and-variables/strings-and-variables-final.zip", "length": 32615}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/attached_files/014-challenge-basic-controls/challenge-basic-controls-final.zip", "length": 31295}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/attached_files/013-portrait-vs.-landscape/portrait-vs-landscape-final.zip", "length": 29977}, {"path": "02-your-first-swift-4-and-ios-11-app-part-1-basic-controls/attached_files/011-challenge-connecting-actions/challenge-connecting-actions-final.zip", "length": 29515}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/attached_files/152-challenge-refactor-protocol/YSA-S4-V11-Challenge-Refactor-Protocol.zip", "length": 28252}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/attached_files/151-xcode-refactoring/YSA-S4-V10-Xcode-Refactoring.zip", "length": 28209}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/attached_files/150-nsobject/YSA-S4-V9-NSObject.zip", "length": 28071}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/attached_files/148-passing-data-in-segues/YSA-S4-V7-Passing-Data-in-Segues.zip", "length": 27882}, {"path": "16-your-second-swift-4-and-ios-11-app-part-4-editing-items/attached_files/147-challenge-second-segue/YSA-S4-V6-Challenge-Second-Segue.zip

Download Info

  • Tips

    “Udemy - iOS 11 and Swift 4 for Beginners 200+ Hands-On Tutorials” Its related downloads are collected from the DHT sharing network, the site will be 24 hours of real-time updates, to ensure that you get the latest resources.This site is not responsible for the authenticity of the resources, please pay attention to screening.If found bad resources, please send a report below the right, we will be the first time shielding.

  • DMCA Notice and Takedown Procedure

    If this resource infringes your copyright, please email([email protected]) us or leave your message here ! we will block the download link as soon as possiable.