Skip to main content

Posts

Showing posts from May, 2012

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