Referência Técnica – Ferramenta Intel® para port de aplicativos para HTML5 - BETA

Introdução

A ferramenta Intel® para port de aplicativos para HTML5 - BETA (Intel® HTML5 App Porter Tool - BETA) é uma aplicação que auxilia os desenvolvedores de aplicativos móveis a portar código nativo iOS* para HTML5, automaticamente traduzindo partes do código original para HTML5. Esta ferramenta não é é uma solução completa para portar automaticamente 100% das aplicações iOS*, mas ela acelera o processo de port, traduzindo a maior parte possível do código e dos atefatos.

Ela auxilia na tradução dos seguintes artefatos:

  • Código fonte em Objective-C* (e um subset do C) para JavaScript
  • Tipos e chamadas da API iOS* para objetos e chamadas em JavaScript/HTML5
  • Layouts de views dentro dos arquivos XIB (Xcode* Interface Builder) para arquivos HTML + CSS
  • Arquivos de projetos Xcode* para projetos do Microsoft* Visual Studio* 2012

Este documento fornece uma explanação de alto nível sobre como a ferramenta funciona e alguns detalhes sobre as funcionalidades suportadas. Este overview irá ajuda-lo a determinar como processar as diferentes partes do seu projeto e tirar a melhor vantagem das funcionalidades atuais.

Como ela funciona?

A Intel® HTML5 App Porter Tool - BETA é essencialmente um tradutor fonte-para-fonte que pode tratar um número de conversões de Objective-C* para JavaScript/HTML5, incluindo a tradução das chamadas de API. Um número de projetos open source são usados como a base para a conversão, incluindo uma versão modificada do Clang front-end, LayerD framework e jQuery Mobile* para a renderização de widgets no código fonte traduzido.

Tradução de Objective-C* para JavaScript

Em um alto nível, o pipeline da transformação é assim:

O pipeline segue os seguintes estágios:

  • Parsing dos arquivos Objective-C* para uma árvore de sintaxe abstrata (AST - Abstract Syntax Tree).
  • Mapeamento das chamadas da API iOS* API suportadas em chamadas equivalentes em JavaScript.
  • Geração de definições de placeholder para chamadas de API não suportadas.
  • Geração final dos arquivos JavaScript e HTML5.

Sobre a cobertura do mapeamento de API

O mapeamento de APIs do iOS* SDK para JavaScript é uma tarefa que involve uma grande quantidade de esforço. As APIs do iOS* possuem milhares de métodos e centenas de tipos. Por sorte, uma quantidade menor destas APIs são de fato usadas maciçamente pela maioria das aplicações. O gráfico abaixo mostra conceitualmente quantas APIs precisam ser mapeadas para obter um determinado nível de tradução para as chamadas de API.

Atualmente, a Intel® HTML5 App Porter Tool - BETA suporta os tipos e métodos mais usados do:

  • Framework UIKit
  • Framework Foundation

Adicionalmente, ela suporta algumas poucas classes de outros frameworks como o CoreGraphics. Para mais informações sobre as APIs suportadas, consulte esta lista de APIs suportadas.

Geração de definição de placeholders e arquivos "TODO" em JavaScript

Para as APIs que o Intel® HTML5 App Porter Tool - BETA não pode traduzir, a ferramenta gera placeholders de funções em arquivos "TODO". Na aplicação traduzida, você vai encontrar um arquivo TODO para cada tipo que foi utilizado na aplicação original e que possui métodos da API não suportados pela versão atual. Por exemplo, na seguinte porção de código:

-(void)sampleMethod
{
  UIButton* myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

  [myButton setTitle:text forState:UIControlStateNormal];

  myButton.showsTouchWhenHighlighted = YES;
}

Se o ajuste da propriedade showsTouchWhenHighligthed is não for suportado pela ferramenta, ela irá gerar o seguinte placeholder para que você possa prover a sua implementação:

APT.Button.prototype.setShowsTouchWhenHighligthed = function(arg1) {
  // ================================================================ // REFERENCES TO THIS FUNCTION: // line(108): SampleCode.m // In scope: Test.sampleMethod // Actual arguments types: [boolean] // Expected return type: [unknown type] //
  if (APT.Global.THROW_IF_NOT_IMPLEMENTED)
  {
    // TODO remove exception handling when implementing this method
    throw "Not implemented function: APT.Button.setShowsTouchWhenHighligthed";
  }
};

Estes placeholders são criados para métodos, constantes e tipos que a ferramenta não suporta. Adicionalmente, estes placeholders podem ser gerados para outras APIs que não as APIs do SDK do iOS*. Se alguns arquivos da aplicação original (contendo definições de classes ou funções) não forem incluidos no processo de tradução, a ferramenta pode também gerar placeholders para estas definições nestes arquivos que estão faltando.

Em cada arquivo TODO, você pode encontrar detalhes sobre onde estes tipos, métodos ou constantes são usados no código original. Mais que isso, para cada função ou método, o arquivo TODO inclui informações sobre o tipo dos argumentos que forem inferidos pela ferramenta. Usando estes arquivos TODO, você pode completar o processo de tradução provendo a sua própria implementação para as APIs usando os placeholders.

Tradução de arquivos XIB para código HTML/CSS

Intel® HTML5 App Porter Tool - BETA traduz grande parte das definições nos arquivos do Xcode* Interface Builder (ex., arquivos XIB) para código HTML/CSS equivalente. Estes arquivos HTML utilizam markup jQuery* para definir os layouts equivalentes das views existentes nos arquivos XIB originais. Este markup é definido com base na versão traduzida das classes de views e pode ser acessado programaticamente.

Mais do que isso, grande parte dos eventos que estão vinculados com handlers no código da aplicação original são também vinculados com seus respectivos handlers na versão traduzida. Todos os objetos de controles da view, lógica de conexão entre objetos e handlers de eventos de todos os arquivos XIB traduzidos são incluidos no arquivo XibBoilerplateCode.js. Somente um arquivo XibBoilerplateCode.js é criado por aplicação.

A figura abaixo mostra como os diferentes componentes de cada arquivo XIB são traduzidos.

Este é um resumo dos artefatos gerados à partir dos arquivos XIB:

  • Para cada view dentro de um arquivo XIB, um par de arquivos HTML+CSS é gerado.
  • Objetos dentro de arquivos XIB, como Controllers e Delegates, e código de instanciação são gerados no arquivo XibBoilerplateCode.js.
  • Conexões entre objetos e handlers de eventos para as views descritas dentro dos arquivos XIB também são implementados pelo código gerado no arquivo XibBoilerplateCode.js.

Para mais informações sobre os widgets e propriedades suportadas, consulte a seção Funcionalidades de arquivos .XIB suportadas.

Arquitetura das aplicações traduzidas

A aplicação traduzida mantém a mesma estrutura de alto nível que a aplicação original. Construtos do Objective-C* como interfaces, categorias, estruturas em C, funções, variáveis e declarações são mantidas sem mudanças significativas no código traduzido, porém são expressas usando JavaScript.

A execução da Intel® HTML5 App Porter Tool – BETA produz um conjunto de arquivos que pode ser dividido em quatro grupos:

  • O código do app traduzido: Estes são arquivos JavaScript que foram criados como uma tradução dos arquivos Objective-C* originais.
    • Para cada módulo traduzido (ex. cada arquivo .m ) deve existir um arquivo .js com um nome equivalente.
    • O arquivo default.html é o ponto de entrada para o app HTML5, onde todos os outros arquivos .js estão incluidos.
    • Adicionalmente, existem alguns arquivos JavaScript incluidos no diretório \lib que correspondem a algumas bibliotecas de terceiros e a biblioteca da Intel® HTML5 App Porter Tool – BETA que implementa grande parte das funcionalidades que não estão dispon;iveis em HTML5.
  • Arquivos .xib traduzidos (se existirem): Para cada arquivo .xib traduzido, devem existir arquivos .html e .css com nomes correspondentes. Estes arquivos correspondem à sua versão em HTML5.
  • Arquivos JavaScript “ToDo”: Tendo em vista que a tradução de algumas APIs no código original pode não ser suportada pela atual versão da ferramenta, definições em branco como placeholders para estas APIs não mapeadas são geradas no app HTML5 traduzido. Estes arquivos “ToDo” contém estes placeholders e são nomeados com base na classe das APIs não mapeadas. Por exemplo, o placeholder para os métodos não mapeados da classe NSData, devem estar localizados em um arquivo nomeado com algo como todo_api_js_apt_data.js ou todo_js_nsdata.js.
  • Resources: Todos os resources do projeto iOS* original serão copiados para o diretório raiz do app HTML5 traduzido.

Os arquivos JavaScript gerados possuem nomes que são praticamente os mesmos dos arquivos originais. Por exemplo, se você tiver um arquivo chamado AppDelegate.m na aplicação original, você terá no final um arquivo chamado AppDelegate.js na saída traduzida. De forma similar, os nomes das interfaces, funções, campos ou variáveis não são alterados, a não ser que as diferenças entre o Objective-C* e o JavaScript forcem a ferramenta a faze-lo.

De forma resumida, a estrutura de alto nível da aplicação traduzida é praticamente a mesma que a estrutura de alto nível da aplicação original. Sendo assim, o design e a estrutura da aplicação original serão os mesmos que a da versão traduzida.

Sobre as APIs e bibliotecas HTML5 alvo

A Intel® HTML5 App Porter Tool - BETA traduz tanto a sintaxe quanto a semântica da linguagem fonte (Objective-C*) para JavaScript e mapeia as chamadas das APIs do SDK do iOS* para funcionalidades equivalentes em HTML5. Para mapear os tipos e chamadas da API do iOS* em HTML5, utilizamos as seguintes APIs e bibliotecas:

  • A API padrão do HTML5: A ferramenta mapea os tipos e chamadas do iOS* para objetos e funções padrão da API do HTML5 como seu alvo principal. De forma notável, partes consideráveis das APIs suportadas do framework Foundation são mapeadas diretamente para HTML5 padrão. Quando isso não é possível, a ferramenta fornece uma pequena camada de adaptação como parte da sua biblioteca.
  • A biblioteca jQuery Mobile: Grande parte dos widgets UIKit são widgets jQuery Mobile mapeáveis, ou uma composição entre eles e markup padrão HTML5. Os layouts de arquivos XIB também são mapeados para widgets do jQuery Mobile ou outro markup padrão do HTML5.
  • A biblioteca da Intel® HTML5 App Porter Tool - BETA: Ela é uma biblioteca de 'camada-fina' construída sobre o jQuery Mobile e as APIs HTML5 e implementa funcionalidades que não são diretamente disponíveis nestes bibliotecas, incluindo objetos Controller, Delegates e lógica para encapsular widgets jQuery Mobile. A biblioteca fornece uma fachada muito similar às APIs originais que devem ser familiares aos desenvolvedores iOS*. Esta biblioteca é distribuída com a ferramenta e é incluida como parte do código traduzido, no diretório lib.

Você deve esperar que versões futuras da ferramenta irão adicionar de forma incremental mas suporte ao mapeamento de APIs, baseadas em mais análises estatísticas e feedback dos usuários.

Nomes de identificadores traduzidos

No Objective-C*, nomes de métodos podem ser compostos por diversas partes separadas por dois pontos (:) e as chamadas de métodos intercaladas por estas partes, com os argumentos. Tendo em vista que este construto sintático peculiar não está disponível em JavaScript, estes nomes de métodos são traduzidos pela combinação de todas as partes dos métodos, substituíndo os dois pontos (:) por sublinhado (_). Por exemplo, uma função chamada initWithColor:AndBackground: é traduzida para usar o nome initWithColor_AndBackground.

Nomes de identificadores, em geral, podem também ser alterados na tradução se existirem conflitos no escopo do JavaScript. Por exemplo, se você tiver nomes duplicados de interfaces e protocolos, ou se um nome de método e um nome de instância compartilharem o mesmo nome em uma interface. Como as regras de escopo de identificadores são diferentes no JavaScript, você não pode compartilhar nomes entre campos, métidos e interfaces. Em qualquer um destes casos, a ferramenta renomea um dos identificadores em conflito, inserindo um sublinhado (_) antes do nome original.

Dicas adicionais para tirar o máximo da Intel® HTML5 App Porter Tool – BETA

Aqui está uma lista de recomendações para você aproveitar ao máximo a ferramenta:

  • Mantenha o seu código modularizado
    Ter um código fonte bem projetado e arquitetado pode te ajudar a tirar mais vantagens da tradução realizada pela ferramenta. Se os módulos do código fonte original puderem ser facilmente desacoplados, testados e refatorados, o mesmo será possível para o código traduzido. Ter módulos acoplados de forma flexível em sua aplicação original te permitirá isolar os módulos que não forem bem traduzidos para JavaScript. Desta forma, você poderá simplesmente pular estes módulos e selecionar apenas aqueles compatíveis com a tradução.
  • Evite traduzir código fonte de bibliotecas de terceiros que possuam equivelentes em JavaScript
    Para algumas bibliotecas iOS*, você pode encontrar APIs ou bibliotecas substitutas em JavaScript. Exemplos comuns são bibliotecas para fazer o parse de JSON, bibliotecas para interagir com redes sociais ou bibliotecas de utilitários, como a Box2D* para o desenvolvimento de jogos. Se o seu projeto usa originalmente código fonte de terceiros que possui uma versão substituta em JavaScript, tente usar a versão substituta ao invés de usar o código traduzido, sempre que possível.
  • Isole código de baixo nível em C ou C++ atrás de interfaces Objective-C*: A ferramenta atualmente suporta a tradução apenas de Objective-C*. Ela cobre a tradução da maior parte dos construtos da linguagem C, mas ela não suporta algumas funcionalidades de baixo nível como unions, ponteiros ou bit fields. Mais do que isso, a atual versão não supora código em C++ ou em Objective-C++*. Por causa desta limitação, é recomendado que se encapsule este código atrás de interfaces Objective-C* para facilitar qualquer edição adicional, depois da execução da ferramenta.

Concluíndo, ter uma aplicação bem projetada fará a sua vida mais fácil quando for portar o seu código, mesmo em um processo completamente manual.

Informações técnicas adicionais

Esta seção fornece informações adicionais para desenvolvedores e não é requeria para que você use de forma eficiente a Intel® HTML5 App Porter Tool - BETA. Você pode pular esta seção se não estiver interessado nos detalhes de implementação da ferramenta.

Implementação dos passos de tradução

Aqui, você pode encontrar alguns detalhes de alto nível sobre como os diferentes passos de processamento da Intel® HTML5 App Porter Tool - BETA estão implementados.

Parse de arquivos Objective-C* e C

Para fazer o parse de arquivos Objective-C*, a ferramenta utiliza uma versão modificada de um parser clang. Uma versão personalizada do parser é necessária pois:

  • Os arquivos de header do SDK do iOS* não estão disponíveis.
  • O clang é somente usado para o parse dos arquivos fonte (não para compilá-los) e para descarregar o AST para o disco.

A figura seguinte mostra o processo detalhado para o parse de arquivos .m e .c:

Headers do SDK do iOS* não encontrados são inferidos como parte do proceso de parsing. O processo de inferência do header é uma heurístico, então você pode encontrar erros de parse em alguns casos. Além disso, você pode auxiliar o front-end da ferramenta fornecendo a declaração à frente de tipos ou outras definições nos arquivos de header que estão acessíveis para a ferramenta.

Você pode também tentar usar o módulo "Header Generator" em arquivos individuais utilizando a linha de comando. No diretório de binários da ferramenta, você irá encontrar um executável headergenerator.exe que executa este processo.

Transformação da linguagem Objective-C* para JavaScript

A tradução da linguagem Objective-C* para JavaScript involve um número de passos. Podemos dividir o processo entre o que acontece no front-end e o que acontece no back-end.

Passos no front-end:

  • Parsing de arquivos .m e .c para um XML AST.
  • Parsing de comentários dos arquivos .m, .c e .h e armazenamento dos comentários no disco.
  • Tradução de Clang AST em Zoe AST e a re-anexação dos comentários.

A saída do front-end é um programa Zoe. Zoe é uma linguagem abstrata intermediária usada pelo framework LayerD, a engine que é utilizada para aplicar a maior parte das transformações.

O back-end foi completamente implementado usando o LayerD usando classe em  tempo de compilação da linguagem Zoe, que aplicam um número de transformações ao AST.

Passos no the back-end:

  • Tratamento de algumas funcionalidades do Objective-C* como os ajustadores e leitores de propriedades e o merge de categorias em classes Zoe.
  • Conversão de APIs suportadas do iOS* para APIs alvo em JavaScript.
  • Injeção de tipos não suportados da API, ou tipos que foram deixados de fora da tradução pelo usuário.
  • Injeção de métodos dummy para transformações de APIs não encontradas ou qualquer outro código que tenha sido deixado de lado pelo usuário.
  • Geração do código em JavaScript.

Mapeamento da API do iOS* para JavaScript/HTML5

A ferramenta suporta um subconjunto limitado das APIs do iOS*. Este subconjunto foi desenvolvido seguindo informações estatísticas sobre a utilização de cada API. Cada release da ferramenta irá incluir suporte a um número maior de APIs. Se você sentir falta de uma API em particular, o seu feedback sobre isso será muito valioso para a nossa avaliação de suporte à API.

Para algumas APIs, como para Arrays e Strings, a ferramenta fornece o mapeamento direto para objetos e métodos nativos do HTML5. A tabela abaixo apresenta um resumo da abordagem adotada para cada tipo das APIs suportadas atualmente.

Framework Diretriz de mapeamento
Foundation Mapeamento direto para JavaScript quando possível. Se o mapeamento direto não for possível, usar uma nova classe construída com base em JavaScript padrão.
Core Graphics Mapeamento direto para Canvas e APIs relacionadas do HTML5 sempre que possível. Se o mapeamento direto não for possível, usar uma nova classe construída com base em JavaScript padrão.
UIKit Views Prover uma classe similar no pacote APT, como APT.View para a UIView, APT.Label para UILabel, etc. Todas as views são implementadas usando markup e a biblioteca jQuery Mobile. Quando não existirem widgets jQuery equivalentes, construimos novos widgets na biblioteca APT.
UIKit Controllers e Delegates Como o HTML5 não fornece objetos controllers e delegates nativamente, a ferramenta fornece uma implementação da classe base para controllers e delegates dentro do pacote APT.

O mapeamento direto significa que o código original será transformado em JavaScript puro sem nenhum tipo de camada adicional. Por exemplo,

NSArray * anArray = [NSArray arrayWithObjects:@"One",@"Two",@"Three",nil];
// É traduzido para código JavaScript: 
var anArray = ["One", "Two", "Three"];

O mapeamento completo da API acontece no back-end da ferramenta. Este processo é implementado usando classes no momento da compilação e outra infraestrutura fornecida pelo framework LayerD.

Conversão de arquivos XIB para HTML/CSS

Arquivos XIB são convertidos em dois passos:

  • Parse do arquivo XIB e geração de arquivos XML intermediários.
  • Arquivos XML intermediários são convertidos para código final em HTML, CSS e JavaScript.

O primeiro passo gera um arquivo XML - com extensão .gld - para cada view dentro do arquivo XIB, e um arquivo XML adicional com informações sobre outros objetos dentro dos arquivos XIB e conexões entre objetos e views, como outlets e tratamento de eventos.

O secundo estágio é executado dentro do compilador Zoe do LayerD para converter arquivos XML intermediários em código HTML/CSS e JavaScript para duplicar todas as funcionalidades que os arquivos XIB forneciam no projeto original.

O código HTML gerado é o tão similar quanto possível do markup estático usado pela biblioteca jQuery Mobile ou markup padrão HTML5. Para sidgets que não possuem um equivalente no jQuery Mobile,  HTML5, ou se comportam de forma diferente, um markup simples é gerado e tratato por classes na biblioteca APT.

APIs do iOS* suportadas para a Tradução

A tabela a seguir detalha as APIs suportadas pela versão atual da ferramenta.

Notas:

  • Tipos referem à Interfaces, Protocolos, Structs, Typedefs ou Enums

  • Tipo 'C global' significa que não é um tipo, mas uma função global ou constante C suportada

  • Dois pontos nos nomes em Objective-C são substituidos por sublinhados

  • Propriedades do Objective-C são detalhadas como um par de métodos de ajuste/leitura com nomes como 'title' e 'setTitle'

  • Membros estáticos do Objective-C aparecem com um sublinhado pré-fixado como em '_dictionaryWithObjectsAndKeys'

  • Membros herdados não são listados, mas são suportados. Por exemplo, NSArray suporta o método 'count'. O método 'count' não é listado em NSMutableArray, mas é suportado pois ele é herdado de NSArray

Lista de classes, métodos, propriedades e funções suportadas

Tipo Membro
C global CGAffineTransformMake
C global CGColorCreate
C global CGColorRelease
C global CGColorSpaceCreateDeviceRGB
C global CGColorSpaceRelease
C global CGContextAddArc
C global CGContextAddEllipseInRect
C global CGContextAddLineToPoint
C global CGContextAddRect
C global CGContextFillPath
C global CGContextFillRect
C global CGContextMoveToPoint
C global CGContextRestoreGState
C global CGContextRotateCTM
C global CGContextSaveGState
C global CGContextScaleCTM
C global CGContextSetFillColorWithColor
C global CGContextSetLineWidth
C global CGContextSetRGBFillColor
C global CGContextSetRGBStrokeColor
C global CGContextSetStrokeColorWithColor
C global CGContextStrokePath
C global CGContextTranslateCTM
C global CGPointEqualToPoint
C global CGPointMake
C global CGRectContainsPoint
C global CGRectEqualToRect
C global CGRectGetHeight
C global CGRectGetMaxX
C global CGRectGetMaxY
C global CGRectGetMidX
C global CGRectGetMidY
C global CGRectGetMinX
C global CGRectGetMinY
C global CGRectGetWidth
C global CGRectMake
C global CGSizeEqualToSize
C global CGSizeMake
C global NSLocalizedString
C global NSLog
C global NSMakeRange
C global NSStringFromClass
C global UIApplicationMain
C global UIGraphicsGetCurrentContext
C global abs
C global acos
C global acosf
C global arc4random
C global asin
C global asinf
C global atan2
C global atan2f
C global atan
C global atanf
C global atof
C global atoi
C global atol
C global atoll
C global ceil
C global ceilf
C global ceill
C global cos
C global cosf
C global exp
C global expf
C global fabs
C global fabsf
C global floor
C global floorf
C global floorl
C global fmax
C global fmaxf
C global fmaxl
C global fmin
C global fminf
C global fminl
C global fmod
C global fmodf
C global fmodl
C global log
C global logf
C global pow
C global rand
C global random
C global round
C global roundf
C global roundl
C global sin
C global sinf
C global sqrt
C global sqrtf
C global srand
C global srandom
C global tan
C global tanf
CGPoint setX
CGPoint setY
CGPoint x
CGPoint y
CGRect origin
CGRect setOrigin
CGRect setSize
CGRect size
CGSize height
CGSize setHeight
CGSize setWidth
CGSize width
NSArray _array
NSArray _arrayWithArray
NSArray _arrayWithObject
NSArray _arrayWithObjects
NSArray arrayByAddingObject
NSArray arrayByAddingObjectsFromArray
NSArray containsObject
NSArray count
NSArray description
NSArray indexOfObject
NSArray init
NSArray initWithObjects
NSArray isEqual
NSArray isEqualToArray
NSArray lastObject
NSArray objectAtIndex
NSArray objectEnumerator
NSArray subarrayWithRange
NSAutoreleasePool drain
NSAutoreleasePool init
NSBundle NSLocalizedString
NSBundle _mainBundle
NSBundle _pathForResource_ofType_inDirectory
NSBundle init
NSBundle loadNibNamed_owner_options
NSBundle pathForResource_ofType
NSBundle resourcePath
NSCharacterSet _newlineCharacterSet
NSCharacterSet _whitespaceCharacterSet
NSCharacterSet characterIsMember
NSData _data
NSData _dataWithBytes_length
NSData _dataWithData
NSData bytes
NSData description
NSData initWithBytes_length
NSData initWithData
NSData isEqualToData
NSData length
NSDate _date
NSDate _dateWithString
NSDate _dateWithTimeIntervalSince1970
NSDate _dateWithTimeIntervalSinceNow
NSDate compare
NSDate copy
NSDate description
NSDate init
NSDate initWithTimeInterval_sinceDate
NSDate isEqual
NSDate isEqualToDate
NSDate timeIntervalSinceDate
NSDate timeIntervalSinceNow
NSDateFormatter dateFormat
NSDateFormatter dateStyle
NSDateFormatter init
NSDateFormatter setDateFormat
NSDateFormatter setDateStyle
NSDateFormatter setTimeStyle
NSDateFormatter stringFromDate
NSDateFormatter timeStyle
NSDictionary _dictionary
NSDictionary _dictionaryWithDictionary
NSDictionary _dictionaryWithObject_forKey
NSDictionary _dictionaryWithObjectsAndKeys
NSDictionary _dictionaryWithObjects_forKeys
NSDictionary _dictionaryWithObjects_forKeys_count
NSDictionary allKeys
NSDictionary allKeysForObject
NSDictionary allValues
NSDictionary count
NSDictionary initWithObjectsAndKeys
NSDictionary isEqualToDictionary
NSDictionary keyEnumerator
NSDictionary objectEnumerator
NSDictionary objectForKey
NSDictionary valueForKey
NSEnumerator allObjects
NSEnumerator nextObject
NSException _exceptionWithName_reason_userInfo
NSException _raise_format
NSException _raise_format_arguments
NSException initWithName_reason_userInfo
NSException name
NSException raise
NSException reason
NSException userInfo
NSIndexPath _indexPathForRow_inSection
NSIndexPath compare
NSIndexPath initWithIndex
NSIndexPath length
NSIndexPath row
NSIndexPath section
NSLocale init
NSMutableArray _arrayWithCapacity
NSMutableArray addObject
NSMutableArray addObjectsFromArray
NSMutableArray initWithCapacity
NSMutableArray insertObject_atIndex
NSMutableArray removeAllObjects
NSMutableArray removeObject
NSMutableArray removeObjectAtIndex
NSMutableArray replaceObjectAtIndex_withObject
NSMutableData _dataWithCapacity
NSMutableData appendData
NSMutableData initWithCapacity
NSMutableDictionary _dictionaryWithCapacity
NSMutableDictionary initWithCapacity
NSMutableDictionary removeAllObjects
NSMutableDictionary removeObjectForKey
NSMutableDictionary setObject_forKey
NSMutableDictionary setValue_forKey
NSMutableSet addObject
NSMutableSet addObjectsFromArray
NSMutableSet initWithCapacity
NSMutableSet removeAllObjects
NSMutableSet removeObject
NSMutableString _stringWithCapacity
NSMutableString appendFormat
NSMutableString appendString
NSMutableString initWithCapacity
NSNull _null
NSNull description
NSNumber _numberWithBool
NSNumber _numberWithInt
NSNumber _numberWithInteger
NSNumber _numberWithUnsignedInt
NSNumber boolValue
NSNumber floatValue
NSNumber initWithInt
NSNumber intValue
NSNumber isEqual
NSNumber isEqualToNumber
NSNumber stringValue
NSNumber unsignedLongValue
NSObject CreateTypeForJS
NSObject ___foreach___
NSObject _alloc
NSObject _class
NSObject _instancesRespondToSelector
NSObject alloc
NSObject autorelease
NSObject class
NSObject conformsToProtocol
NSObject dealloc
NSObject description
NSObject hash
NSObject init
NSObject instancesRespondToSelector
NSObject isEqual
NSObject isKindOfClass
NSObject isMemberOfClass
NSObject isProxy
NSObject isSubclassOfClass
NSObject performSelector
NSObject performSelector_withObject
NSObject performSelector_withObject_afterDelay
NSObject performSelector_withObject_withObject
NSObject release
NSObject respondsToSelector
NSObject retain
NSRange NSMakeRange
NSRange length
NSRange location
NSRange setLength
NSRange setLocation
NSSet allObjects
NSSet anyObject
NSSet count
NSSet initWithObjects
NSSet isEqualToSet
NSString UTF8String
NSString _string
NSString _stringWithFormat
NSString _stringWithString
NSString _stringWithUTF8String
NSString boolValue
NSString characterAtIndex
NSString compare
NSString compare_options
NSString componentsSeparatedByString
NSString dataUsingEncoding
NSString description
NSString doubleValue
NSString floatValue
NSString hasPrefix
NSString hasSuffix
NSString init
NSString initWithBytes_length_encoding
NSString initWithData_encoding
NSString initWithFormat
NSString initWithString
NSString intValue
NSString integerValue
NSString isEqual
NSString isEqualToString
NSString length
NSString lowercaseString
NSString rangeOfString
NSString rangeOfString_options
NSString rangeOfString_options_range
NSString stringByAddingPercentEscapesUsingEncoding
NSString stringByAppendingPathComponent
NSString stringByAppendingString
NSString stringByReplacingOccurrencesOfString_withString
NSString stringByTrimmingCharactersInSet
NSString substringFromIndex
NSString substringToIndex
NSString substringWithRange
NSString uppercaseString
NSTimer _scheduledTimerWithTimeInterval_target_selector_userInfo_repeats
NSTimer invalidate
NSTimer userInfo
NSURL _URLWithString
NSURL _URLWithString_relativeToURL
NSURL _alloc
NSURL _fileURLWithPath
NSURL _fileURLWithPath_isDirectory
NSURL absoluteString
NSURL baseURL
NSURL host
NSURL initWithString
NSURL initWithString_relativeToURL
NSURL isEqual
NSURL path
NSURL port
NSURL query
NSURLRequest URL
NSURLRequest _requestWithURL
NSURLRequest initWithURL
UIActionSheet buttonTitleAtIndex
UIActionSheet cancelButtonIndex
UIActionSheet delegate
UIActionSheet destructiveButtonIndex
UIActionSheet firstOtherButtonIndex
UIActionSheet initWithTitle_delegate_cancelButtonTitle_destructiveButtonTitle_otherButtonTitles
UIActionSheet numberOfButtons
UIActionSheet setCancelButtonIndex
UIActionSheet setDelegate
UIActionSheet setDestructiveButtonIndex
UIActionSheet setFirstOtherButtonIndex
UIActionSheet setTitle
UIActionSheet showInView
UIActionSheet title
UIActivityIndicatorView activityIndicatorViewStyle
UIActivityIndicatorView hidesWhenStopped
UIActivityIndicatorView initWithActivityIndicatorStyle
UIActivityIndicatorView isAnimating
UIActivityIndicatorView setActivityIndicatorViewStyle
UIActivityIndicatorView setHidesWhenStopped
UIActivityIndicatorView startAnimating
UIActivityIndicatorView stopAnimating
UIAlertView delegate
UIAlertView initWithTitle_message_delegate_cancelButtonTitle_otherButtonTitles
UIAlertView isVisible
UIAlertView message
UIAlertView numberOfButtons
UIAlertView setDelegate
UIAlertView setMessage
UIAlertView setTitle
UIAlertView show
UIAlertView title
UIAlertView visible
UIApplication _sharedApplication
UIApplication becomeFirstResponder
UIApplication delegate
UIApplication openURL
UIApplication resignFirstResponder
UIApplication setDelegate
UIApplication touchesBegan_withEvent
UIApplication touchesCancelled_withEvent
UIApplication touchesEnded_withEvent
UIApplication touchesMoved_withEvent
UIBarButtonItem action
UIBarButtonItem initWithBarButtonSystemItem_target_action
UIBarButtonItem initWithTitle_style_target_action
UIBarButtonItem setAction
UIBarButtonItem setTarget
UIBarButtonItem target
UIBarItem enabled
UIBarItem image
UIBarItem isEnabled
UIBarItem setEnabled
UIBarItem setImage
UIBarItem setTag
UIBarItem setTitle
UIBarItem tag
UIBarItem title
UIButton _buttonWithType
UIButton font
UIButton imageForState
UIButton imageView
UIButton setFont
UIButton setImage_forState
UIButton setTitleColor_forState
UIButton setTitle_forState
UIButton titleColorForState
UIButton titleForState
UIButton titleLabel
UIColor _blackColor
UIColor _blueColor
UIColor _brownColor
UIColor _clearColor
UIColor _colorWithRed_green_blue_alpha
UIColor _colorWithWhite_alpha
UIColor _cyanColor
UIColor _darkGrayColor
UIColor _grayColor
UIColor _greenColor
UIColor _lightGrayColor
UIColor _magentaColor
UIColor _orangeColor
UIColor _purpleColor
UIColor _redColor
UIColor _viewFlipsideBackgroundColor
UIColor _whiteColor
UIColor _yellowColor
UIColor getRed_green_blue_alpha
UIColor getWhite_alpha
UIColor initWithRed_green_blue_alpha
UIColor initWithWhite_alpha
UIControl addTarget_action_forControlEvents
UIControl enabled
UIControl isEnabled
UIControl removeTarget_action_forControlEvents
UIControl sendActionsForControlEvents
UIControl setEnabled
UIDatePicker date
UIDatePicker datePickerMode
UIDatePicker maximumDate
UIDatePicker minimumDate
UIDatePicker setDate
UIDatePicker setDatePickerMode
UIDatePicker setDate_animated
UIDatePicker setMaximumDate
UIDatePicker setMinimumDate
UIDevice _currentDevice
UIDevice beginGeneratingDeviceOrientationNotifications
UIDevice endGeneratingDeviceOrientationNotifications
UIDevice generatesDeviceOrientationNotifications
UIDevice isGeneratingDeviceOrientationNotifications
UIDevice orientation
UIDevice setOrientation
UIDevice userInterfaceIdiom
UIEvent _evnt
UIEvent allTouches
UIEvent typeEvent
UIFont _boldSystemFontOfSize
UIFont _fontWithName_size
UIFont _italicSystemFontOfSize
UIFont _systemFontOfSize
UIFont familyName
UIFont fontName
UIFont pointSize
UIImage _imageNamed
UIImage _imageWithContentsOfFile
UIImage _imageWithData
UIImage drawAtPoint
UIImage drawInRect
UIImage imageOrientation
UIImage initWithContentsOfFile
UIImage scale
UIImage size
UIImageView animationDuration
UIImageView animationImages
UIImageView animationRepeatCount
UIImageView image
UIImageView initWithImage
UIImageView isAnimating
UIImageView setAnimationDuration
UIImageView setAnimationImages
UIImageView setAnimationRepeatCount
UIImageView setImage
UIImageView startAnimating
UIImageView stopAnimating
UILabel enabled
UILabel isEnabled
UILabel lineBreakMode
UILabel numberOfLines
UILabel setEnabled
UILabel setLineBreakMode
UILabel setNumberOfLines
UILabel setText
UILabel setTextAlignment
UILabel setTextColor
UILabel text
UILabel textAlignment
UILabel textColor
UINavigationBar backitem
UINavigationBar barStyle
UINavigationBar delegate
UINavigationBar items
UINavigationBar popNavigationItemAnimated
UINavigationBar pushNavigationItem_animated
UINavigationBar setBarStyle
UINavigationBar setDelegate
UINavigationBar setItems
UINavigationBar setItems_animated
UINavigationBar topItem
UINavigationController delegate
UINavigationController initWithRootViewController
UINavigationController isNavigationBarHidden
UINavigationController isToolbarHidden
UINavigationController navigationBar
UINavigationController navigationBarHidden
UINavigationController popToRootViewControllerAnimated
UINavigationController popToViewController_animated
UINavigationController popViewControllerAnimated
UINavigationController pushViewController_animated
UINavigationController setDelegate
UINavigationController setNavigationBarHidden
UINavigationController setNavigationBarHidden_animated
UINavigationController setToolbarHidden
UINavigationController setToolbarHidden_animated
UINavigationController setTopViewController
UINavigationController setViewControllers
UINavigationController setViewControllers_animated
UINavigationController toolbar
UINavigationController toolbarHidden
UINavigationController topViewController
UINavigationController viewControllers
UINavigationItem backBarButtonItem
UINavigationItem hidesBackButton
UINavigationItem initWithTitle
UINavigationItem leftBarButtonItem
UINavigationItem leftBarButtonItems
UINavigationItem leftItemsSupplementBackButton
UINavigationItem prompt
UINavigationItem rightBarButtonItem
UINavigationItem rightBarButtonItems
UINavigationItem setBackBarButtonItem
UINavigationItem setHidesBackButton
UINavigationItem setHidesBackButton_animated
UINavigationItem setLeftBarButtonItem
UINavigationItem setLeftBarButtonItem_animated
UINavigationItem setLeftBarButtonItems
UINavigationItem setLeftBarButtonItems_animated
UINavigationItem setLeftItemsSupplementBackButton
UINavigationItem setPrompt
UINavigationItem setRightBarButtonItem
UINavigationItem setRightBarButtonItem_animated
UINavigationItem setRightBarButtonItems
UINavigationItem setRightBarButtonItems_animated
UINavigationItem setTitle
UINavigationItem title
UIPageControl currentPage
UIPageControl defersCurrentPageDisplay
UIPageControl hidesForSinglePage
UIPageControl numberOfPages
UIPageControl setCurrentPage
UIPageControl setDefersCurrentPageDisplay
UIPageControl setHidesForSinglePage
UIPageControl setNumberOfPages
UIPageControl sizeForNumberOfPages
UIPageControl updateCurrentPageDisplay
UIPickerView dataSource
UIPickerView delegate
UIPickerView numberOfComponents
UIPickerView numberOfComponentsInPickerView
UIPickerView numberOfRowsInComponent
UIPickerView pickerView_numberOfRowsInComponent
UIPickerView reloadAllComponents
UIPickerView rowSizeForComponent
UIPickerView selectRow_inComponent_animated
UIPickerView selectedRowInComponent
UIPickerView setDataSource
UIPickerView setDelegate
UIPopoverController contentViewController
UIPopoverController delegate
UIPopoverController dismissPopoverAnimated
UIPopoverController initWithContentViewController
UIPopoverController popoverContentSize
UIPopoverController popoverVisible
UIPopoverController presentPopoverFromRect_inView_permittedArrowDirections_animated
UIPopoverController setContentViewController
UIPopoverController setContentViewController_animated
UIPopoverController setDelegate
UIPopoverController setPopoverContentSize
UIPopoverController setPopoverContentSize_animated
UIProgressView initWithProgressViewStyle
UIProgressView progress
UIProgressView progressViewStyle
UIProgressView setProgress
UIProgressView setProgressViewStyle
UIProgressView setProgress_animated
UIScreen _mainScreen
UIScreen applicationFrame
UIScreen bounds
UIScrollView contentOffset
UIScrollView contentSize
UIScrollView delegate
UIScrollView isScrollEnabled
UIScrollView scrollEnabled
UIScrollView scrollRectToVisible_animated
UIScrollView setContentOffset
UIScrollView setContentOffset_animated
UIScrollView setContentSize
UIScrollView setDelegate
UIScrollView setScrollEnabled
UIScrollView setShowsHorizontalScrollIndicator
UIScrollView setShowsVerticalScrollIndicator
UIScrollView showsHorizontalScrollIndicator
UIScrollView showsVerticalScrollIndicator
UISearchBar delegate
UISearchBar placeholder
UISearchBar setDelegate
UISearchBar setPlaceholder
UISearchBar setShowsCancelButton
UISearchBar setShowsCancelButton_animated
UISearchBar setText
UISearchBar showsCancelButton
UISearchBar text
UISegmentedControl imageForSegmentAtIndex
UISegmentedControl initWithItems
UISegmentedControl insertSegmentWithImage_atIndex_animated
UISegmentedControl insertSegmentWithTitle_atIndex_animated
UISegmentedControl isEnabledForSegmentAtIndex
UISegmentedControl numberOfSegments
UISegmentedControl removeAllSegments
UISegmentedControl removeSegmentAtIndex_animated
UISegmentedControl selectedSegmentIndex
UISegmentedControl setEnabled_forSegmentAtIndex
UISegmentedControl setImage_forSegmentAtIndex
UISegmentedControl setSelectedSegmentIndex
UISegmentedControl setTitle_forSegmentAtIndex
UISegmentedControl titleForSegmentAtIndex
UISlider continuous
UISlider isContinuous
UISlider maximumValue
UISlider minimumValue
UISlider setContinuous
UISlider setMaximumValue
UISlider setMinimumValue
UISlider setValue
UISlider setValue_animated
UISlider value
UISplitViewController delegate
UISplitViewController presentsWithGesture
UISplitViewController setDelegate
UISplitViewController setPresentsWithGesture
UISplitViewController setViewControllers
UISplitViewController viewControllers
UISwitch initWithFrame
UISwitch isOn
UISwitch on
UISwitch setOn
UISwitch setOn_animated
UITabBar delegate
UITabBar items
UITabBar selectedItem
UITabBar setDelegate
UITabBar setItems
UITabBar setItems_animated
UITabBar setSelectedItem
UITabBarController delegate
UITabBarController moreNavigationController
UITabBarController selectedIndex
UITabBarController selectedViewController
UITabBarController setDelegate
UITabBarController setSelectedIndex
UITabBarController setSelectedViewController
UITabBarController setViewControllers
UITabBarController setViewControllers_animated
UITabBarController tabBar
UITabBarController viewControllers
UITabBarItem image
UITabBarItem initWithTabBarSystemItem_tag
UITabBarItem initWithTitle_image_tag
UITabBarItem setImage
UITableView allowsSelection
UITableView dataSource
UITableView delegate
UITableView deleteRowsAtIndexPaths_withRowAnimation
UITableView dequeueReusableCellWithIdentifier
UITableView deselectRowAtIndexPath_animated
UITableView indexPathForSelectedRow
UITableView initWithFrame_style
UITableView insertRowsAtIndexPaths_withRowAnimation
UITableView numberOfRowsInSection
UITableView reloadData
UITableView rowHeight
UITableView sectionHeaderHeight
UITableView selectRowAtIndexPath_animated_scrollPosition
UITableView setAllowsSelection
UITableView setDataSource
UITableView setDelegate
UITableView setRowHeight
UITableView setSectionHeaderHeight
UITableView setTableHeaderView
UITableView style
UITableView tableHeaderView
UITableViewCell ImageView
UITableViewCell accessoryType
UITableViewCell contentView
UITableViewCell detailTextLabel
UITableViewCell init
UITableViewCell initWithFrame_reuseIdentifier
UITableViewCell initWithStyle_reuseIdentifier
UITableViewCell isSelected
UITableViewCell selected
UITableViewCell setAccessoryType
UITableViewCell setSelected
UITableViewCell textLabel
UITableViewController initWithStyle
UITableViewController setTableView
UITableViewController tableView
UITextField borderStyle
UITextField delegate
UITextField font
UITextField inputDelegate
UITextField keyboardType
UITextField placeholder
UITextField setBorderStyle
UITextField setDelegate
UITextField setFont
UITextField setInputDelegate
UITextField setKeyboardType
UITextField setPlaceholder
UITextField setText
UITextField setTextAlignment
UITextField setTextColor
UITextField text
UITextField textAlignment
UITextField textColor
UITextView delegate
UITextView editable
UITextView font
UITextView inputDelegate
UITextView isEditable
UITextView setDelegate
UITextView setEditable
UITextView setFont
UITextView setInputDelegate
UITextView setText
UITextView setTextAlignment
UITextView setTextColor
UITextView text
UITextView textAlignment
UITextView textColor
UIToolbar barStyle
UIToolbar items
UIToolbar setBarStyle
UIToolbar setItems
UIToolbar setItems_animated
UITouch locationInView
UITouch tapCount
UITouch view
UIView _animationDelegate
UIView _beginAnimations_context
UIView _commitAnimations
UIView _setAnimationDelay
UIView _setAnimationDelegate
UIView _setAnimationDidStopSelector
UIView _setAnimationDuration
UIView _setAnimationTransition_forView_cache
UIView _setAnimationWillStartSelector
UIView addSubview
UIView alpha
UIView backgroundColor
UIView becomeFirstResponder
UIView bounds
UIView bringSubviewToFront
UIView center
UIView didAddSubview
UIView didMoveToSuperview
UIView didMoveToWindow
UIView exchangeSubviewAtIndex_withSubviewAtIndex
UIView frame
UIView hidden
UIView initWithFrame
UIView insertSubview_aboveSubview
UIView insertSubview_atIndex
UIView insertSubview_belowSubview
UIView isDescendantOfView
UIView isHidden
UIView layer
UIView layoutSubviews
UIView removeFromSuperview
UIView resignFirstResponder
UIView sendSubviewToBack
UIView setAlpha
UIView setBackgroundColor
UIView setBounds
UIView setCenter
UIView setFrame
UIView setHidden
UIView setNeedsDisplay
UIView setNeedsLayout
UIView setSuperview
UIView setTag
UIView setUserInteractionEnabled
UIView sizeToFit
UIView subviews
UIView superview
UIView tag
UIView touchesBegan_withEvent
UIView touchesCancelled_withEvent
UIView touchesEnded_withEvent
UIView touchesMoved_withEvent
UIView viewWithTag
UIView willMoveToSuperview
UIView willMoveToWindow
UIView willRemoveSubview
UIView window
UIViewController becomeFirstResponder
UIViewController didReceiveMemoryWarning
UIViewController hidesBottomBarWhenHidden
UIViewController initWithNibName_bundle
UIViewController loadView
UIViewController navigationController
UIViewController navigationItem
UIViewController resignFirstResponder
UIViewController setHidesBottomBarWhenHidden
UIViewController setNavigationController
UIViewController setTabBarController
UIViewController setTabBarItem
UIViewController setTitle
UIViewController setToolbarItems
UIViewController setView
UIViewController shouldAutorotateToInterfaceOrientation
UIViewController tabBarController
UIViewController tabBarItem
UIViewController title
UIViewController toolbarItems
UIViewController touchesBegan_withEvent
UIViewController touchesCancelled_withEvent
UIViewController touchesEnded_withEvent
UIViewController touchesMoved_withEvent
UIViewController view
UIViewController viewDidAppear
UIViewController viewDidDisappear
UIViewController viewDidLoad
UIViewController viewDidUnload
UIViewController viewWillAppear
UIViewController viewWillDisappear
UIWebView delegate
UIWebView loadHTMLString_baseURL
UIWebView loadRequest
UIWebView setDelegate
UIWebView stringByEvaluatingJavaScriptFromString
UIWindow isKeyWindow
UIWindow keyWindow
UIWindow makeKeyAndVisible
UIWindow makeKeyWindow
UIWindow rootViewController
UIWindow setRootViewController

Funcionalidades suportadas dos arquivos .XIB

Arquivos XIB são criados pelo Xcode* Interface Builder. Estes arquivos tipicamente contém uma representação dos objetos que fazem parte da interface do usuário (UI) definida pelo desenvolvedor. A Intel® HTML5 App Porter Tool – BETA os converte para definições equivalentes em HTML5 (ex. HTML/CSS/JS) específico para cada um dos widgets ou objetos instanciados neles. Ela tamém mapea as configurações de algumas das propriedades de cada widget, como a cor de fundo, alinhamento de texto, tamanho do frame, etc. Para os widgets ou funcionalidades não listadas abaixo, a ferramente pode não gerar qualquer saída correspondendo ao widget não suportado na versão traduzida do arquivo XIB. A lista abaixo descreve em detalhes as propriedades e widgets suportados.

Lista dos widgets/propriedades suportados

Tipo Propriedade
UIActivityIndicator alpha
UIActivityIndicator backgroundColor (somente RGB)
UIActivityIndicator frame (valores: height, width, left, top)
UIBarButtonItem alpha
UIBarButtonItem backgroundColor (somente RGB)
UIBarButtonItem image
UIBarButtonItem title
UIButton alpha
UIButton backgroundColor (somente RGB)
UIButton frame (valores: height, width, left, top)
UIButton textColor (somente RGB)
UIButton titleForNormalState
UIDatePicker alpha
UIDatePicker datePickerMode (valores: 0=time, 1=date, 2=datetime)
UIDatePicker frame (valores: height, width, left, top)
UIImageView alpha
UIImageView backgroundColor (somente RGB)
UIImageView frame (valores: height, width, left, top)
UIImageView image
UILabel alpha
UILabel backgroundColor (somente RGB)
UILabel frame (valores: height, width, left, top)
UILabel text
UILabel textAlignment (valores: left, center, right)
UILabel textColor (somente RGB)
UINavigationBar alpha
UINavigationBar frame (valores: height, width, left, top)
UINavigationItem frame (valores: height, width, left, top)
UINavigationItem leftBarButtonItem
UINavigationItem prompt
UINavigationItem rightBarButtonItem
UINavigationItem title
UINavigationItem title
UINavigationItem title
UIPageControl alpha
UIPageControl backgroundColor (somente RGB)
UIPageControl frame (valores: height, width, left, top)
UIPageControl numberOfPages
UIPickerView alpha
UIPickerView frame (valores: height, width, left, top)
UIProgressView alpha
UIProgressView backgroundColor (somente RGB)
UIProgressView frame (valores: height, width, left, top)
UIProgressView progress
UIScrollView alpha
UIScrollView backgroundColor (somente RGB)
UIScrollView frame (valores: height, width, left, top)
UISearchBar alpha
UISearchBar backgroundColor (somente RGB)
UISearchBar frame (valores: height, width, left, top)
UISearchBar placeholder
UISearchBar text
UISlider alpha
UISlider backgroundColor (somente RGB)
UISlider frame (valores: height, width, left, top)
UISlider maxValue
UISlider minValue
UISlider value
UISwitch alpha
UISwitch backgroundColor (somente RGB)
UISwitch frame (valores: height, width, left, top)
UISwitch on (Posição da chave no início)
UITabBarItem alpha
UITabBarItem backgroundColor (somente RGB)
UITabBarItem frame (valores: height, width, left, top)
UITabBarItem image
UITabBarItem title
UITableView alpha
UITableView backgroundColor (somente RGB)
UITableView frame (valores: height, width, left, top)
UITableViewCell alpha
UITableViewCell backgroundColor (somente RGB)
UITableViewCell frame (valores: height, width, left, top)
UITextField alpha
UITextField backgroundColor (somente RGB)
UITextField borderStyle (valores: textFieldBorderStyleNone, textFieldBorderStyleLine, textFieldBorderStyleBezel, textFieldBorderStyleRoundedRect)
UITextField frame (valores: height, width, left, top)
UITextField text
UITextField textAlignment (valores: left, center, right)
UITextField textColor (somente RGB)
UITextView alpha
UITextView backgroundColor (somente RGB)
UITextView frame (valores: height, width, left, top)
UITextView text
UITextView textAlignment (valores: left, center, right)
UITextView textColor (somente RGB)
UIToolBarNode alpha
UIToolBarNode backgroundColor (somente RGB)
UIToolBarNode frame (valores: height, width, left, top)
UIView alpha
UIView backgroundColor (somente RGB)
UIView frame (valores: height, width, left, top)
UIViewController UINavigationItem
UIViewController UITabBarItem
UIViewController UIView
UIWebView frame (valores: height, width, left, top)
UIWindow alpha
UIWindow backgroundColor (onlysomenteRGB)
UIWindow frame (valores: height, width, left, top)

* Other names and brands may be claimed as the property of others.

Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.