Join Today
+ Odgovori na temu
Prikazujem rezultate 1 do 3 od 3

Hybrid View

  1. #1
    Super-forumaš Postignuća:
    Veteran31 days registered10000 Experience PointsTagger Second Class

    Datum registracije
    Apr 2006
    Mobitel
    6P | Pixel3
    Operater
    Tele2
    Godina
    33
    Postova
    2.307
    Bodovi
    23.828
    Nivo
    37
    Bodovi: 23.828, Nivo: 37
    Bodovi: 23.828, Nivo: 37
    Ukupna aktivnost: 0%
    Ukupna aktivnost: 0%
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    CafeMobil Android aplikacija - 1. dio - postavljanje projekta

    CafeMobil Android aplikacija - 1. dio

    Prije nego krenem sa izradom aplikacije i tutoriala, želim napomenuti da je za praćenje potrebno barem nekakvo predznanje iz programiranja, a bilo bi poželjno da ste upoznati sa objektno orijentiranim programiranjem. Probat ću objasniti sve u što više detalja, baš kao da nikad niste ništa radili za Android.
    Cijeli izvorni kod programa će se nalaziti na GitHub-u
    Ako imate bilo kakvih pitanja, slobodno napišite tu ili u temi koja bude prikladna. Također ako imate koji savjet za nadodati, slobodno, tek sam se nedavno počeo ozbiljnije baviti Android programiranjem tako da sigurno još imam za naučiti puno.

    U ovom prvom dijelu ću samo kreirati projekt sa "Blank Activity" template i objasniti strukturu projekta, najbitnije datoteke i što je sve došlo uz navedeni template.
    Projekt će biti izrađen u Android Studio razvojnom okruženju, možete ga besplatno preuzeti na:
    http://developer.android.com/sdk/index.html

    Pri otvaranju Android Studia, kliknemo na novi projekt i upišemo ime aplikacije i domenu (korištena je domena example.hr što ne postoji). Generiran Package name je hr.example.cafemobil i on mora biti jedinstven, treba se razlikovati od svih drugih aplikacija jer će se instalirati u taj paket na Android uređaju. Također nije ni moguće postaviti aplikaciju na Play Store ukoliko se ime paketa podudara sa drugom aplikacijom.



    U sljedećem prozoru biramo koje sve Android verzije podržavamo. Za početak možemo staviti API 8 što odgovara Androidu 2.2 (Froyo) i po Google-ovoj procjeni radi na skoro 100% uređaja koji se spajaju na Play Store. Ako kasnije bude potrebno koristiti neke funkcije koje nisu podržane u API 8, lako se promijeni Minimum API ili se dodaju support biblioteke koje služe podržavanju starih Android verzija.



    Odabir "Blank Activity" kako sam već spomenuo:



    Sada projekt za odabranim predloškom sadrži sljedeće datoteke:



    Folder "manifests" sadrži AndroidManifest.xml datoteku koja predstavlja aplikaciju Android uređaju, u njoj su osnovne informacije i trenutno izgleda ovako:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="hr.example.cafemobil" >
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    android:icon predstavlja ikonu koja će se prikazati na Androidu
    android:label je naziv aplikacije
    android:theme je tema aplikacije

    Unutar <activity> </activity> tagova, nalaze se informacije o aktivnostima koje se koriste u aplikaciji (u ovom slučaju "MainActivity"). U aktivnostima se prikazuje sadržaj na ekranu i unutar njih se implementiraju funkcionalnosti. Ukoliko se želite baviti Android programiranjem, svakako savjetujem da pročitate detaljnije što je Activity na sledećem linku:
    http://developer.android.com/guide/components/activities.html

    Najvažnije za znati je životni vijek aktivnosti, koji je prikazan na dijagramu ispod



    Unutar <intent-filter> </intent-filter> tagova je označeno da se radi o "MAIN" aktivnosti, odnosno da je prva aktivnost koja se pali prilikom paljenja aplikacije, a "LAUNCHER" znači da se ta aktivnost pokreće iz Android launchera.

    Vrijednosti (@mipmap/ic_launcher, @string/app_name, @style/AppTheme) kao i sve druge koje se referenciraju sa "@" se nalaze u "res" folderu (resources).

    "res" folder trenutno sadrži foldere:
    drawable - slike i xml opisnici izgleda elemenata koje postavljamo u aplikaciju (npr. gumbovi, tekst, itd.)

    layout - xml datoteke sa opisom izgleda aktivnosti/fragmenta (fragmenti trenutno neće biti objašnjavani, nije potrebno na početku).
    Trenutno sadrži activity_main.xml datoteku koja opisuje izgled MainActivity aktivnosti i prilikom otvaranja se prikazuje u design mode:



    Sa lijeve strane se nalazi paleta sa koje možemo jednostavno dodavati nove elemente na ekran, ali više o tome kasnije.. Na dnu imamo izbornik kojim možemo birati između Design i Text mode. Ako izaberemo Text mode, prikazat će se tekst koji se generira kada postavljamo elemente i tamo ih također možemo dodavati i mijenjati.

    menu - xml datoteke sa izbornicima, trenutno se unutra nalazi menu_main.xml koji sadrži opciju "Settings". Ti izbornici se najčešće nalaze u ActionBar-u na Androidu i prikazani su sa 3 točke u gornjem desnom kutu.
    Code:
    <menu 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" tools:context=".MainActivity">
        <item android:id="@+id/action_settings" android:title="@string/action_settings"
            android:orderInCategory="100" app:showAsAction="never" />
    </menu>
    android:id je jedinstveni identifikator pomoću kojeg pristupamo svim xml elementima u Java kodu. Oznaka "@+id" govori da stvori novi "id" sa vrijednosti koja je iza "/".
    android: orderInCategory služi za postavljanje redosljeda kojim se prikazuje izbornik, ako napravimo novi <item> sa orderInCategory="99" on će se prikazati prije njega.
    android:showAsAction="never" je oznaka da taj izbor nikad ne prikaže na samom ActionBar-u, nego da bude sakriven. Ako bi npr. dodali tražilicu, možemo ju postaviti da se uvijek prikazuje.

    mipmap - sadrži png datoteke koje koristimo u aplikaciji. Trenutno aplikacija sadrži 4 png slike sa istim imenom, ali različitim veličinama kako bi se prilagodilo svim veličinama ekrana. Te 4 slike su launcher ikone koje su prije spomenute u AndroidManifest-u.

    values sadrži xml datoteke sa vrijednostima koje koristimo unutar aplikacije. Trenutno su unutra dimens (dimenzije), strings (tekstovi) i styles (tema aplikacije). Vrlo važno je koristiti values datoteke jer npr. tu možemo prilagoditi aplikaciju za sve veličine ekrana u dimens, prevesti sve stringove na drugi jezik i Android sam odabere koji će jezik koristiti, itd. Još česta primjena je colors.xml u kojoj definiramo boje koje će aplikacija koristiti često, pa ako želimo promijeniti boju potrebno je samo tu promijeniti vrijednosti.

    Gradle Scripts sadrži skripte potrebne za kompajliranje projekta, trenutno nam nije puno važno. Ja osobno najčešće koristim build.gradle datoteku jer unutra se dodaju nove biblioteke u projekt.

    I još ostaje java/hr.example.cafemobil folder/paket koji sadrži Java datoteke. Tu se trenutno nalazi samo MainActivity koji predstavlja glavnu aktivnost aplikacije.

    Code:
    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }
    Kod trenutno sadrži 3 funkcije.
    Unutar onCreate funkcije se izvršavaju naredbe prilikom pokretanja aktivnosti (vratite se natrag na dijagram životnog vijeka aktivnosti). Sada se samo postavlja layout na ekran pomoću funkcije setContentView, a parametar je layout koji se nalazi u "/res/layout/activity_main". Unutar Java koda se resursima pristupa sa "R.".
    onCreateOptionsMenu je funkcija koja postavlja izbornik na ekran prilikom paljenja (uočite R.menu.menu_main).
    onOptionsItemSelected funkcija se pokreće prilikom klika na neke od opcija. Trenutno samo provjerava dali je kliknuta akcija settings, ako je istina - vrati true. Još nema nikakvu funkcionalnost.

    Klikom na Run tipku, projekt će se kompajlirati i ponuditi će se instalacija aplikacije na spojeni Android uređaj. Ukoliko nemate Android uređaj, moguće je napraviti novi virtualni uređaj na kojem se mogu aplikacije testirati.
    Pokretanjem aplikacije sada dobijamo ovakav izgled:


    To bi bilo to za sad, nadam se da ima zainteresiranih ljudi Trenutno radim na jednom drugom projektu pa nisam siguran kad ću stići nastavak napisati.


  2. #2
    Hardcore forumaš Postignuća:
    Veteran10000 Experience Points

    Datum registracije
    Aug 2006
    Lokacija
    Zagreb
    Mobitel
    6p, BB9700
    Operater
    Bonbon
    Postova
    595
    Bodovi
    17.148
    Nivo
    31
    Bodovi: 17.148, Nivo: 31
    Bodovi: 17.148, Nivo: 31
    Ukupna aktivnost: 0%
    Ukupna aktivnost: 0%
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Kako si na kraju zamislio aplikaciju?
    Išlo bi preko RSS-a? Znači app ti ne bi dozvolio da se logiraš u forum, jer za to ti treba API?
    U biti, radiš app koji će ispisivati najnovije postove od svih podforuma?

    Inače sve pohvale za trud, da si barem počeo to raditi pred godinu dana kada sam trebao predati android projekt za faks

    P.S.
    Ovaj android studio su opet potpuno prepravili otkad sam ga ja zadnji put koristio...
    ...->3310->7110i->S35->M45->S45->M55->F500i->K700i->E1000->KRZR K1->ipaq 514->i600->G600->Nokia 5000->N97mini->MotoMilestone->i4+BB9700->O2x->Gnex->Xperia Z->LG G3 32 GB->Xperia Z3->6p+Moto360

  3. #3
    Super-forumaš Postignuća:
    Veteran31 days registered10000 Experience PointsTagger Second Class

    Datum registracije
    Apr 2006
    Mobitel
    6P | Pixel3
    Operater
    Tele2
    Godina
    33
    Postova
    2.307
    Bodovi
    23.828
    Nivo
    37
    Bodovi: 23.828, Nivo: 37
    Bodovi: 23.828, Nivo: 37
    Ukupna aktivnost: 0%
    Ukupna aktivnost: 0%
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    = Citat = Izvorno postao lujo_zgb Pregledaj post
    Kako si na kraju zamislio aplikaciju?
    Išlo bi preko RSS-a? Znači app ti ne bi dozvolio da se logiraš u forum, jer za to ti treba API?
    U biti, radiš app koji će ispisivati najnovije postove od svih podforuma?

    Inače sve pohvale za trud, da si barem počeo to raditi pred godinu dana kada sam trebao predati android projekt za faks

    P.S.
    Ovaj android studio su opet potpuno prepravili otkad sam ga ja zadnji put koristio...
    Da, planiran preko RSS-a, nisam još nikad to radio ali nebo trebao biti problem. I da, neće se moći prijavljivali jer nemam API, samo će biti ono što mi RSS dopušta.

    Studio se mijenjao prije, sada je verzija 1+ i nije beta pa pretpostavljam da se neće tako brzo mijenjati. Ako možda misliš na tamniju temu, to sam ja sam postavio i savjetovao bi svima da to naprave jer puno manje umara oči.


 
+ Odgovori na temu

Slične teme

  1. android mob i promjena ikona aplikacija
    By rapajic_st in forum Android
    Odgovora: 3
    Posljednji post: 16-04-2011, 17:54
  2. Prodaja aplikacija na Android Market
    By lekma2 in forum Android aplikacije
    Odgovora: 11
    Posljednji post: 30-10-2010, 00:29
  3. 38 tisuća aplikacija u Android Marketu???
    By Kyzo 051 in forum Android aplikacije
    Odgovora: 22
    Posljednji post: 04-05-2010, 12:58
  4. Odgovora: 2
    Posljednji post: 29-11-2009, 14:32

Bookmarks

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove