Προγραμματισμός σε Android: Μία άποψη στο τι πρέπει να προσέξουμε για να ξεκινήσουμε και πού να απευθυνθούμε


Ο προγραμματισμός εφαρμογών για mobile πλατφόρμες είναι μία ιδέα που εξιτάρει τους περισσότερους από εμάς, κυρίως γιατί μας δίνει τη δυνατότητα να κάνουμε κάτι δημιουργικό από το οποίο θα βγάλουμε και χρήματα, αν έχουμε έξυπνες και πρωτότυπες ιδέες.

Ο Στράτος είναι ένας φίλος αναγνώστης του Dr. Android και εδώ και λίγο καιρό προγραμματιστής Android εφαρμογών και προσφέρθηκε να μας πει μερικά πράγματα για το αντικείμενο. Του ζήτησα να μην αναλωθεί στα τετριμμένα όπως το να μας δείξει πώς στήνουμε το Eclipse ή πώς δημιουργούμε άχρηστες εφαρμογές όπως το "Hello World", αλλά να θυμηθεί και να μας πει τις πηγές που διάβασε για να ξεκινήσει, τα προβλήματα που αντιμετώπισε αλλά και πού θα πρέπει να επικεντρωθούμε όσοι ξεκινάμε τώρα, για να μη χάσουμε τσάμπα χρόνο.

Διαβάστε λοιπόν την εμπειρία του Στράτου ο οποίος ακολούθησε το "σωστό" δρόμο και όχι λύσεις ημίμετρα όπως για παράδειγμα το App Inventor:

"Στο άρθρο μου θα σας περιγράψω πώς ξεκίνησα τον προγραμματισμό σε Android, τι υλικό έχω μελετήσει πριν ξεκινήσω και τι πηγές χρησιμοποιώ για να φτιάξω μια εφαρμογή. Πρώτα όμως θα σας αναφέρω μερικές πληροφορίες για μένα για να καταλάβετε το προφίλ μου.

Το προφίλ μου

Είμαι μηχανικός λογισμικού και κατέχω BSc στην Επιστήμη Υπολογιστών και MSc σε Software Engineering από Πανεπιστήμια της Αγγλίας. Προγραμματίζω στη γλώσσα προγραμματισμού java τα τελευταία 10 χρόνια. Αυτό με βοήθησε αρκετά ώστε να ξεκινήσω τον προγραμματισμό σε Android, το οποίο βασίζεται στη java. Οπότε είναι σημαντικό να πούμε ότι απαραίτητη προϋπόθεση για προγραμματισμό σε Android είναι η βασική γνώση της java και του αντικειμενοστραφούς προγραμματισμού (object oriented programming).

Ξεκίνησα να προγραμματίζω σε Αndroid μόλις τον Οκτώβριο του 2012 στον ελεύθερο μου χρόνο! Από τότε έχω φτιάξει τρεις απλές εφαρμογές, τις οποίες τις έχω ανεβάσει στο Google Play και είναι διαθέσιμες δωρεάν. Μπορείτε να τις δείτε και να τις κατεβάσετε από εδώ (Stratos).

Η αλήθεια είναι ότι με το Android σου δίνεται η δυνατότητα να φτιάχνεις χρήσιμες αλλά και αστείες εφαρμογές τις οποίες διαθέτεις κατευθείαν στο κοινό, χωρίς μεσάζοντες, και τις οποίες μπορεί να κατεβάσει κάποιος στο κινητό του για άμεση χρήση. Mε αυτό τον τρόπο μπορείς να φτιάξεις κάτι μοναδικό που θα λύνει ένα πρόβλημα ή θα περνάει κάποιος τον χρόνο του διασκεδαστικά. Αν αναλογιστεί κανείς ότι σύμφωνα με πρόσφατες στατιστικές 3 στα 4 Smartphones παγκοσμίως τρέχουν λογισμικό Android, αυτό δίνει τεράστιες δυνατότητες στους προγραμματιστές για να ξετυλίξουν το ταλέντο τους και την φαντασία τους με τις εφαρμογές που θα φτιάξουν.

Οι πηγές

Όταν ξεκίνησα να μελετώ για το Android η αλήθεια είναι ότι πελάγωσα με την πληθώρα των πληροφοριών και οδηγών που υπήρχαν στο διαδίκτυο. Επίσης είχα κατεβάσει ένα σωρό βιβλία pdf  σχετικά  με το πώς να προγραμματίζεις σε Android κι είχα ξεκινήσει να μελετώ μερικά από αυτά. Αλλά η πρόοδος μου ήταν πολύ αργή μιας και τα βιβλία αυτά είχαν λίγες μόνο πληροφορίες που έπρεπε να χάσεις αρκετό χρόνο για να τις βρεις μέσα στη φλυαρία του συγγραφέα ή περιείχαν παλιές τεχνικές μιας και το Android έχει αλλάξει πολλές εκδόσεις τα τελευταία χρόνια.

Έτσι αποφάσισα σαν αρχή να μάθω τα απολύτως αναγκαία για το Android κι έπειτα να επικεντρωθώ σε κάθε κομμάτι του χωριστά για το οποίο θα ήθελα να μάθω περισσότερα. Οπότε o πρώτο πράγμα που έκανα ήταν να ξεκινήσω από το επίσημο site της Google για προγραμματιστές Android, που περιέχει τις πιο πρόσφατες πληροφορίες καθώς και οδηγούς εκμάθησης. Επίσης χρήσιμη είναι και η σελίδα για το Android API, που σε βοηθάει να καταλάβεις τις δυνατότητες του κάθε κώδικα που χρησιμοποιείς. Φυσικά όλο αυτό το υλικό είναι γραμμένο στα Αγγλικά, οπότε μια σχετική εξοικείωση στην ανάγνωση Αγγλικών είναι απαραίτητη.

Αφού κατάφερα εύκολα να μάθω τις βασικές έννοιες και να στήσω το περιβάλλον εργασίας για τον προγραμματισμό σε Android, έπειτα έψαχνα στο διαδίκτυο για πιο προηγμένα θέματα για τα οποία ήθελα να μάθω περισσότερα πράγματα. Εκεί βρήκα πολλά blogs και sites προγραμματιστών με αναλυτικές λεπτομέρειες για οποιοδήποτε θέμα ή πρόβλημα με πιο δημοφιλές το Stack Overflow, το οποίο τις περισσότερες φορές αρκεί για να βρεις απάντηση σε κάθε σου πρόβλημα ή απορία.

Ολίγον από κώδικα

Ας πούμε όμως και μερικά πράγματα για τον κώδικα του Android για να πάρετε μια ιδέα περί τίνος πρόκειται. Ένα από τα βασικά δομικά υλικά κάθε εφαρμογής Android είναι το activity. Ουσιαστικά πρόκειται για μια οθόνη (screen) της εφαρμογής. Για παράδειγμα αν χρησιμοποιείτε το κομπιουτεράκι (calculator) στο κινητό σας, η αρχική οθόνη που έχει όλα τα κουμπιά με τους αριθμούς και τις πράξεις καθώς και το πεδίο που φαίνονται οι αριθμοί αποτελούν μέρος ενός activity. Αν χρειαστεί να μεταβείτε σε μία άλλη οθόνη μέσα από την εφαρμογή αυτό αποτελεί ένα διαφορετικό activity. Όταν φτιάχνετε ένα νέο activity σε μια εφαρμογή, για παράδειγμα το κομπιουτεράκι, χρειάζεται να δημιουργηθούν δύο αρχεία:

activity_calculator.xml: Σε αυτό το αρχείο μπορούμε να σχεδιάσουμε το γραφικό περιβάλλον της εφαρμογής. Δηλαδή για το κομπιουτεράκι μας, μπορούμε να προσθέσουμε κάθε κουμπί ξεχωριστά καθώς και το πεδίο που θα δέχεται τους αριθμούς. Με άλλα λόγια είναι σαν τον πίνακα ζωγραφικής όπου μπορούμε να “ζωγραφίσουμε” πώς θα φαίνεται η εφαρμογή μας.

CalculatorActivity.java: Σε αυτό το αρχείο θα προσθέσουμε τις λειτουργίες της εφαρμογής γράφοντας τον java κώδικα που θα κάνει τους υπολογισμούς και θα φέρνει το αποτέλεσμα στον χρήστη. Από εδώ μπορούμε να χρησιμοποιήσουμε τα κουμπιά που έχουν δημιουργηθεί στο αρχείο “activity_calculator.xml” και να τους δώσουμε τη δυνατότητα να κάνουν υπολογισμούς καθώς και να ρυθμίσουμε το πεδίο που δέχεται τους αριθμούς, να μας δίνει το αποτέλεσμα. Το τελευταίο μπορείτε να το δείτε από τον παρακάτω βασικό κώδικα:

1: public class CalculatorActivity extends Activity {
2:       @Override
3:        protected void onCreate(Bundle savedInstanceState) {
4:  super.onCreate(savedInstanceState);
5:  setContentView(R.layout.activity_calculator);
6:  TextView pedio = (TextView)findViewById(R.id.pedio);
7:  pedio.setText("1");
           }
    }

  • Γραμμή 1: Εφόσον έχουμε δημιουργήσει ένα νέο activity, φυσικό είναι να κληρονομήσουμε την κλάση Activity.
  • Γραμμή 2-4: Εδώ χρειάζεται να κάνουμε override την μέθοδο onCreate από την κλάση Activity που κληρονομούμε, η οποία καλείται όταν ο χρήστης ανοίγει στο κινητό του την αρχική οθόνη από το κομπιουτεράκι μας. Χρησιμοποιείται για να αρχικοποιήσουμε παραμέτρους.
  • Γραμμή 5: Εδώ σετάρουμε το περιεχόμενο του CalculatorActivity να αντιστοιχεί στο layout από το αρχείο ”activity_calculator.xml ”. Αυτό χρειάζεται ώστε να μπορούμε να αντλήσουμε πληροφορίες για κάθε κουμπί ή πεδίο από το layout αρχείο “ activity_calculator.xml”.
  • Γραμμή 6: Τώρα είμαστε σε θέση να χρησιμοποιήσουμε κάθε κουμπί ή πεδίο από το αρχείο “activity_calculator.xml” για να του αλλάξουμε τις ιδιότητες. Στην προκειμένη περίπτωση αντλούμε πληροφορίες σχετικά με το πεδίο που δέχεται τους αριθμούς. Στο “activity_calculator.xml” η πληροφορία για το πεδίο είναι όπως παρακάτω:

<TextView
        android:id="@+id/pedio"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="60dp"
        android:textColor="#000000"
        android:textSize="13dp" />

Mε βάση το id για το πεδίο που πρέπει να είναι μοναδικό, μπορούμε να ζητήσουμε από το “activity_calculator.xml” να μας φέρει την πληροφορία για το πεδίο αυτό ώστε να το χρησιμοποιήσουμε στο “CalculatorActivity.java”.
  • Γραμμή 7: Tέλος μπορούμε να δώσουμε οποιαδήποτε τιμή στο πεδίο καλώντας την αντίστοιχη μέθοδο του.

Κλείσιμο

Φαίνονται "κινέζικα" στο μάτι του αρχάριου, όμως με λίγη εξάσκηση σε βασικά πράγματα και φυσικά υπομονή, θα μπείτε στο νόημα του συντακτικού μιας Android εφαρμογής. Ελπίζω να έδωσα ένα κίνητρο σε όσους επιθυμούν αλλά διστάζουν να προγραμματίσουν σε Android για να το κάνουν. Το μόνο που χρειάζεται είναι λίγο διάβασμα μέχρι να καταλάβεις τις βασικές έννοιες. Μετά από αυτό η φαντασία σου είναι το μόνο εμπόδιο στο τι μπορείς να καταφέρεις με το Android.

Στράτος"

Σχόλια

  1. ενταξει δεν μας λυπαστε καθολου δηλαδη...;
    περιοδος εξεταστικης και εσεις το μονο που κανετε ειναι να ανεβαζετε αρθα τοσο ζουμερα που μολις τελειωσουμε την αναγνωση τους ξεχναμε τι καναμε πριν....!!
    ντροπη που μας σαμποταρετε...!!

    (μου αρεσει πολυ η καινουργια εγκυκλοπαιδικη προσεγγιση του blog,δινει εκλεπτυσμενο χαρακτηρα και επιτελους διαλυονται πολλοι μυθοι...!) keep going...!!

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δεν είναι νέα προσέγγιση, απλά τώρα ήρθαν οι ιδέες (οι οποίες ελπίζω να μην τελειώσουν). Μεγάλο μπράβο στους αναγνώστες που τις προτείνουν.

      ΘΕΛΟΥΜΕ ΚΙ ΑΛΛΕΣ!

      Διαγραφή
  2. εμεις φτιαχνουμε σε ενα project μια Windows Desktop εφαρμογη (ΜΗΝ ΒΑΡΑΤΕ!), οι "λειτουργιες" γραφονται σε C# (που ειναι σχεδον ιδια με Java) και τα γραφικα με XAML, οποτε η μεταφορα σε Android δεν νομιζω να ειναι και πολυ δυσκολη :)

    ΑπάντησηΔιαγραφή
  3. πολυ καλο το αρθρο .. μπραβο

    ΑπάντησηΔιαγραφή
  4. Thelo na rotiso ean apo to app invertor mporo na anevaso mia efarmogi sto play store

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Κα βέβαια μπορείς. Παίρνεις απλά το apk και το ανεβάζεις τη σελίδα του Play store.

      Διαγραφή
    2. Κα βέβαια μπορείς. Παίρνεις απλά το apk και το ανεβάζεις τη σελίδα του Play store.

      Διαγραφή

Δημοσίευση σχολίου

Πες την άποψή σου ή κάνε την ερώτησή σου ελεύθερα, ακολουθώντας όμως τους στοιχειώδεις κανόνες ευγένειας.

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες