Criando sistema do zero- Começar pela codificação da regra de negócio ou pela interfaca( Swing)

Mas os aplicativos nativos de Android são feitos em java, hehehehe, acho que você se preciptou :smiley:

1 curtida

Leia direito antes de se precipitar, eu disse aplicação Java, estou colocando negrito mais uma vez pra deixar claro. Na própria especificação do aparelho vem falando não suportar Java. Tente então executar uma aplicação Java no Android.

O próprio @j-menezes se mostrou experiente de entender isso e defendeu que ainda é usado em plataformas que usam JavaME/j2me.

1 curtida

Bom sou programador java e trabalho profissionalmente a uns 4 anos e nesse meio tempo pude explorar bastante das diferentes maneiras de si lidar com java.

Minha opnião entre Tecnologias desktop.

É que se o sistema for um sistema relativamente simples um retaguarda, controle de estoque. Recomendo fazer em swing mesmo, ainda mais se não tiver muita experiência.
Porque trata-se de uma tecnologia já bem difundida e você terá muitas fontes de consultas para futuros problemas, aumentando assim sua produtividade e facilidade para desenvolver.

Já o caso de um sistema mais complexo, com multimídia e efeitos visuais mais avançados, recomendo JavaFX.

Um cenário diferente agora.
Caso queira aprender uma nova tecnologia java e atual. Recomendo ir para o JavaEE.

Recomendo muito começar com a programar web com JSF, pois trata-se de uma tecnologia muito fácil de se aprender, muito produtiva, e também com a diversidade de componentes já prontos você consegue fazer muito em pouco tempo e com qualidade.

Caso interesse pesquise sobre: JSF, PrimeFaces, BootsFaces, JPA. Caso já tenha alguma experiência com JSF, recomendo agregar a ultilização de CDI(Context Dependency Injection).

1 curtida

Calma cara, não precisa ficar nervoso, hehehe, tudo bem, entendi errado, desculpe. Mas os aplicativos Android são feitos em Java, não Java da Oracle, o Google tem sua própria VM, eles mesmo reimplementaram seus próprios ArrayList, HashMap, etc. Fica na paz.

1 curtida

Sempre vejo o @javaflex falando que Java pra desktop não rola. Não acho ruim, já que sou apenas um aspirante e ter a opinião de alguém que já trabalha na área é bastante importante.

Contudo, acabo ficando com algumas dúvidas e gostaria de aproveitar a discussão para saná-las.

  • O que faz Swing e JavaFX inadequadas para aplicações desktop? É por causa da plataforma Java em si ou é a forma como estas duas ferramentas foram arquitetadas? O problema está mais ligado a performance ou produtividade?

  • Vou criar uma aplicação desktop sem a possibilidade de implementá-la para web. A escolha da linguagem/plataforma não é um problema. Qual seria a melhor aposta hoje? Qual tecnologia usaria?

1 curtida

Opa, poderia passar o link das aplicações JavaFX open source que vc citou?

1 curtida

todo sistema operacional de desktop possui um kit de desenvolvimento de software. É só consultar com o fabricante do sistema operacional que você pretende suportar.

2 curtidas

http://www.jrebirth.org/

Enfim, não da pra eu ficar colocando todas, mas só usar o google que você acha.

Mais alguma pergunta?

:smiley:

1 curtida

O @javaflex não é o dono da verdade, aquilo é a opinião dele, eu trabalho em uma empresa e desenvolvemos aplicações desktops com JavaFX sem problema algum, acho que ele falou em questão de popular, pois realmente para windows tem mais coisa feita em C# do que em Java.

2 curtidas

De uma maneira simples de explicar Swing e JavaFX são ambas tecnologias voltadas para desenvolvimento desktop.

Quando falo desktop a execução será executada e disponibilizada na máquina em questão. E sua interface gráfica será desenhada a partir do recursos de cada sistema operacional. Semelhante a programas feito em C++.
Apesar de JavaFX abrir em HTMLViewer também, se não estou enganado. (Semelhante a alguns apps mobille)

Já o swing tem algumas limitações pois trata-se de uma tecnologia antiga. Uma das grandes dificuldade é a manipulação de arquivos multimídia(imagen, audio, video, etc…).
Já em JavaFX esse problema foi sanado. E com alguns melhorias. Por isso que ele vem substituindo aos poucos o swing que se este irá se tornará obsoleto.

Problema mais próximo a produtividade, pois se tem melhores recursos em JavaFX, porém menos conteúdo de fácil acesso.
Quanto a performance levando em conta que o código seja bem feito, a diferença creio eu que seja pouca, pois o grande diferencial que vejo entre Swing e JavaFX, é mais visual. Pois ambos rodam em cima da mesma VM.

Minha opnião:

Contras:
Alto consumo da RAM.
Necessidade da Versão do java instalado ser a mesma do que o software foi desenvolvido. (Versões diferentes podem funcionar vai depender dos recursos que o programa utiliza)

Pros:
—MULTIPLATAFORMA—
O mesmo programa roda em diferentes S.O.s pois ele não roda nativamente, mas em cima de uma máquina virtual - JVM

Grande comunidade disposta a ajudar e muito conteúdo de fácil acesso para ajudar no desenvolvimento.

Recomendo Java e VB.NET

Ambos por ser de facil aprendizagem, ênfase para o VB. Mercado de trabalho muito grande para estas duas tecnologias. Uma particularidade do java é que para migrar para web relativamente mais simples. Não que isto não seja possivel com ASP.NET.

Além do mercado de java ser maior, pois uma vez que se aprende java. Você é capaz de programar para celulares, desktops, apps web, até embarcado em alguns casos.

Outra linguagem muito interessante também é o C# pode-se facilmente programar para desktop, web, kinect (XBOX). E se assemelha muito ao java. Para quem sabe java não tem muitas dificuldades em migrar.

Espero ter esclarecido um pouco suas dúvidas.

2 curtidas

@pfk66, mas será que quando alguém afirma que Java é ruim pra desktop, que é melhor usar outra coisa, está pensando em manter uma base de código diferente pra cada plataforma?

@rof20004, pensando aqui, talvez a questão esteja mesmo relacionada a popularidade. Com a adoção da ferramenta.

@Matheusrfjava, entre escolher Swing e JavaFX, o segundo ganha, mas minha dúvida é entre tecnologias Java versus outras tecnologias, sabe? Tipo, alguém diz que Java não é bom pra desktop. Beleza, mas qual seria a opção recomendada? Esta foi a dúvida que me ficou.

Já vi gente falando da performance do Java e considerando que seja mesmo a pior das opções, eu aprendi que nem sempre este é um quesito determinante, que é necessário considerar outras coisas como o conhecimento que o time já tem sobre uma certa tecnologia.

Aí penso que se o intuito é criar uma aplicação muito pesada como um editor gráfico como o Photoshop ou AutoCAD, ou um jogo com gráficos de última geração, Java seria a última das opções e o recomendado seria C++, C, e talvez Assembly.

Mas pro caso da pergunta, onde @lyah quer criar um software pra petshop, Java é mais que suficiente, não?

Enfim, para contribuir com links, aqui está um clone do jogo 2048 feito com JavaFX e portado para Android e iOS:

1 curtida

Respondi acima mas creio que não ficou muito claro.

Aqui apresentei ao menos uma alternativa ao java e poque escolhi a mesma. Opção recomendada, puro gosto. Escolhe a que te agrade mais e se sinta melhor.

Java é sim muito mais que suficiente, uma aplicação simples até mesmo javacript e php resolve.

Já com java ela poderá fazer todo o controle do petshop. Inclusive pode comunicar com a receita federal através de um webservice para captura das notas e fiscais e demais opreações.
Inclusive pode até implementar uma IA para sugerir medição a determinado animal com base em dados do monitoramento deles. (Aplicação extramente avançada. Mas que é possivel fazer em java sem muitos problemas)

Nota: Isso tudo usando Swing. Cabe a vocês decidirem se é necessário crucificar a tecnologia.

2 curtidas

Quantos sistemas operacionais pra petshop existem na sua opinião?

1 curtida

Nossa realmente ficou muito mais fácil integrar animações e efeitos visuais na aplicação.

Como distribuo minha aplicação Javafx depois de pronta? Como posso monetiza-la?
Você falou em opensource, ótimo, mas nós programadores precisamos por comida na mesa de vez em quando. :slight_smile:

Minha opinião: Javafx é um avanço em relação a swing, mas não a outras tecnologias de front-end que conseguem ser tão simples quanto Javafx, além de oferecer pro desenvolvedor a possibilidade de distribuir sua aplicação para usuários e ganhar $$.

1 curtida

@lyah, tente começar já com Java EE.

Eu, assim como você, já fiz a mesma pergunta há alguns anos atrás.
Inclusive, já desenvolvi um sistema de gestão completo com Swing, e confesso que gostava bastante. Principalmente pelo suporte imenso que a comunidade dava e ainda dá.

De qualquer modo, pensando em você e na sua carreira, acredito que aprender o “Java Web” vale MUITO apena. Digo, caso seu sistema não lhe dê o retorno desejado (faço votos que dê), e você precise se colocar no mercado de trabalho, dominando esta tecnologia você facilmente conseguirá uma vaga!

Sucesso.

ps: a questão original nem era essa, sorry ^^

1 curtida

Obrigada.
Eu sou iniciante, quais seriam as tecnologias para aprender e utilizar no mercado de trabalho? Estes sistemas que estou fazendo serão usados por comércios pequenos, instalados em um desktop, qual seria a melhor tecnologia para usar? E para usar em grandes empresas, pois minha intenção é atuar no mercado de trabalho.

1 curtida

Olá Maria Obrigada pelo seu retorno.
Esses sistemas que estou fazendo, estou desenvolvendo para familiares que possuem negócios, usando o conhecimento que adquiri na facul e em livros. O que desejo mesmo é ingressar no mercado. A dificuldade que enfrento em aprender Java EE é que os materiais me parecem confusos, parecem coisas desconexas e distintas, você poderia me indicar um roteiro de aprendizado, tipo por onde começar e que caminho seguir? Obrigada!

1 curtida

Olá William

Java Web me parece confuso ainda, gostaria de dominar o java básico para depois aprender o web, que acho mais complexo.

1 curtida

Depende do caso. Opção mais profissional que possa compilar para vários sistemas operacionais? Se realmente precisa atender a diversos sistemas operacionais, C++ é o que eu considero mais profissional. Java vejo como uma opção barata, que torna a vida do programador mais fácil para recursos comuns entre sistemas operacionais. Como usuário eu não gostaria de usar por exemplo um navegador ou um Office feito em Java. Apesar de feito em Java, nem o Eclipse usa Swing ou JavaFx, usa toolkit portável que acessa componentes gráficos nativos de cada sistema operacional, o que gerou pra comunidade o chamado SWT, que sempre foi ignorado, nunca vi ninguém usando profissionalmente, e era muito melhor tecnicamente do que Swing.

No mais, tem vários tópicos que fiz considerações gerais sobre essa questão. Este é um deles: JavaFX realidade ou apenas especulação ?

Fique a vontade sobre suas escolhas, é só minha opinião como já adiantou o @rof20004. Se não é problema pro projeto e assumiram a aposta, então bola pra frente.

2 curtidas

Obrigada, eu recém estou aprendendo a programar, na minha cabeça eu só conhecia o swing e o awt , nem sabia que existia o FX hehe.
Além do JavaFX quais outras ferramentas de interface existem? Eu conheço o swt também.
PS : Realmente a humildade é tudo :slight_smile:

1 curtida