Pergunta. Qual a melhor forma de criar uma APP ?

A resposta mais acertada passa por fazer uma website, ou modificar parte de uma website, para funcionar numa app.

Diferenças entre app android e app iOS (Apple)

A Apple andróide pode ser construída a partir de uma aplicação disponível para o efeito. Esta aplicação é cedida gratuitamente pela Google e pode ser descarregada sem quaisquer custos. Aqui pode ser programada a sua aplicação web. Embora pareça fácil, na prática a situação é um pouco mais complicada. Desde já devemos considerar as seguintes dificuldades:

  1. A aplicação Android Studio é muito pesada e a sua instalação é muito demorada. Há que transferir muitos ficheiros e as indicações sobre o progresso da instalação são poucas.
  2. Após instalar o Android Studio, devemos instalar um emulador para simular o funcionamento da aplicação. A instalação deste emulador nem sempre é óbvia e é sempre demorada.
  3. A aplicação corre em Java, não são necessários conhecimentos excepcionais desta linguagem, basta que conheça uma linguagem de programação orientada a objetos e o Intellisense ajuda a resolver. De referir que para fazermos a nossa aplicação necessitamos de mexer apenas com três ficheiros, um dos quais só é necessário para permitirmos o acesso à Internet e o outro tem que ver com o desenho da aplicação. Claro que o terceiro trata do código.
  4. O processo de teste da aplicação, usando o emulador, é muito lento. Prepare-se para tempos de espera na ordem dos 10-15 minutos.

Como publicar no Google Play?

Após terminada a aplicação e após o teste com o emulador ter mostrado que a nossa aplicação funciona como como devemos proceder?

Neste artigo abordamos apenas a aplicação Android, por duas razões: a primeira é que a aplicação pode ser disponibilizada no Google Play por um custo bastante razoável (25 USD, nesta altura). Atenção eu entre preço é um preço de assinatura. Paga os USD 25 e tem uma conta onde pode publicar as suas APP. O Google Play exige que para cada APP seja preenchido um questionário com perguntas como enquadramento do tipo de aplicação (Entretenimento, Jogos etc.) e outras questões mais prosaicas do tipo “A aplicação promove os valores do nazismo”.

Para publicar no App Store as exigências são maiores logo ao nível do custos (100USD) até às características da aplicação.

Por outro lado não há um software disponibilizado pela Apple para criar APP, da mesma forma como a Google disponibiliza o Android Studio.

Como descarregar a aplicação para o telemóvel?

Logo que a aplicação seja disponibilizada no Google Play a mesma está disponível para download.

Quais as dificuldades na criação de uma aplicação Android?

Há várias dificuldades quando pretendemos criar uma App. Desde logo tem que ver com o acesso a Base de dados. Qualquer site web deve ser dinâmico e por isso necessitamos de aceder a base de dados. Termos uma APP que não pode fazer usos do acesso a base de dados (tal como fazemos com ASP ou PHP) é uma limitação muito grande. Perguntemos para que serve uma APP estática? Qual o interesse de construir este tipo de aplicação? Por outro lado a APP não deve substituir o site web, ou seja quando temos uma loja online não fará muito sentido criar uma APP que mostre a loja online, para isso qualquer pessoa pode aceder pelo browser do telemóvel e consultar a loja online, ou seja a app não acrescenta nada ao website. Assim uma app deve ser uma extensão do website. Por exemplo: imaginemos que envia os produtos por correio registado, com track Number portanto, faria sentido ter uma APP que permitisse ao cliente seguir a sua encomenda. Neste caso estaríamos a dar uma utilidade à APP. Ainda se esta aplicação permitisse que o seu utilizador pudesse ter a sua base de registos, podendo adicionar registos e eliminá-los então a APP seria de uma utilidade bem maior e seria uma oferta que o seu cliente não quereria perder.

Como programar uma APP?

A forma mais interessante de desenvolvermos esta APP é criar uma aplicação (no Website) que resolva este problema e criar uma APP para esta aplicação. Portanto, a APP mostraria o Website sem o utilizador perceber que assim é. Há duas dificuldades neste processo:

  1. O utilizador quando carrega a APP não deve poder usar o botão de Retroceder do telemóvel, ou seja teríamos que reprogramar este botão.
  2. Os links existentes dentro da aplicação, fazem com que esta passe para o browser, ou seja todos os links da nossa aplicação devem ser programados para abrir como APP e não links no Browser (é fácil, basta uma instrução)

Solução usando o Android  Studio

Há vários componentes no Android Studio, caixas de texto, imagens, etc componentes que quem está habituado a trabalhar com aplicações orientadas a objetos conhece bem. Uma delas interessa-nos é o componente website. Este componente permite mostrar um website no telemóvel e é isso que pretendemos.

Necessitamos apenas de mexer em três ficheiros: São eles:

  1. MainActivity.java – aqui deve ser escrito o código. No fundo é colocado um componente webView, dar-lhe um nome e carregá-lo com o website que pretendemos. Também aqui deve ser controlado co botão de Backspace do telemóvel e os links da APP continuarem a abrir na APP e não utilizar o Browser.
  2. AndroidManifest.XML – neste ficheiro é dada a autrização para aceder à internet
  3. Content-main.XML – neste ficheiro controlamos a visualização da APP. Sera que necessitamos de padding, por exemplo?

Exigências a ter em conta para publicar a APP no Google Play

Para publicarmos a aplicação no Google Play é importante termos os seguintes elementos:

  1. Título da APP
  2. Breve descrição da APP
  3. Descrição completa da APP (full description), o que faz quem a produziu, quais as suas limitações etc.
  4. Screenshot da aplicação – várias imagens que mostram a aplicação em funcionamento.
  5. Icon da aplicação – tamanho do ícone deve ser 512×512, chama-se a tenção para o respeito destes valores, nem mais nem menos um pixel.
  6. Fracture Graphic – Trata-se de uma imagem de 1024×500 que serve para promover a aplicação.

Passemos ao código:

Código no ficheiro mainActivity.java

   public class MainActivity extends AppCompatActivity {
private WebView myWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        myWebView=(WebView)findViewById(R.id.webView);
        WebSettings WebSettings=myWebView.getSettings();
        WebSettings.setJavaScriptEnabled(true);
        myWebView.loadUrl("https://cheirabem.com");
        myWebView.setWebViewClient(new WebViewClient());
    }
    @Override
    public void onBackPressed() {
        if(myWebView.canGoBack()){
            myWebView.goBack();
        }else {
            super.onBackPressed();
        }
    }

    

O código começa em MyWebView=(WebView)…

Esta instrução o que faz é procurar o componente webView e atribuí-lo à variável myWebView. Repare que esta tem que ser declarada antes.

A instrução

myWebView.setWebViewClient(new WebViewClient());

evita que a aplicação saia para o browser web.

Por outro lado é criada a função onBackPressed() que permite o retrocesso se tal for possível, senão nada faz.

Código no AndroidManifest.xml

 

<uses-permission android:name=”android.permission.INTERNET”></uses-permission>

    <application

Neste código apenas devemos permitir o acesso à internet

Código no content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainActivity"
tools:showIn="@layout/activity_main">

<WebView
android:layout_width="368dp"
android:layout_height="495dp"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp"
android:id="@+id/webView"/>
</android.support.constraint.ConstraintLayout>

Aqui interessa atender à definição do componente WebView

Iremos desenvolver uma App que ficará disponível brevemente. Nessa altura serão reforçadas as indicações aqui referidas. Brevemente estará disponível.