Skip to content

Commit

Permalink
Switch to use asset url from configuration file.
Browse files Browse the repository at this point in the history
  • Loading branch information
natecook1000 committed Dec 11, 2015
1 parent e07370a commit ef167d2
Show file tree
Hide file tree
Showing 46 changed files with 195 additions and 193 deletions.
4 changes: 2 additions & 2 deletions 2012-09-03-nslocale.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Locale identifiers can encode more explicit preferences about currency, calendar

Users can change their locale settings in the "Language & Text" (or "International" on older versions of OS X) System Preferences on the Mac, or "General > International" in iOS Settings.

![Language & Text System Preferences](http://nshipster.s3.amazonaws.com/nslocale-international-system-preferences.png)
![Language & Text System Preferences]({{ site.asseturl }}/nslocale-international-system-preferences.png)

## Formatting Dates & Numbers

Expand Down Expand Up @@ -112,7 +112,7 @@ NSLog(@"en_US: %@", [frLocale displayNameForKey:NSLocaleIdentifier value:@"en_US

You should use this method any time you need to display information about the user's current locale, or any alternative locales available to them, like in this screen from the Settings app:

![Languages Settings](http://nshipster.s3.amazonaws.com/nslocale-languages-settings.png)
![Languages Settings]({{ site.asseturl }}/nslocale-languages-settings.png)

## `+preferredLanguages`

Expand Down
2 changes: 1 addition & 1 deletion 2012-09-10-uiaccessibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Tap VoiceOver, and then tap the VoiceOver switch to turn it on. An alert will po

Don't Panic--unlike setting your device to another language, there's no real risk of not being able to figure out how to turn VoiceOver off.

![VoiceOver Settings](http://nshipster.s3.amazonaws.com/uiaccessibility-voiceover.png)
![VoiceOver Settings]({{ site.asseturl }}/uiaccessibility-voiceover.png)

Using the device in VoiceOver mode is a bit different than you're used to:

Expand Down
2 changes: 1 addition & 1 deletion 2012-10-01-pragma.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Good habits start with `#pragma mark`. Like so:

Use `#pragma mark` in your `@implementation` to divide code into logical sections. Not only do these sections make it easier to read through the code itself, but it also adds visual cues to the Xcode source navigator (`#pragma mark` declarations starting with a dash (`-`) are preceded with a horizontal divider).

![Xcode Sections](http://nshipster.s3.amazonaws.com/pragma-xcode-sections.png)
![Xcode Sections]({{ site.asseturl }}/pragma-xcode-sections.png)

If your class conforms to any `@protocols`, start by grouping all of the methods within each protocol together, and adding a `#pragma mark` header with the name of that protocol. Another good convention is to group subclassed methods according to their respective superclass. For example, an `NSInputStream` subclass should have a group marked `NSInputStream`, followed by a group marked `NSStream`. Things like `IBAction` outlets, or methods corresponding to target / action, notification, or KVO selectors probably deserve their own sections as well.

Expand Down
2 changes: 1 addition & 1 deletion 2012-10-29-uilocalizedindexedcollation.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ You could also add a `UISearchBar` to the top of your table view, allowing the u

There is also a third approach, which is generally under-utilized in iOS applications: **section index titles**. These are the vertically flowing letters found along the right side of table views in your Address Book contacts list or Music library:

![Section Index Titles Example](http://nshipster.s3.amazonaws.com/uilocalizedindexedcollation-example.png)
![Section Index Titles Example]({{ site.asseturl }}/uilocalizedindexedcollation-example.png)

As the user scrolls their finger down the list, the table view jumps to the corresponding section. Even the most tiresome table view is rendered significantly more usable as a result.

Expand Down
4 changes: 2 additions & 2 deletions 2012-11-26-nsorderedset.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ NSMutableOrderedSet* mutable = [immutable mutableCopy];
[mutable isKindOfClass:[NSMutableSet class]]; // NO (!)
~~~

<img src="http://nshipster.s3.amazonaws.com/nsorderedset-case-1.svg" />
<img src="{{ site.asseturl }}/nsorderedset-case-1.svg" />

That's no good... since `NSMutableOrderedSet` couldn't be used as a method parameter of type `NSMutableSet`. So what happens if we make `NSMutableOrderedSet` a subclass of `NSMutableSet` as well?

Expand Down Expand Up @@ -93,7 +93,7 @@ NSMutableOrderedSet* mutable = [immutable mutableCopy];
[mutable isKindOfClass:[NSOrderedSet class]]; // NO (!)
~~~

<img src="http://nshipster.s3.amazonaws.com/nsorderedset-case-2.svg" />
<img src="{{ site.asseturl }}/nsorderedset-case-2.svg" />

This is perhaps even worse, as now `NSMutableOrderedSet` couldn't be used as a method parameter expecting an `NSOrderedSet`.

Expand Down
6 changes: 3 additions & 3 deletions 2013-03-04-backrow.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Here's a brief list of some Back Row classes & protocols and their UIKit equival

## Apple TV Appliance Structure

![Apple TV Home Screen](http://nshipster.s3.amazonaws.com/backrow-home-screen.jpg)
![Apple TV Home Screen]({{ site.asseturl }}/backrow-home-screen.jpg)

In the current Apple TV interface, the home screen contains a grid of rectangular icons, similar to the home screen on iOS. Each icon corresponds to an _appliance_.

Expand All @@ -84,15 +84,15 @@ An appliance also has an optional `topShelfController`, which is what displays a

Pushing and popping controllers is managed by a shared `BRControllerStack`. When a controller is selected with in a list, it is pushed onto the stack. When the user presses the Menu button, the stack is popped.

![Apple TV YouTube](http://nshipster.s3.amazonaws.com/backrow-youtube.jpg)
![Apple TV YouTube]({{ site.asseturl }}/backrow-youtube.jpg)

A typical controller consists of a menu list on the right, with some kind of complimentary view on the left.

On top-level controllers, this sometimes takes the form of a `BRMarqueeStack`, which animates a Cover-Flow-style sequence of preview images for each of the controllers.

For controllers listing media that can be played, the complimentary view usually shows a preview image, along with meta data in a `BRMetadataControl`, such as runtime, date created, and other relevant information.

![Apple TV Movie](http://nshipster.s3.amazonaws.com/backrow-movie.jpg)
![Apple TV Movie]({{ site.asseturl }}/backrow-movie.jpg)

iTunes store controllers also use a horizontally-stacked layout, with media information at the top, with related titles listed below.

Expand Down
20 changes: 10 additions & 10 deletions 2013-04-22-nshipster-quiz-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,43 +60,43 @@ Round 3: Picture Round

- 1. What is this?

![Question 1](http://nshipster-quiz-1.s3.amazonaws.com/question-1.jpg)
![Question 1]({{ site.asseturl }}/quiz-1/question-1.jpg)

- 2. What is this?

![Question 2](http://nshipster-quiz-1.s3.amazonaws.com/question-2.jpg)
![Question 2]({{ site.asseturl }}/quiz-1/question-2.jpg)

- 3. What is this?

![Question 3](http://nshipster-quiz-1.s3.amazonaws.com/question-3.jpg)
![Question 3]({{ site.asseturl }}/quiz-1/question-3.jpg)

- 4. What is this?

![Question 4](http://nshipster-quiz-1.s3.amazonaws.com/question-4.jpg)
![Question 4]({{ site.asseturl }}/quiz-1/question-4.jpg)

- 5. WTF is this?

![Question 5](http://nshipster-quiz-1.s3.amazonaws.com/question-5.jpg)
![Question 5]({{ site.asseturl }}/quiz-1/question-5.jpg)

- 6. Who is this?

![Question 6](http://nshipster-quiz-1.s3.amazonaws.com/question-6.jpg)
![Question 6]({{ site.asseturl }}/quiz-1/question-6.jpg)

- 7. Who is this?

![Question 7](http://nshipster-quiz-1.s3.amazonaws.com/question-7.jpg)
![Question 7]({{ site.asseturl }}/quiz-1/question-7.jpg)

- 8. Who is this?

![Question 8](http://nshipster-quiz-1.s3.amazonaws.com/question-8.jpg)
![Question 8]({{ site.asseturl }}/quiz-1/question-8.jpg)

- 9. Who is this?

![Question 9](http://nshipster-quiz-1.s3.amazonaws.com/question-9.jpg)
![Question 9]({{ site.asseturl }}/quiz-1/question-9.jpg)

- 10. In this photo, Bill Gates & Steve Jobs are being interviewed at the D5 conference in 2007 by a man and a woman just off-screen to the left. Who are they? (One point for each person)

![Question 10](http://nshipster-quiz-1.s3.amazonaws.com/question-10.jpg)
![Question 10]({{ site.asseturl }}/quiz-1/question-10.jpg)


Round 4: Name That Framework!
Expand Down
2 changes: 1 addition & 1 deletion 2013-05-06-gpuimage.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ Seriously, the [Filter Showcase Example App](https://github.com/BradLarson/GPUIm

## Rendering Pipeline

<img src="http://nshipster.s3.amazonaws.com/gpuimage-pipeline.svg" />
<img src="{{ site.asseturl }}/gpuimage-pipeline.svg" />


GPUImage is, at its core, an Objective-C abstraction around a rendering pipeline. Source images from the camera, network, or disk are loaded and manipulated according to a chain of filters, and finally outputted either a view, graphics context, or data stream.
Expand Down
20 changes: 10 additions & 10 deletions 2013-06-12-nshipster-quiz-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,43 +62,43 @@ Round 3: Picture Round

- 1. Which WWDC keynote was this from?

![Question 1](http://nshipster-quiz-2.s3.amazonaws.com/question-1.jpg)
![Question 1]({{ site.asseturl }}/quiz-2/question-1.jpg)

- 2. Which WWDC keynote was this from?

![Question 2](http://nshipster-quiz-2.s3.amazonaws.com/question-2.jpg)
![Question 2]({{ site.asseturl }}/quiz-2/question-2.jpg)

- 3. Which WWDC keynote was this from?

![Question 3](http://nshipster-quiz-2.s3.amazonaws.com/question-3.jpg)
![Question 3]({{ site.asseturl }}/quiz-2/question-3.jpg)

- 4. Which WWDC keynote was this from?

![Question 4](http://nshipster-quiz-2.s3.amazonaws.com/question-4.jpg)
![Question 4]({{ site.asseturl }}/quiz-2/question-4.jpg)

- 5. WTF is this?

![Question 5](http://nshipster-quiz-2.s3.amazonaws.com/question-5.jpg)
![Question 5]({{ site.asseturl }}/quiz-2/question-5.jpg)

- 6. What is this?

![Question 6](http://nshipster-quiz-2.s3.amazonaws.com/question-6.jpg)
![Question 6]({{ site.asseturl }}/quiz-2/question-6.jpg)

- 7. What is this?

![Question 7](http://nshipster-quiz-2.s3.amazonaws.com/question-7.jpg)
![Question 7]({{ site.asseturl }}/quiz-2/question-7.jpg)

- 8. What is this? (and which generation?)

![Question 8](http://nshipster-quiz-2.s3.amazonaws.com/question-8.jpg)
![Question 8]({{ site.asseturl }}/quiz-2/question-8.jpg)

- 9. Which "Core" framework is represented by this logo?

![Question 9](http://nshipster-quiz-2.s3.amazonaws.com/question-9.jpg)
![Question 9]({{ site.asseturl }}/quiz-2/question-9.jpg)

- 10. Everybody loves Craig _/fɛdɹ̩igi/_ (Pictured). How do you spell his last name?

![Question 10](http://nshipster-quiz-2.s3.amazonaws.com/question-10.jpg)
![Question 10]({{ site.asseturl }}/quiz-2/question-10.jpg)

Round 4: Name That Framework!
-----------------------------
Expand Down
2 changes: 1 addition & 1 deletion 2013-06-24-uuid-udid-unique-identifier.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ As the sole component of the [Ad Support framework](http://developer.apple.com/l

Users can opt out of ad targeting in a Settings screen added in iOS 6.1, found at **Settings > General > About > Advertising**:

![Limit Ad Tracking](http://nshipster.s3.amazonaws.com/ad-support-limit-ad-tracking.png)
![Limit Ad Tracking]({{ site.asseturl }}/ad-support-limit-ad-tracking.png)

## NSUUID & CFUUIDRef

Expand Down
20 changes: 10 additions & 10 deletions 2013-07-31-nshipster-quiz-3.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,43 +62,43 @@ With over 1 Million iOS & Mac Apps on the App Store, it's clear that the true se

- 1. What is the name of this iOS game?

![Question 1](http://nshipster-quiz-3.s3.amazonaws.com/question-1.png)
![Question 1]({{ site.asseturl }}/quiz-3/question-1.png)

- 2. What is the name of this iOS game?

![Question 2](http://nshipster-quiz-3.s3.amazonaws.com/question-2.png)
![Question 2]({{ site.asseturl }}/quiz-3/question-2.png)

- 3. What is the name of this iOS app?

![Question 3](http://nshipster-quiz-3.s3.amazonaws.com/question-3.png)
![Question 3]({{ site.asseturl }}/quiz-3/question-3.png)

- 4. What is the name of this popular iOS app?

![Question 4](http://nshipster-quiz-3.s3.amazonaws.com/question-4.png)
![Question 4]({{ site.asseturl }}/quiz-3/question-4.png)

- 5. While not on the App Store, jailbreakers will know this icon well. What's its name?

![Question 5](http://nshipster-quiz-3.s3.amazonaws.com/question-5.png)
![Question 5]({{ site.asseturl }}/quiz-3/question-5.png)

- 6. Which classic Mac app sports this delightful moving truck?

![Question 6](http://nshipster-quiz-3.s3.amazonaws.com/question-6.png)
![Question 6]({{ site.asseturl }}/quiz-3/question-6.png)

- 7. Which indispensible development tool has this incongruous icon?

![Question 7](http://nshipster-quiz-3.s3.amazonaws.com/question-7.png)
![Question 7]({{ site.asseturl }}/quiz-3/question-7.png)

- 8. Which app sports this sleek icon?

![Question 8](http://nshipster-quiz-3.s3.amazonaws.com/question-8.png)
![Question 8]({{ site.asseturl }}/quiz-3/question-8.png)

- 9. Which app is represented by this delightful mail bag?

![Question 9](http://nshipster-quiz-3.s3.amazonaws.com/question-9.png)
![Question 9]({{ site.asseturl }}/quiz-3/question-9.png)

- 10. Which (unfortunately stalled) app has this beautiful icon?

![Question 10](http://nshipster-quiz-3.s3.amazonaws.com/question-10.png)
![Question 10]({{ site.asseturl }}/quiz-3/question-10.png)


Round 4: [REDACTED]
Expand Down
14 changes: 7 additions & 7 deletions 2013-09-02-xcode-snippets.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,21 @@ From `@interface` declarations to `if (!self) return nil;` incantations, there i

To see the available code snippets, show the Utilities panel, to the right of your editor. On the bottom half the Utilities panel, there will be a horizontal divider with 4 icons.

![Utilities Divider](http://nshipster.s3.amazonaws.com/xcode-snippet-utilities-divider.png)
![Utilities Divider]({{ site.asseturl }}/xcode-snippet-utilities-divider.png)

Click the `{ }` icon to show the Code Snippets Library.

![Utilities Panel](http://nshipster.s3.amazonaws.com/xcode-snippet-utilties-panel.png)
![Utilities Panel]({{ site.asseturl }}/xcode-snippet-utilties-panel.png)

There are two ways to insert a snippet into your code:

You can drag and drop from the code snippets library into your editor:

![Drag-and-Drop](http://nshipster.s3.amazonaws.com/xcode-snippet-drag-and-drop.gif)
![Drag-and-Drop]({{ site.asseturl }}/xcode-snippet-drag-and-drop.gif)

...or for snippets that include a text completion shortcut, you can start typing that:

![Text Completion Shortcut](http://nshipster.s3.amazonaws.com/xcode-snippet-text-completion-shortcut.gif)
![Text Completion Shortcut]({{ site.asseturl }}/xcode-snippet-text-completion-shortcut.gif)

To get a sense of what you can do with snippets, here's an overview of the ones built-in to Xcode:

Expand All @@ -57,11 +57,11 @@ Of course, what really makes snippets such a powerful feature is the ability to

The process of creating a snippet is actually pretty unintuitive and difficult to explain. It uses an obscure OS X system feature that allows users to create a "Text Clipping" by dragging and dropping selected text. Much easier to just show it in action:

![Text Completion Shortcut](http://nshipster.s3.amazonaws.com/xcode-snippet-create.gif)
![Text Completion Shortcut]({{ site.asseturl }}/xcode-snippet-create.gif)

After being added to the code snippet library, a user-defined snippet can be edited by double-clicking its listing:

![Text Completion Shortcut](http://nshipster.s3.amazonaws.com/xcode-snippet-editor.png)
![Text Completion Shortcut]({{ site.asseturl }}/xcode-snippet-editor.png)

Each snippet has the following fields:

Expand All @@ -87,7 +87,7 @@ Each snippet has the following fields:

Something you may have noticed in using other Xcode snippets are placeholder tokens:

![Placeholder Token](http://nshipster.s3.amazonaws.com/xcode-snippet-token.png)
![Placeholder Token]({{ site.asseturl }}/xcode-snippet-token.png)

In Xcode, placeholder tokens are delimited by `<#` and `#>`, with the placeholder text in the middle. Go ahead—try typing that into Xcode, and watch as the text between the octothorp tags magically transforms right in front of your eyes.

Expand Down
12 changes: 6 additions & 6 deletions 2013-09-09-network-link-conditioner.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,19 @@ This week on NSHipster, we'll be talking about the [Network Link Conditioner](ht

Network Link Conditioner can be found in the "Hardware IO Tools for Xcode" package. This can be downloaded from the [Apple Developer Downloads](https://developer.apple.com/downloads/index.action?q=Hardware%20IO%20Tools) page.

![Download](http://nshipster.s3.amazonaws.com/network-link-conditioner-download.png)
![Download]({{ site.asseturl }}/network-link-conditioner-download.png)

Search for "Hardware IO Tools for Xcode", and select the appropriate release of the package.

![Package](http://nshipster.s3.amazonaws.com/network-link-conditioner-dmg.png)
![Package]({{ site.asseturl }}/network-link-conditioner-dmg.png)

Once the download has finished, open the DMG and double-click "Network Link Condition.prefPane" to install.

![System Preferences](http://nshipster.s3.amazonaws.com/network-link-conditioner-install.png)
![System Preferences]({{ site.asseturl }}/network-link-conditioner-install.png)

From now on, you can enable the Network Link Conditioner from its preference pane at the bottom of System Preferences.

![Network Link Conditioner](http://nshipster.s3.amazonaws.com/network-link-conditioner-system-preference.png)
![Network Link Conditioner]({{ site.asseturl }}/network-link-conditioner-system-preference.png)

When enabled, the Network Link Conditioner can change the network environment of the iPhone Simulator according to one of the built-in presets:

Expand All @@ -46,7 +46,7 @@ When enabled, the Network Link Conditioner can change the network environment of

Each preset can set a limit for uplink or downlink [bandwidth](http://en.wikipedia.org/wiki/Bandwidth_%28computing%29), [latency](http://en.wikipedia.org/wiki/Latency_%28engineering%29%23Communication_latency), and rate of [packet loss](http://en.wikipedia.org/wiki/Packet_loss) (when any value is set to 0, that value is unchanged from your computer's network environment).

![Preset](http://nshipster.s3.amazonaws.com/network-link-conditioner-preset.png)
![Preset]({{ site.asseturl }}/network-link-conditioner-preset.png)

You can also create your own preset, if you wish to simulate a particular combination of factors simultaneously.

Expand All @@ -65,6 +65,6 @@ To enable it, you need to set up your device for development:
3. Select your device in the sidebar
4. Click "Use for Development"

![iOS Devices](http://nshipster.s3.amazonaws.com/network-link-conditioner-ios.png)
![iOS Devices]({{ site.asseturl }}/network-link-conditioner-ios.png)

Now you'll have access to the Developer section of the Settings app, where you'll find the Network Link Conditioner (just don't forget to turn it off after you're done testing!).
Loading

0 comments on commit ef167d2

Please sign in to comment.