Nos últimos dias tive a oportunidade de me aventurar no mundo das native extensions tanto para iOS através de Objective-C (exclusivo em ambiente Mac) como para Android através de Java.
O Objective-C com ambiente de desenvolvimento Xcode foi totalmente novo para mim e após mais de 1 década a trabalhar com linguagens de alto nível, senti um pouco como voltar ao tempo do C++ no secundário mas com um IDE muito mais evoluído mas ainda assim parece ser uma linguagem "primitiva" e pouco produtiva à primeira vista (pessoalmente não gostei muito mas a plataforma iOS é incontestavelmente e de longe a mais lucrativa à data o que só por si é 1 factor determinante).
Após passar algumas horas às aranhas, já me mexia no Xcode e fiz umas brincadeiras com a linguagem Objective-C.
Estudei a filosofia das native extensions e após passar por muitos problemas que podem ocorrer no desenvolvimento de native extensions para iOS, lá consegui colocar aqui a comunicar com o Flex :D
Após isto foi a vez do Android e para quem vem do Flex e ainda por cima o curso na universidade foi viciado em Java, o desenvolvimento para Android foi muito simples, uma curva de aprendizagem quase imediata e bastante agradável (como é bom ter 1 framework de composta e a Google fez um excelente trabalho neste campo).
A performance em ambas as plataformas foi algo de surreal, pelo que as native extensions abre várias portas como a perpetuação do AIR, aceder a recursos específicos da plataforma ou mesmo que não sejam exclusivos, não estejam contemplados no AIR à data e ainda a possibilidade de correr ao nível nativo rotinas consideradas extremamente criticas no que se refer a performance.
A curva de aprendizagem para que vem do Flex e tenha background em Java é extremamente rápida e o mesmo não se verifica com Objective-C mas com perseverança e algumas horas disponíveis, também se chega lá.