.

Προγραμματισμός σε 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.

Στράτος"

 
© 2012-2015 Dr. Android | Original theme design by Main-Blogger - Blogger Template and Blogging Stuff | Material design by Chris K.