Skip to main content

Posts

Showing posts from 2012

POP - Prototyping on Paper

Design on Paper
Creating wireframes on your favorite notebook. Take your time and sketch your interface carefully. Pen & paper are the best tools. Complicated software only gets in the way.


Take Pictures
Import your sketches by taking a picture. POP automatically adjust brightness and contrast to make sure your sketches are legible and clear.


Simulate
Create a storyboard by linking your sketches together with "link spots". Press play and simulate your user interface to make sure everything flows correctly.

POP App


The Daily is down

Mr. Murdoch said: "From its launch, The Daily was a bold experiment in digital publishing and an amazing vehicle for innovation. Unfortunately, our experience was that we could not find a large enough audience quickly enough to convince us the business model was sustainable in the long-term. Therefore we will take the very best of what we have learned at The Daily and apply it to all our properties. Under the editorial leadership of Editor-in-Chief Col Allan and the business and digital leadership of Jesse, I know The New York Post will continue to grow and become stronger on the web, on mobile, and not least, the paper itself. I want to thank all of the journalists, digital and business professionals for the hard work they put into The Daily."

News Corporation

CocoaPods - The best way to manage library dependencies in Objective-C projects.

Specify the libraries for your project in an easy to edit text file. Then use CocoaPods to resolve all dependencies, fetch the source, and set up your Xcode workspace.

Introduction to CocoaPods
CocoaPods
Using CocoaPods for in-house components

KSCrash

Another crash reporter? Why?

Because all existing solutions fall short. PLCrashReporter comes very close, but not quite:

It can't handle stack overflow crashes.
It doesn't fill in all fields for its Apple crash reports.
It can't symbolicate on the device.
It only records enough information for an Apple crash report, though there is plenty of extra useful information to be gathered!
As well, each crash reporter service, though most of them use PLCrashReporter at the core, has its own format and API.

KSCrash is superior for the following reasons:

It catches ALL crashes.
Its pluggable server reporting architecture makes it easy to adapt to any API service (it already supports Hockey and Quincy and sending via email, with more to come!).
It supports symbolicating on the device.
It records more information about the system and crash than any other crash reporter.
It is the only crash reporter capable of creating a 100% complete Apple crash report (including thread/queue names)…

The Takeover of the Mobile Web

Nice infografic

T3N


Flojack

Mit Crowdfunding versucht Flomio ein Dongle zu finanzieren, das Apples mobilen Geräten die Nahbereichsfunktechnik NFC beibringen soll. Apple selbst forciert NFC im Gegensatz zu seinen Konkurrenten nicht.

Golem

Alfred Tool

Alfred is an award-winning productivity application for Mac OS X, which aims to save you time in searching your local computer and the web. Whether it's maps, Amazon, eBay, Wikipedia, you can feed your web addiction quicker than ever.


Increase your productivity by launching apps with shortcutsInstant access to web searches, bookmarks & moreBrowse and play music from your iTunes library quicklyPerform actions – copy, move & email files & foldersWard off RSI – skip using the mouse with easy shortcuts Has a nice website, too :)
Alfred

FlyCut

Flycut is a clean and simple clipboard manager for developers. It based on open source app called Jumpcut. Flycut is also open source: http://github.com/TermiT/flycut

Mac App Store

NSHipster

NSHipster is a nicely written journal of the overlooked bits in Objective-C and Cocoa. Updated weekly.
NSHipster

Promoting Apps with Smart App Banners on web page html

Sim Deploy

Tired of digging around in your library folder to install simulator builds? Need to distribute simulator builds to non-technical people in your organization? Sim Deploy provides drag and drop installation of iOS simulator builds.
Features
Drag and Drop InstallationRemote URL InstallationCustom URL Handling for Dead Simple DistributionAutomatically Launches Simulator and Installed ApplicationEasily Integrates With Continuous Integration ServersSpacemanlabs


Create Pass with Passbook

Passes are a digital representation of information that might otherwise be printed on small pieces of paper or plastic. They let users take an action in the physical world, in the same way as boarding passes, membership cards, and coupons. The pass library contains the user’s passes. Users view and manage their passes using the Passbook app.

Apple Developer PassKit Programming Guide


Your source for free iOS 6 Passbook passes; create your own iOS 6 Passbook pass!

PassK.it
PassSource

Content-Type: application/vnd.apple.pkpass
Content-Disposition: attachment; filename="pass.pkpass"

appledoc integration

Install appledoc

Go to Project > Add Target “Documentation” and then Build phases > Add build phase > Add run script

/usr/local/bin/appledoc \
--project-name "MyProject" \
--project-company "MyCompany" \
--company-id "com.mydomain" \
--output build \
--docsetutil-path `xcode-select -print-path`/usr/bin/docsetutil \
--create-docset \
--install-docset \
--create-html \
--exit-threshold 2 \
--no-repeat-first-par \
MyProjectDir

appledoc
Mobile Craft

OCUnit with asynchronous methods

Alternate A

-(void)testAsync
{
   // create the semaphore and lock it once before we start
   // the async operation
   NSConditionLock * conditionLock = [NSConditionLock new];
   self.theLock = conditionLock;

   // start the async operation
   ...

   // now lock the semaphore - which will block this thread until
   // [self.theLock unlockWithCondition:1] gets invoked
   [self.theLock lockWhenCondition:1];

   // make sure the async callback did in fact happen by
   // checking whether it modified a variable
   STAssertTrue (self.testState != 0, @"delegate did not get called");
}

-(void)myDelegate
{
   [self.theLock unlockWithCondition:1];
}

Stackoverflow
Apple Developer NSConditionLock Class Reference

Alternate B


dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);

^{
...
dispatch_semaphore_signal(semaphore);
}

while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW)) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:10]];
}

MobileCraf…

ios-sim

The ios-sim tool is a command-line utility that launches an iOS application on the iOS Simulator. This allows for niceties such as automated testing without having to open Xcode.

Features

Choose the device family to simulate, i.e. iPhone or iPad.Setup environment variables.Pass arguments to the application.See the stdout and stderr, or redirect them to files.See the --help option for more info.phonegap / ios-sim

App Icons on iPad and iPhone

Shell scripts to generate all required app icons and launch images on iPad and iPhone.

iOS Human Interface Guidelines
Custom Icon and Image Creation Guidelines
https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html

Technical Q&A
App Icons on iPad and iPhone
http://developer.apple.com/library/ios/#qa/qa1686/_index.html



ios-image-scripts on GitHub

Log all notifications displayed to the console

To see all notifications displayed to the console, add the following code inside the App Delegate:

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(notificationReceived:) name:nil object:nil];

...

-(void)notificationReceived:(NSNotification*)notification
{
  NSLog(@"Notification:%@ from:%@",[notification name], 
    [[notification object] description] );
}

Outlook:mac 2011 Fun

Unexpected data has been found.
Mmh - sounds like alien artifacts :)

30+ cool toolbar apps

Some real nice and useful apps!

UsingMac.com

Debugging Push Notifications

There is a way to enable additional push debug messages:

Enabling Push Status Messages on iOS
To enable logging on iOS, install the configuration profile PersistentConnectionLogging.mobileconfig on your device by either putting the file on a web server and downloading it using Safari on your device, or by sending it as an email attachment and opening the attachment in Mail on your device. You'll be prompted to install "APS/PC Logging".

Apple Developer TechNote
Companion File

A Visual Explanation of SQL Joins

I thought Ligaya Turmelle's post on SQL joins was a great primer for novice developers. Since SQL joins appear to be set-based, the use of Venn diagrams to explain them seems, at first blush, to be a natural fit. However, like the commenters to her post, I found that the Venn diagrams didn't quite match the SQL join syntax reality in my testing.
Coding Horror

Symbolicate Crash Log

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -v myCrash.crash myApp.app

Quick and easy debugging of unrecognized selector sent to instance

It’s happened to all of us; we’re merrily trucking down the development road, building and testing our app when all of sudden everything grinds to a screeching halt and the console tells us something like:

-[MoneyWellAppDelegate doThatThingYouDo]: unrecognized selector sent to instance 0xa275230

The good news is there is a better way. All you need to do is pop over to the Breakpoint Navigator, click the + button at the bottom and choose Add Symbolic Breakpoint…

CORE FRUITION

CocoaHTTPServer

CocoaHTTPServer is a small, lightweight, embeddable HTTP server for Mac OS X or iOS applications.

Sometimes developers need an embedded HTTP server in their app. Perhaps it's a server application with remote monitoring. Or perhaps it's a desktop application using HTTP for the communication backend. Or perhaps it's an iOS app providing over-the-air access to documents. Whatever your reason, CocoaHTTPServer can get the job done. It provides:


Built in support for bonjour broadcastingIPv4 and IPv6 supportAsynchronous networking using GCD and standard socketsPassword protection supportSSL/TLS encryption supportExtremely FAST and memory efficientExtremely scalable (built entirely upon GCD)Heavily commented codeVery easily extensibleWebDAV is supported too!GitHub

Google Drive versus Dropbox

Sequel Pro

Best Looking MySQL Cocoa App.

Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases.

Sequel Pro

Method swizzling with Objective C

#import objc/runtime.h
#import objc/message.h

void MethodSwizzle(Class c, SEL orig, SEL new)
{
    Method origMethod = class_getInstanceMethod(c, orig);
    Method newMethod = class_getInstanceMethod(c, new);
    if(class_addMethod(c, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)))
        class_replaceMethod(c, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
    else
        method_exchangeImplementations(origMethod, newMethod);
}

Handwriting Recognition With HTML5

Make your mark on Google with Handwrite for Mobile and Tablet Search Unlike searching on a desktop or laptop computer, when you're searching on a touch-screen mobile device it’s often inconvenient to type. So we strive to give you a variety of ways to interact with Google, be it by speaking your queries, getting results before you finish typing, or searching by image. Now there’s a new way for you to interact with Google: Handwrite for web search on mobile phones and tablets. 

Google

Study: The Four-Year Anniversary of the Apple App Store

This month’s publication discussed the incredible progress of the Apple App Store from launch four years ago through June 2012. Although volumes and especially revenues have increased, the competition has grown much more fierce as well. In terms of volume the height of downloads per app was in June 2010. However, new markets in other countries have grown significantly over the past two years and are now among some of the largest markets, e.g. China, which is already the second largest country in terms of free downloads. Moreover, the revenue more than tripled in the past two years mainly due to the success of free applications that feature in-app purchases. Games and applications in the Newsstand category are highly successful in monetizing via in-app purchases.

Distimo (see publication of June)

Measuring a Mobile World: Introducing Mobile App Analytics

Analytics für mobilen App-Traffic ermöglicht durchgängige Messungen entlang des Weges von Kunden innerhalb einer mobilen App. Dazu werden Messwerte in allen Phasen des Kundenkontakts gesammelt – zum Beispiel Akquisitionsmesswerte wie neue/aktive Nutzer, Interaktionsmesswerte wie Besucherfluss, Kundentreue oder App-Abstürze sowie Ergebnismesswerte wie Ziel-Conversions und In-App-Käufe. So hilft Analytics Mobilentwicklern und Marketingexperten, erfolgreichere Apps zu erstellen und bessere Nutzererfahrungen zu schaffen. Die Funktion wird nun Schritt für Schritt eingeführt und gegen Ende des Sommers für alle Nutzer verfügbar sein.
Google Analytics Mobile App Analysis

Mobile Werbung lohnt sich am Meisten auf iOS-Geräten

Einer aktuellen Studie zufolge, ist Werbung auf den iOS-Geräten, sprich iPhone, iPad und iPod touch am wirkungsvollsten. Vor allem das iPad generiert viele Werbeklicks und lockt somit potentielle Kunden.
Macerkopf

iPhone als Tauchcomputer

Das iGills SE-35 von Amphibian Labs ist keine normale wasserdichte Hülle für das iPhone, sondern soll Apples Smartphone mit Zusatzsensoren in einen Tauchcomputer verwandeln, der in bis zu 40 Meter Wassertiefe verwendet werden kann.
Golem

Logic Tests (aka Unit Tests) and Application Tests (aka Integration Tests) with Jenkins and xcode

Motivation Apple Developer: About Unit Testing
Logic TestsApple Developer: Setting Up Unit-Testing in a ProjectDownload convert OCUnit command line output to JUnit XML: OCUnit2JUnit and put it in your projectSetup Freestyle project in JenkinsAdd Execute shell step:chmod +x ./pathtoscript/ocunit2junit.rbxcodebuild -target myTarget -configuration myConfig -sdk iphonesimulator clean build | ./pathtoscript/ocunit2junit.rbAdd post build action Publish JUnit Test Results with location:test-reports/*.xml Application TestsApple Developer: Setting Up Unit-Testing in a ProjectDownload the patched RunPlatformUnitTests script and put in your projectOpen the Build Phases - Run Script setting and change script path to "${PROJECT_DIR}/pathtoscript/RunPlatformUnitTests"Download convert OCUnit command line output to JUnit XML: OCUnit2JUnit and put it in your projectSetup Freestyle project in JenkinsAdd Execute shell step:chmod +x ./pathtoscript/ocunit2junit.rbxcodebuild -target myTarget -…

UI Automation

There is a known issue when using the performTaskOnHost API in a UI Automation script. If the task being performed with the API outputs excessively (say, thousands of lines of text) to standard out or standard error, the task may deadlock until the timeout is reached, at which point it will throw a javascript exception.The lock() and unlock() functions of UIATarget have been replaced with the lockForDuration() function.Starting in iOS 5 beta 2, you can now trigger the execution of an UI Automation script on an iOS device from the host terminal by using the instruments tool. The command is:instruments -w device id -t template applicationWhen using the cli instruments for UI Automation you can now target the default Automation Template and pass the script and results path into the tool as environment variable options. For example:instruments -w device_id -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automat…

In-App Purchase Receipt Validation on iOS

A vulnerability has been discovered in iOS 5.1 and earlier related to validating in-app purchase receipts by connecting to the App Store server directly from an iOS device. An attacker can alter the DNS table to redirect these requests to a server controlled by the attacker. Using a certificate authority controlled by the attacker and installed on the device by the user, the attacker can issue a SSL certificate that fraudulently identifies the attacker’s server as an App Store server. When this fraudulent server is asked to validate an invalid receipt, it responds as if the receipt were valid.

iOS 6 will address this vulnerability. If your app follows the best practices described below then it is not affected by this attack.

iOS Developer Library
In-App-Klau jetzt auch im Mac App Store (Heise)

Apple adds ‘unique_identifier’ to in-app purchase receipts, not UDID, may be related to recent breach

Apple has begun adding a new field to its in-app purchase receipts entitled ‘unique_identifier’. The addition of the field was reported by Macrumors, but contrary to its article, it does not appear to contain a Unique Device Identifier (UDID), something that Apple has been instructing developers to move away from.

The Next Web

Facebook SDK 3.0 Beta for iOS

1. Better user session management: In the past, managing auths, user sessions and tokens was hard. We've spent a lot of time working to make these takes easier for you. This release introduces FBSession, which manages, stores and refreshes user tokens with default behaviors you can override. It uses the block metaphor to notify your app when a user's token changes state.

2. Ready-to-Use Native UI Views: This SDK release includes a variety of pre-built user interface (UI) components for common functions. You can quickly drop them into your apps instead of building each one from scratch or using dialogs. This gives you a fast, native and consistent way to build common features.


3. Modern Objective-C language features support: With Automatic Reference Counting (ARC), you no longer have to spend as much time on memory management. Support for blocks means that it’s now more straightforward to handle sessions and calls to asynchronous Facebook APIs. This, along with inclusion of ke…

iOS version release date history

Wie lange eine iOS Version im Beta-Status verbleibt hat Will Hains in einem übersichtlichen Zeitstrahl visualisiert.

Will Hains

Google Docs: Collections

As a native Mac client, Collections lets you access your Google Docs with unparalled speed. Simply launch the app and you're off to the races – browse and edit your documents and even read a cached version offline.
Collections

MKNetworkKit

Why MKNetworkKit?

MKNetworkKit is inspired by the other two popular network frameworks ASIHTTPRequest and AFNetworking. Mostly ASI, to some extent, AFNetworking. I've been an unofficial "evangelist" of ASIHTTPRequest till the plug was pulled.

Marrying the feature set from both, MKNetworkKit throws in a bunch of new features like


Single queue for the whole appAuto queue sizingAuto caching and restoringPerforms exactly one operation for similar requestsBackground completionFull ARC supportcURL-able debug lines.MKNetworkKit's goal was to make it as feature rich as ASIHTTPRequest yet simple and elegant to use like AFNetworkingMKNetworkKit

Calling Objective-C Methods From JavaScript

The web scripting capabilities of WebKit permit you to access Objective-C properties and call Objective-C methods from the JavaScript scripting environment.

An important but not necessarily obvious fact about this bridge is that it does not allow any JavaScript script to access Objective-C. You cannot access Objective-C properties and methods from a web browser unless a custom plug-in has been installed. The bridge is intended for people using custom plug-ins and JavaScript environments enclosed within WebKit objects (for example, a WebView).

Bad news though: Not (yet) available in iOS, Mac OS only...

Apple Developer

OCMock

OCMock is an Objective-C implementation of mock objects. If you are unfamiliar with the concept of mock objects please visit mockobjects.com which has more details and discussions about this approach to testing software.

This implementation fully utilises the dynamic nature of Objective-C. It creates mock objects on the fly and uses the trampoline pattern so that you can define expectations and stubs using the same syntax that you use to call methods. No strings, no @selector, just method invocations like this:

[[myMockObject expect] doSomethingWithObject:someObject];

OCMock.org
How to have fun with OCMock

Corrupt App Store binaries crashing on launch - Fixed

Last night, within minutes of Apple approving the Instapaper 4.2.3 update, I was deluged by support email and Twitter messages from customers saying that it crashed immediately on launch, even with a clean install.

Lots of anxiety and research led me to the problem: a seemingly corrupt update being distributed by the App Store in many or possibly all regions.

Marco.org
Seems to be fixed

yeoman

Why, hello!. I'm Yeoman - a robust and opinionated client-side stack, comprised of tools and frameworks that can help developers quickly build beautiful web applications.
From Google.
yeoman

Lucidchart: Online Diagram & Flowcharts with Google Docs

We have rethought and redesigned the entire diagramming process to make it as easy as possible. Draw flow charts, wireframes, UML diagrams, and more with just a few clicks.


Google Docs integration


Lucidchart

iOS Automated Tests with UIAutomation - summary

Automated tests are very useful to test your app “while you sleep”. It enables you to quickly track regressions and performance issues, and also develop new features without worrying to break your app.
Since iOS 4.0, Apple has released a framework called UIAutomation, which can be used to perform automated tests on real devices and on the iPhone Simulator. The documentation on UIAutomation is quite small and there is not a lot of resources on the web. This tutorial will show you how to integrate UIAutomation in your workflow.

Manbolo Blog

JavaScript Unit Test Frameworks

==> Buster.JS


A browser JavaScript testing toolkit. It does browser testing with browser automation (think JsTestDriver), qunit style static html page testing, testing in headless browsers (phantomjs, jsdom, ...), and more. Take a look at the overview!

A Node.js testing toolkit. You get the same test case library, assertion library, etc. This is also great for hybrid browser and Node.js code. Write your test case with Buster.JS and run it both in Node.js and in a real browser.


(interesting approach - still in beta but was used by PocketIsland/Wooga)


JsUnit


JsUnit is a Unit Testing framework for client-side (in-browser) JavaScript. It is essentially a port of JUnit to JavaScript. Also included is a platform for automating the execution of tests on multiple browsers and mutiple machines running different OSs.

JsUnit's development began in January 2001; JsUnit was the first testing framework for JavaScript. Over the years, it became a project maintained by Pivotal Labs. These days,…

Telerik Automated Testing

Native & web apps
Finally native mobile application testing tool for your iPad, iPhone & iPod apps. No jailbreak needed.

Record & run tests
We don't rely on image based element detection, we use object based recording instead.

Get Beta testers in
Take screenshots and send comments. Easily gather feedback from your early beta testers.

Sync test resultsSOON
Deploy & sync up tests and results across all devices. Check your tests in a real source repository.


Telerik

itunes Link Maker

Create links for the iTunes Store, the App Store, the iBookstore, and the Mac App Store.

With Link Maker, you can create links to content on the iTunes Store, the App Store, the iBookstore, and the Mac App Store, and then place those links on your website or within your app.

Link Maker

Umsätze im M-Commerce nehmen zu

Nach dem Bundesverband des Deutschen Versandhandels e.V. (bvh) hat nun auch der Bundesverband Digitale Wirtschaft (BVDW) die Ergebnisse einer repräsentativen Umfrage zum mobilen Online-Handel (M-Commerce) veröffentlicht. Die Ergebnisse der Expertenbefragung "Trend in Prozent" in der Online-Branche sind nahezu identisch zu der vorherigen Befragung: M-Commerce-Umsätze werden demnach weiter steigen. Der gesamte E-Commerce-Bereich, inklusive dem Teilbereich des M-Commerce, wird nach Einschätzung der Experten in diesem Jahr um 16 Prozent zulegen.

Heise

CodePen: HTML, CSS und JavaScript entdecken, lernen und teilen

CodePen ist eine neue Community zum Entdecken und Teilen von Code-Snippets in HTML, CSS und JavaScript mit Vorschau sowie Editor im Browser. Wir stellen euch CodePen kurz vor.

CodePen

Debugging UIViewController

DCIntrospect Introspect is small set of tools for iOS that aid in debugging user interfaces built with UIKit. It's especially useful for UI layouts that are dynamically created or can change during runtime, or for tuning performance by finding non-opaque views or views that are re-drawing unnecessarily. It's designed for use in the iPhone simulator, but can also be used on a device.
iOS Hierarchy Viewer iOS Hierarchy Viewer allows developers to debug their user interfaces. If there are problems with layout calculations, it will catch them by giving a real time preview of the UIViews hierarchy.

DLog

#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...)
#endif

BoxCryptor

Von Boxcryptor gibt es nun auch eine Mac-Version, womit die Verschlüsselungssoftware nun auf vier Plattformen zur Verfügung steht. Zudem kostet die Software in der Basisversion nichts mehr und hat weniger Beschränkungen.

Die Software Boxcryptor arbeitet mit Cloud-Speichern wie Dropbox, Google Drive oder Microsoft Skydrive zusammen. Daten legt sie dort mit 256-Bit-AES-Verschlüsselung ab und lässt sich dabei wie eine virtuelle Festplatte nutzen.

Golem
BoxCryptor

JSLint

Many JavaScript implementations do not warn against questionable coding practices. Yes, that's nice for the site that "works best with Internet Explorer" (designed with templates, scripted with snippets copied from forums). But it's a nightmare when you actually want to write quality, maintainable code.

That's where JavaScript Lint comes in. With JavaScript Lint, you can check all your JavaScript source code for common mistakes without actually running the script or opening the web page.

JavaScript Lint holds an advantage over competing lints because it is based on the JavaScript engine for the Firefox browser. This provides a robust framework that can not only check JavaScript syntax but also examine the coding techniques used in the script and warn against questionable practices.


JavaScript Lint
Online Form

on{X}

on{X} lets you control and extend the capabilities of your Android phone using a JavaScript API to remotely program it.




on{X}

Only the best iOS App Icons

iOS Debugger Magic

iOS contains a number of 'secret' debugging facilities, including environment variables, preferences, routines callable from GDB, and so on. This technote describes these facilities. If you're developing for iOS, you should look through this list to see if you're missing out on something that will make your life easier.

Apple Developer

Wireless Industry Partnership - API Catalog

Welcome to the WIP API Catalog! Here you will find a listing of mobile-related APIs that you can use to expand the functionality of your application or service. Click on the name of each API to find out more about it.

WIP

Detect carrier/operator info

#import
#import


// Setup the Network Info and create a CTCarrier object
CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease];
CTCarrier *carrier = [networkInfo subscriberCellularProvider];


// Get carrier name
NSString *carrierName = [carrier carrierName];
if (carrierName != nil)
  NSLog(@"Carrier: %@", carrierName);


// Get mobile country code
NSString *mcc = [carrier mobileCountryCode];
if (mcc != nil)
  NSLog(@"Mobile Country Code (MCC): %@", mcc);


// Get mobile network code
NSString *mnc = [carrier mobileNetworkCode];
if (mnc != nil)
  NSLog(@"Mobile Network Code (MNC): %@", mnc);


iOS Blog
Apple Documentation

Check SSL server certificate in App

How to check SSL server certificate in App to avoid man-in-the-middle attacks.


- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace 
{
    SecTrustRef trust = [protectionSpace serverTrust];


    SecCertificateRef certificate = SecTrustGetCertificateAtIndex(trust, 0);


    NSData* ServerCertificateData = (NSData*) SecCertificateCopyData(certificate);


    // Check if the certificate returned from the server is identical to the saved certificate in
    // the main bundle
    BOOL areCertificatesEqual = ([ServerCertificateData 
                                  isEqualToData:[MyClass getCertificate]]);


    [ServerCertificateData release];


    if (!areCertificatesEqual) 
    {    
        NSLog(@"Bad Certificate, canceling request");
        [connection cancel];
    }


    // If the certificates are not equal we should not talk to the server;
    return areCertificatesEqual;
}


StackOverflow

Countly mobile analytics platform

Newsstand in real life

The following is required for background downloading to work:
The device must be on WiFi at the time of the push reception. Background downloading will not happen over 3G, nor will the viewer queue it for later download.

Adobe Digital Publishing Suite

We faced the same problem - did anyone out there get background downloading to work when receiving the Newsstand Push Message over 3G?

Sandbox: initiate a Newsstand background download more than once in a 24-hour period

The content of my publication needs to be updated throughout the day. Can I initiate a Newsstand background download more than once in a 24-hour period?

Allowing multiple background downloads for multiple apps would drain system resources, so Newsstand apps are limited to one background download initiated by push notification each day. If you send additional notifications to a device that attempt to initiate a background download, those notifications will be delivered to the device but ignored by Newsstand Kit.

If you want your Newsstand app to deliver breaking news, consider sending an issue via background download and downloading a small amount of additional, up-to-the-minute content when the user launches your app.

For test purposes on development devices only, you can override the built-in limit and initiate more than one background download in a 24-hour period by setting the user default @"NKDontThrottleNewsstandContentNotifications". See Listing 1.

Listing 1  Setting …

Our Mobile Planet - Mobile Statistics from Google

Erfahren Sie mehr über die Smartphone-Verbreitung und -Nutzung in 40 Ländern. Sie haben die Möglichkeit, benutzerdefinierte Diagramme zu erstellen, um mobile Nutzer besser verstehen und fundierte Entscheidungen zu Ihrer mobilen Strategie auf Grundlage von Daten fällen zu können.

Our Mobile Planet

TouchCarousel

TouchCarousel is simple and lightweight jQuery content scroller plugin with touch navigation for mobile and desktop. May be used as carousel, banner rotator and image gallery.

TouchCarousel
RoyalSlider

Facebook App Center

The app store model is winning the evolutionary battle for software businesses. It's how operating system manufacturers are making ongoing money, especially on mobile devices. But now Facebook, which has a social networking platform and not an operating system of its own, has figured a way to take advantage of the model.

c-net

AppBaker

A solution for agencies and traditional web developers to build iPhone apps for their customers. Mix and match from the available modules like maps, photo galleries, push notifications and more, to develop fully customizable, branded apps. AppBaker simplifies the whole process of developing your app so you can focus on the fun, creative parts.

AppBaker

Request an Expedited App Review

Expedited reviews are intended to help developers who are facing extenuating circumstances by fast tracking the release of their app. If you have an urgent release, you may request an expedited review by completing and submitting the form below. Expedited reviews are granted on a limited basis so we cannot guarantee that every request will be expedited.

You can make the most of an expedited review by ensuring your app is compliant with the App Store Review Guidelines and that it has been fully QA'd before you submit it.

Apple Expedited App Review Form

Exclusive: How LinkedIn used Node.js and HTML5 to build a better, faster app

The app is two to 10 times faster on the client side than its predecessor, and on the server side, it’s using a fraction of the resources, thanks to a switch from Ruby on Rails to Node.js, a server-side JavaScript development technology that’s barely a year old but already rapidly gaining traction.

VentureBeat
Backbone.js
Underscore.js

Nice additional reading:
Offline Web Applications

Google Objective-C Style Guide

Objective-C is a very dynamic, object-oriented extension of C. It's designed to be easy to use and read, while enabling sophisticated object-oriented design. It is the primary development language for new applications on Mac OS X and the iPhone.

Cocoa is one of the main application frameworks on Mac OS X. It is a collection of Objective-C classes that provide for rapid development of full-featured Mac OS X applications.

Apple has already written a very good, and widely accepted, coding guide for Objective-C. Google has also written a similar guide for C++. This Objective-C guide aims to be a very natural combination of Apple's and Google's general recommendations. So, before reading this guide, please make sure you've read:

Apple's Cocoa Coding Guidelines
Google's Open Source C++ Style Guide

Note that all things that are banned in Google's C++ guide are also banned in Objective-C++, unless explicitly noted in this document.

The purpose of this document is to…

ImageOptim

ImageOptim optimizes images — so they take up less disk space and load faster — by finding best compression parameters and by removing unnecessary comments and color profiles. It handles PNG, JPEG and GIF animations.

ImageOptim seamlessly integrates various optimisation tools: PNGOUT, AdvPNG, Pngcrush, extended OptiPNG, JpegOptim, jpegrescan, jpegtran, and Gifsicle.

It solves too the Xcode bug: corrupt PNG file.

ImageOptim

Podcast Developing Apps for iOS

Tools and APIs required to build applications for the iPhone platform using the iPhone SDK. User interface designs for mobile devices and unique user interactions using multitouch technologies. Object-oriented design using model-view-controller pattern, memory management, Objective-C programming language. iPhone APIs and tools including Xcode, Interface Builder and Instruments on Mac OS X. Other topics include: core animation, bonjour networking, mobile device power management and performance considerations. Prerequisites: C language and programming experience at the level of 106B or X. Recommended: UNIX, object-oriented programming, graphical toolkits Offered by Stanford’s School of Engineering, the course will last ten weeks and include both the lecture videos and PDF documents. A new lecture will be posted each Wednesday and Friday. Subscribe to this course, and automatically receive new lectures as they become available. Released with a Creative Commons BY-NC-ND license.

Paul Hega…

IBM Worklight

The critical decision to develop a mobile app using HTML5, native code or a hybrid approach involves many parameters such as project budget and timeframe, target audience and required functionality to name a few. But these parameters can change significantly across organizations or even among different projects within the same company.
IBM Worklight enables the development of mobile apps using any of four different approaches.

IBM Worklight

CSS3 Animated Media Queries

A new trend in website design is the use of media queries, this is because of the amount of devices that can now access the internet all the websites need to usable on any device type. This is where responsive design comes into action, this is the process of discovering what device the visitor is using so we can change the design to adapt to the visitor.

Paulund

Scout.me

HTML5 might be the future of web apps, but the new mobile standard hasn’t gotten much play in the car. TeleNav’s Scout division aims to change that with a new navigation system that offers voice-prompted, turn-by-turn directions through your mobile browser. And even better, it’s free. You can even integrate the service in your own service!

Wired

iOS Mask Icons

You will find the iOS mask icons at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/PrivateFrameworks/MobileIcons.framework

Boot Champ

BootChamp sits in the menu bar and provides an easy way to restart into your Windows Boot Camp partition without having to hold down the Option key at startup or change the Startup Disk.
Kainjow

Save any UIView to PNG files

Nice code snippet

CocoaBob
Apple Developer Technical Q&A

[UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES]; [UIImagePNGRepresentation(image) writeToFile:pngPath atomically:YES];

Git Overview

What this isn’t: a Git tutorial. It doesn’t tell you how to set up git, or use it. I don’t cover branches, or merging, or tags, or blobs. There are dozens of really great articles about Git on the web; here are some. What’s here are just some pictures that aren’t about branches or blobs, that I wished I’d been able to look at six months ago when I was trying to figure this stuff out; I still haven’t seen them elsewhere, so here they are now.

Oliver Steele