{"id":807,"date":"2021-10-05T04:01:44","date_gmt":"2021-10-05T04:01:44","guid":{"rendered":"https:\/\/es-andreabianchini.it\/andrewsblog\/?p=807"},"modified":"2021-10-12T05:18:40","modified_gmt":"2021-10-12T05:18:40","slug":"a-minimal-app-in-android","status":"publish","type":"post","link":"https:\/\/es-andreabianchini.it\/andrewsblog\/?p=807","title":{"rendered":"A minimal App in Android"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In questo post vi mostro la struttura minimale di una App Android. In realt\u00e0 potrebbe essere resa ancora pi\u00f9 semplice, ma non chiarirebbe bene quali sono le parti che costituiscono l&#8217;App.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Iniziamo con il file AndroidManifest.xml (directory app\/manifests) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;manifest xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    package=\"com.andreabianchini.simpleandroidapp\"&gt;\n\n    &lt;application\n        android:allowBackup=\"true\"\n        android:icon=\"@mipmap\/ic_launcher\"\n        android:label=\"@string\/app_name\"\n        android:roundIcon=\"@mipmap\/ic_launcher_round\"\n        android:supportsRtl=\"true\"\n        android:theme=\"@style\/Theme.SimpleAndroidApp\"&gt;\n        &lt;activity\n            android:name=\".MainActivity\"\n            android:exported=\"true\"&gt;\n            &lt;intent-filter&gt;\n                &lt;action android:name=\"android.intent.action.MAIN\" \/&gt;\n\n                &lt;category android:name=\"android.intent.category.LAUNCHER\" \/&gt;\n            &lt;\/intent-filter&gt;\n        &lt;\/activity&gt;\n    &lt;\/application&gt;\n\n&lt;\/manifest&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Passiamo al file che contiene il programma principale dell&#8217;App, MainActivity.java (directory app\/java) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.andreabianchini.simpleandroidapp;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport android.os.Bundle;\n\npublic class MainActivity extends AppCompatActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Al programma (Activity) principale sopra riportato viene associato un file di risorse, activity_main.xml, (directory app\/res\/layout), che serve a definire l&#8217;aspetto ed i contenuti grafici della schermata associata all&#8217;attivit\u00e0 principale :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".MainActivity\"&gt;\n\n    &lt;TextView\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Hello World!\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintLeft_toLeftOf=\"parent\"\n        app:layout_constraintRight_toRightOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In questo caso la nostra App Android minimale visualizzer\u00e0 una schermata con la scritta : &#8216;Hello World!&#8217;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con l&#8217;ambiente di sviluppo &#8216;Android Studio&#8217; potete generare automaticamente questa applicazione in un minuto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco il risultato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-small\"><img loading=\"lazy\" decoding=\"async\" width=\"485\" height=\"1024\" src=\"https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-485x1024.png\" alt=\"\" class=\"wp-image-808\" srcset=\"https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-485x1024.png 485w, https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-142x300.png 142w, https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-768x1621.png 768w, https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-728x1536.png 728w, https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-970x2048.png 970w, https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122-1200x2533.png 1200w, https:\/\/es-andreabianchini.it\/andrewsblog\/wp-content\/uploads\/2021\/10\/Screenshot_1633406122.png 1440w\" sizes=\"auto, (max-width: 485px) 85vw, 485px\" \/><figcaption>App Android minimale<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo post vi mostro la struttura minimale di una App Android. In realt\u00e0 potrebbe essere resa ancora pi\u00f9 semplice, ma non chiarirebbe bene quali sono le parti che costituiscono l&#8217;App. Iniziamo con il file AndroidManifest.xml (directory app\/manifests) : Passiamo al file che contiene il programma principale dell&#8217;App, MainActivity.java (directory app\/java) : Al programma (Activity) &hellip; <a href=\"https:\/\/es-andreabianchini.it\/andrewsblog\/?p=807\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;A minimal App in Android&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,7],"tags":[],"class_list":["post-807","post","type-post","status-publish","format-standard","hentry","category-android","category-stem"],"_links":{"self":[{"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=\/wp\/v2\/posts\/807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=807"}],"version-history":[{"count":4,"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=\/wp\/v2\/posts\/807\/revisions"}],"predecessor-version":[{"id":834,"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=\/wp\/v2\/posts\/807\/revisions\/834"}],"wp:attachment":[{"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/es-andreabianchini.it\/andrewsblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}