برنامه نویسی اندروید با استفاده از زبان کاتلین

Android Programming Using the Kotlin Programming Language


مدت دوره: 60 ساعت 

پیش نیاز دوره: آشنایی با یک زبان برنامه نویسی مانند جاوا میتواند مفید باشد

اهداف دوره:
این دوره یک بسته کامل آموزشی شامل دو بخش می باشد:
در بخش اول آموزش کامل برنامه نویسی به زبان کاتلین و بعد از آن، در بخش دوم آموزش برنامه نویسی اندروید


سرفصل دوره:


KOTLIN
Getting Started with Kotlin
 Kotlin Basics
Object-Oriented Code in Kotlin
Functions in Kotlin
Higher Order Functions and Functional Programming
Properties
Null Safety, Reflection, and Annotations
 Generics
 Data Classes
 Collections
Testing in Kotlin
Concurrency

ANDROID
 The Necessary Tools
 Downloading and Installing Android Studio
 Downloading Earlier SDK Versions
A Hardware Device
First Android Application
App Basics
Creating an Android Project
 Navigating in Android Studio
Laying Out the UI
 From Layout XML to View Objects
 Wiring Up Widgets
 Add a Listener to the TextView
Making Toasts
The Activity Lifecycle
Logging the Activity Lifecycle
Rotation and the Activity Lifecycle
Saving Data Across Rotation
Debugging Android Apps
Exceptions and Stack Traces
Android-Specific Debugging
Exploring the Layout Inspector
Exploring Allocation Tracking
Your Second Activity
Setting Up a Second Activity
Starting an Activity
Passing Data Between Activities
How Android Sees Your Activities
Android SDK Versions and Compatibility
Android SDK Versions
Compatibility and Android Programming
Using the Android Developer Documentation
Reporting the Build Version
UI Fragments and the Fragment Manager
The Need for UI Flexibility
Introducing Fragments
 Starting SampleIntent
Hosting a UI Fragment
Creating a UI Fragment
Adding a UI Fragment to the FragmentManager
Application Architecture with Fragments
 Fragments and the Support Library
 Why Support Fragments Are Superior
 Displaying Lists with RecyclerView
Singletons and centralized data storage
An Abstract Activity for Hosting a Fragment
RecyclerView, Adapter, and ViewHolder
Binding List Items
Responding to Presses
ListView and GridView
 RecyclerView ViewTypes
 Creating User Interfaces with Layouts and Widgets
Using the Graphical Layout Tool
Introducing ConstraintLayout
More on Layout Attributes
 The Graphical Layout Tools and You
Using Fragment Arguments
Starting an Activity from a Fragment
Fragment Arguments
 Reloading the List
Getting Results with Fragments
 Efficient RecyclerView Reloading
 Using View Pager
 Creating SamplePagerActivity
 FragmentStatePagerAdapter vs. FragmentPagerAdapter
 How ViewPager Really Works
 Laying Out Views in Code
 Dialogs
 Creating a DialogFragment
 Passing Data Between Two Fragments
 More Dialogs
 A Responsive DialogFragment
 The Toolbar
AppCompat
Menus
Enabling Hierarchical Navigation
An Alternative Action Item
 Action Bar vs. Toolbar
 SQLite Databases
 Defining a Schema
 Building Your Initial Database
 Writing to the Database
Reading from the Database
 More Databases
Implicit Intents
Using Implicit Intents
 Taking Pictures with Intents
 A Place for Your Photo
 File Storage
 Using a Camera Intent
Scaling and Displaying Bitmaps
 Declaring Features
Efficient Thumbnail Load
Two-Pane Master-Detail Interfaces
 Adding Layout Flexibility
Activity: Fragment Boss
 More on Determining Device Size
 Adding Swipe to Dismiss
 Localization
 Localizing Resources
 Configuration Qualifiers
 Testing Alternative Resources
 Localizing Dates
 Unit Testing and Audio Playback
 Creating a SoundPool
 Loading Sounds
 Playing Sounds
 Test Dependencies
 Creating a Test Class
 Setting Up Your Test
Writing Tests
 Data Binding Callbacks
 Unloading Sounds
 Rotation and Object Continuity
Styles and Themes
Color Resources
 Styles
 Themes
Adding Theme Colors
 Overriding Theme Attributes
 Modifying Button Attributes
 More on Style Inheritance
 XML Drawables
 Making Uniform Buttons
 Shape Drawables
 State List Drawables
Layer List Drawables
 Mipmap Images
 9-Patch Images
More About Intents and Tasks
Resolving an Implicit Intent
 Creating Explicit Intents at Runtime
Tasks and the Back Stack
 Processes vs. Tasks
 Concurrent Documents
 HTTP and Background Tasks
 Creating PhotoGallery
 Networking Basics
 Using AsyncTask to Run on a Background Thread
 You and Your Main Thread
 Fetching JSON from Flickr
From AsyncTask Back to the Main Thread
 Cleaning Up AsyncTasks
 More on AsyncTask
 Alternatives to AsyncTask
 Gson
 Loopers, Handlers, and HandlerThread
 Preparing RecyclerView to Display Images
 Downloading Lots of Small Things
 Communicating with the Main Thread
 Assembling a Background Thread
 Messages and Message Handlers
 AsyncTasks vs. Threads
 Solving the Image Downloading Problem
 Preloading and Caching
 Search
 Using SearchView
Simple Persistence with Shared Preferences
 Background Services
 Creating an IntentService
 What Services Are For
 Looking for New Results
 Delayed Execution with AlarmManager
Controlling Your Alarm
 Notifications
 Service Details
 JobScheduler and JobServices
 Using JobService on Lollipop
 Sync Adapters
 Broadcast Intents
 Regular Intents vs. Broadcast Intents
 Receiving a System Broadcast: Waking Up on Boot
 Filtering Foreground Notifications
 Receivers and Long-Running Tasks
 Local Events
Browsing the Web and WebView
Implicit Intents
 WebView
 Proper Rotation with WebView
Injecting JavaScript Objects
 WebView Updates
 Using the Back Button for Browser History
 Supporting Non-HTTP Links
Custom Views and Touch Events
 Setting Up the DragAndDraw Project
 Creating a Custom View
 Handling Touch Events
 Rendering Inside onDraw(Canvas)
Rotating Boxes
 Property Animation
Simple Property Animation
 Playing Animators Together
 Other Animation APIs
 Locations and Play Services
 Locations and Libraries
 Play Services and Location Testing on Emulators
 Setting Up Google Play Services
 Using Google Play Services
 Getting a Location Fix
 Asking for Permission at Runtime
 Find and Display an Image
 Maps
 Importing Play Services Maps
 Getting a Maps API Key
 Setting Up Your Map
 Getting More Location Data
 Working with Your Map
 Material Design
 Material Surfaces
 Animation Tools
View Components