Ανάπτυξη εφαρμογών Android
|
|
- Ανθούσα Μεσσηνέζης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Ανάπτυξη εφαρμογών Android Σημειώσεις βασισμένες στην 'επίσημη' εκπαίδευση της Google από το Udacity και το StackOverflow Ιωάννης Γαβιώτης /6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 1
2 Διαδικασία ανάπτυξης εφαρμογών Android 1 Σχεδίαση Ξεκινάμε σχεδιάζοντας σε χαρτί τη διεπαφή χρήστη (User Interface, UI) της εφαρμογής. Μεταφέρουμε στον υπολογιστή γράφοντας έγγραφο XML με ειδικές ετικέτες. Δοκιμάζουμε το αποτέλεσμα με τον οπτικοποιητή Λεξιλόγιο με εξήγηση των όρων (αγγλικά) developers.google.com/android/for-all/vocab-words/ 2 Προγραμματισμός Προσθέτουμε κώδικα που συνδέεται με συμβάντα του UI και υλοποιεί τη συμπεριφορά της εφαρμογής. Ο κώδικας γράφεται στη γλώσσα προγραμματισμού Java (αργότερα ίσως σε Kotlin). Απαιτείται να έχουμε εγκαταστήσει το περιβάλλον ανάπτυξης Java και το σχετικό πρόγραμμα της Google. (Υπάρχουν και εναλλακτικές.) Μπορεί να βιάζεσαι να λερώσεις τα χέρια σου στον κώδικα, αλλά ξεκίνα σχεδιάζοντας τις οθόνες της εφαρμογής στο χαρτί. 3 Έλεγχος Για να δοκιμάσουμε την εφαρμογή είτε τη στέλνουμε σε ένα κινητό και την εκτελούμε εκεί (γρήγορη εκτέλεση), είτε την εκτελούμε σε ένα προσομοιωτή κινητού που εκτελείται στο περιβάλλον ανάπτυξης (πλήρες debugging). 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 2
3 Σύνδεση συσκευής με υπολογιστή Βήμα 2 Από τις Ρυθμίσεις του κινητού στις "Επιλογές για προγραμματιστές", χρειάζεται να ενεργοποιήσεις "Εντοπισμός σφαλμάτων USB" και αργότερα "Εγκατάσταση μέσω USB". Εγκαθιστώ το (δωρεάν) πρόγραμμα MyPhoneExplorer από που διαχειρίζεται τη σύνδεση PC κινητού μέσω του MPE Client στο Android. Μπορείς να συνδέεσαι ασύρματα μέσω WiFi ή Bluetooth (δίχως καλώδιο USB), συγχρονίζεις κλήσεις, SMS, επαφές, ημερολόγια, κλπ (άχρηστο για εμάς), βλέπεις το σύστημα αρχείων του κινητού κατοπτρίζεις την οθόνη του κινητού στην οθόνη του PC. Βήμα 1 Εγκαθιστώ στο PC το πρόγραμμα διαχείρισης του κινητού ή της ταμπλέτας από τον κατασκευαστή (Xiaomi, Samsung, HTC, κλπ). Έτσι μπαίνουν οι drivers που επιτρέπουν την επικοινωνία PC κινητού. Καρφώνω το USB καλώδιο που συνδέει τις συσκευές. Αν η επικοινωνία είναι OK, το κινητό θα φαίνεται στις συσκευές μέσα στο "Ο υπολογιστής μου". Επίσης, θα αναγνωρίζεται στη "Διαχείριση Συσκευών" (ΔΕΝ πρέπει να υπάρχει κάποιο κίτρινο θαυμαστικό.) 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 3
4 Σχεδίαση όψης κειμένου TextView Όψη (View) είναι μια τετράγωνη περιοχή ορατή πάνω στην οθόνη. Έχει πλάτος (width), ύψος (height) και μερικές φορές χρώμα φόντου (background) και άλλες ιδιότητες. Θα δούμε τρεις βασικούς τύπους όψεων (υπάρχουν δεκάδες): TextView Προβάλει κείμενο. ImageView Προβάλει γραφικά, πχ σχέδιο ή φωτογραφία. Button Είναι μια TextView ευαίσθητη στην αφή: αν πατήσεις πάνω της με το δάκτυλό σου θα αποκριθεί κάνοντας κάτι. Επίσης, υπάρχουν τα ViewGroup (ομάδες όψεων) που είναι πάλι όψεις συχνά αόρατες που περιέχουν και τοποθετούν άλλες όψεις στο εσωτερικό τους. Λεξιλόγιο IDE = Integrated Development Environment = Περιβάλλον ανάπτυξης (Χρησιμοποιείται το Android Studio.) Κώδικας γράφεται σε γλώσσα Java. XML = γλώσσα μαρκαρίσματος Συντακτικό και όροι XML: element, tag, self-closing tags, attribute names & values Ονοματοδοσία camelcase Μονάδες μέτρησης Ξεχάστε εικονοστοιχεία (pixel) και χιλιοστά. Στο Android χρησιμοποιούμε density independent pixel (dp) να μετράμε φυσική διάσταση, πχ 48dp αντιστοιχούν σε ~9mm πραγματικού μεγέθους και ενδείκνυται για περιοχές αφής όπου πρέπει να ακουμπήσει το δάκτυλο.. Με scale independent pixel (sp) μετράμε πραγματικά εικονοστοιχεία της οθόνης. Αυτή τη μονάδα χρησιμοποιούμε για να μετράμε μεγέθη γραμμάτων, πχ 14sp. Σύμφωνα με τις σχεδιαστικές κατευθύνσεις της Google που ονομάζονται Material Design material.io/guidelines/material-design/introduction.html, συνιστάται να χρησιμοποιούμε sp για τα μεγέθη γραμματοσειρών. Όλες οι άλλες μετρήσεις πρέπει να είναι σε dp. Το πλήθος των pixels σε μια οθόνη συγκεκριμένου φυσικού μεγέθους καθορίζει την πυκνότητα pixel της. Πχ μια οθόνη 5.5 ιντσών (4,8in x 2,7in) και full high definition (1920x1080 pixel) έχει πυκνότητα 400ppi. <TextView android:layout_width="230dp" // ή wrap_content android:layout_height="145dp" // ή match_parent android:background="#ff0000" // εδώ κόκκινο, γενικά #RRGGBB android:text="surprise" // το κείμενο που εμφανίζεται android:textcolor="#ffffff" // ξέξασπρο android:textsize="42sp" // ή?android:textappearancemedium /> Στη διεύθυνση developer.android.com/reference θα βρείτε την επίσημη τεκμηρίωση της Google για τον προγραμματισμό εφαρμογών Android. Εκεί θα βρείτε πληροφορίες για όλες τις ιδιότητες των διαφόρων όψεων, όπως της TextView, καθώς και τις τιμές που παίρνουν. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 4
5 Σχεδίαση όψης γραφικών ImageView Τα ImageView προορίζονται για την τοποθέτηση εικόνων πάνω στη διεπαφή χρήστη. Τα αρχεία που προβάλονται πρέπει να είναι μαζεμένα στο φάκελο res του project, μέσα στον υποφάκελο drawable/. Ο τύπος των γραφικών μπορεί να είναι png, jpg. Πιο σημαντική ιδιότητα του ImageView είναι η src που δέχεται ως τιμή το όνομα του αρχείου γραφικών που θα προβληθεί. Αλλά χωρίς την κατάληξη! Το αρχείο είναι αποθηκευμένο ως res/drawable/fish.jpg <ImageView //fish είναι όνομα αρχείου δίχως κατάληξη android:layout_width="wrap_content" // ή συγκεκριμένη τιμή σε dp android:layout_height="wrap_content" // όσο για να χωράει το περιεχόμενο android:scaletype="centercrop" // ή center /> Η ιδιότητα scaletype προσαρμόζει το γραφικό στο μέγεθος της όψης: center απλώς το κεντράρει χωρίς κάποια προσαρμογή μεγέθους. centercrop το κεντράρει προσαρμόζοντας το μέγεθος ώστε να χωράει στην όψη. Πειραματιστείτε αλλάζοντας το μέγεθος του ImageView, αντί για wrap_content σε match_parent ή συγκεκριμένες τιμές pixel (dp). Δοκιμάστε γραφικά μικρότερα από το μέγεθος της όψης, πχ εικονίδια, ή μεγαλύτερα, πχ φωτογραφίες. 3/6/ Ανάπτυξη εφαρμογών Android 5
6 Common Android Views Cheat Sheet 3/6/ Ανάπτυξη εφαρμογών Android 6
7 Υποδοχέας LinearLayout Οι υποδοχείς (ViewGroup) ομαδοποιούν όψεις, όπως TextView, ImageView, ή άλλους εμφωλιασμένους υποδοχείς. Έτσι σχηματίζεται μια ιεραρχία με γονικούς υποδοχείς που περιέχουν παιδιά, κοκ. Παιδιά του ίδιου γονέα είναι αδέλφια (προφανώς). Το LinearLayout οργανώνει τα περιεχόμενά του οριζόντια ή κατακόρυφα, ξεκινώντας από πάνω αριστερά. Το μέγεθος των όψεων μπορεί να δίνεται με απόλυτη τιμή (σε dp, κακό), ή όσο χρειάζεται (wrap_content) ή όσο ο γονιός (match_parent). <LinearLayout xmlns:android=" //δήλωση namespace android:orientation="vertical" // ή horizontal android:layout_width="match_parent" // σημαίνει όλη την οθόνη (full bleed) android:layout_height="match_parent" // ονοματισμένο χρώμα του Android <TextView // όψη (παιδί) που περιέχεται στον υποδοχέα (γονιό) android:text="ψωμί" android:layout_width="match_parent" // όσο είναι και του γονιού android:layout_height="0dp" // ή "wrap_content" για να χωράει το Ψωμί android:layout_weight="1" // σχετικό βάρος για ισοκατανομή android:background="#4caf50" // συγκεκριμένη τιμή χρώματος σε RGB android:textsize="24sp" /> Για σχετική κατανομή πολλών όψεων μέσα στον υποδοχέα, θέτεις το μέγεθός τους σε 0dp και χρησιμοποιείς το layout_weight για το σχετικό μέγεθος. <ImageView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" // διπλάσιο βάρος από τα υπόλοιπα αδέρφια android:scaletype="centercrop" /> <TextView //αδέρφι του Ψωμί android:text="βούτυρο" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" //καταλαμβάνει το 25% = 1/(1+2+1) του υποδοχέα android:textcolor="@android:color/white" android:textsize="24sp" /> </LinearLayout> 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 7
8 Υποδοχέας RelativeLayout <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView // ορίζει το όνομα android:layout_alignparentbottom="true" android:layout_alignparentleft="true" android:textsize="24sp" android:text="lyla" /> <TextView android:layout_alignparentbottom="true" στην όψη android:textsize="24sp" android:text="me" /> <TextView android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:textsize="24sp" android:text="ben" /> <TextView android:layout_alignparenttop="true" android:textsize="24sp" android:text="kunal" /> </RelativeLayout> Για να προσδιορίσεις μια όψη της δίνεις μοναδικό όνομα με το προσθέτει νέο όνομα στην περιοχή ονομάτων που πλέον μπορεί να χρησιμοποιείται ως προσδιοριστικό του αντικειμένου. Το όνομα πρέπει να είναι μοναδικό. Για να αναφερθείς στο αντικείμενο, η σύνταξη είναι χωρίς το +. Ποιος το σκέφτηκε αυτό! Στον υποδοχέα RelativeLayout η τοποθέτηση (Top, Bottom, Left, Right) γίνεται με σχέση με το γονιό. Ακόμα, μπορούμε να τοποθετήσουμε σε σχέση με τα αδέρφια (torightof, toleftof, above, below), χρησιμοποιώντας τα ονόματά τους. Μια όψη περικλείει ερμητικά τα περιεχόμενά της αν θέσουμε width και height στην τιμή wrap_content. Για να δώσουμε χώρο γύρω από τα περιεχόμενα, μπορούμε να ορίσουμε την ιδιότητα padding. Εξ ορισμού, δυο όψεις ακουμπούν όταν τοποθετούνται πλάι-πλάι. Για να μην εφάπτονται, μπορούμε να ορίσουμε layout_margin έξω από όλες τις πλευρές (Left, Right, Top, Bottom). 3/6/ Ανάπτυξη εφαρμογών Android 8
9 Εγκατάσταση και δοκιμή Android Studio Διαδικασία εγκατάστασης για την ανάπτυξη Android apps: 1. Εγκατάσταση εργαλείων Java Development Kit Για να ελέγξεις αν υπάρχει Java στο PC, άνοιξε παράθυρο διαταγών (cmd) και γράψε C:\> java version Αν δείξει >=7, κατά προτίμηση 8, είσαι OK. Διαφορετικά, κατέβασε το Java SE Development Kit από Oracle.com και εγκατάστησέ το. 2. Εγκατάσταση περιβάλλοντος ανάπτυξης Android Studio Κατέβασε το Android Studio και τρέξε το setup του, μόνον αφού έχει εγκατασταθεί το JDK. Είναι μεγαλούτσικο (2Gb) και κατά την εγκατάσταση κατεβάζει κι άλλα (2Gb). 3. Αρχικοποίησε την πλατφόρμαστόχος (πού θα τρέχει δοκιμαστικά η εφαρμογή κατά την ανάπτυξή της) Είτε σύνδεσε το κινητό σου με το καλώδιο USB και θέσε Settings/Programmer Options / USB options. Ή φτιάξε Android emulator για μια κινητή συσκευή που θα τρέχει στο PC. Δοκιμή μιας app Για να φτιάξεις μια app και να βεβαιωθείς ότι το περιβάλλον ανάπτυξης λειτουργεί σωστά: 1. Δημιουργία νέου project για mobile phone/tablet. Απαιτείται να ονομάσεις το project, πχ MyApp και να ορίσεις Company domain, πχ MyComp.com. Επιλέγεις Empty Activity και αφήνεις όλα τα υπόλοιπα όπως είναι. 2. Κατευθείαν τρέξε το στην πλατφόρμα-στόχο (πραγματική ή ιδεατή συσκευή) Με την δημιουργία ενός (άδειου και καλά) project, το IDE έχει φτιάξει μια ολόκληρη ιεραρχία φακέλων και αρχείων. Εξερεύνησε στο σελιδοδείκτη Project. Με το πράσινο τρίγωνο Run, ρωτάει πού θα εκτελεστεί το app. Εδώ έχουμε επιλέξει μια ιδεατή συσκευή Nexus 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 9
10 Σχεδίαση οθόνης με XML Το παρουσιαστικό της εφαρμογής είναι μια οθόνη που καθορίζεται από το XML έγγραφο που βρίσκεται στο αρχείο res/layout/activity_main.xml. Μπορείς να δεις το περιεχόμενο του αρχείου με δυο τρόπους: Design όπου εμφανίζει την ιεραρχία των υποδοχέων και όψεων στο Component Tree. Στα δεξιά δείχνει τις ιδιότητες Properties του επιλεγμένου αντικειμένου. Προσθέτουμε νέα αντικείμενα επιλέγοντάς τα από την Palette. Text όπου συναντούμε τις ετικέτες XML με τις ιδιότητές τους, στη γνωστή σύνταξη. Στα δεξιά του κείμενου δείχνει μια προεπισκόπηση. Είτε έτσι είτε αλλιώς, μπορούμε να τροποποιήσουμε το UI. Το Android Studio 2.3 προτείνει ConstraintLayout στο Empty Project. Άλλαξε την XML σε RelativeLayout. Θα φτιάξω μια app που θα υπολογίζει την τιμή των καφέδων που παραγγέλνω. 3/6/ Ανάπτυξη εφαρμογών Android 10
11 Οθόνη για Παραγγελία Διαμορφώνουμε το UI της app εισάγοντας υποδοχείς (LinearLayout, RelativeLayout) και διαρθρώνοντας όψεις (TextView, ImageView, Button). Διαδικασία: 1. Φτιάχνουμε τη διάρθρωση (ποιος είναι ο γονέας και τι παιδιά έχει), αρπάζοντας από την Palette τα κατάλληλα αντικείμενα και σέρνοντάς τα στο Component Tree. 2. Τοποθετούμε στην επιφάνεια και διαμορφώνουμε το μέγεθός τους. 3. Ονοματίζουμε τα αντικείμενα, 4. Δίνουμε τιμές στις ιδιότητες. 5. Δεν πειράζουμε τα υπόλοιπα που υπάρχουν μέσα και δεν ξέρουμε τι κάνουν. Μόλις προκύψει σφάλμα επαναφέρουμε τον κώδικα (Ctrl-Z, Undo = Αναίρεση). 6. Δεν παραμελούμε να το τρέχουμε πού-και-πού. Συμβουλές - Tips Μορφοποιήστε το XML έγγραφο με Code / Reformat για να τον κάνει ευανάγνωστο (οδόντωση, κενά, κλπ). Με Code / Rearrange αλλάζει τη σειρά των ιδιοτήτων στις ετικέτες XML σύμφωνα με πρότυπα κώδικα. Πώς καθορίζουμε χρώματα; Μπορούμε να βάζουμε συγκεκριμένες τιμές, πχ android:background="#fa45de" Στο αρχείο res/values/colors.xml μπορείς να δώσεις όνομα σε συγκεκριμένα χρώματα και μετά να χρησιμοποιείς το όνομα, πχ android:textcolor="@color/myfav" Για παράδειγμα, πάνω σε έναν υποδοχέα, έβαλα κατακόρυφα δυο TextBox και ένα Button, που όταν το πατάς δεν κάνει τίποτα. Η app ακόμη είναι 'διακοσμητική', ή mock-up. Η εργασία μέχρι τώρα είναι δουλειά του designer. <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorprimary">#3f51b5</color> <color name="colorprimarydark">#303f9f</color> <color name="coloraccent">#ff4081</color> <color name="colormyfav">#6905fd</color> </resources> txtposotita butparaggelia Στο έγγραφο XML, στην ετικέτα Button, προσθέτω μια ιδιότητα android:onclick. Αυτό είναι το πρώτο βήμα για να αποκτήσει συμπεριφορά το κουμπί. Η ιδιότητα λέει ότι όταν κάποιος κάνει κλικ πάνω στο κουμπί, να εκτελείται κάποιος κώδικας (ακόμα δεν τον έχουμε γράψει). <Button android:id="@+id/butparaggelia" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="16dp" android:text="παραγγελία" android:onclick="parageile"/> 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 11
12 Παρατηρήστε πώς 'δένουν' τα ονόματα μεταξύ τους. Προσθήκη κώδικα Java Όταν δημιουργήσαμε το Empty Project περάσαμε στο ντούκου μια οθόνη που έφτιαχνε μια activity, που την ονόμασε MainActivity (μπορούμε να της αλλάξουμε όνομα). Activity, δραστηριότητα θα το μετάφραζα, είναι μια ενότητα κώδικα που κάνει κάτι. Φτιάχτηκε λοιπόν αυτόματα ένα αρχείο MainActivity.java που μπορούμε να το δούμε μέσα στη δομή του project και να πάρουμε μάτι τον κώδικά του. Αυτό αναλαμβάνει να προβάλει το layout που καθορίζεται στο activity_main.xml (και σε αυτό μπορούμε να αλλάξουμε όνομα). Στον κώδικα Java προσθέτουμε τον κώδικα που σημειώνω δίπλα με υπογράμμιση και εκτελείται όταν πατιέται το κουμπί. Αν προκύψει runtime error, η app κλείνει και, στην καλύτερη, βγάζει ένα μήνυμα "Unfortunately, MyApp has stopped". Γι αυτό χρειάζεται debugging, που στην απλούστερη, είναι να τρέχεις τον κώδικα γραμμή-γραμμή. Αντί για Code / Run, επιλέγω Code / Debug. package com.mycomp.myapp; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.widget.textview; public class MainActivity extends AppCompatActivity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); public void parageile(view view) { TextView tvposotita = (TextView) findviewbyid(r.id.txtposotita); tvposotita.settext("1111"); Εκτελείται με το ξεκίνημα της app. Το όνομα του TextView που περιέχει την ποσότητα Το υπογραμμισμένο κείμενο το γράφουμε εμείς. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 12
13 Προσθήκη βιβλιοθηκών Java Επιστρέφω στο αρχείο XML και προσθέτω δυο ακόμα TextView για την τιμή: ένα για την ετικέτα (lbltimi) και ένα για το κείμενο (txttimi) της τιμής. Είναι καλή συνήθεια να ακολουθείς συμβάσεις για την ονομασία των όψεων, αλλιώς θα μπερδέψεις τα μπούτια σου. Η οθόνη διαμορφώνεται έτσι: Προσθέτω κώδικα με τις μεταβλητές για την ποσότητα και την τιμή μονάδας. Υπολογίζω την τιμή όλων και εμφανίζω τα αποτελέσματα στην οθόνη. lblposotita txtposotita lbltimi txttimi Οι εντολές import στην αρχή του κώδικα Java είναι για εισαγωγή βιβλιοθηκών. Από το File / Settings στην ενότητα Editor / General / Auto Import βολεύει να τσεκάρεις όλες τις επιλογές.... import java.text.numberformat; // μπαίνει μαζί με τις υπόλοιπες import κοντά στην αρχή του κώδικα.... public void parageile(view view) { // είναι δεμένη με το συμβάν onclick int iposotita = 2; // του Button TextView tvposotita = (TextView) findviewbyid(r.id.txtposotita); tvposotita.settext("" + iposotita); // μετατρέπει την ποσότητα // από ακέραιο σε συμβολοσειρά double dtimimonadas = 1.6; // ας πούμε ότι τόσο κάνει ένας καφές double dtimi = iposotita * dtimimonadas;... TextView tvtimi = (TextView) findviewbyid(r.id.txttimi); tvtimi.settext(numberformat.getcurrencyinstance().format(dtimi)); Δοκίμασε αποσφαλμάτωση (debugging) βάζοντας σημεία διακοπής (breakpoints) σε συγκεκριμένα σημεία του κώδικα. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 13
14 UI και κώδικας για παραγγελία Προσθέτω άλλα δυο Button στην οθόνη για να ανεβοκατεβάζουν την ποσότητα. Θέτω την ιδιότητα onclick κατάλληλα, ώστε να οδηγεί στις αντίστοιχες μεθόδους του κώδικα Java που θα εκτελούνται όταν πατιούνται τα κουμπιά. Επειδή θέλω να τοποθετήσω αυτά τα κουμπιά δίπλα στο TextView της ποσότητας, θα τα κλείσω όλα σε ένα οριζόντιο LinearLayout. Δίπλα φαίνεται η τελική μορφή του UI όπου σημειώνω τα ονόματα που αναφέρονται στον κώδικα. Με πράσινο χρώμα είναι τα ονόματα των όψεων και με μπλε οι μέθοδοι onclick. public class MainActivity extends AppCompatActivity { final double dtimimonadas = 1.6; // σταθερά int iposotita = 0; //μεταβλητή κλάσης txtposotita anevase katevase txttimi protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // δεν πείραξα setcontentview(r.layout.activity_main); // τίποτα εδώ public void anevase(view view) { iposotita++; displayposotita(); public void katevase(view view) { if (iposotita > 0) // για να μην κατεβαίνει iposotita--; // σε αρνητικές ποσότητες displayposotita(); public void parageile(view view) { TextView tvtimi = (TextView) findviewbyid(r.id.txttimi); tvtimi.settext(numberformat.getcurrencyinstance(). format(iposotita * dtimimonadas)); public void displayposotita() { TextView tvposotita = (TextView) findviewbyid(r.id.txtposotita); tvposotita.settext("" + iposotita); Δηλώνω την dtimimonadas ως σταθερά για να είναι ευδιάκριτη κατά τη συντήρηση του κώδικα και να μην μπορεί να αλλάξει κατά λάθος. Δηλώνω μια μεταβλητή κλάσης iposotita. Την τιμή της θα προβάλει το txtposotita και θα μεταβάλουν τα κουμπιά -,+. Φτιάχνω τις μεθόδους anevase / katevase που ενημερώνουν κατάλληλα τη μεταβλητή και προβάλουν την ενημερωμένη τιμή της στην οθόνη. Παρατηρώ ότι ο κώδικας που προβάλει την iposotita επαναλαμβάνεται αυτούσιος τρεις φορές. Έτσι φτιάχνω μια μέθοδο displayposotita που κάνει τη δουλειά και την καλώ στα κατάλληλα σημεία (επαναχρησιμοποίηση). 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 14
15 Ξεκίνημα νέου έργου Android Δημιουργία έργου 1. Από μενού File / New / New Project 2. Συμπληρώνεις Application name και Company Domain για να είναι μοναδικό το Package name όταν θα το ανεβάσεις στο Google Play και αργότερα θα εγκατασταθεί στις συσκευές αυτών που θα το κατεβάσουν. 3. Καθορίζεις Project location, το φάκελο που θα αποθηκεύονται όλα τα αρχεία που χρειάζονται για την ανάπτυξη του app. 4. Επιλέγεις την πλατφόρμα που στοχεύει το app, λογικά Phone and Tablet. Minimum SDK είναι η αρχαιότερη έκδοση Android που θα εκτελείται. 'Help me choose' εμφανίζει την τρέχουσα κατανομή των εκδόσεων. 5. Επιλέγεις Empty Activity και διατηρείς τα προτεινόμενα ονόματα. Finish /6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 15
16 Εκτέλεση Εκτέλεση έργου 1. Το κενό έργο περιλαμβάνει μια activity που έχει 1. μια οθόνη με ένα Textbox που αποθηκεύεται στο main_activity.xml 2. κώδικα Java που εκκινεί την app. 2. Από το μενού Run γίνεται μετάφραση και ξεκινά η εκτέλεση. 3. Ρωτάει πού να εκτελεστεί το app: 1. σε μια συνδεδεμένη συσκευή (Choose a running device) 2. σε έναν προσομοιωτή (Launch emulator), για τον οποίο επιλέγεις τι κινητό υποδύεται (μοντέλο & έκδοση Android) 4. Εκτελεί το app στην επιλεγμένη συσκευή /6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 16
17 Ευχετήρια κάρτα <?xml version="1.0" encoding="utf-8"?> Φτιάχνουμε μια app που προβάλει μια φωτο με ευχές και τον αποστολέα; Χρειάζεται ένα ImageView για τη φωτό και δύο TextView για τα κείμενα. Λόγω της τοποθέτησης στα άκρα προτιμούμε να τα εντάξουμε σε ένα υποδοχέα RelativeLayout. Δείτε το όνομα που του δίνει και τις διαστάσεις που καλύπτουν όλη την οθόνη. Τοποθετούμε το ImageView, του δίνουμε όνομα, ορίζουμε διαστάσεις για να εκτείνεται σε όλο τον υποδοχέα. Αποθηκεύουμε μια φωτό στο φάκελο drawable του έργου και προσθέτουμε την ιδιότητα android:src να δείχνει στο αρχείο της φωτό, χωρίς την κατάληξη. Εισάγουμε τα δυο κείμενα μέσα στον υποδοχέα. Πρέπει να είναι μετά την εικόνα (γιατί;). Τοποθετούμε με τις κατάλληλες ιδιότητες align και λοιπά διακοσμητικά (μέγεθος, χρώμα). Στη σχεδίαση του παρουσιαστικού με XML εξοικειωθείτε με τις δυνατότητες που δίνουν τα παράθυρα 'Palette', 'Component Tree', 'Properties' για να βλέπεις και να αλλάζεις την XML. <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.mycomp.myapplication.mainactivity"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaletype="centercrop" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:text="καλό καρναβάλι" android:textsize="40dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:layout_alignparentright="true" android:text="ο δεινόσαυρος" android:textcolor="#ffffff" android:textsize="40dp" /> </RelativeLayout> 3/6/ Ανάπτυξη εφαρμογών Android 17
18 Ένα κατακόρυφο RelativeLayout με 2 περιεχόμενα Σκορ μπάσκετ: οθόνη Στο strings.xml άλλαξε το app_name. <View android:layout_width="1dp" android:layout_height="match_parent" android:layout_margin="8dp" android:background="@android:color/darker_gray" /> Για να μπει το κείμενο στο κέντρο, θέσε ιδιότητα gravity = center. Ένα κατακόρυφο RelativeLayout με 5 περιεχόμενα, 2 TextView και 3 Button. txtskora 1. Βρες τις όψεις 2. Οργάνωσέ τις σε ομάδες 3. Διακόσμησέ τις txtskorb Ένα οριζόντιο RelativeLayout με 2 περιεχόμενα Για καθένα από τα κουμπιά να ορίσεις την ιδιότητα onclick. Πχ για το τρίποντο της ομάδας Α, πες το syn3a, κοκ. midenise 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 18
19 Σκορ μπάσκετ: πρόγραμμα package com.mycomp.mybasket; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.view.view; import android.widget.textview; public class MainActivity extends AppCompatActivity { int iskora = 0; //τοπικές μεταβλητές για τα σκορ int iskorb = protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); public void syn3a(view v){ iskora += 3; //τρίποντο displaya(); public void syn2a(view v){ iskora += 2; //δίποντο displaya(); public void syn1a(view v){ iskora ++; //ελεύθ. βολές displaya(); 1 public void syn3b(view v){ iskorb += 3; //τρίποντο displayb(); public void syn2b(view v){ iskorb += 2; //δίποντο displayb(); public void syn1b(view v){ iskorb ++; //ελεύθ. βολές displayb(); public void midenise(view v){ //για το κουμπί Μηδένισε! iskora = 0; displaya(); iskorb = 0; displayb(); private void displaya(){ TextView tvskora = (TextView) findviewbyid(r.id.txtskora); tvskora.settext("" + iskora); private void displayb(){ TextView tvskorb = (TextView) findviewbyid(r.id.txtskorb); tvskorb.settext("" + iskorb); //end class 2 3 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 19
20 Πόροι (Resources) // αρχείο MainActivity.java protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Τι στο διάολο είναι αυτά τα R.id. R.layout.; Δεν καταλαβαίνω Χριστό! activity_main.xml <TextView android:id="@+id/txtparaggelia" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="16dp" android:text="περιγραφή παραγγελίας" android:textcolor="@android:color/black" /> <Button android:id="@+id/paraggeliabutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="parageile" android:padding="16dp" android:text="παραγγελία" /> Η app αποτελείται από: τον κώδικα Java που υλοποιεί τη συμπεριφορά της, δηλαδή πώς ανταποκρίνεται σε διάφορα συμβάντα, και βρίσκεται σε διάφορα αρχεία του φακέλου java διάφορους άλλους πόρους, όπως αρχεία γραφικών, ήχους, βίντεο, κείμενα, χρώματα, κλπ που πρέπει να τοποθετούνται στους υποφακέλους του φακέλου res. Κατά τη μετάφραση του έργου της app, από τα διάφορα resources φτιάχνεται μια Java κλάση που ονομάζεται R (φοβερό όνομα, περιγραφικό, και όλα τα καλά ) και περιέχει υποκλάσεις με τα αναγνωριστικά ονόματα όλων των πόρων. Όλα τα ονόματα των γραφικών που είναι στο φάκελο /res/drawable έχουν όνομα R.drawable.αρχείο Όλες οι συμβολοσειρές έχουν όνομα R.string.συμβολοσειρά 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 20
21 Αντικείμενα XML από κώδικα Java Στις εφαρμογές Android η διεπαφή χρήστη γράφεται σε XML, ενώ ο κώδικας σε Java. Μεταξύ τους υπάρχει χάσμα, αλλά είναι απαραίτητο να επικοινωνούν. Αν έχετε κάνει Visual Basic 15 χρόνια πριν, θα χτυπάτε το κεφάλι σας στον τοίχο τώρα. XML -> Java Χρειάζεται να ορίσουμε ποια μέθοδος Java θα εκτελείται όταν πυροδοτηθεί ένα συμβάν. Στην XML γράφουμε android:onclick="triapoulakia" για το Button της οθόνης, ενώ ορίζουμε τη μέθοδο στη Java ακριβώς έτσι. Αν κάνετε λάθος, παρότι το build ολοκληρώνεται χωρίς παράπονα, η εφαρμογή θα κρασάρει, χωρίς να λέει το λόγο! public class MainActivity extends AppCompatActivity { EditText et; // βήμα 1 όπου δηλώνουμε ονόματα TextView tv; // εμβέλειας κλάσης για protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); et = (EditText) findviewbyid(r.id.edt); // βήμα 2 tv = (TextView) findviewbyid(r.id.txt); // αρχικοπ // όπου edt, txt είναι τα ονόματα των όψεων στην XML Java -> XML 1. Δηλώνουμε μέσα στην κλάση αντικείμενα του ίδιου τύπου με της XML. 2. Μέσα στην oncreate() αρχικοποιούμε τα αντικείμενα ώστε να δείχνουν στις αντίστοιχες όψεις της XML. 3. Χρησιμοποιούμε τις κατάλληλες μεθόδους για να διαβάζουμε / εγγράφουμε τα περιεχόμενά τους. public void triapoulakia(view v) { String s = et.gettext().tostring();//βήμα 3 διάβασμα tv.settext(s); // βήμα 3 αλλαγή τιμής Οι απαραίτητες μέθοδοι για να γίνει η δουλειά είναι: findviewbyid() ανακαλεί το αντικείμενο με συγκεκριμένο όνομα (id) μέσα από την XML. gettext() διαβάζει τα περιεχόμενα από ένα αντικείμενο που περιέχει κείμενο, πχ EditText ή TextView settext() αλλάζει τα περιεχόμενα του αντικειμένου Η σύνταξη είναι πιο περίπλοκη εξαιτίας μετατροπών στους τύπους δεδομένων που γίνονται με casting, πχ (EditText), ή με μεθόδους μετατροπής, πχ tostring(). Γι αυτά φταίει η Java. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 21
22 Προσθέσετε κουμπιά Μπρος wvothoni.goforward() Πίσω wvothoni.goback() Επόπτης ιστοσελίδων (browser) Νέο έργο. Στο EditBox θα εισάγουμε μια διεύθυνση και πατώντας το Button θα προβάλει το περιεχόμενο της ιστοσελίδας. package com.mycomp.mybrowser; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.view.view; import android.webkit.webview; import android.webkit.webviewclient; import android.widget.button; import android.widget.edittext; public class MainActivity extends AppCompatActivity { EditText eturl; Button btgo; WebView protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); eturl = (EditText) findviewbyid(r.id.edturl); btgo = (Button) findviewbyid(r.id.btngo); wvothoni = (WebView) findviewbyid(r.id.webothoni); wvothoni.setwebviewclient(new WebViewClient()); public void gotopage(view v) { String surl = eturl.gettext().tostring(); wvothoni.loadurl(" + surl); Υλοποιήσετε 'Αγαπημένα'. Πχ πληκτρολογώντας '1' να προβάλει ' 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 22
23 Δικαιώματα και εικονίδιο Στο αρχείο manifests/androidmanifest.xml δηλώνουμε τα δικαιώματα που πρέπει να έχει η εφαρμογή για να λειτουργεί σωστά. Για να προσπελάσει το Internet, η εφαρμογή χρειάζεται το δικαίωμα: <uses-permission android:name="android.permission.internet" /> (Διακοσμητικό) Για να μη βάζει ως εικονίδιο της εφαρμογής το άσχημο ανθρωποειδές (Android): Αποθηκεύουμε στο φάκελο res/drawable ένα png αρχείο. Στο AndroidManifest.xml στην ενότητα application προσθέτουμε την ιδιότητα android:icon να δείχνει προς το όνομα του αρχείου με το νέο εικονίδιο <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.mycomp.mybrowser"> <uses-permission android:name="android.permission.internet" /> <application android:allowbackup="true" android:supportsrtl="true" <activity android:name=".mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> 3/6/ Ανάπτυξη εφαρμογών Android 23
24 Παραγγελία καφέδων Θα εξελίξουμε την εφαρμογή με περισσότερες επιλογές, πχ καφές με σαντιγύ. Θα υπολογίζει πόσο κάνουν οι καφέδες και θα τυπώνει ανάλογο μήνυμα. public class MainActivity extends AppCompatActivity { final double timikafe = 1.6; // σταθερές final double timisantigy = 0.5; int posotita = 0; //μεταβλητή protected void oncreate(bundle savedinstancestate) {... public void anevase(view view) {... public void katevase(view view) {... Όπου... δες τον κώδικα στη διαφάνεια 'UI και κώδικας για παραγγελία' txtposotita chkextra paraggeile txtparaggelia Για να μετακινείται κατακόρυφα η οθόνη σε περίπτωση που δεν χωράνε όλες οι όψεις στην οθόνη (ή γυρίσουμε σε οριζόντια διάταξη), τυλίγουμε όλες τις όψεις της διεπαφής στον υποδοχέα ScrollView. public void parageile(view view) { double axia; CheckBox cbextra = (CheckBox) findviewbyid(r.id.chkextra); String sextras; if (cbextra.ischecked()) { sextras = "Με σαντιγύ"; axia = posotita * (timikafe + timisantigy); else { sextras = "Χωρίς σαντιγύ"; axia = posotita * timikafe; String sparaggelia = "Ποσότητα: " + posotita + "\n" + sextras + "\nαξία: " + NumberFormat.getCurrencyInstance().format(axia) + "\nευχαριστώ πολύ!"; TextView tvparaggelia = (TextView) findviewbyid(r.id.txtparaggelia); tvparaggelia.settext(sparaggelia); public void displayposotita() {... 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 24
25 Προθέσεις (intents) Στην εφαρμογή των καφέδων, όταν πατιέται το κουμπί 'ΠΑΡΑΓΓΕΛΊΑ', θέλουμε να ετοιμάζεται μήνυμα . Η εφαρμογή μπορεί να εκδηλώσει την πρόθεσή της, πχ να σταλεί ή να προβληθεί μια ιστοσελίδα ή ένας χάρτης, κά. Το Android αναλαμβάνει να ανοίξει την κατάλληλη εφαρμογή για να διεκπεραιώσει. Αν υπάρχει μια εφαρμογή, την ανοίγει, της περνάει τα δεδομένα και την αφήνει να κάνει τη δουλειά. Αν δεν υπάρχει καμιά αρμόδια εφαρμογή, επιστρέφει η ροή ελέγχου πίσω. Αν υπάρχουν πολλές κατάλληλες εφαρμογές, εμφανίζεται παράθυρο για επιλογή αναμεταξύ τους. Τα δεδομένα της πρόθεσης περνιούνται με τη μορφή ενός URI (Uniform Resource Identifier). Αυτό το φροντίζει η Uri.parse(). public void parageile(view view) {... // ο κώδικας της μεθόδου, όπως ήταν από την προηγούμενη διαφάνεια // ονομάστε τη μεταβλητή όπως θέλετε, εγώ mailintent Intent mailintent = new Intent(Intent.ACTION_SENDTO); // κατασκευή πρόθεσης // ανοίγει τις διαθέσιμες εφαρμογές mailintent.setdata(uri.parse("mailto:")); // προσυμπληρώνει το θέμα του mailintent.putextra(intent.extra_subject, "Παραγγελία καφέδων για το Γιάννη"); // προσυμπληρώνει το κείμενο του mailintent.putextra(intent.extra_text, sparaggelia); // ψάχνει μπας και δεν έχεις καμιά εφαρμογή για mail στο κινητό σου. Χλωμό if (mailintent.resolveactivity(getpackagemanager())!= null) startactivity(mailintent); // end paraggeile Άλλες προθέσεις: ACTION_DIAL καλεί τηλεφωνικό αριθμό ACTION_INSERT εισάγει γεγονός στο ημερολόγιο ACTION_IMAGE_CAPTURE τραβάει φωτογραφία ACTION_VIEW δείχνει τοποθεσία στο χάρτη (geo) παίζει τραγούδι (mp3) προβάλει ιστοσελίδα(html) Για περισσότερα intents, κοιτάξτε 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 25
26 Οθόνη σύνδεσης (login) login_screen.xml LoginActivity.java Θα προσαρμόσουμε την εφαρμογή της παραγγελίας καφέ, έτσι ώστε να ξεκινάει απαιτώντας σύνδεση του χρήστη και μετά θα επιτρέπει συμπλήρωση, προεπισκόπηση και υποβολή της παραγγελίας. Στόχος είναι να δούμε πώς ανοίγουμε μια νέα οθόνη. Ας φτιάξουμε το layout της νέας οθόνης. Έχει δυο EditText για να πληκτρολογήσεις όνομα και σύνθημα, καθώς και ένα πλήκτρο. Τα υπόλοιπα είναι διακοσμητικά. Έχω δώσει ονόματα (android:id) εκεί που χρειάζεται και πουθενά αλλού. Το μόνο ενδιαφέρον και νέο είναι η ιδιότητα android:password="true" στο EditText για το σύνθημα που δείχνει αστεράκια όταν πληκτρολογείς. Σε μια νέα κλάση Java: Η διπλανή μέθοδος εκτελείται όταν πατηθεί το πλήκτρο. public void checklogin(view v) { EditText etusername = (EditText) findviewbyid(r.id.edtusername); String susername = etusername.gettext().tostring(); //πάρε username EditText etpassword = (EditText) findviewbyid(r.id.edtpassword); String spassword = etpassword.gettext().tostring(); //πάρε το password TextView tvsyndesi = (TextView) findviewbyid(r.id.txtsyndesi); if (susername.equals("gaviotis") && spassword.equals("123456")) { tvsyndesi.settext("επιτυχής σύνδεση!"); etusername.settext(""); etpassword.settext(""); tvsyndesi.settext("μη συνδεδεμένο"); Intent orderform = new Intent(this, OrderActivity.class); startactivity(orderform); else { tvsyndesi.settext("έκανες κάποιο λάθος! " + susername + ":" + spassword); //end method 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 26
27 Δραστηριότητες (activities) login_screen.xml order_screen.xml Το MainActivity.java ζητά στοιχεία και μετά από έλεγχό τους εκτελεί Intent parag = new Intent(this, OrderActivity.class); startactivity(parag); που ανοίγει την οθόνη της παραγγελίας. Στο OrderActivity.java συμπληρώνουμε την παραγγελία και την βλέπουμε ή τη στέλνουμε. Οι εφαρμογές συνήθως έχουν διάφορες οθόνες για την αλληλεπίδραση με το χρήστη. Στο Android ονομάζονται δραστηριότητες (activities) και υλοποιούνται με κλάσεις Java. Μέσα από αυτές τις κλάσεις ανοίγονται τα κατάλληλα XML layouts. Όλες οι δραστηριότητες που συμμετέχουν στην εφαρμογή δηλώνονται στο AndroidManifest.xml. Εδώ έχουμε δύο, την MainActivity.java που ανοίγει την οθόνη login_screen.xml, και την OrderActivity.java που ανοίγει την οθόνη order_screen.xml. Προσέξτε πώς ξεχωρίζει η αρχική: <activity android:name=".mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".orderactivity"></activity> Εδώ έχει ανοίξει η εφαρμογή και είναι έτοιμη να στείλει το μήνυμα. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 27
28 Έχεις αγνές προθέσεις; Για να στείλουμε ένα και για να ανοίξουμε μια νέα οθόνη χρησιμοποιήσαμε τις προθέσεις. Αλλά η σύνταξη των εντολών διαφέρει. Γιατί; Υπάρχουν δυο είδη προθέσεων (πέρα από τις αγνές και τις πονηρές): Υπονοούμενες (implicit) Καθορίζουν την ενέργεια που θέλουμε να εκτελεστεί, αλλά όχι ποιος θα την εκτελέσει. Τέτοια πρόθεση χρησιμοποιήσαμε για να στείλουμε το . Δεν ξέρουμε ποια εφαρμογή θα στείλει το όταν γράφουμε τον κώδικα, θα επιλεγεί ένας mail client από αυτούς που είναι εγκατεστημένοι στο κινητό (Gmail, , K-9 Mail, κλπ). Ρητές (explicit) Καθορίζουν το όνομα της εφαρμογής που θα αναλάβει την εκτέλεση της πρόθεσης. Στην περίπτωση ανοίγματος νέας οθόνης, η νέα δραστηριότητα εκτελείται από την εφαρμογή μας. 3/6/ Ανάπτυξη εφαρμογών Android 28
29 Τοπικοποίηση (localization) Το Android project μπορεί να διαμορφώνει διαφορετική εμφάνιση και συμπεριφορά ανάλογα με τον τύπο της συσκευής που εκτελείται, πχ αν πρόκειται για κινητό τηλέφωνο ή ταμπλέτα, ή τα χαρακτηριστικά της, πχ την ανάλυση της οθόνης ή την έκδοση του Android που υποστηρίζει. Επίσης, μπορεί να εμφανίζει διαφορετικά κείμενα ανάλογα με τη γλώσσα που έχει επιλεγεί από Ρυθμίσεις / Γλώσσα και Εισαγωγή / Γλώσσα (Settings / Language & Input / Language) της συσκευής. Διαδικασία 1. Εντοπίζουμε τις λέξεις που εμφανίζονται στις οθόνες της εφαρμογής, πχ σε ετικέτες, πλήκτρα του κώδικα XML. 2. Στο αρχείο res/values/strings.xml φτιάχνουμε εγγραφές για κάθε συμβολοσειρά (όνομα και τιμή). 3. Αντικαθιστούμε τις καρφωτές συμβολοσειρές στον κώδικα XML. 4. Φτιάχνουμε ξεχωριστό φάκελο και αρχείο για κάθε άλλη γλώσσα και εκεί μεταφράζουμε τις συμβολοσειρές. 5. Η ίδια διαδικασία ακολουθείται και για λέξεις που είναι μέσα στον κώδικα Java, μόνο που για να ανακαλέσεις το περιεχόμενο της συμβολοσειράς μέσα από τη Java, πρέπει να κάνεις Φοβερό, ε; res/values/strings.xml <resources> <string name="app_name" translatable="false">my browser</string> <string name="gobuttonlabel">go</string> <string name="urlhint">enter address</string> <string name="selidatext">page:</string> <string name="hello">hello, world!</string> </resources> res/values-el/strings.xml Αυτές οι συμβολοσειρές είναι οι εξ ορισμού και θα εμφανίζονται για όλες τις γλώσσες. <?xml version="1.0" encoding="utf-8"?> Αυτές θα εμφανίζονται <resources> όταν επιλέξεις ελληνικά. <string name="gobuttonlabel">άντε</string> <string name="urlhint">πληκτρολόγησε διεύθυνση</string> <string name="selidatext">σελίδα:</string> <string name="hello">γεια χαραντάν!</string> </resources> String shello = getresources().getstring(r.string.hellogreeting); Η διαδικασία γίνεται απλούστερη, αν κάνεις το βλάκα: ξεκίνα χωρίς συμβολοσειρές στο strings.xml, γράφοντας το χειρότερο που θα μπορούσες: καρφωτές λέξεις μέσα στην XML και στη Java. Όταν τελειώσεις το πρωτότυπο, στη λάμπα της επιφοίτησης της Αγίας Google διάλεξε Extract String Resource και θα σε καθοδηγήσει. Πρόσθεσε γλώσσες με Translations Editor. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 29
30 Στιλ (styles) Κατά τη σχεδίαση των διαφόρων όψεων που συμμετέχουν στο Layout τους προσθέτουμε ιδιότητες, πχ padding, margin, background (χρώμα ή εικόνα), alpha (διαφάνεια), κλπ. Λογικά οι όψεις που έχουν κάποια λογική συσχέτιση, θα πρέπει να μοιάζουν στο παρουσιαστικό. Αλλιώς η οθόνη μας θα είναι σαν τσίρκο. Έτσι καταλήγουμε να έχουμε μεγάλα XML αρχεία όπου επαναλαμβάνονται οι ίδιες ιδιότητες με τις ίδιες τιμές σε συναφείς όψεις, πχ TextView. Ακόνη χειρότερα, αν αλλάξουμε μια ιδιότητα σε κάποια όψη, θα πρέπει να θυμηθούμε να την αλλάξουμε και στις υπόλοιπες της ίδιας ομάδας για να έχουμε ομοιομορφία. Γι αυτό φτιάχνουμε ένα αρχείο styles.xml που δίνει όνομα σε ένα σύνολο ιδιοτήτων με τις τιμές τους. Μετά επικαλούμαστε το όνομα του στιλ στις όψεις του layout. res/layout/activity_main.xml <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="text" android:text="ομάδα Α"/> drawable/round_rect.xml Μια γραμμή κειμένου res/values/styles.xml <resources> <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=" android:shape="rectangle"> <corners android:radius="20dp"/> <padding android:bottom="10dp" android:top="10dp"/> <solid android:color="#e1bee7"/> </shape> <style name="layoutstyle"> <item name="android:alpha">0.7</item> <item name="android:background">#cddc39</item> </style> <style name="livetextstyle"> <item name="android:padding">8dp</item> <item <item name="android:gravity">center</item> <item name="android:textcolor">#1b5e20</item> </style> </resources> Επίσης, μπορούμε να ορίσουμε 'σχήματα' και να τα χρησιμοποιήσουμε. Η φάση αυτή θυμίζει τη δουλειά που κάνουν τα CSS στις HTML σελίδες. Όπως εκεί, έτσι κι εδώ δίνεται μια άσχημη λύση σε ένα υπαρκτό πρόβλημα (γλώσσες με διαφορετικές συντάξεις). 3/6/ Ανάπτυξη εφαρμογών Android 30
31 Αρχεία Android έργου Κάθε Android project έχει συγκεκριμένη δομή φακέλων και αρχείων που τη φτιάχνει το Android Studio και ΔΕΝ την πειράζουμε. Μια βλακεία είναι ότι αυτοί οι φάκελοι απεικονίζονται διαφορετικά στο Studio από ότι είναι πραγματικά στο σύστημα αρχείων. Μπλιαχ... Περιέχει τα ονόματα των δραστηριοτήτων που συμμετέχουν στην εφαρμογή, ποια είναι η αρχική. Δηλώνει όνομα και εικονίδιο εφαρμογής, καθώς και δικαιώματα που απαιτεί για τη λειτουργία της. app manifests java AndroidManifest.xml com.example.myapp drawable Εικόνες MainActivity.java SecondActivity.java Στο φάκελο java υπάρχει υποφάκελος με το όνομα του έργου και εκεί μέσα είναι αρχεία που περιέχουν προγράμματα Java με τον κώδικα που υλοποιεί τη συμπεριφορά της εφαρμογής. Περιέχει τις εικόνες που χρειάζονται για την εφαρμογή. res layout activity_main.xml activity_second.xml Τα αρχεία εμφάνισης περιέχουν υποδοχείς και όψεις για τη διεπαφή χρήστη κάθε δραστηριότητας. values colors.xml strings.xml styles.xml Αρχείο για τους καλλιτέχνες που ενδιαφέρονται να δώσουν ονόματα στα χρώματα... Περιέχει ονόματα και τιμές για τις συμβολοσειρές που χρειάζονται για την εφαρμογή. Μπορεί να υπάρχουν διαφορετικά αρχεία για κάθε γλώσσα (δες τοπικοποίηση). Περιέχει διακοσμητικές μπούρδες, ανάλογες με τα CSS των ιστοσελίδων. 3/6/ Ανάπτυξη εφαρμογών Android 31
32 Σκορ ντόμινο Στο παιχνίδι του ντόμινο χάνει όποιος ξεπεράσει πρώτος το όριο (πχ 31 πόντοι). Καταχωρούμε για κάθε παρτίδα ποιος έχει πάνω του πόντους και ενημερώνουμε το σκορ. Καταγράφεται το ιστορικό των παρτίδων. Ιδιότητες έργου Πρόγραμμα Φόντο οθόνης Εικονίδιο εφαρμογής Φόντο στρογγυλεμένο Ορισμός διεπαφής Στιλ 3/6/ Ανάπτυξη εφαρμογών Android 32
33 Σκορ ντόμινο: πόροι Ορίζει νέο σχήμα που χρησιμοποιείται ως φόντο από κάποιες όψεις. Είναι στο res/drawable. <shape xmlns:android="..." android:shape="rectangle"> <corners android:radius="20dp"/> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"/> <solid android:color="#e1bee7"/> </shape> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.mycomp.domino"> <application android:allowbackup="true" android:supportsrtl="true" <activity android:name=".mainactivity" <intent-filter> Παραπέμπει σε αρχείο με το εικονίδιο. Ορίζει το όνομα της εφαρμογής. <action android:name="android.intent.action.main"/> <category android:name="android.intent.category.launcher"/> </intent-filter> </activity> </application> </manifest> Ορίζει στιλ που μπορούν να χρησιμοποιούν οι όψεις της διεπαφής. Κάτι σαν τα CSS για την HTML. Είναι στο res/values. <resources> Διαφάνεια <style name="layoutstyle"> <item name="android:alpha">0.7</item> <item name="android:background">#cddc39</item> </style> </resources> 3/6/ Ανάπτυξη εφαρμογών Android 33
34 Σκορ ντόμινο: διεπαφή Layout της activity Αποτελείται από υποδοχείς LinearLayout που οργανώνουν σε ομάδες EditText, TextView, Button. <LinearLayout... android:orientation="vertical"> Εικόνα παρασκηνίου <EditText android:inputtype="text" android:text="ομάδα Α"/> Παραπέμπει σε στιλ για ομοιομορφία. Μία γραμμή κειμένου <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#11ee11" android:onclick="anevase1" android:text="0"/> Για ισοκατανομή Για ισοκατανομή Μέθοδος που εκτελείται στο κλικ <EditText Δεκαδικός αριθμός android:inputtype="numberdecimal" android:text="31"/> 3/6/ Ανάπτυξη εφαρμογών Android 34
35 Σκορ ντόμινο: πρόγραμμα Υλοποιεί τη συμπεριφορά της εφαρμογής, δηλαδή πώς ανταποκρίνεται στα συμβάντα. package com.mycomp.domino; //όνομα πακέτου import android.graphics.typeface; //βιβλιοθήκες που χρησιμοποιεί... Οι 'προχω' δεν χρησιμοποιούν την ιδιότητα android:onclick της XML για να ορίσουν το χειριστή, όπως δείχνω στα παραδείγματά μου. Ορίζουν listener ένα ανώνυμο στιγμιότυπο μιας κλάσης της οποίας μια μέθοδο έχουν υπερφορτώσει. Χέστηκε η φοράδα στο αλώνι! Δυστυχώς ένας ιδιαίτερα άσχημος και δυσνόητος κώδικας είναι απαραίτητος για να ορίσεις χειριστή για το παρατεταμένο κλικ. Η Google τσιγγουνεύτηκε να φτιάξει ιδιότητες android:onlongclick, κλπ. Γι αυτό λουστείτε το... public class MainActivity extends AppCompatActivity { //ονόματα για τις ποσότητες που παρακολουθεί int iskor1 = 0, iskor2 = 0; //σκορ παιχνιδιού //ονόματα για τα αντικείμενα της διεπαφής EditText etomada1, etomada2, etorio; TextView tvskor1, tvskor2; LinearLayout llkoympia; Button protected void oncreate(bundle savedinstancestate) {... //σύνδεση των ονομάτων της Java με τα ονόματα της XML tvpartida2 = (TextView) findviewbyid(r.id.partida2); //εκτελείται όταν κρατά παρατεταμένα πατημένο το πλήκτρο tvpartida2.setonlongclicklistener(new View.OnLongClickListener() { public boolean onlongclick(view v) { ); ipartida2 = 0; tvpartida2.settext("0"); return true; Τραγικό... 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 35
36 Σκορ ντόμινο: πολυμέσα Είναι εύκολο να παίξει ένας ήχος: 1. Στο φάκελο res φτιάχνουμε έναν υποφάκελο raw. Εκεί μέσα, κατά σύμβαση, βάζουμε τα αρχεία πολυμέσων (τραγούδια, βίντεο) που θα συνοδεύουν την εφαρμογή. 2. Για να παίξει το champions.mp3: MediaPlayer mp = MediaPlayer.create(this, R.raw.champions); mp.start(); Εντελώς άσχετο με πολυμέσα. Όλες οι εφαρμογές που έχουμε φτιάξει έχουν έκδοση 1. Καθώς τις εξελίσσουμε μπορεί να θέλουμε να τους ανεβάσουμε αριθμό έκδοσης. Αυτό γίνεται στα Gradle Scripts που αναλαμβάνουν την οικοδόμηση (Build) της εφαρμογής. Στο αρχείο build.gradle ανεβάζουμε τις ιδιότητες: versioncode 2 versionname "1.2 Σιγά μη γινόταν απλά και με προφανή τρόπο! Ονόματα αρχείων πρέπει να ξεκινούν με πεζό γράμμα. Για να προβάλουμε βίντεο, αφού βάλουμε το αρχείο του βίντεο στο φάκελο raw: 1. Τοποθετούμε μια όψη τύπου VideoView μέσα στο layout και την ονοματίζουμε, πχ vid_frame για να μπορούμε να τη «δούμε» από τη Java. 2. Της περνάμε το όνομα του αρχείου που περιέχει το βίντεο, πχ VideoView vv = (VideoView) findviewbyid(r.id.vid_frame); //δέσιμο XML και Java String p = "android.resource://" + getpackagename() + "/" + R.raw.somebody; vv.setvideouri(uri.parse(p)); // το πλήρες όνομα του αρχείου που θα προβληθεί vv.start(); 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 36
37 Αποσπάσματα κώδικα (Snippets) //Τοποθέτηση κειμένου σε TextView TextView tvetos = (TextView) findviewbyid(r.id.txtetos); tvetos.settext("2017"); //Ανάγνωση κειμένου από EditText EditText etxora = (EditText) findviewbyid(r.id.edthora); String s = ethora.gettext().tostring(); CheckBox cb = (CheckBox) findviewbyid(r.id.isok); String s; if (cb.ischecked()) { s = "Εντάξει"; else { s = "Πρόβλημα"; //Αποστολή Intent i = new Intent(Intent.ACTION_SENDTO); i.setdata(uri.parse("mailto:")); i.putextra(intent.extra_subject, "Γεια"); if (i.resolveactivity(getpackagemanager())!= null) startactivity(i); //Άνοιγμα οθόνης με όνομα activity Othoni2.java Intent i = new Intent(this, Othoni2.class); startactivity(i); //Στιγμιαία ειδοποίηση import android.widget.toast; Toast.makeText(getApplicationContext(), "Γεια χαρά...", Toast.LENGTH_SHORT).show(); //Παίζει τραγουδάκι από το αρχείο /res/raw/asong.mp3 import android.media.mediaplayer; MediaPlayer mp = MediaPlayer.create(this, R.raw.aSong); mp.start(); VideoView vv = (VideoView) findviewbyid(r.id.vid_frame); //δέσιμο XML και Java String p = "android.resource://" + getpackagename() + "/" + R.raw.someVideo; vv.setvideouri(uri.parse(p)); //το πλήρες όνομα του αρχείου που θα προβληθεί vv.start(); //ξεκινά να παίζει το βίντεο 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 37
38 Βάσεις δεδομένων Το Android περιλαμβάνει από κατασκευής την SQLite, ένα σύστημα διαχείρισης ΒΔ ελεύθερου κώδικα, απλό, αλλά με περιορισμένες δυνατότητες (πχ τύπους δεδομένων, διαχείριση χρηστών, επιδόσεις). Έτσι κι αλλιώς δεν έχουμε άλλη επιλογή. Η SQLite αποθηκεύει τη ΒΔ σε ένα αρχείο που εξ ορισμού πακετάρεται μαζί με την εφαρμογή και ΔΕΝ μπορείς να το προσπελάσεις (μεσαίωνας)! Μόνο με χακεριές και μόνο για τη δική σου εφαρμογή. Αλλωνών τις ΒΔ δεν μπορείς να τις δεις, παρά μόνον αν έχεις κάνει root το κινητό σου. Το ευχάριστο είναι ότι τουλάχιστον υποστηρίζει γλώσσα SQL. Για διευκόλυνση δίνεται μια βοηθητική κλάση και πάνω της χτίζουμε. Θα φτιάξουμε μια εφαρμογή που θα δημιουργεί έναν πίνακα στη ΒΔ και θα εκτελούμε προσθήκη, προβολή, διαγραφή εγγραφών. Διαδικασία 1. Ξεκινάμε με νέο project. 2. Διαμορφώνουμε το activity_layout, έτσι ώστε να δείχνει τα στοιχεία μιας εγγραφής. 3. Προσθέτουμε και τα πλήκτρα, χωρίς να κάνουν τίποτα, βέβαια. 4. Δημιουργούμε τη ΒΔ και τον πίνακα με τα πεδία του. 5. Προσθέτουμε εγγραφές. 6. Προβάλουμε εγγραφές. 7. Διαγράφουμε εγγραφές. 3/6/ Ανάπτυξη εφαρμογών Android 38
39 Ζωγραφιά: οθόνη Η διεπαφή είναι ένα κατακόρυφο LinearLayout μέσα στο οποίο είναι δυο TableLayout (θα μπορούσε να έχει και ScrollView, αν δεν χωράει). Tο πρώτο TableLayout είναι 6 Χ 2. Η αριστερή στήλη έχει TextView με τις ετικέτες των πεδίων του πίνακα. H δεξιά στήλη έχει τις τιμές σε EditText και για ποικιλία έβαλα ένα CheckBox και ένα RadioGroup. Το δεύτερο TableLayout είναι 2 Χ 3 και περιέχει τα πλήκτρα. Το TableLayout περιέχει TableRow που περιέχουν τα στοιχεία της κάθε γραμμής. Η λογική του μοιάζει με την ετικέτα <table> της HTML. Για να κρατήσω μικρό το XML έχω χρησιμοποιήσει styles. Ονόματα έχουν μόνον οι όψεις που αναφέρονται από τη Java. Χρησιμοποίησα android:hint στα EditText, μου αρέσει. To RadioGroup περικλείει αμοιβαία αποκλειόμενες επιλογές (RadioButton). Ορίζεται μία ως αρχικά επιλεγμένη και αν επιλέξεις διαφορετική, απόεπιλέγεται η προηγούμενη. 3/6/2017 igaviotis@gmail.com - Ανάπτυξη εφαρμογών Android 39
ANDROID Προγραμματισμός Εφαρμογών
ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής
APP INVENTOR ΟΔΗΓΟΣ 8 Οκτωβρίου 2018
Πώς φτιάχνω Εφαρμογές για Android με το App Inventor Έχετε μια ιδέα για μια mobile εφαρμογή, αλλά δεν ξέρετε πώς να την υλοποιήσετε; Το App Inventor είναι ένα χρήσιμο εργαλείο για κάθε αρχάριο προγραμματιστή
Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10
Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...
Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010
Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ
Με την ολοκλήρωση της διαδικασίας μπορούμε αν θέλουμε να επιλέξουμε να ανοίξει ή όχι η εφαρμογή που έχει εγκατασταθεί.
Πώς φτιάχνω Εφαρμογές για Android με το App Inventor Τι χρειάζεται για να ξεκινήσουμε; Η λειτουργία του App Inventor είναι κυρίως διαδικτυακή. Για να ξεκινήσει κανείς δηλαδή δεν απαιτείται ούτε κάποιο
Πως θα κατασκευάσω το πρώτο πρόγραμμα;
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer
Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία
Δημιουργώντας μια εφαρμογή ζωγραφικής 2 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail
Εργαστήριο 1-1 η Άσκηση - Ανάλυση
Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική
Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0
Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413
2.1 Σύνδεση Εξωτερικής Συσκευής στο IDE
2.1 Σύνδεση Εξωτερικής Συσκευής στο IDE Κατά την ανάπτυξη μιας εφαρμογής είναι σημαντικό να ελέγχετε την λειτουργικότητά της σε μια συσκευή, πριν την δημοσιεύσετε στους χρήστες. Ένα πολύ βολικό σύστημα,
ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)
ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.
WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής
WORDPRESS Το παρόν εγχειρίδιο είναι μία προσπάθεια για τους συναδέλφους εκπαιδευτικούς αλλά και μαθητές για την δημοσίευση άρθρων. Για παραλήψεις, λάθη ή κάτι το δυσνόητο παρακαλώ ενημερώστε με ώστε να
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr 1 Δομημένος προγραμματισμός έναντι αντικειμενοστρεφούς
21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι
21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα
Γι αυτό το λόγο όπως έχει ήδη αναφερθεί, εκτός από την προβολή Design, υπάρχει η προβολή Text όπου μπορείτε να δείτε σε xml το layout.
3.1 Layouts Ένα από τα πιο tricky πράγματα του Android Studio είναι το πώς θα προσαρμόσετε το Layout της εφαρμογής σας στις πραγματικές σας ανάγκες, κι όχι στο πώς θα σας το φτιάξει όπως «νομίζει» το πρόγραμμα.
Android Studio για Windows
Android Studio για Windows 1. Οδηγίες Εγκατάστασης: 1. Κατεβάστε το Android Studio από εδώ (τελευταία έκδοση 0.4.6, 496 MB): http://developer.android.com/sdk/installing/studio.html 2. Εγκαταστήστε το αρχείο
άσκηση Hide UI Elements 7.2 Try and Catch
7.1 Hide UI Elements Στο Android Studio όταν θέλουμε να κρύψουμε οτιδήποτε (κάποιο Button, ένα TextView, ένα ImageView κλπ) μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή: setvisibility(view.invisible)
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση
Εργαστηριακές Σημειώσεις
Πολυμεσικές Υπηρεσίες στην Υγεία [κωδ. μαθήματος ΛΟΓ51] Εργαστηριακές Σημειώσεις ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ANDROID Μανώλης Τσικνάκης, Αλέξανδρος Ρονιώτης, Ευαγγελία Μανιαδή Ηράκλειο 2016 κεφαλαιο
Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy
Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...
Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία
Ξεκινώντας με το MIT Αρρ Inventor 1 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail 4. Κατεβάστε
Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 ο Μάθημα
Δημιουργώντας μια εφαρμογή ζωγραφικής 2 ο Μάθημα Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail 4.
Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences
Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences Γεια σου. Σε αυτό το μάθημα θα μιλήσουμε για τις δυνατότητες που μας δίνει η Unity να την κάνουμε να λειτουργεί όπως θέλουμε. Η αλήθεια είναι ότι
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ "PROΩΘΗΣΗ" PROώθηση
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ "PROΩΘΗΣΗ" PROώθηση Περιεχόμενα Εγκατάσταση ΠΕΡΙΕΧΟΜΕΝΑ ΣΥΣΚΕΥΑΣΙΑΣ... 3 ΣΥΝΔΕΣΗ ΕΞΟΠΛΙΣΜΟΥ... 3 ΡΥΘΜΙΣΗ Wi-Fi... 4 ΕΙΣΟΔΟΣ ΧΡΗΣΤΗ... 6 ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΣΥΣΚΕΥΗΣ... 6 ΚΑΤΑΣΤΑΣΗ ΣΥΣΚΕΥΗΣ...
Εφαρμογή υπολογισμού φιλοδωρήματος
Εφαρμογή υπολογισμού φιλοδωρήματος Η εφαρμογή αυτή χρησιμοποιεί ένα GridLayout ώστε να διατάξει προβολές σε 5 γραμμές και δύο στήλες. Κάθε κελί μέσα σε ένα GridLayout μπορεί να είναι κενό ή μπορεί να περιέχει
Δημιουργία Ιστολογίου με το WORDPRESS στο Νηπιαγωγείο. Αλεξάνδρα Νάκου Med
Δημιουργία Ιστολογίου με το WORDPRESS στο Νηπιαγωγείο Αλεξάνδρα Νάκου Med alexandranakou@gmail.com Βήμα 1ο Ανοίγουμε τον φυλλομετρητή ιστού (Google Chrome, Internet Explorer, Mozilla) όποιον χρησιμοποιούμε
WiFi V-Timer ΕΚΔΟΣΗ 2Η
ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ WiFi V-Timer ΕΚΔΟΣΗ 2Η 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ WiFi V-Timer... 3 2. ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΟΥ WiFi V-Timer... 4 3. ΤΟΠΙΚΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ WiFi V-Timer... 5 4. ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ
ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα : ΥΛΟΠΟΙΗΣΗ ΞΕΝΟΓΛΩΣΣΗΣ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΛΑΤΦΟΡΜΑ ANDROID Όνοματεπώνυμο : Στέκας Ιγνάτιος Επιβλέπων : Σωτήριος Κοντογιάννης Ημερομηνία
Εισαγωγή στην Ανάπτυξη Εφαρμογών Android
Εισαγωγή στην Ανάπτυξη Εφαρμογών Android Σημειώσεις σεμιναρίου Επιμέλεια: Βασίλης Κόλιας Ενότητα 2 Εισαγωγή στις εφαρμογές Graphical User Interfaces Πίνακας Περιεχομένων 4 Εισαγωγή στις εφαρμογές... 2
Τιμή Τιμή. σκορ. ζωές
Εισαγωγή στην έννοια των μεταβλητών Οι μεταβλητές Θα πρέπει να έχετε παρατηρήσει ότι έχουμε φτιάξει τόσα παιχνίδια μέχρι αυτό το σημείο και δεν έχουμε αναφερθεί πουθενά για το πως μπορούμε να δημιουργήσουμε
Interactive Power Point
Interactive Power Point Οι περισσότεροι χρήστες γνωρίζουν τη χρήση του Microsoft Power Point για τη δημιουργία παρουσιάσεων. Αυτό όμως που λίγοι γνωρίζουν, είναι ότι το πρόγραμμα αυτό, έχει δυνατότητες
ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης
ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4
To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition
To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition Πίνακας Περιεχομένων To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition... 1 Εκτέλεση του περιβάλλοντος ανάπτυξης
Για να κάνουμε μια εικόνα να εξαφανίζεται και μια να εμφανίζεται (cross fade), κάνουμε τον συνδυασμό των από πάνω
4. Media Έχετε ήδη δει πως βάζετε μια εικόνα στο Android Studio με το ImageView. Σε αυτό το κεφάλαιο θα μάθετε πώς μπορείτε να κάνετε κάποια βασικά animation και να διαχειριστείτε Video και Audio. 4.1
1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:
1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: Εικόνα 1 Για να φτιάξουμε το τείχος επιλέγουμε καταρχήν την καρτέλα Γραφικά (κάτω δεξιά) και έπειτα το γεμάτο τετράγωνο από την
ΔΡΑΣΤΗΡΙΟΤΗΤΑ : ΖΑΡΙΑ
ΔΡΑΣΤΗΡΙΟΤΗΤΑ : ΖΑΡΙΑ ΠΕΡΙΓΡΑΦΗ ΕΦΑΡΜΟΓΗΣ Θα κατασκευάσουμε μια εφαρμογή που θα δίνει τη δυνατότητα στον χρήστη της να ρίχνει δύο ζάρια με το πάτημα ενός κουμπιού, όπως ακριβώς και στο τάβλι. Το περιβάλλον
Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.
Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών
Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή.
Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή. Βήμα 1 ο : Εγκατάσταση εφαρμογής ανάγνωσης Readium και Readium για μαθητές με
XAMPP Apache MySQL PHP javascript xampp
XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα
Εφαρμογή Υπολογισμού Φιλοδωρήματος : προσθήκη λειτουργικότητας
Εφαρμογή Υπολογισμού Φιλοδωρήματος : προσθήκη λειτουργικότητας Όταν δημιουργούμε μία εφαρμογή package com.example.expert.mytipcalculator; import android.support.v7.app.appcompatactivity; import android.os.bundle;
Οδηγίες για τη Χρήση του Google Drive
Οδηγίες για τη Χρήση του Google Drive Χαρπαντίδου Ζαχαρούλα Επιμορφώτρια Β επιπέδου ΠΕ 19-20 Υπεύθυνη ΚΕ.ΠΛΗ.ΝΕ.Τ. Δράμας 2013 Περιεχόμενα Δημιουργία λογαριασμού στο Google Drive. 3 Διαχείριση του GoogleDrive..
Εγχειρίδιο χρήσης Print2PDF σελ. 1 από 32
Πρόγραμμα Print2PDF (Εκτύπωση κειμένου και εικόνων σε αρχεία PDF) Πρόλογος Η εφαρμογή Print2PDF (Print to PDF Εκτύπωση σε αρχεία PDF) σας επιτρέπει να εκτυπώσετε το δικό σας κείμενο πάνω σε ένα έντυπο
Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.
Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο. Εισηγητής : Χρήστος Μανώλης δάσκαλος Θεσσαλονίκη Οκτώβριος - Δεκέμβριος
αντίστοιχο γεγονός. Όταν όντως το κουμπί
Εισαγωγή στην αλληλεπίδραση Τα έργα που έχουμε αναπτύξει έως τώρα τρέχουν ένα σενάριο και σταματούν. Τα αντικείμενά μας αλλάζουν θέση και ενδυμασίες, παίζουν διαφορετικούς ήχους και ζωγραφίζουν διάφορα
Παιχνιδάκια με τη LOGO
Όταν σβήνει ο υπολογιστής ξεχνάω τα πάντα. Κάτι πρέπει να γίνει Κάθε φορά που δημιουργώ ένα πρόγραμμα στη Logo αυτό αποθηκεύεται προσωρινά στη μνήμη του υπολογιστή. Αν θέλω να διατηρηθούν τα προγράμματά
Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795
Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795 Περιεχόμενα Εισαγωγή Εγκατάσταση Δημιουργία νέου project Java Editor Perspectives Δημιουργία source folders Προσθήκη νέου αρχείου στο project Εισάγωντας
Blog στο Wordpress. Επιμέλεια: Δέγγλερη Σοφία
Blog στο Wordpress Επιμέλεια: Δέγγλερη Σοφία Περιεχόμενα Μετάβαση στο blog Σύνδεση ως διαχειριστής Πίνακας ελέγχου Εμφάνιση Ρυθμίσεις Άρθρα Σελίδες Πολυμέσα Σύνδεσμοι Widgets Μετάβαση στο blog Πληκτρολογούμε
8 Maps. 8.1 Δημουργία Activity με χάρτη
8 Maps Ένα πολύ σημαντικό κομμάτι πολλών εφαρμογών για κινητά, χρησιμοποιούν χάρτες και τη θέση του χρήστη για να πραγματοποιήσουν κάποιες λειτουργίες που δεν είναι δυνατόν να συμβούν με έναν απλό υπολογιστή.
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή
App Inventor 5ο Μάθημα (Κορώνα γράμματα - επέκταση)
App Inventor 5ο Μάθημα (Κορώνα γράμματα - επέκταση) Λογικός τελεστής not Δομή επιλογής If then else Λογικές μεταβλητές Animation Θα επεκτείνουμε την εφαρμογή Κορώνα Γράμματα που δόθηκε σαν δραστηριότητα
«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.
«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα. Πώς θα δουλέψεις με το Χελωνόκοσμο την πρώτη φορά 1. Θα χρησιμοποιήσεις το αριστερό πλήκτρο
Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία
Ξεκινώντας με το MIT Αρρ Inventor 1 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail 4. Κατεβάζουμε
Πρακτικές οδηγίες για την Επεξεργασία Κειμένου
11 Εργαλεία έκφρασης και δημιουργίας Επεξεργασία Κειμένου Α Γυμνασίου Πρακτικές οδηγίες για την Επεξεργασία Κειμένου Ένα πρόγραμμα επεξεργασίας κειμένου μας προσφέρει τη δυνατότητα να: προσθέτουμε, να
1. Τα τμήματα της επιφάνειας εργασίας των Windows
1. Τα τμήματα της επιφάνειας εργασίας των Windows Εικονίδια συντομεύσεων (αρχείου-φακέλου) Εικονίδια Ανενεργά Ενεργό Επιφάνεια (αρχείου-φακέλου) παράθυρα παράθυρο εργασίας Γραμμή μενού Γραμμή εργαλείων
Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I
Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I Διαδικτυακή Εφαρμογή (1/2) Ως διαδικτυακή εφαρμογή μπορούμε
Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/
1) Εμφάνιση ιστοσελίδας Ανοίγουμε το πρόγραμμα πλοήγησης (Firefox, Chrome, Internet Explorer κτλ) και στη γραμμή διευθύνσεων πληκτρολογούμε τη διεύθυνση http://localhost ή http://127.0.0.1. Αν δεν βλέπουμε
> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό
5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε
Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων
Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε
Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.
Μάθημα 4ο Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος. Σε αυτό το μάθημα θα δημιουργήσουμε ένα απλό παιχνίδι με τη βοήθεια του Director. Το παιχνίδι θα είναι στο ύφος του γνωστού Pacman,
ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE
ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα
APP INVENTOR ΜΕΡΟΣ A. Σοφία Τζελέπη,
APP INVENTOR ΜΕΡΟΣ A Σοφία Τζελέπη, stzelepi@sch.gr App Inventor 2 Google, 15 Dec 2010 MIT, 1 Jan 2012 Cloud-based software Gmail account Android Phone Τι είναι μια εφαρμογή σε AppInventor 3 Περιγράφω
ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.
ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης
Εφαρμογή Skype Μαθησιακά Αποτελέσματα
ΕΦΑΡΜΟΓΗ SKYPE Εφαρμογή Skype Μαθησιακά Αποτελέσματα Κατανόηση της εφαρμογής Skype και της χρησιμότητάς του. Εφαρμογή στην καθημερινότητά μας. Να κάνουμε δωρεάν κλήσεις εσωτερικού και εξωτερικού. Να δεχόμαστε
ZTrade Quick Start User Manual Version 2.2
ZTrade Quick Start User Manual Version 2.2 1. Εισαγωγή Το κείμενο αυτό περιγράφει τις βασικές λειτουργίες της εφαρμογής ZΤrade για την παρακολούθηση των αγορών και την διαχείριση των χαρτοφυλακίων. Για
B) Ετοιμάζοντας μια Παρουσίαση
B) Ετοιμάζοντας μια Παρουσίαση Τι είναι μια παρουσίαση με τη βοήθεια ηλεκτρονικού υπολογιστή Ο υπολογιστής με την κατάλληλη εφαρμογή, μπορεί να μας βοηθήσει στη δημιουργία εντυπωσιακών εγγράφων, διαφανειών
ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C
ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει
Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο
Το περιβάλλον εργασίας Ανοίγοντας την Ελληνική Έκδοση του FrontPage, για πρώτη φορά, η εικόνα που θα συναντήσουμε είναι αυτή της Εικόνας 1 με τα Μενού Εντολών και τη Γραμμή Εργαλείων, στο πάνω μέρος της
(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.
Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". ΚΕΦΑΛΑΙΟ 2 Χρήση εργαλείων
Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run
Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Καλώς ήλθες. Στο προηγούμενο μάθημα είδαμε τις λειτουργίες του μενού File του Editor της Unity. Όπως είπαμε οι δύο επιλογές που διαφέρουν
Δημιουργία. Ιστολογίου (blog) 7/5/2015. Χρυσάνθη Γιομέλου ΚΔΒΜ ΝΙΚΑΙΑΣ
Δημιουργία 7/5/2015 Ιστολογίου (blog) www.blogger.com Χρυσάνθη Γιομέλου ΚΔΒΜ ΝΙΚΑΙΑΣ ΠΕΡΙΕΧΟΜΕΝΑ TI EINAI TO ΙΣΤΟΛΟΓΙΟ... 2 ΓΙΑΤΙ ΙΣΤΟΛΟΓΙΟ;... 2 ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΗΣ ΧΡΗΣΗΣ ΙΣΤΟΛΟΓΙΟΥ... 2 ΔΗΜΙΟΥΡΓΙΑ ΛΟΓΑΡΙΑΣΜΟΥ
Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα
Ασκήσεις της Ενότητας 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- α. Η χρήση της πένας Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα Υπάρχουν εντολές που μας επιτρέπουν να επιλέξουμε το χρώμα της πένας, καθώς και το
Μάθημα 1: Εισαγωγή. Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων.
Μάθημα : Εισαγωγή 2 Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων. Κάνοντας διπλό κλικ στην εντολή μπορείς να δεις ότι η γάτα κινείται στη σκηνή. Επίλεξε την
Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης.
Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης. 1. SMART BOARD SERIAL NUMBER: Ο σειριακός αριθμός του Διαδραστικού πίνακα βρίσκεται στην δεξιά πλαϊνή μεριά
Γεωργάκης Αριστείδης ΠΕ20
1 Εκκίνηση για πρώτη φορά Όπως συμβαίνει και με τις υπόλοιπες εφαρμογές του OpenOffice, έτσι και το Impress μπορούμε να το εκκινήσουμε μέσω της συντόμευσης που εγκαθίσταται αυτόματα στην επιφάνεια εργασίας
ΟΔΗΓΙΕΣ ΠΡΟΕΤΟΙΜΑΣΙΑΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΕΞΟΠΛΙΣΜΟΥ
ΟΔΗΓΙΕΣ ΠΡΟΕΤΟΙΜΑΣΙΑΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΕΞΟΠΛΙΣΜΟΥ Κάθε ΝΟΔΕ παραλαμβάνει: 1. Ενάν αριθμό συσκευών (tablets), θηκών και πληκτρολογίων (άλλες αποστολές έχουν πληκτρολόγια ενσωματωμένα στη θήκη, άλλες έχουν
ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ TABLET Η SMART PHONES (ANDROID, IOS)
ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ TABLET Η SMART PHONES (ANDROID, IOS) ΠΕΡΙΕΧΟΜΕΝΑ ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΗΣ OWNCLOUD ΓΙΑ ΛΕΙΤΟΥΡΓΙΚΟ ANDROID... 2 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ OWNCLOUD ΣΤΟ ANDROID... 5 ΕΓΚΑΤΑΣΤΑΣΗ
Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο
FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη
2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
Οδηγός γρήγορης εκκίνησης
Οδηγός γρήγορης εκκίνησης Το Microsoft Word 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης. Γραμμή
7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής
Μάθημα 7ο Πολυμέσα 7.Α.1 Παρουσιάσεις Οι παρουσιάσεις είναι μια εφαρμογή που χρησιμεύει στην παρουσίαση των εργασιών μας. Αποτελούν μια συνοπτική μορφή των εργασιών μας. Μέσω δημιουργίας διαφανειών, μορφοποιήσεων
Βασικές Εντολές MicroWorlds Pro.
Βασικές Εντολές MicroWorlds Pro. 1. μπροστά (μπ) αριθμός Μετακινεί τη χελώνα προς τα εμπρός. π.χ. μπροστά 100 2. πίσω (πι) αριθμός Μετακινεί τη χελώνα προς τα πίσω. π.χ. πι 30 3. δεξιά (δε) αριθμός Στρέφει
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΜΑΘΗΜΑ : Η/Υ I (ενότητα WINDOWS) ΥΠΕΥΘΥΝΟΣ : ΑΝΑΣΤΑΣΙΟΣ ΟΙΚΟΝΟΜΙΔΗΣ, Καθηγητής ΕΡΓΑΣΤΗΡΙΑ : ΘΕΑΝΩ ΧΑΤΖΙΔΑΚΗ, Εργαστηριακό
Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word
Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Επειδή οι μεταγενέστερες εκδόσεις του Word δεν περιλαμβάνουν στο μενού τη δυνατότητα δημιουργίας πολλαπλών
3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
Εφαρμογή δημιουργίας σεναρίων Sctatch
Εφαρμογή δημιουργίας σεναρίων Sctatch Δημιουργία Σεναρίων με το Scratch - τάξη Β Το Scratch είναι μια γλώσσα οπτικού προγραμματισμού οδηγούμενου από γεγονότα. Τα έργα (project) στο Scratch οικοδομούνται
Τι θα απαντούσατε αλήθεια στην ίδια ερώτηση για την περίπτωση της επόμενης εικόνας;
Κίνηση με συντεταγμένες Στην προηγούμενη υποενότητα είδαμε πως μπορούμε να κάνουμε το χαρακτήρα σας να κινηθεί με την εντολή κινήσου...βήματα που αποτελεί και την απλούστερη εντολή της αντίστοιχης παλέτας
Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα.
Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Η Γλώσσα Προγραμματισμού
Χρήση του Office 365 σε τηλέφωνο Android
Χρήση του Office 365 σε τηλέφωνο Android Οδηγός γρήγορης εκκίνησης Έλεγχος ηλεκτρονικού ταχυδρομείου Ρυθμίστε το τηλέφωνο Android για αποστολή και λήψη ηλεκτρονικού ταχυδρομείου από το λογαριασμό του Office
Τα Windows Πολύ Απλά και Πολύ Σύντομα
Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Τα Windows Πολύ Απλά και
1. Βασικές Λειτουργίες των Windows
1. Βασικές Λειτουργίες των Windows Α - Εκκίνηση του Υπολογιστή και των Windows XP Για να εκκινήσουμε τον υπολογιστή μας πατάμε το κουμπί ανοίγματος της μονάδας συστήματος και το αντίστοιχο κουμπί της οθόνης.
Δημιουργία μιας εφαρμογής Java με το NetBeans
Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία
Βάσεις δεδομένων (Access)
Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Κουμπί Κενή βάση δεδομένων Κουμπί του Office Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στο κουμπί «Κενή βάση δεδομένων»
Android Studio για Linux
Android Studio για Linux 1. Οδηγίες Εγκατάστασης: 1. Κατεβάστε το Android Studio από εδώ (τελευταία έκδοση 0.4.6, 496 MB): http://developer.android.com/sdk/installing/studio.html 2. Επιλέξτε το πακέτο
Κεφάλαιο 1 Χρήση προτύπου 2. Κεφάλαιο 2 Τροποποίηση μιας παρουσίασης 9. Κεφάλαιο 4 Προσθήκη αντικειμένων 26. Κεφάλαιο 5 Ειδικά εφέ 35
Περιεχόμενα Κεφάλαιο 1 Χρήση προτύπου 2 Κεφάλαιο 2 Τροποποίηση μιας παρουσίασης 9 Κεφάλαιο 3 Εφαρμογή σχεδίων 19 Κεφάλαιο 4 Προσθήκη αντικειμένων 26 Κεφάλαιο 5 Ειδικά εφέ 35 Κεφάλαιο 6 Κουμπιά ενεργειών
Επικοινωνήστε με την Τράπεζα Πειραιώς
Χρήσης 1 Επικοινωνήστε με την Τράπεζα Πειραιώς Kαταγράψτε εδώ τους κωδικούς που βρίσκονται στο email ενεργοποίησης της υπηρεσίας που έχετε παραλάβει από την Τράπεζα Πειραιώς. Θα τους χρειαστείτε σε κάθε
Εγκατάσταση της Unity
Εγκατάσταση της Unity Όπως έχουμε πει, θα χρησιμοποιήσουμε την Unity για να φτιάξουμε τα παιχνίδια μας. Η Unity είναι μια μηχανή παιχνιδιών (game engine). Τι σημαίνει όμως αυτό; Σημαίνει απλά ότι είναι
1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1
1.Puzzle Μόλις ανοίξω το πρόγραμμα επιλέγω την εντολή Browse. Στη συνέχεια αναζητώ την εικόνα που έχω αποθηκεύσει σε ένα φάκελο (στην επιφάνεια εργασίας ή στα έγγραφά μου ή στο σκληρό μου δίσκο). Αφού
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC 1) Πατάμε δεξί κλικ Μενού 2) Όνομα Χρήστη βάζουμε «admin» 3) Κωδικός Πρόσβασης το αφήνουμε «κενό» 4) Πατάμε OK και μπαίνουμε στο Μενού Είσοδος στο μενού Στην πρώτη εκκίνηση μετά
Ηλεκτρολογικό Σχέδιο στο AutoCAD
Ηλεκτρολογικό Σχέδιο στο AutoCAD Δημιουργία Παλέτας Ηλεκτρολογικών Στοιχείων, Σχεδίαση σε Επίπεδα ΣΧΕΔΙΑΣΗ ΣΤΟΙΧΕΙΩΝ Αρχικά σχεδιάζουμε τα στοιχεία που θέλουμε να εισάγουμε στην παλέτα. Καλό να βρίσκονται
Visual Basic Γλώσσα οπτικού
Visual Basi Γλώσσα οπτικού προγραµµατισµού «Η αρχή είναι το ήµισυ του παντός» Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι Μαθήµατος Οι µαθητές να µπορούν: να εξηγούν τι είναι η Visual Basi. ναεξηγούνταστάδιαδηµιουργίας