├── .gitignore ├── 00-uikit-dynamics ├── 00-uikit-dynamics.md ├── NewtonsCradle │ ├── NewtonsCradle.xcodeproj │ │ └── project.pbxproj │ ├── NewtonsCradle │ │ ├── Base.lproj │ │ │ ├── Main_iPad.storyboard │ │ │ └── Main_iPhone.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── NewtonsCradle-Info.plist │ │ ├── NewtonsCradle-Prefix.pch │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCBallBearingView.h │ │ ├── SCBallBearingView.m │ │ ├── SCNewtonsCradleView.h │ │ ├── SCNewtonsCradleView.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── NewtonsCradleTests │ │ ├── NewtonsCradleTests-Info.plist │ │ ├── NewtonsCradleTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── UIKitDynamicsConceptualOverview.svg │ ├── completed_cradle.png │ └── newtons_cradle.jpg ├── 01-nsurlsession ├── 01-nsurlsession.md └── BackgroundDownload │ ├── BackgroundDownload.xcodeproj │ └── project.pbxproj │ ├── BackgroundDownload │ ├── BackgroundDownload-Info.plist │ ├── BackgroundDownload-Prefix.pch │ ├── Base.lproj │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── SCAppDelegate.h │ ├── SCAppDelegate.m │ ├── SCViewController.h │ ├── SCViewController.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m │ └── BackgroundDownloadTests │ ├── BackgroundDownloadTests-Info.plist │ ├── BackgroundDownloadTests.m │ └── en.lproj │ └── InfoPlist.strings ├── 02-asset-catalog ├── 02-asset-catalog.md ├── MultiResolution │ ├── MultiResolution.xcodeproj │ │ └── project.pbxproj │ ├── MultiResolution │ │ ├── Base.lproj │ │ │ ├── Main_iPad.storyboard │ │ │ └── Main_iPhone.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── shinobi-logo-red-square_100.png │ │ │ │ ├── shinobi-logo-red-square_120.png │ │ │ │ ├── shinobi-logo-red-square_144.png │ │ │ │ ├── shinobi-logo-red-square_29.png │ │ │ │ ├── shinobi-logo-red-square_50.png │ │ │ │ ├── shinobi-logo-red-square_58-1.png │ │ │ │ ├── shinobi-logo-red-square_58.png │ │ │ │ └── shinobi-logo-red-square_72.png │ │ │ ├── Flags │ │ │ │ ├── Australia.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── flag_Australia.png │ │ │ │ │ └── flag_Australia@2x.png │ │ │ │ └── USA.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── flag_US.png │ │ │ │ │ └── flag_US@2x.png │ │ │ ├── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ │ └── Slicing │ │ │ │ └── ButtonSlice.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Essentials_Btn03.png │ │ │ │ └── Essentials_Btn03@2x.png │ │ ├── MultiResolution-Info.plist │ │ ├── MultiResolution-Prefix.pch │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── MultiResolutionTests │ │ ├── MultiResolutionTests-Info.plist │ │ ├── MultiResolutionTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── asset_catalog_custom_image_set.png │ ├── asset_catalog_directory_structure.png │ ├── asset_catalog_icon_selection.png │ ├── asset_catalog_icon_size_warning.png │ ├── asset_catalog_slice_image.png │ └── asset_catalog_slice_result.png ├── 03-background-fetch ├── 03-background-fetch.md ├── TrafficStatus │ ├── TrafficStatus.xcodeproj │ │ └── project.pbxproj │ ├── TrafficStatus │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── NSArray+Random.h │ │ ├── NSArray+Random.m │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCTrafficStatus.h │ │ ├── SCTrafficStatus.m │ │ ├── SCTrafficStatusTableCell.h │ │ ├── SCTrafficStatusTableCell.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── TrafficStatus-Info.plist │ │ ├── TrafficStatus-Prefix.pch │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── TrafficStatusTests │ │ ├── TrafficStatusTests-Info.plist │ │ ├── TrafficStatusTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── background-fetch-capabilities.png │ ├── background-fetch-debug-fetch-event.png │ └── background-fetch-launch-for-fetch.png ├── 04-avspeechsynthesizer ├── 04-avspeechsynthesizer.md └── GreetingSpeaker │ ├── GreetingSpeaker.xcodeproj │ └── project.pbxproj │ ├── GreetingSpeaker │ ├── Base.lproj │ │ └── Main.storyboard │ ├── GreetingSpeaker-Info.plist │ ├── GreetingSpeaker-Prefix.pch │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── SCAppDelegate.h │ ├── SCAppDelegate.m │ ├── SCGreetingLanguage.h │ ├── SCGreetingLanguage.m │ ├── SCViewController.h │ ├── SCViewController.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m │ └── GreetingSpeakerTests │ ├── GreetingSpeakerTests-Info.plist │ ├── GreetingSpeakerTests.m │ └── en.lproj │ └── InfoPlist.strings ├── 05-uidynamics-collectionview ├── 05-uidynamics-collectionview.md ├── SpringyCarousel │ ├── SpringyCarousel.xcodeproj │ │ └── project.pbxproj │ ├── SpringyCarousel │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCCollectionViewSampleCell.h │ │ ├── SCCollectionViewSampleCell.m │ │ ├── SCItemBehaviorManager.h │ │ ├── SCItemBehaviorManager.m │ │ ├── SCSpringyCarousel.h │ │ ├── SCSpringyCarousel.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── SpringyCarousel-Info.plist │ │ ├── SpringyCarousel-Prefix.pch │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── SpringyCarouselTests │ │ ├── SpringyCarouselTests-Info.plist │ │ ├── SpringyCarouselTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── springy_carousel_inserting.png │ ├── springy_carousel_non_springy.png │ └── springy_carousel_scrolling.png ├── 06-tintcolor ├── 06-tintcolor.md ├── ColorChanger │ ├── ColorChanger.xcodeproj │ │ └── project.pbxproj │ ├── ColorChanger │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── ColorChanger-Info.plist │ │ ├── ColorChanger-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCSampleCustomControl.h │ │ ├── SCSampleCustomControl.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ ├── main.m │ │ └── shinobihead.png │ └── ColorChangerTests │ │ ├── ColorChangerTests-Info.plist │ │ ├── ColorChangerTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── tint-color-1.png │ ├── tint-color-2.png │ ├── tint-color-custom-1.png │ ├── tint-color-custom-2.png │ ├── tint-color-image-1.png │ └── tint-color-image-2.png ├── 07-snapshot ├── 07-snapshot.md ├── ViewSnapper │ ├── ViewSnapper.xcodeproj │ │ └── project.pbxproj │ ├── ViewSnapper │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCRotatingViews.h │ │ ├── SCRotatingViews.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── ViewSnapper-Info.plist │ │ ├── ViewSnapper-Prefix.pch │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── ViewSnapperTests │ │ ├── ViewSnapperTests-Info.plist │ │ ├── ViewSnapperTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── snapshot-animate.png │ ├── snapshot-clipping.png │ ├── snapshot-image.png │ ├── snapshot-post.png │ ├── snapshot-pre.png │ ├── snapshot-rotatingviews.png │ └── snapshot-snapshot.png ├── 08-safariservices ├── 08-safariservices.md ├── FeedReader │ ├── FeedReader.xcodeproj │ │ └── project.pbxproj │ ├── FeedReader │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── FeedReader-Info.plist │ │ ├── FeedReader-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCDetailViewController.h │ │ ├── SCDetailViewController.m │ │ ├── SCMasterViewController.h │ │ ├── SCMasterViewController.m │ │ ├── SCRSSEntry.h │ │ ├── SCRSSEntry.m │ │ ├── SCRSSFeed.h │ │ ├── SCRSSFeed.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── FeedReaderTests │ │ ├── FeedReaderTests-Info.plist │ │ ├── FeedReaderTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ └── safariservices-readinglist.png ├── 09-uniqueidentifier ├── 09-uniqueidentifier.md ├── WhoAmI │ ├── WhoAmI.xcodeproj │ │ └── project.pbxproj │ ├── WhoAmI │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── WhoAmI-Info.plist │ │ ├── WhoAmI-Prefix.pch │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── WhoAmITests │ │ ├── WhoAmITests-Info.plist │ │ ├── WhoAmITests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ └── whoami.png ├── 10-custom-vc-transitions ├── 10-custom-vc-transitions.md ├── Fader │ ├── Fader.xcodeproj │ │ └── project.pbxproj │ ├── Fader │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Fader-Info.plist │ │ ├── Fader-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCFadeTransition.h │ │ ├── SCFadeTransition.m │ │ ├── SCFirstViewController.h │ │ ├── SCFirstViewController.m │ │ ├── SCNavControllerDelegate.h │ │ ├── SCNavControllerDelegate.m │ │ ├── SCSecondViewController.h │ │ ├── SCSecondViewController.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── FaderTests │ │ ├── FaderTests-Info.plist │ │ ├── FaderTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── fader-1.png │ ├── fader-2.png │ └── fader-3.png ├── 11-uiview-keyframe-animation ├── 11-uiview-keyframe-animation.md ├── RainbowRotate │ ├── RainbowRotate.xcodeproj │ │ └── project.pbxproj │ ├── RainbowRotate │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── RainbowRotate-Info.plist │ │ ├── RainbowRotate-Prefix.pch │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ ├── main.m │ │ └── shinobihead.png │ └── RainbowRotateTests │ │ ├── RainbowRotateTests-Info.plist │ │ ├── RainbowRotateTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings ├── img │ ├── keyframe-optionsGraph.pdf │ ├── keyframe-optionsGraph.png │ ├── keyframe-rainbow1.png │ ├── keyframe-rainbow2.png │ ├── keyframe-rainbow3.png │ ├── keyframe-rotate1.png │ └── keyframe-rotate2.png └── optionsGraph.gcx ├── 12-dynamic-type ├── 12-dynamic-type.md ├── FontPalette │ ├── FontPalette.xcodeproj │ │ └── project.pbxproj │ ├── FontPalette │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── FontPalette-Info.plist │ │ ├── FontPalette-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── FontPaletteTests │ │ ├── FontPaletteTests-Info.plist │ │ ├── FontPaletteTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── dynamic-type-changing-size.png │ ├── dynamic-type-font-descriptor.png │ ├── dynamic-type-large.png │ ├── dynamic-type-medium.png │ ├── dynamic-type-small.png │ └── dynamic-type-storyboard.png ├── 13-mapkit-directions ├── 13-mapkit-directions.md ├── RouteMaster │ ├── RouteMaster.xcodeproj │ │ └── project.pbxproj │ ├── RouteMaster │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── RouteMaster-Info.plist │ │ ├── RouteMaster-Prefix.pch │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCIndividualStepViewController.h │ │ ├── SCIndividualStepViewController.m │ │ ├── SCStepsViewController.h │ │ ├── SCStepsViewController.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── RouteMasterTests │ │ ├── RouteMasterTests-Info.plist │ │ ├── RouteMasterTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── mapkit-allow.png │ ├── mapkit-route.png │ ├── mapkit-simulate-location.png │ ├── mapkit-step1.png │ ├── mapkit-step2.png │ └── mapkit-steps.png ├── 14-interactive-vc-transitions ├── 14-interactive-vc-transitions.md ├── FlipCard │ ├── FlipCard.xcodeproj │ │ └── project.pbxproj │ ├── FlipCard │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── FlipCard-Info.plist │ │ ├── FlipCard-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCFlipAnimation.h │ │ ├── SCFlipAnimation.m │ │ ├── SCFlipAnimationInteractor.h │ │ ├── SCFlipAnimationInteractor.m │ │ ├── SCInteractiveTransitionViewControllerDelegate.h │ │ ├── SCModalViewController.h │ │ ├── SCModalViewController.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── FlipCardTests │ │ ├── FlipCardTests-Info.plist │ │ ├── FlipCardTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── interactive-custom1.png │ ├── interactive-custom2.png │ ├── interactive-custom3.png │ ├── interactive-custom4.png │ ├── interactive-default.png │ ├── interactive-main.png │ └── interactive-modal.png ├── 15-core-image-filters ├── 15-core-image-filters.md ├── ImageFilter │ ├── ImageFilter.xcodeproj │ │ └── project.pbxproj │ ├── ImageFilter │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── ImageFilter-Info.plist │ │ ├── ImageFilter-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ │ ├── first.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── first.png │ │ │ │ └── first@2x.png │ │ │ └── second.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── second.png │ │ │ │ └── second@2x.png │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCLabelledImageCell.h │ │ ├── SCLabelledImageCell.m │ │ ├── SCPhotoFiltersViewController.h │ │ ├── SCPhotoFiltersViewController.m │ │ ├── SCQRGeneratorViewController.h │ │ ├── SCQRGeneratorViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ ├── main.m │ │ └── shinobi-badge-head@2x.jpg │ └── ImageFilterTests │ │ ├── ImageFilterTests-Info.plist │ │ ├── ImageFilterTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── core-image-filter1.png │ ├── core-image-filter2.png │ └── core-image-qr.png ├── 16-qr-codes-avfoundation ├── 16-qr-codes-avfoundation.md ├── CodeScanner │ ├── CodeScanner.xcodeproj │ │ └── project.pbxproj │ ├── CodeScanner │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── CodeScanner-Info.plist │ │ ├── CodeScanner-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCShapeView.h │ │ ├── SCShapeView.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── CodeScannerTests │ │ ├── CodeScannerTests-Info.plist │ │ ├── CodeScannerTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── qr-bounding1.PNG │ ├── qr-bounding2.PNG │ ├── qr-decode.PNG │ └── qr-preview.PNG ├── 17-ibeacons ├── 17-ibeacons.md ├── HotOrCold │ ├── HotOrCold.xcodeproj │ │ └── project.pbxproj │ ├── HotOrCold │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── HotOrCold-Info.plist │ │ ├── HotOrCold-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── HotOrColdTests │ │ ├── HotOrColdTests-Info.plist │ │ ├── HotOrColdTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── ibeacons-freezing.PNG │ ├── ibeacons-hiding.PNG │ ├── ibeacons-hot.PNG │ └── ibeacons-warmer.PNG ├── 18-coreimage-features ├── 18-coreimage-features.md ├── SimleyFace │ ├── SimleyFace.xcodeproj │ │ └── project.pbxproj │ ├── SimleyFace │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── SimleyFace-Info.plist │ │ ├── SimleyFace-Prefix.pch │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── SimleyFaceTests │ │ ├── SimleyFaceTests-Info.plist │ │ ├── SimleyFaceTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── face-happy.PNG │ ├── face-miserable1.PNG │ ├── face-miserable2.PNG │ └── face-winking.PNG ├── 19-uitableview-rowheight-estimation ├── 19-uitableview-rowheight-estimation.md ├── VariTable │ ├── VariTable.xcodeproj │ │ └── project.pbxproj │ ├── VariTable │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ │ ├── first.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── first.png │ │ │ │ └── first@2x.png │ │ │ └── second.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── second.png │ │ │ │ └── second@2x.png │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCEstimatingTableViewDelegate.h │ │ ├── SCEstimatingTableViewDelegate.m │ │ ├── SCNonEstimatingTableViewDelegate.h │ │ ├── SCNonEstimatingTableViewDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── VariTable-Info.plist │ │ ├── VariTable-Prefix.pch │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── VariTableTests │ │ ├── VariTableTests-Info.plist │ │ ├── VariTableTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── row-height-rows.png │ ├── row-height-with-estimation.png │ └── row-height-without-estimation.png ├── 20-uiviewcontroller-edges ├── 20-uiviewcontroller-edges.md ├── ExtendedLayout │ ├── ExtendedLayout.xcodeproj │ │ └── project.pbxproj │ ├── ExtendedLayout │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── ExtendedLayout-Info.plist │ │ ├── ExtendedLayout-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ │ └── tabimage.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── first.png │ │ │ │ └── first@2x.png │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCScrollViewController.h │ │ ├── SCScrollViewController.m │ │ ├── SCTableViewController.h │ │ ├── SCTableViewController.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── ExtendedLayoutTests │ │ ├── ExtendedLayoutTests-Info.plist │ │ ├── ExtendedLayoutTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── edges-interface-builder.png │ ├── edges-scroll-bad-beginning.png │ ├── edges-scroll-bad-end.png │ ├── edges-scroll-good-beginning.png │ ├── edges-scroll-good-end.png │ ├── edges-scroll-good-middle.png │ ├── edges-scroll-nonav.png │ ├── edges-simple-after.png │ ├── edges-simple-before.png │ ├── edges-table-good-beginning.png │ ├── edges-table-good-end.png │ ├── edges-table-good-middle.png │ └── edges-table-nonav.png ├── 21-multi-column-textkit ├── 21-multi-column-textkit.md ├── Newspaper │ ├── Newspaper.xcodeproj │ │ └── project.pbxproj │ ├── Newspaper │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── Newspaper-Info.plist │ │ ├── Newspaper-Prefix.pch │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── content.txt │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── NewspaperTests │ │ ├── NewspaperTests-Info.plist │ │ ├── NewspaperTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── textkit-columns-page1.png │ ├── textkit-columns-page2.png │ └── textkit-columns-page3.png ├── 22-downloadable-fonts ├── 22-downloadable-fonts.md ├── FontBook │ ├── FontBook.xcodeproj │ │ └── project.pbxproj │ ├── FontBook │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── FontBook-Info.plist │ │ ├── FontBook-Prefix.pch │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCDetailViewController.h │ │ ├── SCDetailViewController.m │ │ ├── SCFontFamilyViewController.h │ │ ├── SCFontFamilyViewController.m │ │ ├── SCFontViewController.h │ │ ├── SCFontViewController.m │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── FontBookTests │ │ ├── FontBookTests-Info.plist │ │ ├── FontBookTests.m │ │ └── en.lproj │ │ └── InfoPlist.strings └── img │ ├── fonts-download1-post.png │ ├── fonts-download1-pre.png │ ├── fonts-download2-post.png │ ├── fonts-download3-post.png │ ├── fonts-families1.png │ ├── fonts-families2.png │ ├── fonts-fonts1.png │ └── fonts-fonts2.png ├── 23-multipeer-connectivity ├── 23-multipeer-connectivity.md ├── PhotoSender │ ├── PhotoSender.xcodeproj │ │ └── project.pbxproj │ └── PhotoSender │ │ ├── Base.lproj │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ │ ├── PhotoSender-Info.plist │ │ ├── PhotoSender-Prefix.pch │ │ ├── SCAppDelegate.h │ │ ├── SCAppDelegate.m │ │ ├── SCMasterViewController.h │ │ ├── SCMasterViewController.m │ │ ├── SCSlaveViewController.h │ │ ├── SCSlaveViewController.m │ │ ├── SCViewController.h │ │ ├── SCViewController.m │ │ ├── en.lproj │ │ └── InfoPlist.strings │ │ └── main.m └── img │ ├── multipeer-browse1.PNG │ ├── multipeer-browse2.PNG │ ├── multipeer-browse3.PNG │ ├── multipeer-permission.PNG │ ├── multipeer-received.PNG │ └── multipeer-sending.PNG ├── README.md └── license /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | *.xcworkspace 13 | !default.xcworkspace 14 | xcuserdata 15 | profile 16 | *.moved-aside 17 | DerivedData 18 | .idea/ 19 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/NewtonsCradle-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCAppDelegate : UIResponder 20 | 21 | @property (strong, nonatomic) UIWindow *window; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/SCBallBearingView.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCBallBearingView : UIView 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/SCNewtonsCradleView.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCNewtonsCradleView : UIView 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCViewController : UIViewController 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradle/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // NewtonsCradle 4 | // 5 | // Created by Sam Davies on 02/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradleTests/NewtonsCradleTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradleTests/NewtonsCradleTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NewtonsCradleTests.m 3 | // NewtonsCradleTests 4 | // 5 | // Created by Sam Davies on 02/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NewtonsCradleTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation NewtonsCradleTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /00-uikit-dynamics/NewtonsCradle/NewtonsCradleTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /00-uikit-dynamics/img/completed_cradle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/00-uikit-dynamics/img/completed_cradle.png -------------------------------------------------------------------------------- /00-uikit-dynamics/img/newtons_cradle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/00-uikit-dynamics/img/newtons_cradle.jpg -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownload/BackgroundDownload-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownload/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "60x60", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownload/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownload/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownload/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // BackgroundDownload 4 | // 5 | // Created by Sam Davies on 04/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownloadTests/BackgroundDownloadTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownloadTests/BackgroundDownloadTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // BackgroundDownloadTests.m 3 | // BackgroundDownloadTests 4 | // 5 | // Created by Sam Davies on 04/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BackgroundDownloadTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation BackgroundDownloadTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /01-nsurlsession/BackgroundDownload/BackgroundDownloadTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_100.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_120.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_144.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_29.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_50.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_58-1.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_58.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/AppIcon.appiconset/shinobi-logo-red-square_72.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/Australia.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "flag_Australia.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "flag_Australia@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/Australia.imageset/flag_Australia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/Australia.imageset/flag_Australia.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/Australia.imageset/flag_Australia@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/Australia.imageset/flag_Australia@2x.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/USA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "flag_US.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "flag_US@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/USA.imageset/flag_US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/USA.imageset/flag_US.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/USA.imageset/flag_US@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Flags/USA.imageset/flag_US@2x.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Slicing/ButtonSlice.imageset/Essentials_Btn03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Slicing/ButtonSlice.imageset/Essentials_Btn03.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Slicing/ButtonSlice.imageset/Essentials_Btn03@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/MultiResolution/MultiResolution/Images.xcassets/Slicing/ButtonSlice.imageset/Essentials_Btn03@2x.png -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/MultiResolution-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolution/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MultiResolution 4 | // 5 | // Created by Sam Davies on 05/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolutionTests/MultiResolutionTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolutionTests/MultiResolutionTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // MultiResolutionTests.m 3 | // MultiResolutionTests 4 | // 5 | // Created by Sam Davies on 05/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MultiResolutionTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation MultiResolutionTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /02-asset-catalog/MultiResolution/MultiResolutionTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /02-asset-catalog/img/asset_catalog_custom_image_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/img/asset_catalog_custom_image_set.png -------------------------------------------------------------------------------- /02-asset-catalog/img/asset_catalog_directory_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/img/asset_catalog_directory_structure.png -------------------------------------------------------------------------------- /02-asset-catalog/img/asset_catalog_icon_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/img/asset_catalog_icon_selection.png -------------------------------------------------------------------------------- /02-asset-catalog/img/asset_catalog_icon_size_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/img/asset_catalog_icon_size_warning.png -------------------------------------------------------------------------------- /02-asset-catalog/img/asset_catalog_slice_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/img/asset_catalog_slice_image.png -------------------------------------------------------------------------------- /02-asset-catalog/img/asset_catalog_slice_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/02-asset-catalog/img/asset_catalog_slice_result.png -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "60x60", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/NSArray+Random.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+Random.h 3 | // TrafficStatus 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSArray (Random) 12 | 13 | - (id)randomElement; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/NSArray+Random.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+Random.m 3 | // TrafficStatus 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import "NSArray+Random.h" 10 | 11 | @implementation NSArray (Random) 12 | 13 | - (id)randomElement 14 | { 15 | NSUInteger randomIndex = arc4random_uniform(self.count); 16 | return self[randomIndex]; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/SCTrafficStatus.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCTrafficStatus.h 3 | // TrafficStatus 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCTrafficStatus : NSObject 12 | 13 | + (instancetype)randomStatus; 14 | 15 | @property (nonatomic, strong) UIColor *color; 16 | @property (nonatomic, strong) NSDate *date; 17 | @property (nonatomic, strong) NSString *status; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/SCTrafficStatusTableCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCTrafficStatusTableCell.h 3 | // TrafficStatus 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCTrafficStatusTableCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UIView *colorBlock; 13 | @property (weak, nonatomic) IBOutlet UILabel *statusLabel; 14 | @property (weak, nonatomic) IBOutlet UILabel *updatedLabel; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/SCTrafficStatusTableCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCTrafficStatusTableCell.m 3 | // TrafficStatus 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import "SCTrafficStatusTableCell.h" 10 | 11 | @implementation SCTrafficStatusTableCell 12 | 13 | - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 14 | { 15 | self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 16 | if (self) { 17 | // Initialization code 18 | } 19 | return self; 20 | } 21 | 22 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated 23 | { 24 | [super setSelected:selected animated:animated]; 25 | 26 | // Configure the view for the selected state 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/TrafficStatus-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatus/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // TrafficStatus 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatusTests/TrafficStatusTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatusTests/TrafficStatusTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // TrafficStatusTests.m 3 | // TrafficStatusTests 4 | // 5 | // Created by Sam Davies on 09/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TrafficStatusTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation TrafficStatusTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /03-background-fetch/TrafficStatus/TrafficStatusTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /03-background-fetch/img/background-fetch-capabilities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/03-background-fetch/img/background-fetch-capabilities.png -------------------------------------------------------------------------------- /03-background-fetch/img/background-fetch-debug-fetch-event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/03-background-fetch/img/background-fetch-debug-fetch-event.png -------------------------------------------------------------------------------- /03-background-fetch/img/background-fetch-launch-for-fetch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/03-background-fetch/img/background-fetch-launch-for-fetch.png -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeaker/GreetingSpeaker-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeaker/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "60x60", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeaker/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeaker/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeaker/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeaker/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // GreetingSpeaker 4 | // 5 | // Created by Sam Davies on 12/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeakerTests/GreetingSpeakerTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeakerTests/GreetingSpeakerTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // GreetingSpeakerTests.m 3 | // GreetingSpeakerTests 4 | // 5 | // Created by Sam Davies on 12/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface GreetingSpeakerTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation GreetingSpeakerTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /04-avspeechsynthesizer/GreetingSpeaker/GreetingSpeakerTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "60x60", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/SCCollectionViewSampleCell.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCCollectionViewSampleCell : UICollectionViewCell 21 | 22 | @property (weak, nonatomic) IBOutlet UILabel *numberLabel; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/SCCollectionViewSampleCell.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import "SCCollectionViewSampleCell.h" 19 | #import 20 | 21 | @implementation SCCollectionViewSampleCell 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/SCSpringyCarousel.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCSpringyCarousel : UICollectionViewFlowLayout 21 | 22 | - (instancetype)initWithItemSize:(CGSize)size; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/SpringyCarousel-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarousel/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SpringyCarousel 4 | // 5 | // Created by Sam Davies on 15/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarouselTests/SpringyCarouselTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarouselTests/SpringyCarouselTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SpringyCarouselTests.m 3 | // SpringyCarouselTests 4 | // 5 | // Created by Sam Davies on 15/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SpringyCarouselTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation SpringyCarouselTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/SpringyCarousel/SpringyCarouselTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /05-uidynamics-collectionview/img/springy_carousel_inserting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/05-uidynamics-collectionview/img/springy_carousel_inserting.png -------------------------------------------------------------------------------- /05-uidynamics-collectionview/img/springy_carousel_non_springy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/05-uidynamics-collectionview/img/springy_carousel_non_springy.png -------------------------------------------------------------------------------- /05-uidynamics-collectionview/img/springy_carousel_scrolling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/05-uidynamics-collectionview/img/springy_carousel_scrolling.png -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/ColorChanger-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/SCSampleCustomControl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCSampleCustomControl : UIView 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ColorChanger 4 | // 5 | // Created by Sam Davies on 25/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChanger/shinobihead.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/ColorChanger/ColorChanger/shinobihead.png -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChangerTests/ColorChangerTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChangerTests/ColorChangerTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // ColorChangerTests.m 3 | // ColorChangerTests 4 | // 5 | // Created by Sam Davies on 25/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ColorChangerTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation ColorChangerTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /06-tintcolor/ColorChanger/ColorChangerTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /06-tintcolor/img/tint-color-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/img/tint-color-1.png -------------------------------------------------------------------------------- /06-tintcolor/img/tint-color-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/img/tint-color-2.png -------------------------------------------------------------------------------- /06-tintcolor/img/tint-color-custom-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/img/tint-color-custom-1.png -------------------------------------------------------------------------------- /06-tintcolor/img/tint-color-custom-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/img/tint-color-custom-2.png -------------------------------------------------------------------------------- /06-tintcolor/img/tint-color-image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/img/tint-color-image-1.png -------------------------------------------------------------------------------- /06-tintcolor/img/tint-color-image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/06-tintcolor/img/tint-color-image-2.png -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/SCRotatingViews.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCRotatingViews : UIView 20 | 21 | - (void)recolorSubviews:(UIColor *)newColor; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/ViewSnapper-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapper/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ViewSnapper 4 | // 5 | // Created by Sam Davies on 29/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapperTests/ViewSnapperTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapperTests/ViewSnapperTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewSnapperTests.m 3 | // ViewSnapperTests 4 | // 5 | // Created by Sam Davies on 29/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewSnapperTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation ViewSnapperTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /07-snapshot/ViewSnapper/ViewSnapperTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-animate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-animate.png -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-clipping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-clipping.png -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-image.png -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-post.png -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-pre.png -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-rotatingviews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-rotatingviews.png -------------------------------------------------------------------------------- /07-snapshot/img/snapshot-snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/07-snapshot/img/snapshot-snapshot.png -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/FeedReader-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "60x60", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCAppDelegate.h 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/SCDetailViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCDetailViewController.h 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCDetailViewController : UIViewController 12 | 13 | @property (strong, nonatomic) id detailItem; 14 | 15 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel; 16 | @property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel; 17 | 18 | - (IBAction)readLaterButtonPressed:(id)sender; 19 | @end 20 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/SCMasterViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCMasterViewController.h 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCMasterViewController : UITableViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/SCRSSEntry.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCRSSEntry.h 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCRSSEntry : NSObject 12 | 13 | @property (nonatomic, retain) NSString *title; 14 | @property (nonatomic, retain) NSURL *url; 15 | @property (nonatomic, retain) NSString *description; 16 | 17 | 18 | + (instancetype)cssEntryWithTitle:(NSString *)title url:(NSURL *)url description:(NSString *)description; 19 | 20 | - (instancetype)initWithTitle:(NSString *)title url:(NSURL*)url description:(NSString*)description; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/SCRSSEntry.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCRSSEntry.m 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import "SCRSSEntry.h" 10 | 11 | @implementation SCRSSEntry 12 | 13 | #pragma mark - Class Methods 14 | + (instancetype)cssEntryWithTitle:(NSString *)title url:(NSURL *)url description:(NSString *)description 15 | { 16 | return [[self alloc] initWithTitle:title url:url description:description]; 17 | } 18 | 19 | 20 | #pragma mark - Instance methods 21 | - (instancetype)initWithTitle:(NSString *)title url:(NSURL *)url description:(NSString *)description 22 | { 23 | self = [super init]; 24 | if(self) { 25 | self.title = title; 26 | self.url = url; 27 | self.description = description; 28 | } 29 | return self; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/SCRSSFeed.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCRSSFeed.h 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^RSSFeedCallback)(NSArray* feedItems); 12 | 13 | @interface SCRSSFeed : NSObject 14 | 15 | /* Although this class is called an RSS feed, it actually requires a JSON version 16 | of an RSS feed. This is because this is a demo project and this is simpler than 17 | parsing an RSS feed. We use yahoo pipes to translate a RSS feed into JSON. 18 | */ 19 | 20 | + (void)feedItemsForURL:(NSURL *)url callback:(RSSFeedCallback)callback; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReader/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FeedReader 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReaderTests/FeedReaderTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReaderTests/FeedReaderTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // FeedReaderTests.m 3 | // FeedReaderTests 4 | // 5 | // Created by Sam Davies on 19/07/2013. 6 | // Copyright (c) 2013 ShinobiControls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FeedReaderTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation FeedReaderTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /08-safariservices/FeedReader/FeedReaderTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /08-safariservices/img/safariservices-readinglist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/08-safariservices/img/safariservices-readinglist.png -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UITableViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/WhoAmI-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmI/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // WhoAmI 4 | // 5 | // Created by Sam Davies on 26/08/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmITests/WhoAmITests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmITests/WhoAmITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // WhoAmITests.m 3 | // WhoAmITests 4 | // 5 | // Created by Sam Davies on 26/08/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WhoAmITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation WhoAmITests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /09-uniqueidentifier/WhoAmI/WhoAmITests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /09-uniqueidentifier/img/whoami.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/09-uniqueidentifier/img/whoami.png -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/Fader-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCAppDelegate : UIResponder 20 | 21 | @property (strong, nonatomic) UIWindow *window; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/SCFadeTransition.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCFadeTransition : NSObject 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/SCFirstViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCFirstViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/SCNavControllerDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCNavControllerDelegate : NSObject 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/SCSecondViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCSecondViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UINavigationController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/Fader/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Fader 4 | // 5 | // Created by Sam Davies on 11/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/FaderTests/FaderTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/FaderTests/FaderTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // FaderTests.m 3 | // FaderTests 4 | // 5 | // Created by Sam Davies on 11/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FaderTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation FaderTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/Fader/FaderTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /10-custom-vc-transitions/img/fader-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/10-custom-vc-transitions/img/fader-1.png -------------------------------------------------------------------------------- /10-custom-vc-transitions/img/fader-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/10-custom-vc-transitions/img/fader-2.png -------------------------------------------------------------------------------- /10-custom-vc-transitions/img/fader-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/10-custom-vc-transitions/img/fader-3.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/RainbowRotate-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // RainbowRotate 4 | // 5 | // Created by Sam Davies on 02/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/shinobihead.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/RainbowRotate/RainbowRotate/shinobihead.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotateTests/RainbowRotateTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotateTests/RainbowRotateTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // RainbowRotateTests.m 3 | // RainbowRotateTests 4 | // 5 | // Created by Sam Davies on 02/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RainbowRotateTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation RainbowRotateTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/RainbowRotate/RainbowRotateTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-optionsGraph.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-optionsGraph.pdf -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-optionsGraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-optionsGraph.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-rainbow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-rainbow1.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-rainbow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-rainbow2.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-rainbow3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-rainbow3.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-rotate1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-rotate1.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/img/keyframe-rotate2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/img/keyframe-rotate2.png -------------------------------------------------------------------------------- /11-uiview-keyframe-animation/optionsGraph.gcx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/11-uiview-keyframe-animation/optionsGraph.gcx -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPalette/FontPalette-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPalette/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPalette/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPalette/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPalette/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPalette/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FontPalette 4 | // 5 | // Created by Sam Davies on 05/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPaletteTests/FontPaletteTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPaletteTests/FontPaletteTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // FontPaletteTests.m 3 | // FontPaletteTests 4 | // 5 | // Created by Sam Davies on 05/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FontPaletteTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation FontPaletteTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /12-dynamic-type/FontPalette/FontPaletteTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /12-dynamic-type/img/dynamic-type-changing-size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/12-dynamic-type/img/dynamic-type-changing-size.png -------------------------------------------------------------------------------- /12-dynamic-type/img/dynamic-type-font-descriptor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/12-dynamic-type/img/dynamic-type-font-descriptor.png -------------------------------------------------------------------------------- /12-dynamic-type/img/dynamic-type-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/12-dynamic-type/img/dynamic-type-large.png -------------------------------------------------------------------------------- /12-dynamic-type/img/dynamic-type-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/12-dynamic-type/img/dynamic-type-medium.png -------------------------------------------------------------------------------- /12-dynamic-type/img/dynamic-type-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/12-dynamic-type/img/dynamic-type-small.png -------------------------------------------------------------------------------- /12-dynamic-type/img/dynamic-type-storyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/12-dynamic-type/img/dynamic-type-storyboard.png -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/RouteMaster-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/SCStepsViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | @import MapKit; 20 | 21 | @interface SCStepsViewController : UITableViewController 22 | 23 | @property (strong, nonatomic) MKRoute *route; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMaster/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // RouteMaster 4 | // 5 | // Created by Sam Davies on 06/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMasterTests/RouteMasterTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMasterTests/RouteMasterTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // RouteMasterTests.m 3 | // RouteMasterTests 4 | // 5 | // Created by Sam Davies on 06/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RouteMasterTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation RouteMasterTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /13-mapkit-directions/RouteMaster/RouteMasterTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /13-mapkit-directions/img/mapkit-allow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/13-mapkit-directions/img/mapkit-allow.png -------------------------------------------------------------------------------- /13-mapkit-directions/img/mapkit-route.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/13-mapkit-directions/img/mapkit-route.png -------------------------------------------------------------------------------- /13-mapkit-directions/img/mapkit-simulate-location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/13-mapkit-directions/img/mapkit-simulate-location.png -------------------------------------------------------------------------------- /13-mapkit-directions/img/mapkit-step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/13-mapkit-directions/img/mapkit-step1.png -------------------------------------------------------------------------------- /13-mapkit-directions/img/mapkit-step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/13-mapkit-directions/img/mapkit-step2.png -------------------------------------------------------------------------------- /13-mapkit-directions/img/mapkit-steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/13-mapkit-directions/img/mapkit-steps.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/FlipCard-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/SCFlipAnimation.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCFlipAnimation : NSObject 21 | 22 | @property (nonatomic, assign) BOOL dismissal; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCard/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FlipCard 4 | // 5 | // Created by Sam Davies on 13/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCardTests/FlipCardTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCardTests/FlipCardTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // FlipCardTests.m 3 | // FlipCardTests 4 | // 5 | // Created by Sam Davies on 13/09/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FlipCardTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation FlipCardTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/FlipCard/FlipCardTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-custom1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-custom1.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-custom2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-custom2.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-custom3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-custom3.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-custom4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-custom4.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-default.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-main.png -------------------------------------------------------------------------------- /14-interactive-vc-transitions/img/interactive-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/14-interactive-vc-transitions/img/interactive-modal.png -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/ImageFilter-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "first.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "first@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/first.imageset/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/first.imageset/first.png -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/first.imageset/first@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/first.imageset/first@2x.png -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "second.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "second@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/second.imageset/second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/second.imageset/second.png -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/second.imageset/second@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/ImageFilter/ImageFilter/Images.xcassets/second.imageset/second@2x.png -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCAppDelegate.h 3 | // ImageFilter 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/SCLabelledImageCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCLabelledImageCell.h 3 | // ImageFilter 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCLabelledImageCell : UICollectionViewCell 12 | 13 | @property (weak, nonatomic) IBOutlet UIImageView *imageView; 14 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/SCLabelledImageCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCLabelledImageCell.m 3 | // ImageFilter 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import "SCLabelledImageCell.h" 10 | 11 | @implementation SCLabelledImageCell 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/SCPhotoFiltersViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCPhotoFiltersViewController.h 3 | // ImageFilter 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCPhotoFiltersViewController : UICollectionViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/SCQRGeneratorViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCSecondViewController.h 3 | // ImageFilter 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCQRGeneratorViewController : UIViewController 12 | 13 | @property (weak, nonatomic) IBOutlet UIImageView *qrImageView; 14 | @property (weak, nonatomic) IBOutlet UITextField *stringTextField; 15 | @property (weak, nonatomic) IBOutlet UIButton *generateButton; 16 | 17 | - (IBAction)handleGenerateButtonPressed:(id)sender; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ImageFilter 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilter/shinobi-badge-head@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/ImageFilter/ImageFilter/shinobi-badge-head@2x.jpg -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilterTests/ImageFilterTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilterTests/ImageFilterTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // ImageFilterTests.m 3 | // ImageFilterTests 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ImageFilterTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation ImageFilterTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /15-core-image-filters/ImageFilter/ImageFilterTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /15-core-image-filters/img/core-image-filter1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/img/core-image-filter1.png -------------------------------------------------------------------------------- /15-core-image-filters/img/core-image-filter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/img/core-image-filter2.png -------------------------------------------------------------------------------- /15-core-image-filters/img/core-image-qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/15-core-image-filters/img/core-image-qr.png -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/CodeScanner-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/SCShapeView.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCShapeView : UIView 21 | 22 | @property (nonatomic, strong) NSArray *corners; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScanner/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // CodeScanner 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScannerTests/CodeScannerTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScannerTests/CodeScannerTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // CodeScannerTests.m 3 | // CodeScannerTests 4 | // 5 | // Created by Sam Davies on 08/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CodeScannerTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation CodeScannerTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/CodeScanner/CodeScannerTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/img/qr-bounding1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/16-qr-codes-avfoundation/img/qr-bounding1.PNG -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/img/qr-bounding2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/16-qr-codes-avfoundation/img/qr-bounding2.PNG -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/img/qr-decode.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/16-qr-codes-avfoundation/img/qr-decode.PNG -------------------------------------------------------------------------------- /16-qr-codes-avfoundation/img/qr-preview.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/16-qr-codes-avfoundation/img/qr-preview.PNG -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrCold/HotOrCold-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrCold/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrCold/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrCold/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrCold/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrCold/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // HotOrCold 4 | // 5 | // Created by Sam Davies on 12/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrColdTests/HotOrColdTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrColdTests/HotOrColdTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // HotOrColdTests.m 3 | // HotOrColdTests 4 | // 5 | // Created by Sam Davies on 12/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface HotOrColdTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation HotOrColdTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /17-ibeacons/HotOrCold/HotOrColdTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /17-ibeacons/img/ibeacons-freezing.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/17-ibeacons/img/ibeacons-freezing.PNG -------------------------------------------------------------------------------- /17-ibeacons/img/ibeacons-hiding.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/17-ibeacons/img/ibeacons-hiding.PNG -------------------------------------------------------------------------------- /17-ibeacons/img/ibeacons-hot.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/17-ibeacons/img/ibeacons-hot.PNG -------------------------------------------------------------------------------- /17-ibeacons/img/ibeacons-warmer.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/17-ibeacons/img/ibeacons-warmer.PNG -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFace/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFace/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFace/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFace/SimleyFace-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFace/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFace/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SimleyFace 4 | // 5 | // Created by Sam Davies on 13/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFaceTests/SimleyFaceTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFaceTests/SimleyFaceTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SimleyFaceTests.m 3 | // SimleyFaceTests 4 | // 5 | // Created by Sam Davies on 13/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SimleyFaceTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation SimleyFaceTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /18-coreimage-features/SimleyFace/SimleyFaceTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /18-coreimage-features/img/face-happy.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/18-coreimage-features/img/face-happy.PNG -------------------------------------------------------------------------------- /18-coreimage-features/img/face-miserable1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/18-coreimage-features/img/face-miserable1.PNG -------------------------------------------------------------------------------- /18-coreimage-features/img/face-miserable2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/18-coreimage-features/img/face-miserable2.PNG -------------------------------------------------------------------------------- /18-coreimage-features/img/face-winking.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/18-coreimage-features/img/face-winking.PNG -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "first.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "first@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/first.imageset/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/first.imageset/first.png -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/first.imageset/first@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/first.imageset/first@2x.png -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "second.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "second@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/second.imageset/second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/second.imageset/second.png -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/second.imageset/second@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/VariTable/VariTable/Images.xcassets/second.imageset/second@2x.png -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UITableViewController 21 | 22 | @property (nonatomic, assign) BOOL enableEstimation; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/VariTable-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTable/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // VariTable 4 | // 5 | // Created by Sam Davies on 13/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTableTests/VariTableTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTableTests/VariTableTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // VariTableTests.m 3 | // VariTableTests 4 | // 5 | // Created by Sam Davies on 13/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface VariTableTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation VariTableTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/VariTable/VariTableTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/img/row-height-rows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/img/row-height-rows.png -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/img/row-height-with-estimation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/img/row-height-with-estimation.png -------------------------------------------------------------------------------- /19-uitableview-rowheight-estimation/img/row-height-without-estimation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/19-uitableview-rowheight-estimation/img/row-height-without-estimation.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/ExtendedLayout-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/tabimage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "first.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "first@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/tabimage.imageset/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/tabimage.imageset/first.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/tabimage.imageset/first@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/Images.xcassets/tabimage.imageset/first@2x.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/SCScrollViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCScrollViewController : UIViewController 21 | 22 | @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/SCTableViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCTableViewController : UITableViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCViewController : UIViewController 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayout/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ExtendedLayout 4 | // 5 | // Created by Sam Davies on 15/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayoutTests/ExtendedLayoutTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayoutTests/ExtendedLayoutTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExtendedLayoutTests.m 3 | // ExtendedLayoutTests 4 | // 5 | // Created by Sam Davies on 15/10/2013. 6 | // Copyright (c) 2013 Shinobi Controls. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ExtendedLayoutTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation ExtendedLayoutTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/ExtendedLayout/ExtendedLayoutTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-interface-builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-interface-builder.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-scroll-bad-beginning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-scroll-bad-beginning.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-scroll-bad-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-scroll-bad-end.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-scroll-good-beginning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-scroll-good-beginning.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-scroll-good-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-scroll-good-end.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-scroll-good-middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-scroll-good-middle.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-scroll-nonav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-scroll-nonav.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-simple-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-simple-after.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-simple-before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-simple-before.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-table-good-beginning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-table-good-beginning.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-table-good-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-table-good-end.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-table-good-middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-table-good-middle.png -------------------------------------------------------------------------------- /20-uiviewcontroller-edges/img/edges-table-nonav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/20-uiviewcontroller-edges/img/edges-table-nonav.png -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/Newspaper-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UIViewController 21 | 22 | @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/Newspaper/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Newspaper 4 | // 5 | // Created by Sam Davies on 15/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/NewspaperTests/NewspaperTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/NewspaperTests/NewspaperTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NewspaperTests.m 3 | // NewspaperTests 4 | // 5 | // Created by Sam Davies on 15/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NewspaperTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation NewspaperTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /21-multi-column-textkit/Newspaper/NewspaperTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /21-multi-column-textkit/img/textkit-columns-page1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/21-multi-column-textkit/img/textkit-columns-page1.png -------------------------------------------------------------------------------- /21-multi-column-textkit/img/textkit-columns-page2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/21-multi-column-textkit/img/textkit-columns-page2.png -------------------------------------------------------------------------------- /21-multi-column-textkit/img/textkit-columns-page3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/21-multi-column-textkit/img/textkit-columns-page3.png -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/FontBook-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/SCFontFamilyViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCFontFamilyViewController : UITableViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/SCFontViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface SCFontViewController : UITableViewController 20 | 21 | @property (nonatomic, strong) NSArray *fontList; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBook/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FontBook 4 | // 5 | // Created by Sam Davies on 18/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBookTests/FontBookTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.shinobicontrols.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBookTests/FontBookTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // FontBookTests.m 3 | // FontBookTests 4 | // 5 | // Created by Sam Davies on 18/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FontBookTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation FontBookTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /22-downloadable-fonts/FontBook/FontBookTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-download1-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-download1-post.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-download1-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-download1-pre.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-download2-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-download2-post.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-download3-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-download3-post.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-families1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-families1.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-families2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-families2.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-fonts1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-fonts1.png -------------------------------------------------------------------------------- /22-downloadable-fonts/img/fonts-fonts2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/22-downloadable-fonts/img/fonts-fonts2.png -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/PhotoSender-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/SCViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2013 Scott Logic Ltd 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #import 19 | 20 | @interface SCViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /23-multipeer-connectivity/PhotoSender/PhotoSender/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SoundStreamer 4 | // 5 | // Created by Sam Davies on 20/10/2013. 6 | // Copyright (c) 2013 shinobicontrols. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "SCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /23-multipeer-connectivity/img/multipeer-browse1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/23-multipeer-connectivity/img/multipeer-browse1.PNG -------------------------------------------------------------------------------- /23-multipeer-connectivity/img/multipeer-browse2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/23-multipeer-connectivity/img/multipeer-browse2.PNG -------------------------------------------------------------------------------- /23-multipeer-connectivity/img/multipeer-browse3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/23-multipeer-connectivity/img/multipeer-browse3.PNG -------------------------------------------------------------------------------- /23-multipeer-connectivity/img/multipeer-permission.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/23-multipeer-connectivity/img/multipeer-permission.PNG -------------------------------------------------------------------------------- /23-multipeer-connectivity/img/multipeer-received.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/23-multipeer-connectivity/img/multipeer-received.PNG -------------------------------------------------------------------------------- /23-multipeer-connectivity/img/multipeer-sending.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ScottLogic/iOS7-day-by-day/2b31db5e4e87eb7928788ddbe9160d65ad3ed003/23-multipeer-connectivity/img/multipeer-sending.PNG -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | iOS7-day-by-day 2 | =============== 3 | 4 | This repo contains the sample projects which accompany a blog series which 5 | takes a look at some of the new features available to developers in iOS7. 6 | The blog series is available here: 7 | 8 | http://www.shinobicontrols.com/blog/posts/2013/09/19/introducing-ios7-day-by-day/ 9 | 10 | If you have any suggestions / ideas / comments please feel free to catch me on 11 | twitter at [@iwantmyrealname](https://twitter.com/iwantmyrealname), and do 12 | fork the repo and have a play around with the code! 13 | 14 | sam 15 | 16 | [iwantmyreal.name](http://iwantmyreal.name/) 17 | 18 | [@iwantmyreal.name](https://twitter.com/iwantmyrealname) 19 | 20 | [ShinobiControls Blogs](http://www.shinobicontrols.com/blog/?author=sdavies) 21 | --------------------------------------------------------------------------------