Delphi XE4

Delphi XE4 – Conheça as novidades para iOS e mais

Semana passada publiquei aqui no blog que o Delphi XE4 estava para sair, hoje foi lançado o Delphi XE4 e o RAD Studio XE4, o foco desta versão é o desenvolvimento para iOS, traz algumas outras novidades em outras áreas e uma mudança importante em relação ao Delphi Prism.

Agile Brazil 2013 - Eu apoio

Antes de começar quero convidar a todos para o Agile Brazil 2013, o maior evento sobre metodologias ágeis do Brasil que acontece do dia 26 à 28 de junho em Brasília. Este evento eu recomendo de olho fechado, seja você desenvolvedor, gerente de produto, líder de equipe, gerente de projeto ou da área de software deve comparecer. Mais informações acesse este link onde escrevi mais detalhes sobre o evento.

 

Voltando ao tema, pela primeira vez na história do Delphi tivermos um novo release em tão pouco espaço de tempo, há 8 meses atrás foi lançado o Delphi XE3. A principal razão para este lançamento é o suporte a iOS.

Vamos então a um resumo das novidades do Delphi XE4 e a mudança no RAD Studio XE4.

Desenvolvimento para iOS no Delphi XE4

O suporte a iOS está de volta, originalmente foi incorporado no Delphi XE2 e removido no XE3, agora no XE4 traz uma série de mudanças, entre elas:

  • O FireMonkey para iOS sofreu diversas alterações para atender e funcionar melhor em iOS
  • O compilador para iOS é o baseado no novo compilador do Delphi para iOS e não mais no FreePascal
  • O deploy e teste das aplicações podem ser feitos diretos no Mac sem a necessidade de fazer export de projetos como anteriormente
  • O acesso via dbExpress a banco de dados SQLite e InterBase em iOS
  • Uso do ClientDataSet em iOS
  • RTL para iOS
  • Novo DataSnap Client para iOS que suporta TCP/IP, HTTP, HTTPS e REST

Existe uma série de classes, componentes e propriedades específicas para tratar as mais diversas particularidades do iOS e que não estarão disponíveis para Windows e Mac obviamente.

Aproveitando, curta a comunidade Developer Point Brasil, essa comunidade é bem bacana e traz diversos assuntos sobre desenvolvimento de software.

Novo compilador Delphi para Mobile

O compilador Delphi para aplicações mobile é 100% novo e traz diversas mudanças que até aqui são pertinentes ao desenvolvimento mobile com Delphi, entretanto é bom você começar a se preparar porque futuramente essas mudanças serão levadas para o desenvolvimento Desktop.

Todas essas mudanças tem como objetivo modernizar a linguagem, na minha opinião o Delphi precisa disso para mesmo que isso venha trazer incompatibilidade com código legado.

No novo compilador para mobile só existe um tipo de String, o próprio String, não há mais:

  • AnsiString
  • WideString
  • AnsiChar e PAnsiChar
  • PWideChar
  • OpenString
  • ShortString

No novo compilador:

  • Strings são imutáveis (constantes), ou seja, você não poderá manipular String como se fosse um array ( A[1] := ‘S’) e passará a usar TStringBuilder
  • String começam a partir da posição zero, você pode usar $ZEROBASEDSTRINGS para mudar este comportamente no seu código, mas não para a RTL para mobile

Além disso várias mudanças relacionadas ao Automatic Reference Counting, em outras palavras o mecanismo para destruir objetos que afeta o desenvolvimento mobile e irá afetar o desenvolvimento para desktop, este tema é extenso e vou voltar a falar nele em breve, enquanto isso de uma lida neste link.

Perguntas em Aberto

Várias pessoas me perguntaram qual será a política de atualização do Delphi quando uma nova versão do iOS for disponibilizada. Se nada mudou na Embarcadero com relação a isso, muito provavelmente a resposta será.

Caso você tenha comprando a manutenção (Software Assurance) do Delphi, você estará recebendo as atualização da versão atual e novas versões no período de um ano. Caso a Embarcadero não atualize na versão atual, você receberá a nova versão que muito provavelmente terá a atualização.

Enfim, pergunte novamente a Embarcadero sobre isso, pois sem dúvida este é um fator que pode impactar na sua decisão.

Também me perguntaram sobre a performance das aplicações geradas com Delphi para iOS quando comparadas a aplicações geradas com XCode.

Eu não tenho como responder a essa pergunta neste momento e explico porque. As aplicações iOS feitas com Delphi tem como run-time o FireMonkey, o qual tem um esquema próprio para a renderização da aplicação e isso faz uma grande diferença, já aplicações desenvolvida com XCode usam diretamente o iOS SDK.

Será necessário fazer testes para saber se a diferença ou não, caso você venha fazer esse tipo de teste, por favor me avise, tenho interesse em saber o resultado.

Adeus Delphi Prism

Primeira mudança esta relacionada ao RAD Studio que anteriormente trazia 4 IDEs, onde você desenvolvia para Delphi, C++, PHP e .NET. A partir do RAD Studio XE4 o conhecido Delphi Prism não estará mais incluido, com isso o RAD Studio fica composto apenas do Delphi, C++Builder e HTML5 Builder.

O Delphi Prism surgiu em 2009 para substituir o Delphi.NET como parte de um acordo entre Embarcadero e RemObjects, a Embarcadero licenciava a tecnologia da RemObjects e vendia como Delphi Prism.Com o fim do acordo o Prism que é o Oxygene continua no mercado através da RemObjects, os usuários do Prism passarão se assim quiser a usar Oxygene e continuarão tendo todo o suporte da RemObjects o qual continua evoluindo a ferramenta. A RemObjects publicou um comunicado oficial sobre isso em seu blog.

Para finalizar este tópico, vale lembrar que o Oxygene não é apenas uma ferramenta para desenvolvimento .NET, nos dias de hoje já suporta desenvolvimento nativo para iOS, Android e Windows Phone, o que leva a ser um concorrente do Delphi.

Download do ISO do Delphi XE4 e C++Builder XE4

Neste link você pode baixar o ISO completo que inclui as versões XE4 do Delphi e C++Builder ou o trial através do instalador web aqui.

Conclusão

Para os interessados em desenvolver apps para iOS o Delphi XE4 está ai, depois do Delphi XE2 e as inúmeras críticas dos clientes e comunidade, todos esperam que a Embarcadero venha com o Delphi XE4 disponibilizar um produto sólido, de qualidade e maduro para iOS.

Faça os testes você mesmo e comente aqui no blog, em futuros artigos estarei trazendo algumas avaliações feitas por mim mesmo. Aguarde!

42 respostas
  1. Carlos Eduardo L de Souza
    Carlos Eduardo L de Souza says:

    “Também me perguntaram sobre a performance das aplicações geradas com Delphi para iOS quando comparadas a aplicações geradas com XCode”
    Eu fiz exatamente essa pergunta no webinar de apresentação do Delphi para IOS e a resposta foi: “a performance será idêntica”. Vamos ver se é verdade

    Responder
  2. joao0579
    joao0579 says:

    Desculpa, mas acho impossível um app feito em Delphi ficar na mesma velocidade e funcionalidade de um feito direto no xcode, outra coisa muito seria é a atualização do sdk do IOS, pelo que entendi se sair hoje um update do SDK para versão 7.0 este update só sai no “XE5″ é isso mesmo?

    Responder
  3. Fellipe Henrique
    Fellipe Henrique says:

    A verdade é que, está cada vez mais difícil usar o Delphi. Essas políticas da Embarcadero só faz com que a ferramenta perca usuários. Primeiro foi a mentira do DataSnap, que é a melhor coisa do mundo e tals.. aí descobre-se que não vale nada; Depois o DBExpress que era o melhor do mundo até comprarem o FireDAC, Agora pra usar o iOS a empresa tem que atualizar pro XE4, apenas 8 meses depois de uma atualização!!

    Responder
    • Nelson Lima
      Nelson Lima says:

      Amigo, DataSnap é muito bom, talvez vc não esteja sabendo usar. Dbexpress tbm é muito bom, porém há evoluções, vai me dizer q BDE é ruim? Esta defasado, mas era uma baita ferramenta. Assim como o dbexpress as coisas vão evoluindo. O que a Embarcadero precisa é focar em uma ide q possibilite programar nas três camadas de forma integrada e desacoplar tela, layout dos códigos da regra.

      Responder
    • Álison Bissoli
      Álison Bissoli says:

      Datasnap é realmente muito bom. E fiz sistemas robustos com DBExpress, e quanto mais tecnologias de ponta agregadas maior o leque e muito mais fácil e dinâmica a ferramenta se torna. A verdade é que nenhuma tecnologia vem para ficar e pronto, tudo se transforma, melhora, e pelo que acompanho há anos e anos tudo tem se tornado bem melhor. Sempre vejo em nossa comunidade o entusiasmo com o que é novo e melhor, e imensurável nostalgia com o que de tão bom que dá pena de deixa para trás, mas é a primeira vez que vejo alguém reclamando por não ficar na mesmice…

      Responder
    • facebook_fellipe.henrique.560
      facebook_fellipe.henrique.560 says:

      respondi antes, mas parece que foi pra outro tópico.

      No caso, o DataSnap está muito ruim.. péssimo. Tanto que foi comprovado que ele está assim que o próprio Marcos Cantu disse isso, e que melhoraria nos updates do XE3, o que todos viram que não mudou muita coisa. Sistema que usa pouco não há diferença, agora coloca muitos clients.. vai sentir a pressão e não funciona direito. É problemas de conexões fantasma, problemas de conexoes sendo interrompidas sem mais nem menos, problemas com REST, além dos inúmeros MBs de memória que se consome..

      O problema é tanto, que nossa empresa decidiu partir pro RemObject SDK, que ao menos está a mais tempo no mercado que o DataSnap.

      Responder
    • Carlos Souza
      Carlos Souza says:

      Ei Felipe, desculpe, mas Delphi é Delphi, não sei de onde você tirou essa idéia que está cada vez mais difícil usar o delphi. Pelo jeito é mais um que quer aderir ao modismo do C#. Be Happy muy friend!!

      Responder
      • Eliezer
        Eliezer says:

        Andreano, eu fiz o download o ISO, porem não consigo instalar , da um erro de:

        —————————
        Embacadero RAD Studio Installer
        —————————
        ”” is not a valid integer value.
        —————————
        OK
        —————————

        sabe o que pode estar ocorrendo?

        Responder
  4. Nelson Lima
    Nelson Lima says:

    Esse gerente de produtos da Embarcadero sei nao viu….
    1) como é q ele colocam o nome de html5builder ? Sair o html6 vai mudar o nome da ferramenta novamente? E o versionamento como é a fica. Coloca WebBuilder ou outro melhor.

    2) Qual a opção para quem integra com Android?

    Debug simultâneo, integração de IDE, desacoplar o dfm do .pas, relação de strings a são usadas nos componentes. Há muito q andar ainda.

    Responder
  5. Alexandre Garrido
    Alexandre Garrido says:

    Andreano,

    Tem alguma previsão de o Delphi compilar para Linux? Estava esperando isso já para o XE4, mas pelo visto deixou de ser uma prioridade da Embarcadero.

    Responder
    • Lauro Lima
      Lauro Lima says:

      Alexandre. Muito boa a sua pergunta. Mais fique contente, esperas a pouco tempo. Espero isso desde o Delphi 3. Apareceu o Kylix emulando em wine.. Mais.. Foi Só.. Graças a deus minhas Raises de clipper hoje me permite usar xHarbour/harbour e resolver meus problemas.. As outras coisas continuo com Delphi e também gostaria muito que o desenvolvimento Android/Linux e outras dessem certo pois Delphi foi a primeira escolha de muitos programadores para sair das telas de texto e programação estruturada pra Janelas e programação orientada a objeto.. Pelo menos para os pequenos..

      Abraços..

      Responder
    • Michael Martins
      Michael Martins says:

      Existe o Lazarus, que é parecido com o Delphi 7, e é multiplataforma. Você pode instalar facilmente no linux a partir do repositório, ou baixando-o em seu próprio site.

      Responder
  6. Walmir Ribeiro Junior
    Walmir Ribeiro Junior says:

    Olá Andreano
    Acabei de fazer o download da iso do DelphiXe4 mas nao tenho serial para instalar… o que faço pois gostaria de utilizar ele para testes, mesmo que seja por um tempo.. pois quero ver se consigo migrar de uma versao mais antiga para esta e se vale a pena. Desde já agradeço

    Responder
  7. Edmar
    Edmar says:

    Fiz uma App com ibtogo e publiquei no simulador
    Um for inserindo registros no Bd interbase, 1000 registros inseridos por segundos
    Um grid ligado ao clientdataset no Bd local, com 30000 registros, da para navegar sem lentidão

    Responder
  8. Jonathan Scheibel
    Jonathan Scheibel says:

    Andreano Lanusse vou começar a desenvolver para iOS qnd o downlaod terminar.. Conto com você para me orientar, adoro seu blog.
    (não aguento seu freme aqui do lado esquerdo do navegador, qnd vou comentar sempre me atrapalha)

    Grande abraço.

    Responder
  9. Juliano M. Possamai
    Juliano M. Possamai says:

    Sou cliente da Embarcadero, possuo Rad Studio XE2 e trabalho com o Delphi desde a versão 3.0. Existiram muitas melhorias inegáveis nos últimos tempos (p.ex. Datasnap, compilação para 64 bits, …), porém, sinto uma frustração em ver ao longo dos tempos que versões imaturas são lançadas e removidas do mercado, deixando “na mão” o desenvolvedor que acreditou no lançamento (p.ex. iOS no XE2, Linux Kylix, …). Quando instalei o XE2 e verifiquei a forma de compilação para iOS e os “remendos” necessários para compilação. Me questionei se não deveria largar o Delphi e partir para trabalhar com Lazarus e Free Pascal. Não faz sentido pagar mais de R$ 5k em um aplicativo que vai internamente utilizar uma solução Free. Atualmente, mesmo possuindo RadStudio licenciado, estou desenvolvendo em Pascal com uma solução Free porque o RadStudio não atende (compilação para WinCE). Como cliente da Embarcadero, eu espero muito mais de uma versão paga do que teria em uma Free na Internet, porém em vários tópicos isso não é verdade. Gostaria que hoje pudesse escrever os códigos e escolher no gerenciamento de projeto para o que pretendo compilar (Win32, Win64, Linux, iOS, WinCE), exatamente como ocorre com Win32/Win64.

    Responder
    • Roberio
      Roberio says:

      Acho que a embarcadero de alguma forma poderia, ajudar o projeto free pascal a integra para tecnologias que ela não tem compilador tipo linux e wince, mas os caras tem o rei na barriga

      Responder
      • Rafael
        Rafael says:

        Pelo que entendi no ultimo Delphi Tour, o que eles estão fazendo é justamente isso, mudaram a arquitetura de compilação do Delphi para que ele compile diretamente para uma forma por assim dizer “genérica” e dessa genérica compila para qualquer plataforma de destino, dessa forma eles não precisam mexer muito na ponta de cá (IDE) e sim da parte “genérica” para final, o que agilizaria tudo e geraria uma maior compatibilidade entre os códigos.

        Responder
  10. Juliano M. Possamai
    Juliano M. Possamai says:

    Certamente a remoção dos tipos de string no desenvolvimento para desktop gerará muito mais problemas do que soluções. Alguém já avaliou que a compatibilidade do Delphi com dll escritas em outras linguagens depende do uso de certos tipos de strings? A indústria de equipamentos (balanças, leitores, ECF, eq. análises/exames, …) não irá adequar suas dlls de comunicação porque o Delphi resolveu eliminar os outros tipos de string e trabalhar só com 1 tipo. Já tivemos problemas com o Unicode na versão 2009, onde aplicativos tiveram quer ter todas as declarações de String alteradas para Ansistring para funcionarem com dll de impressoras fiscais (tinha um motivo e foi superado). Agora já é anunciado que “ …. mesmo que venha trazer incompatibilidade com código legado.” Ou seja, o foco é apenas nos clientes novos? Algum impacto na troca de versão geralmente ocorre, mas dessa forma, preciso repensar os projetos novos em IDE vou começar o desenvolvimento deles. Porque não usam uma solução, a meu ver mais equilibrada, onde, se na listagem de plataformas incluir iOS e essa estiver selecionada para compilação, gere erro na compilação. Se estiver selecionado (p.ex. 64-bit) compilará e gerará alerta, caso exista declarações de outros tipos. Ressalto que quero continuar trabalhando com Delphi, mas preciso ter segurança que o que estou escrevendo hoje servirá amanhã e, no máximo precisarei fazer alguns ajustes e não adequar a aplicação inteira. Andreano, certo de sua compreensão, estou a disposição para contribuir. Uso o Ba-bá do Delphi, mas quero que exista continuidade naquilo que estou desenvolvendo.

    Responder
  11. Juliano M. Possamai
    Juliano M. Possamai says:

    Com relação ao DataSnap é uma excelente ferramenta. Utilizo em aplicações distribuídas pelo país, algumas acessando via 3G/2G e com bom resultado. Efetuei algumas mudanças na forma de uso, onde passo as informações concatenadas para o servidor processar tudo de uma vez e devolver o retorno, ao invés de efetuar várias chamadas de leitura/gravação client-server. Deste modo, além de resolver o problema de transações abertas com queda de link, a performance ficou muito melhor.

    Responder
  12. Roberio
    Roberio says:

    Andreano Lanusse ja viu os posts do roberto sobre data snap, eu mesmo estou tendo alguns problemas quando o acesso passa de 50 , já viu o mormot segue links

    http://robertocschneiders.wordpress.com/2012/11/22/datasnap-analysis-based-on-speed-stability-tests/
    (Tem 2 posts com xe3 e xe3 update 1)

    http://andremussche.blogspot.com.br/2013/01/datasnap-ro-rtc-mormot-wcf-node-speed.html

    http://synopse.info/fossil/wiki?name=SQLite3+Framework

    Sei que voce não esta mais na equipe da embarcadero, mas ainda esta presente na comunidade, datasnap vs mormot , parece brincadeira, mas convenhamos que datasnap é nativo, e mantido pela embarcadero, mormot é opensource mantido pela pequena comunidade, so que se testamos com 2010 xe xe2 xe3 e estou testando com xe4, melhorou que não trava ou fecha, mas performance ………….., dai pergunto sua opnião 2010 – xe4 (4 anos) mesmo sendo nativo, será que devo esperar para o marco cantu e equipe da um jeito nisso?

    Obg pela grande ajuda a comunidade

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      @Roberio,

      Eu conheço os artigos mencionados e comentei em um deles, minha opinião está lá.

      Sem dúvida o Mormot é uma excelente opção, entretanto não atende a tudo.

      Eu acho que você tem que usar a tecnologia que melhor lhe atende e o fornecedor que lhe de o melhor suporte, se a Embarcadero não está resolvendo o problema do DataSnap e você já falou com eles então veja as outras alternativas.

      Responder
  13. Acyr
    Acyr says:

    Foi desenvolvida uma aplicação com o XE2 para o IOS que usa o Free pascal, pelo entendi não é compativel as unidades e componentes no XE4, então teremos que desenvolver novamente a aplciação?

    Responder
  14. marcelo
    marcelo says:

    Andreano, preciso de sua ajuda para tirar uma dúvida…
    Já trabalhei bastante tempo com Delphi 5 e 7, e estou tentando voltar ao ambiente embarcadero!

    Quais as diferenças entre o RAD Studio XE4, e o Html5 Builder?

    Gostaria de saber se os mesmos aplicativos para mobile que são feitos no RAD Studio, utilizam as mesmos padrões e ferramentas utilizadas dentro do HTML5 Builder?

    O RAD Studio seria voltado para desenvolvimento desktop, baseado no nosso velho amigo pascal?
    Enquanto o HTML5 Builder apenas utiliza PHP para linguagem de server?

    Por exemplo, se eu optar em desenvolver apenas aplicativos mobile e web-based, o HTML5 Builder seria a solução ideal para minha necessidade??

    Agradeço antecipadamente,
    Abraços

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      @Marcelo,

      O HTML5 Builder é apenas uma ferramenta para desenvolvimento web que usa PHP e JavaScript, além de trazer bibliotecas para mobile.

      Como parte do RAD Studio você tem o Delphi e C++Builder, que pode usar para desenvolvimento desktop.

      No caso de aplicativos para mobile e web-based, tem muitas outras opções no mercado, recomendo avaliar outras além do HTML5 Builder para tirar uma conclusão.

      Responder

Trackbacks & Pingbacks

  1. […] aqueles que usam Delphi para desenvolver para iOS, lembre-se que você precisa solicitar ao pessoal do macincloud que […]

Deixe uma resposta

Quer participar da discussão?
Fique a vontade para contribuir!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>