Τι είναι το Android;


Αν ρωτήσετε κάποιον τι είναι το iPhone η απάντηση που θα λάβετε είναι συγκεκριμένη. Είναι ένα smartphone! Aν ρωτήσετε όμως "Τι είναι το Android;" το πιθανότερο είναι να λάβετε ποικίλες απαντήσεις. Το Android είναι ένα λειτουργικό σύστημα για φορητές συσκευές και όχι ένα τηλέφωνο, είναι όμως τόσο ευέλικτο και εύχρηστο που μπορεί να εξυπηρετήσει πολύ περισσότερες συσκευές στην καθημερινότητά μας. Ποιος το κατασκευάζει; Τι μπορούμε να κάνουμε μαζί του; Πώς μπορούμε να ασχοληθούμε ακόμα και επαγγελματικά με αυτό;  Θα λύσουμε όλες τις απορίες σε μερικές μόνο παραγράφους.

Τα πάντα για το Android

Τι είναι το Android;

Η λέξη "Android" αναφέρεται συγκεκριμένα σε ένα λειτουργικό σύστημα για κινητά τηλέφωνα και όχι μόνο (βασισμένο στο Linux) το οποίο αναπτύσσεται από την Google. Είναι λογισμικό ανοιχτού κώδικα, το οποίο σημαίνει οτι οποιοσδήποτε μπορεί να πάρει τον πηγαίο κώδικα και να τον χρησιμοποιήσει / παραμετροποιήσει κατά το δοκούν. Αφού λοιπόν είναι ελεύθερα διαθέσιμο, κατασκευαστές hardware όπως η HTC, η Motorola και η Samsung παίρνουν τον κώδικά του και το χρησιμοποιούν ως βάση για να χτίσουν πάνω του τις δικές τους ιδιόκτητες υλοποιήσεις που τρέχουν στα κινητά τους τηλέφωνα.

Το Android δεν είναι (μόνο) τηλέφωνο;


Ο όρος Android δεν αναφέρεται σε smartphone, ωστόσο επικρατεί αυτή η εσφαλμένη αντίληψη από τον περισσότερο κόσμο.

Οπωσδήποτε όχι! Εκτός από τα smartphone εξυπηρετεί και μία τεράστια γκάμα από tablet όπως το Nexus 7. Η ποικιλομορφία του όμως δεν σταματά εδώ, αφού μπορεί να τρέξει σ’ όλων των ειδών τις συσκευές που υποστηρίζονται στο Linux από κάμερεςκονσόλες παιχνιδιών και τηλεοράσεις μέχρι συστήματα αυτοκινήτων, ρολόγια και γυαλιά.

Επειδή λοιπόν είναι τόσο ευέλικτο κυκλοφορεί σε συσκευές για όλες τις ανάγκες και όλες τις τσέπες. Ανάλογα με το πορτοφόλι του καθενός άλλοι προτιμούν φθηνές συσκευές περιορισμένων δυνατοτήτων ενώ άλλοι δυσκολεύονται να αντισταθούν ακόμα και στα πιο ακριβά gadget όπως το Galaxy S5 ή το Galaxy Note 3 της Samsung.

Το Android όμως δεν είναι ίδιο σε όλες τις συσκευές. Ο μεγάλος ανταγωνισμός κάνει τις εταιρίες να το παραμετοποιούν με δικές τους ιδέες προσπαθώντας να προσελκύσουν περισσότερους καταναλωτές. Έτσι το "Android πρόσωπο" της Samsung διαφέρει από αυτό της LG, της Sony ακόμα και της Google!


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

Ακόμα όμως και αν δε νιώθουμε άνετα με το γραφικό περιβάλλον της συσκευής μας, μπορούμε να αλλάξουμε την εμφάνισή του αντικαθιστώντας τον launcher η ακόμα και ολόκληρο το λειτουργικό σύστημα με μια custom ROM όπως η διάσημη CyanogenMod ROM.

Τι μπορούν να κάνουν οι συσκευές Android;

Τα τεχνικά χαρακτηριστικά διαφέρουν από συσκευή σε συσκευή αλλά όλα τρέχουν το ίδιο λειτουργικό σύστημα: Android. Οι περισσότερες Android συσκευές παρέχουν υποστήριξη για κάμερα, GPS, Bluetooth, NFC, επιταχυνσιόμετρο, πυξίδα, γυροσκόπιο, και πολλά περισσότερα!

Σε επίπεδο λογισμικού, θα βρούμε και εκεί κάποια στάνταρ πραγματάκια όπως live wallpaper, widget, την εύχρηστη μπάρα ειδοποιήσεων το συρτάρι των εφαρμογών και άψογη ενσωμάτωση διαφόρων εφαρμογών που συνεισφέρουν στην ευκολία γρηγορότερου διαμοιρασμού πληροφοριών μέσω social media, κλπ.

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

Τα πάντα για το Android Development

Όλο και περισσότεροι κατασκευαστές υιοθετούν το Android ως βάση για τα mobile προϊόντα τους, με αποτέλεσμα το Android να αποτελεί το Νο1 λειτουργικό σύστημα σε φορητές συσκευές στον πλανήτη. Για τους προγραμματιστές αυτό δίνει μία τεράστια ευκαιρία να κερδίσουν χρήματα γράφοντας εφαρμογές που θα απευθύνονται σε εκατοντάδες εκατομμύρια χρήστες / πελάτες και προσθέτοντάς τις δωρεάν (μετά από ένα εφάπαξ ποσό των 25 δολαρίων) στο ράφι του καταστήματος που βρίσκεται μέσα σε όλες αυτές και ακούει στο όνομα Google Play Store.

Όπως κάθε αρχή και δύσκολη, έτσι και εδώ, το Android Development θα μας φανεί λίγο δυσνόητο και προϋποθέτει ότι έχουμε κάποιες βασικές γνώσεις Java. Υπάρχουν όμως και άλλοι τρόποι που επιτρέπουν τη δημιουργία εφαρμογών ακόμα και χωρίς γνώση προγραμματισμού!


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

Με ποιες γλώσσες μπορώ να γράψω Android εφαρμογές;

Οι Android εφαρμογές είναι συνήθως γραμμένες σε Java καθώς είναι η πιο διάσημη γλώσσα προγραμματισμού στον κόσμο σήμερα και χαρακτηρίζεται ως αντικειμενοστραφής γλώσσα (object-oriented). Για όσους έχουν προηγούμενη εμπειρία με την φιλοσοφία του object-oriented programming σε άλλες γλώσσες, όπως C#, Objective C ή Ruby τότε δεν θα αντιμετωπίσουν κάποιο ιδιαίτερο πρόβλημα στη μετάβαση σε Java.

H Google παρέχει το Native Development Kit (NDK) το οποίο επιτρέπει στους developer να γράψουν σημαντικό μέρος των εφαρμογών τους σε native γλώσσες όπως είναι η C και η C++. Αυτό είναι ιδιαίτερα χρήσιμο καθώς μας επιτρέπει να επαναχρησιμοποιήσουμε τον υπάρχων κώδικα (δηλαδή κάποιες γνωστές βιβλιοθήκες) ή να βελτιώσουμε την κατανάλωση πόρων της εφαρμογής που φτιάχνουμε κάνοντας το μέγιστο δυνατό optimization (βελτιστοποίηση) στα σημεία που χρειάζεται.

Υπάρχουν κάποια εργαλεία τα οποία μας επιτρέπουν να γράψουμε εφαρμογές χρησιμοποιώντας και web γλώσσες όπως η HTML, η CSS και η Javascript. Με αυτά μπορούμε να δημιουργήσουμε εφαρμογές που θα τρέχουν μέσα σε ένα WebView, δηλαδή μία πλήρης web page που τρέχει μέσα σε μία εφαρμογή αντί στον browser. Εργαλεία όπως τα PhoneGap και Appcelerator Titanium μας βοηθούν να γράψουμε κώδικα ο οποίος μεταγλωττίζεται στο παρασκήνιο σε native code. Υπάρχουν μειονεκτήματα και πλεονεκτήματα σ’ αυτή την προσέγγιση και θα πρέπει να έχουμε πάντα υπόψη μας ότι χρησιμοποιώντας Java παίρνουμε τα καλύτερα αποτελέσματα, αλλά μπορούμε να φτιάξουμε εξίσου δυνατές εφαρμογές με όποιο εργαλείο μας βολεύει. Ένα ακόμη μειονέκτημα των άλλων γλωσσών προγραμματισμού είναι ότι τα 3rd party εργαλεία που χρησιμοποιούμε θα βρίσκονται πάντα ένα βήμα πίσω από τις τελευταίες εξελίξεις στον χώρο του Android development.

Μερικά από αυτά είναι:


Είπαμε όμως ότι υπάρχουν και εργαλεία που δε χρειάζονται καθόλου γνώση προγραμματισμού. Με αυτά μπορούμε να φτιάξουμε απλές εφαρμογές αλλά και να μπούμε στη νοοτροπία του development χωρίς να ιδρώσουμε αλλά χρειάζονται επίσης μελέτη.

Αυτά είναι:


Πώς θα ξεκινήσω να γράφω Android εφαρμογές;

Στην επίσημη σελίδα των Android Developer θα βρούμε εκτενείς οδηγίες με θέματα όπως το πώς να ξεκινήσουμε, πώς να σχεδιάσουμε μια εφαρμογή και λεπτομέρειες σχετικά με όλα τα διαθέσιμα Application Programming Interfaces (API) που μας δίνουν τη δυνατότητα να χρησιμοποιούμε υπηρεσίες άλλων εφαρμογών μέσα στη δική μας (π.χ. τους χάρτες του Google Maps). Τα εργαλεία για ανάπτυξη Android εφαρμογών είναι αυτό που λέμε cross-platform, δηλαδή διαθέσιμα για Windows, OSX και Linux, συνεπώς δεν απαιτείται η αγορά κάποιου επιπλέον hardware από εμάς.

Δεν υπάρχουν συγκεκριμένες οδηγίες στο πως θα στήσουμε το προγραμματιστικό περιβάλλον για Android development, αλλά η διαδικασία είναι πάνω-κάτω η ίδια, αφού κάθε φορά πολύ μικρά πράγματα είναι αυτά που αλλάζουν. Η λογική σειρά των βημάτων που πρέπει να ακολουθήσουμε είναι η εξής:

  1. Εγκαθιστούμε την Java στον υπολογιστή μας (μπορεί να είναι ήδη εγκατεστημένη).
  2. Εγκαθιστούμε το Android SDK.
  3. Εγκαθιστούμε το Eclipse, το οποίο είναι το Integrated Development Environment (IDE) που προτείνεται για Android development. Εναλλακτικά μπορούμε να χρησιμοποιήσουμε και το Android Studio.
  4. Εγκαθιστούμε το Android Development Tools (ADT) plugin για το Eclipse.
  5. Κατεβζουμε και τα υπόλοιπα SDK component του SDK Manager μέσα στο Eclipse.

Πόσο κοστίζει να γράψω τις δικές μου εφαρμογές;

Δεν κοστίζει απολύτως τίποτα, μπορείτε να ξεκινήσουμε αμέσως τώρα να γράφουμε τη δική μας Android εφαρμογή. Το Android SDK συμπεριλαμβάνει έναν emulator ο οποίος παίζει τον ρόλο μιας πραγματικής συσκευής Android που όμως βρίσκεται εικονικά μέσα στον υπολογιστή μας. Οπότε δε χρειάζεται να μπούμε στον κόπο να αγοράσουμε ούτε καν πραγματική συσκευή, δηλαδή κάποιο tablet ή smartphone. Όλα τα εργαλεία που αναφέραμε νωρίτερα είναι διαθέσιμα δωρεάν, οπότε το μόνο που χρειάζεται να έχουμε είναι σύνδεση στο Internet και διαθέσιμο χρόνο. Όταν υλοποιήσουμε πλήρως μία εφαρμογή και τελικά θελήσουμε να την δημοσιεύσουμε στο Google Play, τότε απαιτείται να καταβάλουμε 25 δολάρια (μόνο την πρώτη φορά) για να ολοκληρωθεί η εγγραφή μας.

Τι προτείνουμε;

Δεν μπορούμε να πούμε δογματικά πως υπάρχει κάποιος σωστός τρόπος ανάπτυξης Android εφαρμογών, αλλά από την εμπειρία μας μέχρι τώρα αξίζει να ακολουθήσετε τον τρόπο που προτείνει η Google. Ένα από τα μεγαλύτερα οφέλη σ’ αυτή την προσέγγιση, είναι η συνεχώς αναπτυσσόμενη κοινότητα των Android developer, πλειοψηφία των οποίων χρησιμοποιούν Java και Eclipse. Αν λοιπόν τύχει κάποτε και σκαλώσετε κάπου, θα βρείτε πολύ πιο εύκολα πληροφορίες στο Internet (πχ StackOverflow) καθώς επικρατεί η μόδα του open source η οποία υποστηρίζεται με μία πληθώρα απίστευτα χρήσιμων libraries και εργαλείων που είναι ελεύθερα διαθέσιμα για χρήση.

Πριν αποκλείσετε την Java ως γλώσσα προγραμματισμού, σημειώστε πως η Java-for-Android (όπως την λένε στην «πιάτσα») διαφέρει από την παραδοσιακή Java που χρησιμοποιείται για μεγάλα και περίπλοκα συστήματα ή την Java που μάθατε στην σχολή ή το κολέγιο. Αυτό που έχει σημασία στο Android development δεν είναι τόσο η γλώσσα στην οποία γράφετε τις εφαρμογές, όσο τα διαθέσιμα resources και εργαλεία που υπάρχουν για αυτήν διαθέσιμα στο Internet.

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

Διαλέξτε ένα απλό project το οποίο καλύπτει κάποια από τα πράγματα που σας ενδιαφέρουν και θα συναντάτε διαρκώς μπροστά σας. Αφού του πάρετε τον αέρα και νιώσετε λίγο πιο εξοικειωμένοι με το περιβάλλον, δοκιμάστε να γράψετε την πρώτη σας εφαρμογή. Για παράδειγμα, δοκιμάστε να γράψετε μία εφαρμογή που θα δέχεται ως είσοδο μία φράση μέσα σ’ ένα πλαίσιο κειμένου, θα στέλνει ερώτηση στην μηχανή αναζήτησης της Google (query), θα παίρνει πίσω (parse) τα αποτελέσματα και εν τέλη θα τα εμφανίζει (display) σε διαφορετική σελίδα (Activity). Με αυτό το απλό σενάριο θα μάθετε πώς είναι η αρχιτεκτονική μίας app στο σύνολό της, πώς να ζητάτε δεδομένα από τον χρήστη, πώς να στέλνετε τα δεδομένα αυτά στο Internet και να παίρνετε πίσω αποτελέσματα, πώς να επεξεργάζεστε τα αποτελέσματα μέσω κατάλληλων data structures και πώς θα ορίσετε την μετάβαση (navigation) από την μία οθόνη σε μία άλλη.

Αν πάλι είστε τύπος που του αρέσει το άρωμα από τις σελίδες ενός βιβλίου, σε αυτή την περίπτωση σας προτείνουμε το Professional Android 4 Application Development από τον Reto Meier η το Android Programming: The Big Nerd Ranch Guide από τους Brian Hardy και Bill Phillips.

Και μετά… τι;

Η πρώτη συσκευή Android που κυκλοφόρησε ήταν το HTC Dream τον Οκτώβριο 2008. Από τότε και στο εξής το Android αναπτύσσεται με τρελούς ρυθμούς και έχει φτάσει σήμερα να είναι το Νο1 mobile operating system παγκοσμίως. Με το μέλλον να βρίσκεται στα χέρια του mobility, το Android θα παίξει σίγουρα σημαντικό ρόλο, για αυτό είναι καιρός για όσους ενδιαφέρονται να ασχοληθούν σοβαρά μαζί του. Τι περιμένετε λοιπόν; Go Mobile!



Συντάκτες: Panos Georgiadis, Chris K

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

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

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

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

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

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

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

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

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

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

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