Skip to content

Commit

Permalink
Fix README.md files to be readable without a web browser
Browse files Browse the repository at this point in the history
  • Loading branch information
migueldeicaza committed Mar 16, 2015
1 parent 64ed00c commit a44dcda
Show file tree
Hide file tree
Showing 8 changed files with 191 additions and 52 deletions.
40 changes: 30 additions & 10 deletions ios8/CloudKitAtlas/README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,38 @@
CloudKitAtlas
======================

CloudKitAtlas is a sample intended as a quick introduction to CloudKit. It teaches you how to use Discoverability to get the first name and last name of the user logged into iCloud. It can add a CKRecord with a location and query for CKRecords near a location. You can upload and retrieve images as CKAssets. It also shows how to use CKReferences. Finally, it also shows how to use CKSubscription to get push notifications when a new item is added for a record type.
CloudKitAtlas is a sample intended as a quick introduction to
CloudKit. It teaches you how to use Discoverability to get the first
name and last name of the user logged into iCloud. It can add a
CKRecord with a location and query for CKRecords near a location. You
can upload and retrieve images as CKAssets. It also shows how to use
CKReferences. Finally, it also shows how to use CKSubscription to get
push notifications when a new item is added for a record type.

## Setting up sample

To run this sample you need to have an app ID with CloudKit entitlements enabled and provisioning profile linked to it.
If you don't have one please go to https://developer.apple.com/membercenter/index.action, select "Certificates, Identifiers & Profiles" and use the following instructions.
To run this sample you need to have an app ID with CloudKit
entitlements enabled and provisioning profile linked to it. If you
don't have one please go to
https://developer.apple.com/membercenter/index.action, select
"Certificates, Identifiers & Profiles" and use the following
instructions.

First of all, you should create an app ID. To do that, select "App
ID's" in "Identifiers" section and then press add button at top-right
corner of the screen.

First of all, you should create an app ID.
To do that, select "App ID's" in "Identifiers" section and then press add button at top-right corner of the screen.
* Enter app ID description, e.g.: "CloudKit Atlas sample"
* Select "Explicit App ID" in App ID Suffix and enter bundle ID, e.g.: com.yourcompanyname.CloudKitAtlas
* Select "Explicit App ID" in App ID Suffix and enter bundle ID, e.g.:
com.yourcompanyname.CloudKitAtlas
* In App Services services section select iCloud, Include CloudKit support
* Then press Continue button and check that everything is alright
* Press Submit

On the second step we should create provisioning profile linked to newly created app ID. Select "All" in "Provisioning Profiles" section and then press add button at top-right corner of the screen.
On the second step we should create provisioning profile linked to
newly created app ID. Select "All" in "Provisioning Profiles" section
and then press add button at top-right corner of the screen.

* Select "iOS App Development" and press Continue button
* Select newly created app ID in drop down list and press Continue button
* Then select your team members and press Continue button
Expand All @@ -25,9 +41,13 @@ On the second step we should create provisioning profile linked to newly created
* Download provisioning profile and then double click it to install

Finally, open sample in Xamarin Studio and open project settings.
* Set bundle identifier in "iOS Application" section and select provisioning profile created earlier in "iOS Bundle Signing".
* Close project's options and select Entitlements.plist in project explorer then nable iCloud and check the CloudKit option.
* Make sure you are signed into your iCloud account in the simulator or device before running the app.

* Set bundle identifier in "iOS Application" section and select
provisioning profile created earlier in "iOS Bundle Signing".
* Close project's options and select Entitlements.plist in project
explorer then nable iCloud and check the CloudKit option.
* Make sure you are signed into your iCloud account in the simulator
or device before running the app.

Author
======
Expand Down
21 changes: 17 additions & 4 deletions ios8/Fit/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
Fit: Store and Retrieve HealthKit Data
======================================

Fit is a sample intended as a quick introduction to HealthKit. It teaches you everything from writing data into HealthKit to reading data from HealthKit. This information may have been entered into the store by some other app; e.g. a user's birthday may have been entered into Health, and a user's weight by some popular weight tracker app.
Fit is a sample intended as a quick introduction to HealthKit. It
teaches you everything from writing data into HealthKit to reading
data from HealthKit. This information may have been entered into the
store by some other app; e.g. a user's birthday may have been entered
into Health, and a user's weight by some popular weight tracker app.

Fit shows examples of using queries to retrieve information from HealthKit using sample queries and statistics queries. Fit gives you a quick introduction into using the new Foundation classes NSLengthFormatter, NSMassFormatter, and NSEnergyFormatter.
Fit shows examples of using queries to retrieve information from
HealthKit using sample queries and statistics queries. Fit gives you a
quick introduction into using the new Foundation classes
NSLengthFormatter, NSMassFormatter, and NSEnergyFormatter.

Requirements
------------------

This sample requires capabilities that are only available when run on an iOS device.
To run the sample on a device, please create a valid AppID with HealthKit enabled, and generate the corresponding Provisioning Profile from the Dev Portal. Download and link Fit with this Provisioning Profile. Don't forget to change the Bundle Identifier and entitlements.plist to match the new AppId
This sample requires capabilities that are only available when run on
an iOS device.

To run the sample on a device, please create a valid AppID with
HealthKit enabled, and generate the corresponding Provisioning Profile
from the Dev Portal. Download and link Fit with this Provisioning
Profile. Don't forget to change the Bundle Identifier and
entitlements.plist to match the new AppId

Build Requirements
------------------
Expand Down
8 changes: 6 additions & 2 deletions ios8/KeychainTouchID/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
KeychainTouchID
==============

KeychainTouchID sample demonstrates how to add, delete, update and copy Touch ID items to keychain. It also shows how to set custom promts to security dialog and how to use LocalAuthentication to invoke Touch ID verification without keychain.
KeychainTouchID sample demonstrates how to add, delete, update and
copy Touch ID items to keychain. It also shows how to set custom
promts to security dialog and how to use LocalAuthentication to invoke
Touch ID verification without keychain.

Requirements
------------------

This sample requires device with Touch ID and passcode enabled. This sample does not support simulator.
This sample requires device with Touch ID and passcode enabled. This
sample does not support simulator.

Build Requirements
------------------
Expand Down
89 changes: 68 additions & 21 deletions ios8/Lister/README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,84 @@
Lister
==============

Lister is a productivity sample code project for iOS. In this sample, the user can create lists, add items to lists, and track the progress of items in the lists.
The solution includes iOS app and iOS Today extensions app (Widget).

In sample, the user manages multiple lists using a table view implemented in the `DocumentsViewController` class. In addition to vending rows in the table view, the list documents controller observes changes to the lists, as well as the status of `iCloud`. Tapping on a list brings the user to the `ListViewController`. This class displays and manages a single document. The `NewListDocumentController` class allows a user to create a new list.

The `ListCoordinator` class tracks the user's storage choice — local or `iCloud` and moves the user's documents between the two storage locations. The `ListDocument` class, a subclass of `UIDocument`, represents an individual list document that is responsible for serialization and deserialization.

`List` and `ListItem` are the two main model objects. The `ListItem` class represents a single item in a list. It contains only three stored properties: the text of the item, a Boolean indicating whether the user has completed it, and a unique identifier. Along with these properties, the `ListItem` class also implements the functionality required to compare, archive, and unarchive a `ListItem` object. The `List` class holds an array of these `ListItem` objects, as well as the color the desired list color. The `List` class also supports indexer, archiving and unarchiving.

In addition to model code, by subclassing `CALayer`, Lister shares checkbox drawing code with both app and it's extension.
Lister is a productivity sample code project for iOS. In this sample,
the user can create lists, add items to lists, and track the progress
of items in the lists. The solution includes iOS app and iOS Today
extensions app (Widget).

In sample, the user manages multiple lists using a table view
implemented in the `DocumentsViewController` class. In addition to
vending rows in the table view, the list documents controller observes
changes to the lists, as well as the status of `iCloud`. Tapping on a
list brings the user to the `ListViewController`. This class displays
and manages a single document. The `NewListDocumentController` class
allows a user to create a new list.

The `ListCoordinator` class tracks the user's storage choice — local
or `iCloud` and moves the user's documents between the two storage
locations. The `ListDocument` class, a subclass of `UIDocument`,
represents an individual list document that is responsible for
serialization and deserialization.

`List` and `ListItem` are the two main model objects. The `ListItem`
class represents a single item in a list. It contains only three
stored properties: the text of the item, a Boolean indicating whether
the user has completed it, and a unique identifier. Along with these
properties, the `ListItem` class also implements the functionality
required to compare, archive, and unarchive a `ListItem` object. The
`List` class holds an array of these `ListItem` objects, as well as
the color the desired list color. The `List` class also supports
indexer, archiving and unarchiving.

In addition to model code, by subclassing `CALayer`, Lister shares
checkbox drawing code with both app and it's extension.

References
----------
For understanding Widgets (Today extension) read [Apple's documentation](https://developer.apple.com/library/prerelease/mac/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html#//apple_ref/doc/uid/TP40014214-CH11-SW1)

For understanding Widgets (Today extension) read [Apple's
documentation](https://developer.apple.com/library/prerelease/mac/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html#//apple_ref/doc/uid/TP40014214-CH11-SW1)

Setup
-----
For this sample you need create ApplicationID and setup iCloudContainer for it. For complete instructions read `Enabling iCloud in Xamarin` section from [tutorial](http://developer.xamarin.com/guides/ios/platform_features/introduction_to_the_document_picker/).

For this sample you need create ApplicationID and setup
iCloudContainer for it. For complete instructions read `Enabling
iCloud in Xamarin` section from
[tutorial](http://developer.xamarin.com/guides/ios/platform_features/introduction_to_the_document_picker/).

Instructions
------------
Before running the app you shoud signin to your `iCloud` account via `Settings` application. Also enable `iCloud Drive`. After that run the app.
During launching process application will copy resource files (which represents serialized `List` objects) to `Documents` folder within sandbox.
You will be promted about storage choice (`iCloud` or local). You will not be able to change you choice in future, so please choose `iCloud`. You need `iCloud` storage, because this is a way to share data between application and it's extension.

When you choose `iCloud` app will move resource files (`*.lister`) from `Documents` folder to `iCloud` container. After that these files will available to `ListerToday` extension app (`Widget`).
`ListerToady` (Widget) displays only items from `Today` list, because of this add some items to this list. Now you are ready to run your widget.

Go to `Today view` (`Notification center`). Here you will see built in widgets like `Calendar`, `Remainders`, etc. Now we need to enable `ListerLoday` Widget (add it to `Today view`). At the button you will see `Edit` button. Tap on it, then enable `ListerToday` widget and press `Done`. At this point you will see `Today view` with `ListerToday` widget, also you will see your Today items.

When you change your `Today list` within Lister app these changes will be displayed inside ListerToday Widget and vice versa.
Before running the app you shoud signin to your `iCloud` account via
`Settings` application. Also enable `iCloud Drive`. After that run
the app.

During launching process application will copy resource files (which
represents serialized `List` objects) to `Documents` folder within
sandbox.

You will be promted about storage choice (`iCloud` or local). You will
not be able to change you choice in future, so please choose
`iCloud`. You need `iCloud` storage, because this is a way to share
data between application and it's extension.

When you choose `iCloud` app will move resource files (`*.lister`)
from `Documents` folder to `iCloud` container. After that these files
will available to `ListerToday` extension app (`Widget`).
`ListerToady` (Widget) displays only items from `Today` list, because
of this add some items to this list. Now you are ready to run your
widget.

Go to `Today view` (`Notification center`). Here you will see built in
widgets like `Calendar`, `Remainders`, etc. Now we need to enable
`ListerLoday` Widget (add it to `Today view`). At the button you will
see `Edit` button. Tap on it, then enable `ListerToday` widget and
press `Done`. At this point you will see `Today view` with
`ListerToday` widget, also you will see your Today items.

When you change your `Today list` within Lister app these changes will
be displayed inside ListerToday Widget and vice versa.

Build Requirements
------------------
Expand Down
67 changes: 56 additions & 11 deletions ios8/LookInside/README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,70 @@
LookInside
==============

This example shows how to use a custom presentation controller to create a custom view controller presentation. It provides a transitioning delegate to the view controller, which vends a presentation controller and animator object.
This example shows how to use a custom presentation controller to
create a custom view controller presentation. It provides a
transitioning delegate to the view controller, which vends a
presentation controller and animator object.

The LookInside project contains the following interesting classes:
* `RootViewController`. This is the root view controller of the application. It provides a scrolling grid of photos through a `UICollectionView`. When one of the photos is tapped, it performs a view controller presentation
* `OverlayViewController`. This is the view controller for the photo editing interface. It has an image view, some sliders, and a save button. It uses `CoreImage` to change the HSV of the image. Note that the view controller provides no dimming views, borders, or other chrome
* `OverlayTransitioningDelegate`. This is the transitioning delegate used for the Overlay presentation style. It is a subclass from the `UIViewControllerTransitioningDelegate` and provides a custom animator object and presentation controller
* `OverlayAnimatedTransitioning`. This is the animator object used for the Overlay presentation style. It animates the presented view controller in from the right side of the display with a spring animation
* `OverlayPresentationController`. This is the presentation controller used for the Overlay presentation style. It provides sizing information for the presented view controller to position it on the right edge of the display. It also provides a dimming view for use in the presentation. It implements a gesture on the dimming view to dismiss the presented view controller
* `CoolTransitioningDelegate`. This is the transitioning delegate used for the Cool presentation style. It is a subclass from the `UIViewControllerTransitioningDelegate` and provides a custom animator object and presentation controller
* `CoolAnimatedTransitioning`. This is the animator object used for the Cool presentation style. It animates the presented view controller in from the center of the display using a scale animation
* `CoolPresentationController`. This is the presentation controller used for the Cool presentation style. It provides sizing information for the presented view controller to position it in the center of the display. It positions a pink view behind the presented view controller. It also provides custom chrome - leopard print borders, a pink flower, and a unicorn

* `RootViewController`. This is the root view controller of the
application. It provides a scrolling grid of photos through a
`UICollectionView`. When one of the photos is tapped, it performs a
view controller presentation

* `OverlayViewController`. This is the view controller for the photo
editing interface. It has an image view, some sliders, and a save
button. It uses `CoreImage` to change the HSV of the image. Note
that the view controller provides no dimming views, borders, or
other chrome

* `OverlayTransitioningDelegate`. This is the transitioning delegate
used for the Overlay presentation style. It is a subclass from the
`UIViewControllerTransitioningDelegate` and provides a custom
animator object and presentation controller

* `OverlayAnimatedTransitioning`. This is the animator object used for
the Overlay presentation style. It animates the presented view
controller in from the right side of the display with a spring
animation

* `OverlayPresentationController`. This is the presentation controller
used for the Overlay presentation style. It provides sizing
information for the presented view controller to position it on the
right edge of the display. It also provides a dimming view for use
in the presentation. It implements a gesture on the dimming view to
dismiss the presented view controller

* `CoolTransitioningDelegate`. This is the transitioning delegate used
for the Cool presentation style. It is a subclass from the
`UIViewControllerTransitioningDelegate` and provides a custom
animator object and presentation controller

* `CoolAnimatedTransitioning`. This is the animator object used for
the Cool presentation style. It animates the presented view
controller in from the center of the display using a scale animation

* `CoolPresentationController`. This is the presentation controller
used for the Cool presentation style. It provides sizing information
for the presented view controller to position it in the center of
the display. It positions a pink view behind the presented view
controller. It also provides custom chrome - leopard print borders,
a pink flower, and a unicorn


Instructions
------------
For shifting between Normal and Cool transitions use the switch at the top left corner. Tap image then change settings with sliders and hit Save button.

For shifting between Normal and Cool transitions use the switch at the
top left corner. Tap image then change settings with sliders and hit
Save button.

Known issue
-----------
This sampe and original sample from `Apple` consume lot of memory so you can find a crash by applying filters to all images within the app.

This sampe and original sample from `Apple` consume lot of memory so
you can find a crash by applying filters to all images within the app.

Build Requirements
------------------
Expand Down
Loading

0 comments on commit a44dcda

Please sign in to comment.