Ανάπτυξη Κινητών Εφαρμογών (Ε-ΨΜΑΔ)


Διδάσκων/ουσα: Κορφιάτης Νικόλαος, Ρίγγας Δημήτριος
Κωδικός: ME180
Τύπος Μαθήματος: Κατεύθυνση ΨΜΑΔ - Επιλογής
Επίπεδο Μαθήματος: Προπτυχιακό
Γλώσσα Μαθήματος: Ελληνικά
Τρόπος Παράδοσης: Στην τάξη
Εξάμηνο: Ζ΄
ECTS: 5
Διδακτικές Μονάδες: 4
Ώρες Διάλεξης: 2
Ώρες Εργαστηρίου/Φροντιστηρίου: 2Ε 2Φ
Σύνολο Ωρών: 6
Σελίδα E Class: https://opencourses.ionio.gr/courses/DDI294/
Προγράμματα Σπουδών: Αναμορφωμένο ΠΠΣ Πληροφορικής από 2025
Σύντομη Περιγραφή:

Ο σκοπός του μαθήματος είναι η εισαγωγή των φοιτητών στις τεχνικές ανάπτυξης εφαρμογών για κινητές συσκευές, εστιάζοντας σε πλατφόρμες όπως το Android και το iOS, αλλά και δίνοντας  έμφαση σε cross-platform frameworks όπως Flutter, React Native και Xamarin. Οι φοιτητές αποκτούν πρακτική εμπειρία σε σύγχρονες τεχνολογίες, γλώσσες προγραμματισμού και εργαλεία ανάπτυξης και θα εξοικειώνονται με σύγχρονες βέλτιστες πρακτικές ανάπτυξης εφαρμογών για κινητές συσκευές που είναι προσαρμόσιμες σε πολλαπλές πλατφόρμες.

Αντικειμενικοί Στόχοι - Επιδιωκόμενα Μαθησιακά Αποτελέσματα:

Μετά την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές είναι σε θέση να:

  • Κατανοούν τις βασικές αρχές ανάπτυξης εφαρμογών για κινητές συσκευές.
  • Κατανοούν τις διαφορές μεταξύ native, hybrid και cross-platform ανάπτυξης.
  • Αναπτύσσουν λειτουργικές και αποδοτικές εφαρμογές για Android και iOS.
  • Περιγράφουν τα κύρια πλαίσια ανάπτυξης κινητών εφαρμογών (React Native, Flutter, Kotlin Multiplatform, Xamarin) και μπορούν να χρησιμοποιούν κάποια επιλεγμένα από αυτά.
  • Αναλύουν τη δομή και τη ροή μιας mobile εφαρμογής, περιλαμβάνοντας το lifecycle, τη διαχείριση της κατάστασης και τη σύνδεση με APIs.
  • Ενσωματώνουν βάσεις δεδομένων και cloud services στις εφαρμογές.
  • Σχεδιάζουν φιλικά προς τον χρήστη UI/UX για κινητές εφαρμογές.
  • Αναγνωρίζουν τις αρχές UI/UX για κινητές εφαρμογές και τις διαφορές μεταξύ των οδηγιών σχεδιασμού Material Design (Android) και Human Interface Guidelines (iOS).
  • Βελτιστοποιούν εφαρμογές για επιδόσεις, απόκριση και ασφάλεια.

Επίσης, με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές έχουν αναπτύξει δεξιότητες στο να:

  • Προδιαγράφουν και αναλύουν τις απαιτήσεις μιας εφαρμογής για κινητές συσκευές.
  • Σχεδιάζουν και αναπτύσσουν cross-platform εφαρμογές χρησιμοποιώντας Flutter (Dart), React Native (JavaScript/TypeScript) ή Xamarin (C#).
  • Αξιοποιούν RESTful APIs και GraphQL για αλληλεπίδραση με servers και cloud υπηρεσίες.
  • Χρησιμοποιούν διαχείριση κατάστασης (State Management) με Redux, Provider, Riverpod, Bloc κ.ά.
  • Ενσωματώνουν βάσεις δεδομένων (SQLite, Firebase Firestore, Supabase, MongoDB Atlas) και authentication services.
  • Βελτιστοποιούν εφαρμογές για επίδοση, ενεργειακή κατανάλωση και ασφάλεια (OWASP Mobile Security).
  • Δημοσιεύουν εφαρμογές στο Google Play Store και το Apple App Store, ακολουθώντας τις αντίστοιχες πολιτικές.
  • Συνεργάζονται με τους συμφοιτητές τους, να επικοινωνούν σε ομαδικό περιβάλλον για να οργανώνουν και κατανέμουν το φόρτο εργασίας και να αναλαμβάνουν ατομικές πρωτοβουλίες και ευθύνες που αφορούν την εκτέλεση ομαδικής εργασίας.

Τέλος με την ολοκλήρωση του μαθήματος, οι φοιτητές εκτιμούν τη σημασία της προσβασιμότητας και της ενσωμάτωσης βέλτιστων πρακτικών UI/UX στις εφαρμογές τους, έχουν καλλιεργήσει συνεργατική κουλτούρα μέσω Agile Development και DevOps πρακτικών (CI/CD pipelines), αναπτύσσουν κριτική σκέψη για την επιλογή της κατάλληλης τεχνολογίας βάσει των αναγκών ενός project και εφαρμόζουν δεοντολογικές αρχές και πρακτικές προστασίας προσωπικών δεδομένων στις mobile εφαρμογές.

Περιεχόμενο (Syllabus):

1η Εβδομάδα 
Εισαγωγή στην Ανάπτυξη Κινητών Εφαρμογών
Ιστορική αναδρομή και εξέλιξη των mobile εφαρμογών
Native vs Hybrid vs Cross-Platform Development
Πλατφόρμες και τεχνολογίες: React Native, Flutter, Kotlin Multiplatform, Xamarin
Εγκατάσταση εργαλείων (Node.js, React Native CLI, Expo, Flutter SDK, Android Studio, Xcode)
Δημιουργία του πρώτου project σε React Native και Flutter

2η Εβδομάδα 
Αρχιτεκτονική Κινητών Εφαρμογών & UI Design
Mobile Operating Systems (Android, iOS)
Εφαρμογές: Native Components, Widgets, Activities, ViewControllers
UI/UX Design: Material Design (Android), Human Interface Guidelines (iOS)
Δημιουργία responsive UI σε React Native (React Navigation) και Flutter (Widgets, Layouts, Theming)

3η Εβδομάδα 
Ανάπτυξη Εφαρμογών με React Native
JavaScript/TypeScript και React για κινητές εφαρμογές
Component-based Architecture & State Management (Context API, Redux)
React Navigation και διαχείριση οθονών
Ανάπτυξη εφαρμογής To-Do List με React Native και Expo

4η Εβδομάδα
Ανάπτυξη Εφαρμογών με Flutter
Dart Programming Basics
Flutter Widgets και UI Components
Διαχείριση Κατάστασης (Provider, Riverpod, Bloc)
Ανάπτυξη Flutter εφαρμογής με πολλαπλές οθόνες και βασικά animations

5η Εβδομάδα
Διαχείριση Δεδομένων & Τοπικές Βάσεις Δεδομένων
Local Storage: SQLite, Hive, Shared Preferences
Χρήση Object-Relational Mapping (ORM) στην κινητή ανάπτυξη
React Native: SQLite integration μέσω TypeORM
Flutter: Hive database & Shared Preferences για αποθήκευση ρυθμίσεων χρήστη

6η Εβδομάδα 
Δικτυακές Επικοινωνίες & API Integration
REST APIs vs GraphQL
Ανάκτηση δεδομένων μέσω Axios (React Native) και Dio (Flutter)
Caching & Offline Data Sync
Σύνδεση εφαρμογής με public API (π.χ. OpenWeatherMap ή NewsAPI)

7η Εβδομάδα
Authentication & User Management
OAuth 2.0 & Firebase Authentication
Social Logins (Google, Facebook, Apple Sign-In)
Χρήση JWT για ασφαλή επικοινωνία με APIs
Υλοποίηση Login/Register με Firebase Authentication
Εφαρμογή role-based access control

8η Εβδομάδα 
Cloud Services & Backend Integration
Firebase Firestore, Supabase, AWS Amplify
Cloud Functions και Push Notifications
Διαχείριση πραγματικού χρόνου δεδομένων (Realtime Database vs Firestore)
React Native: Διαχείριση δεδομένων στο Firebase Firestore
Flutter: Ειδοποιήσεις με Firebase Cloud Messaging (FCM)

9η Εβδομάδα
Testing & Debugging Mobile Apps
Unit Testing, Integration Testing, UI Testing
Jest & Detox για React Native
Flutter Test & Widget Testing
Εφαρμογή unit και UI tests σε πραγματική εφαρμογή
Πρακτική εξάσκηση σε debugging tools (React Native Debugger, Flutter DevTools)

10η Εβδομάδα
Ασφάλεια & Βελτιστοποίηση Εφαρμογών
OWASP Mobile Security Best Practices
Secure Storage (Keychain, Encrypted Shared Preferences)
Code Obfuscation & Performance Optimization
React Native: Εφαρμογή end-to-end encryption (E2EE) σε συνομιλίες
Flutter: Minification & Performance Debugging

11η Εβδομάδα
Διανομή & Δημοσίευση Εφαρμογών
Play Store & App Store Guidelines
Continuous Integration & Deployment (CI/CD) με GitHub Actions και Firebase App Distribution
Monetization (In-App Purchases, Ads, Subscriptions)
Προετοιμασία εφαρμογής για παραγωγή (APK/AAB για Android, IPA για iOS)
Ρύθμιση CI/CD pipeline για αυτόματη διανομή beta versions

12η Εβδομάδα
Ανασκόπηση βασικών εννοιών
Συζήτηση για σύγχρονες τάσεις (Jetpack Compose, SwiftUI, Web3/Mobile dApps)
Κατευθύνσεις για επαγγελματική ανάπτυξη

13η Εβδομάδα
Παρουσίαση Project & Ανασκόπηση
Παρουσίαση των τελικών mobile εφαρμογών των φοιτητών
Feedback από καθηγητές και συμφοιτητές
Αξιολόγηση μαθήματος.

Συνιστώμενη βιβλιογραφία προς μελέτη:
  • Εισαγωγή στον Προγραμματισμό Android, 2η Έκδοση, Έλληνας Iωάννης- Έλληνας Νικόλαος
  • iOS για Προγραμματιστές, 4η Εκδοση, Joe Conway, Aaron Hillegass , Christian Keur
  • Αρχίστε να Προγραμματίζετε με JavaScript, Miles R.
  • React Native for Mobile Development [electronic resource], Akshat Paul / Abhishek Nalwaya HEAL-Link Springer ebooks
  • Practical React Native [electronic resource], Frank Zammetti, HEAL-Link Springer ebooks
Διδακτικές και μαθησιακές μέθοδοι:

Πρόσωπο με πρόσωπο στην τάξη και στο εργαστήριο

Χρηση Τεχνολογιών Πληροφορίας και Επικοινωνίας:

Υποστήριξη μαθησιακής διαδικασίας μέσω της πλατφόρμας e-class:

  • Διαφάνειες για τη διδασκαλία του θεωρητικού μέρους
  • Εργαστηριακοί οδηγοί
  • Ερωτήσεις και Ασκήσεις αυτοαξιολόγησης
Μέθοδοι αξιολόγησης/βαθμολόγησης:

Τελική εξέταση (100% της συνολικής βαθμολογίας): Τα κριτήρια αξιολόγησης είναι διαθέσιμα στην ιστοσελίδα του μαθήματος. 

Η αξιολόγηση διαμορφώνεται ως εξής: 

  • Προφορική υποστήριξη της γραπτής ομαδικής εργασίας προγραμματιστικού χαρακτήρα (50%) η οποία αφορά στην ανάπτυξη σύνθετης εφαρμογής διαδικτύου
  • Γραπτή τελική εξέταση (50%) που περιλαμβάνει ερωτήσεις πολλαπλής επιλογής και συνδυαστικές ερωτήσεις ή ερωτήσεις κρίσεις

Επιστροφή

Σπουδές

Κτίριο Γραμματειών (Κτίριο 3) Πλατεία Τσιριγώτη 7 (πρώην Πλατεία Παλιού Ψυχιατρείου) Κέρκυρα, 49100 τηλ:26610 87760 / 87761 / 87763
e-mail: cs@ionio.gr
certification
<< <
Δεκέμβριος 2025
> >>
Δε Τρ Τε Πε Πα Σα Κυ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Ανάγνωση ΚειμένουΑνάγνωση Κειμένου Αναγνωσιμότητα ΚειμένουΑναγνωσιμότητα Κειμένου Αντίθεση ΧρωμάτωνΑντίθεση Χρωμάτων
Επιλογές Προσβασιμότητας