KOTLIN + Android KOTLIN + Android Getting Started Basic SyntaxIdiomsCoding Conventions Basics Basic TypesPackagesControl FlowReturns and Jumps Classes and Objects Classes and InheritanceProperties and FieldsInterfacesVisibility ModifiersExtensionsData ClassesGenericsNested ClassesEnum ClassesObjectsDelegationDelegated Properties Functions and Lambdas FunctionsLambdasInline Functions Other Destructuring DeclarationsCollectionsRangesType Checks and CastsThis expressionsEqualityOperator overloadingNull SafetyExceptionsAnnotationsReflectionType-Safe BuildersDynamic Type Interop Calling Java from KotlinCalling Kotlin from Java Introduction to Android Overview of AndroidJava Editions and comparison with AndroidAndroid Apps – Design, Vendor, Behavioral Classification Android Architecture Overview Android ArchitectureApplication FrameworksAndroid Libraries, Run time, Dalvik Virtual Machine Setup of Android Development Environment System RequirementsJava, Eclipse and Android SDK InstallationAndroid SDK andToolsAndroid Virtual Devices & Device Definitions Your Android Application Android Application DesignUsing PhotoShop for Graphic DesigningAndroid Application Wireframes (screens) Your First Android Application Creating Android ApplicationCreating ConfigurationsTesting the app: AVD, Active DeviceAndroid Project Structure and Manifest file Publishing to the Play Store Release process and Release build of Android ApplicationSigning the .apk filePreparing the Store Listing pageContent RatingDistributing the ApplicationMerchant Registration for Paid Applications Activities About XML – approach to design layoutsViews and LayoutsView propertiesLinear Layout vs. Relative Layout vs. Frame Layout vs. Absolute LayoutLocalization of UIBest practices for targeting various form factors: phone, tablet, TVBest practices when working designing Android UI Android Testing Creating a Test Project for Android projectWorking with Test PackagesWriting test cases Fragments Designing fragmentsFragments life cycleFragment management and integration User Interfaces Creating the ActivityXML versus Java UISelection Widgets, Using fontsCommon UI componentsHandling UI events: a bit about listeners Advanced UI AdaptersComplex UI componentsMenus and DialogsTabbed ActivitiesNavigation DrawerAnimationsCreate activity layouts programmaticallyTesting and optimizing UI Android Material Design What is material ?Material properties and Styling / AnimationsMaterial Patterns Resources Overview of Android ResourcesCreating ResourcesUsing ResourcesDrawable ResourcesAnimation Resources Broadcast Receivers Broadcast receiver usage patterns: when and why to use themImplementing a broadcast receiverRegistering a broadcast receiver via the manifest file and Programmatically Background Services Overview of Android servicesService lifecycleDeclaring a serviceRegistering a serviceStarting and stopping a serviceThreads and other concurrency considerations with servicesBound versus unbound servicesRemote versus local services Intents Working with IntentsExplicit and implicit intentsUsing Intents as messaging objectsIntents to start components expecting results Storing and Retrieving Data Storage Model selection criteriaShared preferencesInternal Storage – FilesExternal Storage – SD CardTesting the created files, tools SQLite Database Introducing SQLiteSQLiteOpenHelper and creating a databaseOpening and closing a databaseWorking with cursorsInserts, updates, and deletes Native Content Providers Content provider typesSearching for contentAdding, changing, and removing contentNative Android Content ProvidersAccessing Contact Book, Calendar Native Content Providers Custom Content Provider classesPublishing content providers Web Services Understanding Web ServicesWeb Services ArchitectureBuilding Server side componentsPublishing web servicesREST based web servicesAccessing Web ServicesIntegrating Web Services with mobile clientOverview of networkingChecking the network status and web service statusWorking with HTTP to access the web services Parsing, Parsers Document Object Model ( DOM )Simple API for XML ( SAX )JavaScript Object Notation ( JSON )Parsing XML and JSON Location Based Services Using Location Manager, Location ProviderGPS and Network based trackingTesting the application using KML filesSimulation of the locations on the active deviceLocation Listeners and Proximity Alerts Integrating Google Maps API Version 2 of Google MapsUser Interface – MapFragmentsAPI key generationRegistrations in the manifest fileGoogle Map, Camera PositionsAdding Markers, Circles, PolylinesGoogle Maps Directions API Telephony Telephony backgroundAccessing telephony informationMonitoring data activity and connectivityWorking with messaging SMS Multimedia in Android Playing Audio & VideoRecording Audio & VideoCustomizing Camera & Capturing PhotosVoice RecognitionText To Speech Bluetooth Controlling local Bluetooth deviceDiscovering and bonding with Bluetooth devicesManaging Bluetooth connectionsCommunicating with Bluetooth Social Networking Integrations Facebook Integration