כולל:
משך הקורס
33 שעות
שעות וידאו הסברים ותרגילים
ספר הקורס
ספר קורס להורדה מיידית
לחץ כאן לרכישת כל הקורס
קצת על הקורס
הקורס מיועד למתכנתים בכל שפה שהיא. רצוי שפה מונחית עצמים כגון Java, c++, C#, Python ועוד.
מטרות הקורס:
* היכרות מעמיקה עם אנדרואיד, מערכת ההפעלה המובילה בעולם.
* למידת שפת התכנות Kotlin תוך שימת דגש על תכנות פונקציונלי מסדר גבוה ותכנות מונחה עצמים.
* היכרות מעשית עם ה Coroutines בשפת Kotlin המאפשרים עבודה מקבילית.
* הכרת כלל אבני הבניין הן הוויזואליים והם הלוגים המשמשים לבניית אפליקציית אנדרואיד.
* הקניית היכולת לעבוד עם מסדי נתונים מקומיים ומרוחקים תוך שמירה על תבנית עבודה MVVM (Model View ViewModel).
* מתן היכולת לתקשורת מלאה עם רכיבי וחיישני המכשיר הנייד השונים.
* מתן היכולת לתקשורת מלאה עם מערכת ההפעלה ושימוש בשרותיה השונים.
* מתן היכולת לתקשורת מלאה עם כלל אפליקציות צד שלישי בין אם הן אפליקציות מערכת או לא.
* הקניית יכולת מעשית אשר תבוא לידי ביטוי ביכולת ליצור פרויקטים מורכבים באופן עצמאי.
רציונל:
מזה חמש שנים שאנדרואיד, פרויקט קוד הפתוח מבית גוגל, הפך למערכת ההפעלה המובילה בעולם. מערכת הפעלה זו היא השער לכמעט כל המכשירים החכמים המקיפים אותנו ומלווים אותנו בכל פעולותינו היומיומיות.
יחד עם זאת הכשרה מוסדית ויסודית כזו העושה שימוש בסביבת הפיתוח המקורית של אנדרואיד, כמעט ואינה קיימת והדבר מתבטא בקושי הקיים בשוק העבודה באיתור מפתחים בעלי ראייה כוללת של המערכת. כמו כן, עם עליית מורכבותה של הסביבה החיצונית עלתה גם מורכבות וחשיבות ארכיטקטורת האפליקציה, וחשיבות תכנונה מראש על חלקיה השונים גבר על העבודה נמוכה והמורכבת עם ממשק המשתמש, שכיום מגיע ברכיבים מובנים ומוכנים מראש לשימוש המתכנתים.
מטרת הקורס היא להקנות לסטודנטים ידע והבנה מעמיקה של שפת קוטלין התמציתית והמותאמת למערכות זמן אמת, תוך יישומה על הפלטפורמה המובילה בעולם במטרה לתת כלי פרקטי למען השתלבות מיטבית בשוק העבודה. הקורס יעניק לסטודנטים את היכולת לפתח אפליקציות היכולות לעשות שימוש כמעט בלתי מוגבל ביכולות במכשיר הנייד, הן ברמה הנמוכה ביותר מבחינת תקשורת עם חומרת המכשיר ומערכת ההפעלה והן הגבוהה ביותר מבחינת שימוש בתבניות עיצוב מתקדמות לפי הסטנדרטים הגבוהים ביותר הנהוגים כיום בתעשייה ומוכתבים על ידי גוגל העולמית.
הקורס הינו קורס מעשי בו נלמד תוך כדי יישום את שפת הפיתוח לאנדרואיד ושלל רכיבי מערכת ההפעלה העומדים לרשות המפתחים, כך שהתאוריה תשולב בתוך העשייה, כל רעיון יוצג יחד עם יישומו בפועל - בקוד. במהלך הקורס נבנה מספר אפליקציות אשר חלקן יהיו ברמת השוק. הפרויקט הסופי יהיה אפליקציה המקיימת אינטראקציה עם מסד נתונים מקומי ומרוחק, אשר נבנתה על פי ארכיטקטורת ה Jetpack וכוללת את מרבית רכיבי האנדרואיד שנלמדו.
Detailed Syllabus:
Android Jetpack Overview & Intro to Kotlin
* Introduction – Android Native Development
* Android OS Historical Overview
* AndroidX & Android Jetpack Components
* Android Platform Architecture
* JVM, DVM and ART
* Kotlin overview
* Kotlin’s Extensions
* Kotlin vals & vars
* Kotlin’s Nullability
* Kotlin Basics (if, when, loops, Arrays, Collections)
Kotlin – Functional Programming
* Functions & Lambdas
* Default Arguments
* High order Functions
* Collections high order functions (filter, map, flatMap…)
* Lazy Sequences
* Scope Functions
* infix functions
* extension functions
Object Oriented with Kotlin
* Classes - Constructors and Properties
* Inheritance
* Interfaces and Abstract classes
* Data classes
* Delegated properties & lazy initialization
* Object expressions and Object Declarations
* SAM interfaces
* Nested & inner classes
* Access modifiers and Generics
* Operator Overloading
Android Building Blocks - Part 1
* Android App Components (Activity, Service, Receiver and Provider)
* Activities & Intents (Explicit and Implicit)
* Runtime Permissions using Launchers
* Activity LifeCycle and Shared preferences
Android Building Blocks - Part 2
* Single Activity Architecture with Fragments
* Fragment Lifecycle
* Using Navigation for Fragments transactions
* Recycler View (Adapter, ViewHolder, LayoutManager)
View Models & Live Data
* App Resources & Localization (language, screen, orientation…)
* Configuration changes & savedInstanceState bundle
* MVVM Design pattern
* Jetpack Lifecycle object
* View Model Scope
* LiveData & MutableLiveData
* Saved state module
* Transformations
* View Model provider Factory
MidProject using Room
* Internal Database with Room
* MVVM project with ViewModel, Livedata, Navigation and Room.
Asynchronous programming with Coroutines
* Intro to Android Views and Bindings
* Making a Responsive UI
* Suspension over Blocking
* CoroutineScope & CoroutineContext
* Dispatchers
* Coroutines Builders (launch, async, withContext…)
* Combining Suspended Functions
* Jetpack Components Scopes
* Continuation Object
Phone services
* Launchers API for communication with system apps
* Working with the phone’s Camera
* Implementing speech recognition
* Android External Storage
* File Provider
* Google play services
* Fused location combined with LiveData
* Retrieving the user contacts
* Working with local phone databases
Firebase
* Working with Firebase Console
* Implementing Users Authentication
* Using Firebase Firestore for saving data on the cloud database
* Receiving live updates with Flow and LiveData
Dependency Injection with Hilt
* The concept of Dependency Injection
* Manual vs Automatic Injection
* Static vs Dynamic injection
* Dagger 2 and Hilt
* Hilt Annotations: @Inject, @Binds and @Provides
* Hilt Modules and @Installin annotation
* Dependencies scope
* View Models with Hilt
Fully Jetpacked Architecture App with local and remote data sources
* Useful external libraries: Glide, Volley, Gson & Retrofit 2
* Repository - for single data entry point to data sources
* Creating Full Jetpack Architecture app using Hilt and Retrofit 2
The Broadcasting system
* Notifications and PendingIntents
* Broadcast Receivers
* Static vs Dynamic Registration
* Local Broadcast Manager
* Alarm Manager
Non-UI Related tasks
* Service and Foreground service
* Job Schedulers
* Work Managers
* Background Execution limits