Your SlideShare is downloading. ×
0
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Desenvolvimento multiplataforma
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desenvolvimento multiplataforma

1,678

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,678
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. III Fórum Amazônico de Software Livre Desenvolvimento multiplataforma usando Software Livre Prof.Carlos Araújo [email_address]
  • 2. Roteiro <ul><li>Introdução
  • 3. Free Pascal e Lazarus – um pouco de história
  • 4. Licenças de uso
  • 5. Plataformas suportadas
  • 6. Downloads e instalação
  • 7. Desenvolvimento multiplataforma
  • 8. Suporte a Unicode e a bancos de dados
  • 9. Suporte a Web
  • 10. Considerações finais </li></ul>
  • 11. Introdução <ul><li>Imagine este cenário em uma organização: </li><ul><li>Sistema de automação/financeiro rodando em Windows
  • 12. Sistema de contabilidade executando em Linux
  • 13. A diretoria investiu em Macs para os gerentes
  • 14. Você foi contratado para desenvolver um novo sistema que integra tudo
  • 15. O orçamento cobre apenas o desenvolvimento e implantação do novo software </li></ul><li>Soluções??? </li></ul>
  • 16. Introdução <ul><li>Lazarus é um software livre e de código aberto para RAD (Desenvolvimento Rápido de Aplicações)
  • 17. Baseado no compilador para 32/64 bits Free Pascal – também livre e de código aberto
  • 18. Com eles é possível criar aplicações que rodam em Win32/64, Linux, FreeBSD, MacOS X e WinCE
  • 19. O lema de Lazarus é: “ Escreva uma vez e compile em qualquer lugar ” </li></ul>
  • 20. Um pouco de história <ul><li>A origem do Free Pascal é de meados dos anos 90
  • 21. Era conhecido como FPK-Pascal, devido o nome do seu criador Florian Paul Kaempfl
  • 22. A partir de 1997 começou a ser chamado Free Pascal ou FPC
  • 23. No começo era compilado com o Turbo Pascal
  • 24. Hoje compila a si mesmo e produz código de 32 e 64 bits </li></ul>
  • 25. Um pouco de história <ul><li>Tenta manter compatibilidade com o Turbo Pascal 7.0 e o Delphi 7 – isso é obtido com o uso de diretivas de compilação
  • 26. A versão estável atual do FPC é 2.4.4
  • 27. O Lazarus iniciou em 1999, com os participantes do projeto Megido – também clone do Delphi e logo dissolvido
  • 28. Felipe M. de Carvalho é o brasileiro mais atuante, mantém suporte para WinCE e trabalha em um widgetset para Android </li></ul>
  • 29. Um pouco de história <ul><li>O nome Lazarus originou-se do personagem bíblico que foi resuscitado por Jesus
  • 30. A versão considerada estável é 0.9.30
  • 31. No Lazarus e FPC, as versões que terminam em números pares são estáveis e as ímpares são utilizadas em desnvolvimento
  • 32. É possível usar a versão de desenvolvimento, baixada do SVN </li></ul>
  • 33. Licenças de uso <ul><li>FPC – licenciado sob GPL
  • 34. O IDE é licenciado sob GPL, outra qualquer outra posterior - http://www.gnu.org/copyleft/gpl.html
  • 35. Isso impede que o código fonte de ambos – ou parte dele – seja usado para criar um IDE ou compilador comercial
  • 36. Mas pode ser usado para criar outro projeto open source </li></ul>
  • 37. Licenças de uso <ul><li>A LCL (Biblioteca de componentes) é licenciada sob LGPL Modificada - http://pt.wikipedia.org/wiki/LGPL
  • 38. Trata do uso da LCL juntamente com outros módulos sob outras licenças, garantindo que você não seja obrigado distribuir seus fontes
  • 39. O Synedit (componente base do editor de código) é licenciado sob MPL (Mozila Public License) - http://www.mozilla.org/MPL/
  • 40. Ler COPYING.txt no raiz do Lazarus </li></ul>
  • 41. Plataformas suportadas <ul><li>Windows 32/64 bits – funciona desde Windows 95 até Windows 7
  • 42. Windows CE ou Windows Mobile – para criar aplicações WinCE deve rodar em Windows. Funciona em PDAs e smartphones
  • 43. Já existe uma insfraestrutura básica de um widgetset para Android
  • 44. Linux, FreeBSD e demais sistemas Unix
  • 45. MacOS X </li></ul>
  • 46. Compilação cruzada <ul><li>Criar executáveis de um SO trabalhando em outro
  • 47. Por exemplo, sob Linux criar executáveis Win32
  • 48. Para isso o Lazarus/FPC precisa dos cross-binutils, ferramentas binárias, tais como um linker e um assembler para cada plataforma
  • 49. Acesse o passo a passo aqui
  • 50. Linux para Win32 é um pouco mais simples que Windows para Linux </li></ul>
  • 51. Downloads e instalação <ul><li>A versão estável do Lazarus pode ser baixada em http://sourceforge.net/projects/lazarus/files/
  • 52. Os desenvolvedores oferecem snapshots diários da versão em desenvolvimento, encontrados em http://www.hu.freepascal.org/lazarus/
  • 53. O subversion pode ser obtido em http://svn.freepascal.org/svn/lazarus/trunk
  • 54. O IDE tem opção de compilar a si mesmo ou pode-se usar o make do FPC </li></ul>
  • 55. O IDE <ul><li>Estilo RAD Studio
  • 56. As janelas ficam soltas como no D7, mas podemos instalar o componente AnchorDockingDsgn
  • 57. IDE em português (ou outros idiomas) pode ser configurado
  • 58. Arquivos de backup da aplicação em um diretório separado
  • 59. Não suporta MDI (Múltiplos Documentos)
  • 60. Debugar os fontes é dificil – usa o GNU GDB </li></ul>
  • 61. Covertendo uma aplicação DELPHI <ul><li>Antes de mostrar a conversão vamos criar um Alô Mundo
  • 62. Para converter aplicações Delphi usar as opções de menu Ferramentas: </li><ul><li>Converter unit Delphi para Lazarus
  • 63. Converter arquivo binário DFM para LFM texto... </li></ul><li>Outras opções podem ser usadas para converter projetos, pacotes .lpk, etc. </li></ul>
  • 64. Programação multiplataforma <ul><li>SO e arquiteturas diferem em apresentação, acesso a diretórios, execução de programas externos, etc
  • 65. Lazarus/FPC oferece constantes para sanar algumas diferenças: PathSep, PathSeparator, PathDelim, DirectorySeparator, LineEnding
  • 66. Linux é case sensitive, Windows não
  • 67. Units multiplataforma: por exemplo, no Delphi a unit windows acessa a API do Windows, no Lazarus ela está disponível em LCLIntf </li></ul>
  • 68. Programação multiplataforma <ul><li>Uso da diretiva {$IFDEF} para executar código condicional </li></ul>{$IFDEF LINUX} // código para executar no Linux {$ELSE} // código para executar em outros sistemas {$ENDIF}
  • 69. Programação multiplataforma <ul><li>Outra preocupação é com o layout da interface
  • 70. Os controles precisam se adaptar a tamanhos de fonte, temas e outras características, determinadas por plataformas diferentes
  • 71. Para isso os controles oferecem propriedades que podem ser adequadamente definidas: AutoSize, Anchors, ChildSizing e outras
  • 72. Na propriedade ChildSizing podemos definir um Layout </li></ul>
  • 73. Suporte a Unicode <ul><li>Unicode é um formato de página de caracteres que permite representar qualquer caractere em qualquer idioma e plataforma
  • 74. No Brasil a página padrão no Win é CP1252
  • 75. No Lazarus é obrigatório o uso de Unicode
  • 76. Se migrar uma aplicação do Delphi é preciso converter os arquivos para Unicode
  • 77. Os bancos de dados usados pela aplicação também devem ser configurados para Unicode </li></ul>
  • 78. Bancos de dados <ul><li>SQLdb é o pacote que suporta de forma nativa: PostgreSQL, Oracle, Firebird, MySQL, SQLite e ODBC
  • 79. Pode usar DBF leitura/escrita, Paradox apenas leitura
  • 80. ZeosLib é um pacote de terceiros mais robusto, acessa, além dos mesmos do SQLdb, o Sybase
  • 81. Em WinCE podemos usar SQLite e DBF </li></ul>
  • 82. Suporte a desenvolvimento Web <ul><li>O IDE possibilita a criação de CGI, fastCGI ou módulos Apache usando os componentes fpWeb
  • 83. Iniciativa de criar um framework: lazwebsolutions
  • 84. Exemplo de página criada usando Lazarus: pesquisa sobre Lazarus
  • 85. Uso de webservices : tanto consumo quanto criação
  • 86. Suporte a TCP, HTTP, SMTP e outros Ps usando o pacote não nativo Synapse </li></ul>
  • 87. Considerações finais <ul><li>Apenas uma apresentação de um produto
  • 88. Lazarus é uma alternativa open source e multiplataforma ao Delphi
  • 89. Muitos desenvolvedores estão presos a IDEs antigos
  • 90. O número de usuários vem crescendo vertiginosamente
  • 91. Mais de 1 milhão de downloads no sourceforge, ultimo release foi baixado 35000 em um mês </li></ul>
  • 92. Considerações finais <ul><li>FPC 2.7.1 poderá compilar aplicações para bytecode Java , podendo rodar em qualquer plataforma que tenha uma JVM
  • 93. Delphi XE2 irá compilar para iPad (ARM) usando FPC
  • 94. Lazarus tem bugs sim. Mas qual IDE não tem?
  • 95. De qualquer forma você pode contribuir reportando bugs ou corrigindo-os </li></ul>
  • 96. Onde buscar mais informação <ul><li>http://www.lazarus.freepascal.org/ - wiki, forum, downloads
  • 97. http://www.freepascal.org/ - idem
  • 98. http://groups.google.com/group/lazarus-br - grupo de usuários no Brasil
  • 99. http://www.lazarussupport.com/lazarus/Documentation - documentação, suporte pago
  • 100. http://professorcarlos.blogspot.com - artigos, how-to </li></ul>
  • 101. Onde buscar mais informação <ul><li>http://www.blaisepascal.eu/ - livro em inglês, revista Blaise Pascal Magazine
  • 102. http://goo.gl/Zgu5K - livro em português
  • 103. http://silvioprog.blogspot.com/ - artigos, how-to
  • 104. http://lazarus-cgi.co.cc/cgi-bin/engine.cgi/show_index - CGI em Lazarus/FPC, tutoriais </li></ul>

×