Friday, August 30, 2013

Xcode 4.5.2 Release Notes

Resolved Issues


  • Fixed Xcode app and LLDB debugger crashes reported on Xcode 4.5. 12482521, 12482518, 12481393, 12481829, 12481363, 12481302, 12481396, 12482364, 12514294, 12364375, 12481322, 12481370, 12481398, 12481373, 12489094, 12483605, 12481863, 12482083, 12482540, 12481426, 12482542, 12481390, 12482362, 12481885

Editing User Interfaces

  • Improved stability when editing storyboards and using Auto Layout. 12482514, 12482536, 12482526, 12482548


  • Fixed an LLDB memory leak. 12483722
  • Improved behavior when quitting iOS Simulator directly. 12481405

Distributing Apps

  • Fixed occasional Xcode hang when submitting an app to the iOS App Store. 12482847

Xcode 4.6 Release Notes

New Features


  • SDKs:
    • OS X SDK 10.8
    • iOS SDK 6.1
  • Device support (added):
    • iPad mini
    • iPad with Retina display (4th generation)



  • LLVM: New compiler warnings to help find subtle behavioral bugs when using automatic release counting (ARC) and weak references.
  • LLVM: Support for the C++11 user defined literals and unrestricted unions.
  • LLVM: Advanced optimization to merge disjoint stack objects and to reduce the size of allocated stack memory.
  • LLVM: The Type-Based Alias Analysis (TBAA) code optimization is enabled by default.
    You can disable this optimization with the llvm -fno-strict-aliasing option.
    In Xcode projects, the Enforce Strict Aliasing build setting controls this capability.
  • LLVM: Support for Microsoft-style inline assembly for i386 and x86_64.
  • LLVM: Static analyzer supports deeper cross-function analysis of C++ and Objective-C code.
  • otool: Support for disassembly of Intel AVX instructions.
  • otool: Precisely decodes all instructions and skips over data entries in text segments.


  • Xcode UI: Inspects elements of NSArray and NSDictionary objects.
  • LLDB: Reads metadata from the Objective-C runtime.
  • LLDB: Improves support for stepping over inlined functions.
  • LLDB: Prints function argument information in backtraces by default.
  • LLDB: Supports “thread return,” the temporary breakpoint command, and a variety of aliases to add common GDB shortcuts.



  • DEPRECATED: LLVM-GCC compiler and GDB debugger.
    Xcode 4.6 is the last release to include the LLVM-GCC compiler and the GDB debugger.
    Use the LLVM compiler and the LLDB debugger, and file reports at for issues that require the use of LLVM-GCC or GDB.
  • DEPRECATED: Package Maker app.
    Use the productbuild command to create installer packages
  • DEPRECATED: ATS.framework (OS X SDK 10.8).
    The use of the ATS API produces compilation warnings.
    In OS X v10.8 there is no loss of functionality, but there could be areas where performance degrades.
    Replace ATS code (including ATSUI) with Core Text calls (see Core Text Programming Guide for details).

Android Development Tools

Android SDK

The Android Software Development Kit (Android SDK) contains the necessary tools to create, compile and package Android applications. Most of these tools are command line based. The primary way to develop Android applications is based on the Java programming language.
The Android SDK contains the Android debug bridge (adb) which is a tool which allows you to connect to a virtual or real Android device for the purpose of managing the device or debugging your application.

 Google Play

Google offers the Google Play service in which programmers can offer their Android applications to Android users. End users use the Google Play application which allows to buy and install applications from the Google Play service.
Google Play also offers an update service. If a programmer uploads a new version of his application to Google Play, this service notifies existing users that an update is available and allows them to install the update.
Google Play provides also access to services and libraries for Android application programmers. For example it provides a service to use and display Google Maps and another to synchronize application state between different Android installations. Providing these services via Google Play has the advantage that they are available for older Android releases and can be updated by Google without the need for an update of the Android release on the phone.


The reuse of components of other applications leads to the concept of a task in Android; an application can reuse other Android components to archive a task. For example you can trigger from your application another application which has itself registered with the Android system to handle photos. In this other application you select a photo and return to your application to use the selected photo.

Monday, August 26, 2013

Layout resource files

Activities and layouts

Android activities define their user interface with views (widgets) and fragments. This user interface can be defined via XML layouts resource files in the /res/layout folder or via Java code. You can also mix both approaches.

Defining layouts via XML layout files is usually the preferred way as this separates the programming logic from the layout definition. It also allows the definition of different layouts for different devices.