Introduction
הקדמה
|
- Android – הסבר כללי על מערכת ההפעלה מבית גוגל, על הגרסאות והפלטפורמות.
- Android Studio – היכרות עם סביבת העבודה הנפוצה ביותר לפיתוח אפליקציות ל Android.
- Project files & structure – מבנה האפלקיציה על המרכיבים השונים: קבצי Xml לעיצוב סטטי של המסך, קבצי ה Java לכתיבת הקוד הדינמי לטיפול באירועים, תיקיית המשאבים ולוקליזקציה לפי שפה ולפי גדלי מסכים שונים, קובץ ה Manifest המרכז את הגדרות ורכיבי האפליקציה וקבצי ה Gradle המחברים את חלקי הפרוייקט יחדיו.
- Synching device – הרצת האפליקציות על המכשיר דורשת הכנה קצרה למען סביבת הפיתוח תוכל להתחבר אליו, ולהריץ אפליקציות בצורה מקומית ולא דרך אמולטורים.
|
User Interface
עיצוב ממשק המשתמש
לחץ לדוגמא
|
- הגדרת רכיבי המסך בקובץ ה XML ובאופן דינמי בקובץ ה Java.
- קבלת האירועים מן הרכיבים הוויזאלים ב Java על ידי מנגנון ה Listenersוישומו בשיטות שונות.
- ארגון האלמנטים הוויזאולים בתוך ההורה שלהם לפי המאפיינים הספציפים של כל Layout.
- שינוי הקונפיגורציות של כל רכיב באופן דינמי – תוך כדי ריצת התכנית.
- בין המחלקות הנלמדות במודול זה: View, ViewGroup, TextView, EditText, ImageView, Button, ImageButton, Switch, ToggleButton, RadioButton LinearLayout, RelativeLayout, TableLayout, FrameLayout.
- Toast notifications – שימוש במחלקת ה Toast למען הקפצת הודעות חיווי קצרות למשתמש.
|
Activities & Intents
הוספת רכיבים נוספים לאפליקציה ופתיחת יישומי המערכת המובנים
לחץ לדוגמא
|
- הוספת רכיב נוסף המהווה מסך מלא (Activity) ומעבר בינהם על ידי Explicit Intent כולל הטמנת מידע ב Bundle המועבר בו.פתיחת יישומים מובנים של מערכת
- ההפעלה על ידי הגדרת הפעולה הרצוייה ויצירת Implicit Intent, בינהם החייגן, אנשי הקשר, המפות, דפדפן, יישום המייל ואף יישומים חיצונים כגון ©Waze ו ©WhatsApp
- מנגנון ההרשאות הישנות (לפני אנדרואיד Marshmallow) והחדשות הניתנות בזמן ריצה (Runtime Permissions) ולא בזמן ההתקנה
- הגדרת רכיב העונה לפעולה או לצורך באמצעות Intent Filter כגון היכולת שלנו להוות אפליקציה לשליחת דואר אלקטרוני.
- פתיחת רכיב לצורך קבלת תשובה באמצעות startActivityForResult בין היתר נבצע שימוש במצלמה והצגת התמונה, פתיחת Google Voice recognition ושימוש ב Text to speech. יוצג גם פתיחת רכיב אישי כדוגמת מבחן אמריקאי החוזר אלינו עם הציון של התלמיד.
|
Persistent Storage
שמירת נתונים במערכת הקבצים
|
- מחזור החיים של ה Activity והצורך לשמור מידע במערכת הקבצים.
- שמירת נתונים בסיסיים ב Shared preferences ואיחזורם.
- שמירה ב Internal Storage של האפליקציה וקריאה ממנו. שמירת מידע מסוגים שונים: טקסט, תמונות וכל אובייקט המיישם את הממשק Serializable. כולל ביצוע החרגה על ידי transient וטיפול אישי על ידי readObject ו writeObject.
- שמירת נתונים שיתופיים וארוכי טווח ב External Storage.
|
Menus & Dialogs
תפריטים ודיאלוגים
|
- Activity’s Action menu – יצירת תפריט יחודי לכל מסך וקבלת האירועים ממנו.
- Widget Context Menu – הוספת תפריטים קופצים לרכיבים וויזאלים העולים בלחיצה ארוכה.
- PopupMenu – תפריט קופץ הניתן להצמדה לכל רכיב ומציג אפשרויות נוספות לפעולה.
- Contextual Action Mode – יצירת Context Menu אשר יופיע בסרגל המשימות של המסך.
- Alert Dialog – חלון קופץ אשר דורש את תשומת ליבו המיידית של המשתמש (כגון ההתראה על סוללה נמוכה) ברמה בסיסית ומתקדמת על ידי הוספת Custom view.
- Multi\Single choices dialogs – הוספת אפשרות לבחור אפשרויות מתוך רשימה.
- Date\Time pickers Dialogs – פתיחת חלון סטנדרטי של המערכת לבחירת תאריך ושעה.
- Progress Dialog – דימוי תהליך רקע ארוך טווח ועדכון ההתקדמות בחלון מתאים.
|
Adapter, AdapterViews & RecyclerView
רשימות נגללות וספקי המידע עבורן
לחץ לדוגמא
|
- ListView, GridView, Gallery – בקרים וויזואלים מתקדמים המאפשרים גלילה מהירה על המידע באמצעות מנגנון מיחזור תאים.
- ArrayAdapter, SimpleAdapter, CustomAdapter – הבקרים הוויזואלים המצוינים לעיל שואבים את המידע מה Adapter אשר מחזיק בתוכו את המודלים (מבני הנתונים) ומספק להם את המידע על פי הדרישה.
- RecyclerView – בקר וויזואלי מתקדם אשר מיועד להוות תחליף ל AdapterViews בכלל ול ListView בפרט, המנהל את מנגנון המיחזור באופן אוטמטי והנעזר ב ViewHolder לצורך שיפור יעילות וביצועים ומאפשר גמישות מירבית.
- CardView – רכיב UI המאפשר הצגת מידע בתוך קלפים עם פינות עגולות והרמה קלה.
|
פרוייקט אמצע
|
- Contact App – יצירת אפליקציית אנשי קשר. שמירה של אובייטקים מורכבים, הצגתם ברשימה, וממשק משתמש דינמי.
|
Asynchronous programming
ביצוע מקבילי
לחץ לדוגמא
|
- Java multithreading – שימוש במנגנון הירושה מ Thread על מנת ליצור תהליך רקע נוסף לתהליך הראשי.
- Handler – שליחת הודעות וקטעי קוד להרצה ב Main thread למען עדכוני UI מתוך background threads
- AsyncTask – מחלקה יעודית של Android אשר מאפשרת יצירת משימות רקע המעדכנות את ה UI ב Main thread באופן רציף.
|
Alarm Manager
תזמון משימות
|
- Java Timer class – מחלקה של Java אשר בשילוב עם Hanler יכולה לתזמן משימות לביצוע חוזר או מאוחר יותר בתוך האפלקיציה
- Android Alarm Manager – שליחת משימות למערכת ההפעלה לביצוע מאוחר יותר או חוזר גם כאשר המתשתמש לא נמצא בתוך האפליקציה.
|
Notifications
מערכת ההתראות
|
- Notifications & Notifications manager – שליחת התראות למערכת ההפעלה להצגה על מסך הבית של הטלפון.
- RemoteViews – קביעת תצוגה מותאמת אישית הנשלחת להצגה ע״ע מערכת ההפעלה.
- Pending Intent – מתן הרשאות ליישומים חיצוניים לביצוע Intent פנימי.
- Progress notifications – הצגת Progress bar בנוטיפיקציה ועדכונה באופן רציף.
|
Services
מבצעי שרות
לחץ לדוגמא
|
- Service – רכיב נוסף המאפשר הרצת משימה ארוכת טווח ללא User interface.
- IntentService – מחלקה הירושת מ Service ומריצה את המשימות אחת אחרי השניה ברקע.
- Foreground Service – מעבר של Service ל Foreground באמצעות נוטיפיקציה המעידה על קיומו נותנת לו טווח חיים ארוך אף יותר ואינו מועמד לסיום על ידי המערכת במצב זכרון נמוך.
- MediaPlayer – מחלקה לניגון מדיה, באמצעותה ובשילוב עם ה Service נייצר נגן מוזיקה.
|
Broadcast Receiver
מעבירי ההודעות
|
- BroadcastReceiver – רכיב נוסף המאפשר קבלת שדררים העוברים במערכת, כגון שיחה נכנסת, הודעת טקסט, סוללה נמוכה ועוד.
- System and Custom broadcast – הרשמה באמצעות IntentFilter לשדרי מערכת שונים או לשדר שהגדרנו בעצמנו. הרשמה בקובץ ה Manifest או באופן דינמי בקוד ה Java על יד רכיב אחר. בין השדרים המודגמים: Received sms, boot completed, screen on/off
- SmsManager – מחלקה לטיפול וקריאה של הודעות טקסט.
- LocalBroadcastManager – שליחת שדרים פנימיים ומאובטחים בתוך האפליקציה שלנו.
|
Fragments
חלקות המסך לתתי יחידות
|
- Fragments & Fragment manager – פיצול המסך הגדול לתתי חלקים ומתן עצמאות לכל חלק.
- Activity & Fragment communication – יצירת פרוטוקול תקשורת מוסכם.
- ListFragment, DialogFragment – תתי מחלקות של Fragment להצגת רשימה ודיאלוג.
- PreferenceFragment – יצירת תפריט הגדרות לאפליקציה באמצעות רכיבים וויזואלים יעודיים.
- ViewPager – רכיב וויזאולי מתקדם המאפשר החלפת Fragments על ידי החלקה אופקית.
|
Sensors
חיישנים
לחץ לדוגמא
|
- Location & LocationManager – שימוש בשרותי המיקום של המכשיר באמצעות שימוש ב GPS, Network או מיקום פאסיבי. אובייקט Criteria אשר מאפשר להגדיר קריטריונים ולקבל את הספק המתאים ביותר.
- Fused Location API – שימוש בשרותי המיקום החדשים של Google play כדי לקבל עדכוני מיקום אמינים בהם המערכת בוחרת את הספק המיטבי לפי הצרכים שלנו (קצב עדכון, רמת דיוק וצריכת סוללה). שימוש בספריה זו יחליף בעתיד לחלוטין את ה LocationManager.
- Geocoder – מחלקה המאפשרת לנו לשלוח את המיקום המתקבל מאובייקט ה Location אל שרתי גוגל וקבלת אובייקט Address המייצג את הכתובת המדוייקת של נקודת הציון שהתקבלה.
- Sensor & SensorManager – כל יתר החיישנים ב Android עובדים לפי מודל דומה. חיישן ה Accelerometer כדוגמה מייצגת לכל יתר החיישנים במכשיר.
- Touch – אירוע ה Touch מועבר לאפקליציה על ידי מערכת ההפעלה ואף בה עובר היררכיה פנימית לטיפול בו. נלמד כיצד לקבל ולנתח את ה TouchEvent וכיצד ניתן למצות אותו או להעבירו הלאה.
|
Advance UI
ממשק משתמש מתקדם
לחץ לדוגמא
|
- Overriding existing widget – ניתן לרשת מכל אחד מהאלמנטים הוויזואלים הקיימים ולאפיין אותם לפי דרישה ספציפית.
- Creating new Widget – על ידי ירושה מהמחלקה View נוכל לייצר רכיב וויזואלי חדש, תודגם יצירת בלוק ציור כרכיב וויזואלי עצמאי אותו ניתן לשלב בכל אפליקציה עתידית.
- Handling orientation changes – טיפולים אפשריים בשינויי אוריינטציה. ניתן להגדיר Layout יעודי לכל אורינטציה, ולבקש מהמערכת לטפל בזאת עצמאית כחלק משינויי הקונפיגורציה.
- SavedInstanceState –אובייקט Bundle המכיל את מצב העצם טרם הריגתו על ידי המערכת.
- Drawable Animation – אניציה כדוגמת GIF אשר מאפשרת מעבר בין תמונות.
- Tween Animation – אנימציות הניתנות להפעלה על כל רכיב וויזואלי: Rotate, Alpha, Scale, Translate (סיבוב, שקיפות, גודל והזזה).
- State List – הגדרה מראש של תמונות או צבעים למצבים שונים של רכיבי ה UI.
|
Material Design with support library
תבנית עיצוב חדשנית מבית גוגל
לחץ לדוגמא
|
- NavigationView & DrawerLayout – שילוב של שני המרכבים הללו יחדיו יאפשר הצגת תפריט המחליק מן הצד לבחירת אפשרויות.
- Floating Action Button – כפתור הצף מעל האפליקציה ומייצג פעולה מרכזית בה.
- SnackBar – תחליף להודעות ה Toast המציג הודעה באנימציה בתחתית המסך ופעולה יעודית.
- CoordinatorLayout – תבנית מתקדמת אשר מטרתה לתאם בין מספר אלמנטים במסך.
- Floating Labels for Edit Text – מעטפת לתיבות הטקסט הרגילות למען השארת הרמז למשתמש.
- TabLayout – שילוב שלו עם ViewPager יציג ה Fragments המוחלפים בתפריט Tab.
- AppBarLayout – תבנית אשר מטרתה לתאם בין רשימות נגללות לתפריטים בראש המסך ולהעלימם בעת גלילתו.
- CollapsingToolbarLayout – אפשרות למוטט ולהרחיב את התפריט העליון בעת הגלילה.
|
Communication
תקשורת לקוח-שרת
|
- Http protocol – פרוטוקול התקשרות של רשת האינטרנט בין שרת ללקוח.
- Get\Post requests – בקשות מהלקוח (האפליקציה) לשרת (אינטרנט).
- Receiving XML & JSON –תשובת השרת ב XML ו JSON. ניתוח התשובות באמצעות המימוש של אנדרואיד ל Xml DOM וה JSON Parser.
- Picasso – שימוש בספרייה חיצונית להורדה וטעינה של תמונות.
- Volley – שימוש בספרייה המנהלת תור משימות אסינכרוני לבקשות HTTP.
|
Database & Content Providers
מסדי נתונים
|
- SQLite DB – מסד נתונים לוקלי לשמירה מרוכזת של כמות גדולה של נתונים חוזרים.
- Content Provider – רכיב שמטרתו לספק מידע לאפליקציות אחרות.
- Address Book API– ספר הטלפונים והכתובות כדוגמה לספק מידע כללי.
- SimpleCursorAdapter – רכיב המייצר מידע מבסיסי נתונים ליחידות הוויזואליות.
- CursorLoader – טעינה וניהול אסינכרונים של מסדי הנתונים למטרת שיפור ביצועים.
|
צד שרת – Firebase
בניית מאגר משתמשים, הודעות ומסדי נתונים מרוחקים
לחץ לדוגמא
|
- Firebase – שרות צד שרת דינמי מבית גוגל המאפשר ריכוז והעברת מידע בין הלקוחות.
- Messaging service – שליחת הודעות (Push notifications) לכל המשתמשים או למשתמש ספציפי.
- User Authentications –ניהול משתמשים ויצירת פרופיל אישי באפליקציה (הרשמה באמצעות חשבון גוגל, פייסבוק או מייל), הגדרת ה Session והשימוש בה.
- Remote Database – שמירת מידע אישי לכל משתמש בצד השרת. גישה לנתונים מפלטפורמות שונות כגון אפליקציית Web, android, iOS וממכשירים שונים. ניתן לרכז ולהעביר מידע בין לקוחות שונים כדגומת בלוג או רשת חברתית.
- Topics messaging – שליחת הודעות למשתמשים לפי הרשמה לנושאים ספציפים. השליחה מתאפשרת גם דרך ממשק הנהול וגם באמצעות בקשות POST מתוך הלקוח עצמו.
- תרגיל מסכם צד שרת – ניהול מערכת תזכורות מבוססת ענן. כל משתמש יכול לייצר חשבון ולהעלות לענן תזכורת ומשימות לביצוע. ניתן יהיה לגשת ליומן המשימות גם מפלטפורמות נוספות. כלומר המשימות ירוכזו בשרת לפי חשבון המשתמש.
- תרגיל מסכם הודעות – יצירת קבוצות משתמשים ושליחת הודעות בינהם מתוך האפליקציה באמצעות מערכת ניתוב ההודעות של Firebase (כדוגמת הרשתות החברתיות).
|
פרסום אפליקצייה בחנות
|
- הכנת תוכן לחנות (צילומי מסך, מחקר מילות מפתח, כתיבת תוכן בצורה נכונה)
- שיווק אפליקציות בעזרת קידום אורגני (פניות לעיתונות) ופרסום ממומן (פייסבוק)
|