iOS Comparison

Goals

  • Know where to start in iOS development

Development environment

  • Comparison
    AndroidiOS
    IDEAndroid Studio / freeXcode / free
    LanguageJavaObjective-C
    VirtualizationAndroid Emulator, GenymotioniOS Simulator

Views

  • Comparison
    AndroidiOS
    Building the interfaceXML elementsPixelbased editor
    LayoutWork with percentages/alignmentsWork with pixels
    ScreenNeed to consider many number of screen sizes and resolutionsSufficient to deal with two different screen sizes iPhone/iPad
    StylingXML attributes, styles and themesProperties in editor panels
    CustomizationsBuild Java class with pixel control over the displayBuild Objective-C class with pixel control over the display

Events

  • Comparison
    AndroidiOS
    Reference interface objectsDeclare member in class, set using id and findViewByIdDeclare member in class, connect as outlet in editor
    Specify event handlerCall method for particular event on interface object. onClick as XML attribute.Call method for particular event on interface object. Connect as outlet in editor.

Data

  • Comparison
    AndroidiOS
    Store simple valuesSharedPreferences APIUserSettings API
    DatabaseSQLiteSQLite
    Database access APILight wrapper around SQLite, SQLiteOpenHelperCore Data that maps tables and columns to classes and class members
    Private filesEach app can create, write and read files that no other app have access toEach app can create, write and read files that no other app have access to
    Shared file systemAccess and API to a file system shared between all appsNone

Testing

  • Comparison
    AndroidiOS
    Testing without deviceEmulator, close to device but slowSimulator, far from device but fast
    Device installation (without store)With cable or download APK file if "Unknown sources" checkedWith cable or download IPA file if device id known to developer and used to sign IPA file (100 devices)