Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Necessitas: port do Qt 4.8 para Android contribuído ao projeto Qt

O port do Qt 4.8 para Android preparado pelo projeto Necessitas, do KDE, foi contribuído ao projeto Qt, informa um diretor da Digia. O código em questão continua sob o controle do Necessitas, mas vai servir como base para um port do Qt 5 para Android.

O port usa o NDK do Android para gerar aplicativos nativos, e um wrapper Java para fazer a interface entre o código nativo e o ambiente. (via h-online.com – “Android port of Qt contributed to Qt Project – The H Open: News and Features”)


• Publicado por Augusto Campos em 2012-11-09

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Adrianodl (usuário não registrado) em 9/11/2012 às 10:58 am

    Seria muito interessante se o Google fizesse um ajuste no seu framework (o NDK) que aceitasse o código escrito em Qt para gerar os fontes no Android.
    Com o tempo o Google teria um “plano B” caso a Oracle continue obstruindo o uso do Java ou pior caso a plataforma Java pare no tempo e fique sem atualizações.

    Porque não o Python? É uma linguagem interpretada que no geral tem desempenho semelhante ao do Java.

    Vinicius (usuário não registrado) em 9/11/2012 às 12:14 pm

    Android possui uma plataforma Java propria e portanto o medo de que Java morra ou pare no tempo sao infundados, pois eh a propria Google que decide o que serah colocado no Dalvik. Dah pra usar Python, soh usar Jython. No mais, Qt vai vai soh contribuir pro Android. Mas com certeza vao cobrar pelo uso em projetos comerciais, o que pode causar um menor numero de adesao das empresas e desenvolvedores.

    Filipe Saraiva (usuário não registrado) em 9/11/2012 às 12:30 pm

    Por que cobrariam pelo uso comercial se Qt já é software livre, licença LGPL, e é disponibilizado gratuitamente no qt-project?

    Marcos (usuário não registrado) em 9/11/2012 às 12:32 pm

    “Com o tempo o Google teria um “plano B” caso a Oracle continue obstruindo o uso do Java ou pior caso a plataforma Java pare no tempo e fique sem atualizações.”
    Bastaria utilizar somente o ndk, não precisa de plano B nenhum. Java não é obrigatório pra Android.

    ” pior caso a plataforma Java pare no tempo e fique sem atualizações.”
    Parou no tempo na época da Sun, que atrasou 3 anos o Java 7. A Oracle o terminou e está mantendo o cronograma do Java 8 em dia, com muitas novidades há anos solicitadas, como o lambda.

    Só que como o Google alegou na justiça que a linguagem do Android não é Java e não tem problema ser incompatível com a linguagem da Sun/Oracle, mais um motivo pra não precisar preocupar com isso.

    Sobre Python, já é possível programar nele pra Android.

    Suhanko (usuário não registrado) em 9/11/2012 às 12:47 pm

    Fico muito contente com o andamento do Qt. Espero que o porte para qt5 seja transparente na construção da aplicação, porque como necessitas hoje o programa fica gigante, fora que tem que instalar o Maestro e algumas libs qt à parte.

    Não vejo a hora!

    Em relação ao python, o grande problema é a criação de interface.

    VInicius (usuário não registrado) em 9/11/2012 às 1:20 pm

    @”Filipe Saraiva”
    O uso do Qt só é gratuito para código que seja open source e se não me engano, deve ser gratuito também.

    Adrianodl (usuário não registrado) em 9/11/2012 às 1:43 pm

    A licença de uso do Qt é totalmente livre.
    Usando a LGPL você pode:
    Trancar o código-fonte e com isso publicar no Windows Phone.
    Como ele gera código em C++ rodar no iOS, depois de passar pelo comp. Xcode.
    Gerar os .apk para o Android.
    Compilar direto para o Symbian.
    Deve ter como compilar pra BB também.
    Fora compilar pra qualquer plataforma PC (Mac,Windows,Linux entre outros SO’s)
    Sistemas embarcados.
    É muito interessante esse framework, pra quem já usa Java, há várias similaridades na forma de escrever o código e nas funções.
    É realmente muito versátil e não exige custos pra adquirir, mas seria ótimo contribuir.
    Quanto ao Python, conheço menos que o mínimo, daí não tenho como comentar.

    Filipe Saraiva (usuário não registrado) em 9/11/2012 às 1:44 pm

    @VInicius, isso era verdade antes do Qt ser LGPL, no tempo que o framework era da Trolltech. Após a compra pela Nokia e a mudança da licença para GPL e LGPL, essa restrição não existe mais.

    Ou seja, usando o Qt LGPL você pode sim criar tanto software livre quanto software proprietário, que sejam grátis ou comerciais (pagos).

    VInicius (usuário não registrado) em 9/11/2012 às 1:45 pm

    @Adrianodl
    soh eh livre se seu codigo for livre e sem custo de uso

    VInicius (usuário não registrado) em 9/11/2012 às 1:46 pm

    @”Filipe Saraiva”
    Eu fiz o download do Qt pra usar e eu vi ambas as licensas em uso, só vc ir lá olhar

    Rodrigo Pinheiro Matias (usuário não registrado) em 9/11/2012 às 2:16 pm

    @Jeremias o desempenho do python é muito superior ao do Java, Qt e Python é um casamento perfeito (binding)

    Filipe Saraiva (usuário não registrado) em 9/11/2012 às 2:50 pm

    @VInicius, você pode usar LGPL para fazer software proprietário sim, sugiro que você leia a licença para remover essa dúvida.

    Quanto ao Qt, ele é LGPL mas você tem a opção de comprar uma licença comercial do framework. Então, se eu posso fazer software proprietário com Qt porque ele é LGPL, por que compraria uma licença comercial? A resposta é: para ter suporte específico da Digia; para não seguir as exigências da LGPL, entre as quais, distribuir as alterações que você fizer na biblioteca; e outras.

    Bozo (usuário não registrado) em 9/11/2012 às 6:53 pm

    @Rodrigo Pinheiro Matias

    Não, não é…

    Acho essas discussões tão chatas …

    Bozo (usuário não registrado) em 9/11/2012 às 7:07 pm

    Complementando:

    Realmente Qt com Python é bastante interessante.

    Mas essa questão de linguagens, mudei minha visão sobre isso depois de dar manutenção em alguns projetos em PL/SQL, Delphi, VB …por mais estranha e por vezes escrota que seja uma linguagem, ela tem seu charme, alem do mais nos força a sair daquela monotonia comoda da nossa linguagem fluente, sem contar pensar com outros paradigmas(procedural, imperativa gambiarativa(VB)).

    Caro Rodrigo vi em alguns Benchmaks que o Python é mais interessante que o Java em várias situações, assim como o Java é mais interessante que o Python em várias outras situações.
    Caro Marcos estudei pouco o NDK mas este não tem uma limitação devido a se ter que compilar o código do app para cada dispositivo que se quer roda-lo?
    Não seria esta justamente esta a vantajem da Dalvik machine? Pois pelo que li ela é compilada para tirar o máximo de proveito do hardware em questão e os apps feitos em SDK utilizam os recursos desta máquina para que os desenvolvedores não percam tempo pensando em compatibilidade de hardware para os mais diferentes celulares.
    Justamente por isso que eu penso no Python como substituto para o Java, e também por que considero o código escrito em Python muito mais elegante e limpo do que o do Java/Dalvik.
    Mas analisando melhor o Google nunca precisará substituir a Dalvik, eles já provaram na justiça que a Dalvik Machine não é a Java Machine, portanto eles podem mante-la com toda a liberdade.

    willian (usuário não registrado) em 10/11/2012 às 12:47 pm

    Para o desenvolvimento para o Android com Python pesquisem por python+kivy é um projeto novo mas parece muito promissor.

    Rodrigo Pinheiro Matias (usuário não registrado) em 11/11/2012 às 12:04 am

    @bozo gostaria de ver o algoritmo em que java tem maior performance que o python. TB acho chato este tipo de discursao mas de certa forma é interessante conhecer estes pontos até pq trabalho a vários anos com as duas.

    @Jeremias VC falou e disse quanto a necessidade de se trocar linguagem eles não precisam provaram na justiça. a ndk permite os dois caminhos java c e c java e o que a qt propôs foi c java e espero logo ver python c java (posso sonhar)

    Carlinhos (usuário não registrado) em 11/11/2012 às 3:30 am

    @Rodrigo,

    http://shootout.alioth.debian.org/u64q/which-programs-are-fastest.php

    Eu também gosto mais de Python do que de Java, mas não precisamos ficar colocando mentiras para defender o Python. A verdade é que o Java tem um compilador JIT muito maduro e difícil de bater. A Sun na época contratou o pessoal do Smalltalk/Self para desenvolver esse compilador, que eram pioneiros na técnica de JIT e que fizeram um ótimo trabalho.

    No mundo Python existe o PyPy que está quase chegando ao desempenho do Java, mas devemos lembrar que ele ainda é experimental. Por exemplo, os módulos de extensões em C para o Python comum não são compatíveis ainda com o PyPy, o que o impede de rodar praticamente todas as bibliotecas e bindings que são usados com o Python comum.

    Agora com respeito a existir um casamento perfeito entre Python e Qt eu devo novamente discordar. A situação melhorou bastante com o lançamento das novas versões do PySide (e do PyQt, que imitaram as últimas ideias do PySide), mas ainda está longe da experiência que é programar para Qt usando a linguagem na qual ele foi feito (C++). Devo lembrar também que a integração do PySide e do PyQt com as IDEs de Python ainda deixa muitíssimo a desejar se comparada à IDE oficial do Qt (o QtCreator), que suporta apenas C++.

    Suhanko (usuário não registrado) em 11/11/2012 às 2:20 pm

    Sinceramente, gosto demais de Python e gosto demais de Qt, mas não vejo sentido em misturar as linguagens. Dá mais trabalho fazer isso do que programar nativamente em qualquer uma das duas; nem pysyde nem pyqt.

    Rodrigo Pinheiro Matias (usuário não registrado) em 12/11/2012 às 8:04 am

    @Carlinhos, continuo querendo ver o algoritmo que o Python não é mais rápido que Java, com sinceridade serio gente não é troll na minha vivencia do dia a dia ainda não consegui ver isto. Quanto ao Qt o que precisei desenvolver sempre foi muito fluido fazer com Qt se pesquisarem meu histórico aqui no forum verão que sou usuário do Kubuntu e isto se dá pelo KDE e as qualidades do Ubuntu logo estou muito próximo da Qt não gosto de falar que desenvolvo em C ou C++ por que isto é uma exceção, hoje tenho desenvolvido algumas coisas, mas como hobista, usando uC ou uC++ para microprocessadores AVR. Sou desenvolvedores de aplicações voltadas as Internet ou seja programa para navegadores/Clientes REST sempre que precisei fazer alguma coisa para Desktop nunca utilizei Java+Swing sempre busquei Python/PyQt4 hoje e Python/PyQt no passado visando o desenvolvimento rápido, o QtCreator é uma ferramenta para C++ e Qt por isto tudo é muito fácil de fazer na mesma assim como o C++ Builder facilitava as coisas para o Borland C++. Eu particularmente utilizo nos meus projetos com Qt o QtDesigner + pyuic4 sou muito feliz e desconheço estas limitações.

    Rodrigo Pinheiro Matias (usuário não registrado) em 12/11/2012 às 8:06 am

    @Carlinhos esta no bm que vc mandou “These are not the only programming languages. These are not the only compilers and interpreters. These are not the only programs that could be written. These are not the only tasks that could be solved. These are just 10 tiny examples.”

    Rodrigo Pinheiro Matias (usuário não registrado) em 12/11/2012 às 8:23 am

    @Carlinhos

    http://shootout.alioth.debian.org/u64q/which-programs-are-fastest.php

    Em todos os algoritmos percebi pontos onde eles podem ser melhorados usar xrange é muito melhor que usar range, te explico:

    I) for x in range(1, 1000):
    II) for x in xrange(1, 1000):

    No caso (I) primeiro será gerado um Array em memória com os valores de 1 até 1000 depois será realizado o laço percorrendo os itens deste array, já a opção II se comporta de forma semelhante ao for do C, do Java os valores são gerados e não armazenados em um array durante a execução. A opção I gera dois pontos críticos a geração dos Arrays e o custo para o coletor de lixo GC desalocar estes array. O grande problema de muitos BM é que eles são feitos para dar resultados e na maioria das vezes os resultados que queremos.

Este post é antigo (2012-11-09) e foi arquivado. O envio de novos comentários a este post já expirou.