Como utilizar um mesmo código em Desktop, Mobile e Web


Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/wp-db.php on line 3030

Deprecated: Creation of dynamic property Jetpack_Carousel::$localize_strings is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel.php on line 353
O Nirvana do programador

O nirvana de todo programador é quase com certeza ter um único código para ser utilizado em quantas plataformas seja possível. Isso tem muita vantagens, entre elas não limitar o campo de escolha do cliente e se preocupar uma única vez com o código.

Para eliminar discussão supérflua, já vou avisando que isso é virtualmente impossível já que diferentes plataformas atendem a diferentes requisitos e que é exatamente por isso que existem. Então em última analise sempre haverão pequenas nuances que só serão possíveis de serem executadas nesta ou naquela plataforma e não na outra.

Tem Javascript no seu futuro

Dito o obvio, vamos para o não tão obvio. Tal vez você não tenha reparado mas estamos andando a passos agigantados em direção a uma linguagem onipresente. Javascript está em todas as plataformas desde seu navegador até dispositivos embarcados, cada vez oferece maior performance e está cheio de livrarias e documentação para tudo quanto é lado.  Em outras palavras: Mais tarde ou mais cedo, você vai ter que utilizar Javascript e alguma livraria para não morrer na tentativa.

A proposta do YeAPF é unificar o melhor dos dois mundos disponibilizando para o programador um conjunto de funções bem sedimentadas de ambos os lados sobre o qual ele possa construir seu aplicativo.

O exemplo

Decidi então construir um único exemplo em três estágios e com três aplicações diferentes utilizando o mesmo código em todo lugar que seja possível e quando não, mostrar o por que não pode e como sair dessa sem cair na insanidade.

Eis o mapa do monstro:

 Funcionalidade desenvolvida
 Consulta os dados de uma cidade a partir do seu nome utilizando um datalist e um inputFornece duas telas permitindo obter dados sobre idioma e uma lista de outas cidades similares clicando nas quais é possível voltar à primeira telaPermite a edição de alguns dados da base para atualizar o nome do presidente, o PIB e a população por exemplo
Webweb01web02web03
Desktopdesktop01desktop02desktop03
Mobilemobile01mobile02mobile03

O leitor deste blog então, pode começar de cima para baixo e de esquerda para direita em cada um dos exemplos que irão aumentando de complexidade na medida em que caminhamos.

Caso o leitor já esteja acostumado pode ir direto ao que lhe interessa mas – como há algumas coisas novas sob o capô do YeAPF e os exemplos são minúsculos – não faria mal em dar uma olhada.

Os dados do exemplo

Para construir este exemplo, utilizamos o tradicional banco de dados world que a Finlândia disponibiliza e Microsoft, Oracle e outras utilizam nos seus treinamentos. Você mesmo pode fazer download aqui: http://dev.mysql.com/doc/index-other.html

Este banquinho que é antigo, por sinal, está composto de apenas três tabelas: City, Country e CountryLanguage mas com interações e dados suficientes como para tornar a pesquisa interessante.

A historinha triste deste post

Este post começou a ser escrito em 26 de Dezembro de 2014. Naquela época estavamos na versão 0.8.40. Atualmente (8 de Maio de 2019) estamos na 0.8.62 mas por conta da filosofia de compatibilidade reversa, o código é compatível e plenamente funcional.

Todavia por conta desse “lag” todos os posts estão sendo revisados.


Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /home/inovacao/public_html/yeapf.com/wp/wp-includes/category.php on line 383
Posted in Desenvolvimento, Yet Another PHP Framework