Skip to main content


Showing posts from September, 2013

Never, never, never use absolute paths in iOS apps - file path might change with app update!

In Simulator: /Users/bla/Library/Application Support/iPhone Simulator/6.1/Applications/748B1E31-7187-4D9E-8ACE-A72C1F800255 On Device: /var/mobile/Applications/C67526DF-BF0A-41ED-B8C5-040495CB7865
The last path component is a generated ID for each app. iOS changes this ID after each app update. Therefore, no unserialize absolute path will work after app update.

Submitting an Android App for Kindle Fire

In some cases you may need to recompile your existing Android app before you submit it for distribution to Kindle Fire tablets. The following recommendations address specific instances where you must modify your implementation before submitting your app.

Google Maps=> Use the Amazon Maps API.
Google Cloud Messaging=> Use Amazon Device Messaging.
Google Play In-App Billing=> Use the Amazon In-App Purchasing API.
GPS geo-location on Kindle Fire tablets other than Kindle Fire HD 8.9" 4G
=> Use WiFi geo-location or code your app to degrade gracefully.
Any phone feature=> Code your app to degrade gracefully.
Device orientation=> See Device Orientation.
Unsupported intents=> See Android Intents Supported on Kindle Fire.
Unsupported screen sizes and layouts
=> Declare support for screen sizes in the AndroidManifest.xml.

What is about the Media Player?

Developer Amazon

Cocoa Controls

Open source and commercial UI components for iOS and OS X

Cocoa Controls


A lightweight, easy-to-use side drawer navigation controller.

MMDrawerController is a side drawer navigation container view controller designed to support the growing number of applications that leverage the side drawer paradigm. This library is designed to exclusively support side drawer navigation in a light-weight, focused approach while exposing the ability to provide custom animations for presenting and dismissing the drawer.


Apple's iOS App Store now offers 'last compatible' versions of apps for older devices

In a change to its iOS App Store on Tuesday, Apple is now allowing users of older hardware to download and install the last compatible version of an app supported by their legacy firmware.

Previous versions of your apps are now available for re‑download by users who have already purchased them, allowing customers to use your apps with older devices which may no longer be supported by the current version of your app. If you do not wish to make these versions available, you can manage the availability of your apps' previous versions in the Rights and Pricing section of the Manage Your Apps module in iTunes Connect

Apple Insider


C Macro for writing unit tests with asynchronous operations. Works perfectly with SenTestingKit!

Example blocks

- (void)testDoSomeOperation
    __block BOOL jobDone = NO;

    [Manager doSomeOperationOnDone:^(id data) {
        jobDone = YES;

    WAIT_WHILE(!jobDone, 2.0);
WAIT_WHILE() will stall current runloop while !jobDone is TRUE and throw an STFail if exceeding time limit (2.0 seconds).