Desenvolvimento multiplataforma

2.049 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.049
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
25
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento multiplataforma

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

×