Android Development with Kotlin
图书信息
| 作者 | Marcin Moskala,Igor Wojda |
| 出版社 | Packt Publishing |
| ISBN | 9781787128989 |
| 出版时间 | 2017-08-30 |
| 字数 | 52.9万 |
| 分类 | Packt Publishing,进口书,外文原版书,电脑,网络 |
读书简介
Learn how to make Android development much faster using a variety of Kotlin features, from basics to advanced, to write better quality code. About This Book ? Leverage specific features of Kotlin to ease Android application development ? Write code based on both object oriented and functional programming to build robust applications ? Filled with various practical examples so you can easily apply your knowledge to real world scenarios ? Identify the improved way of dealing with common Java patterns Who This Book Is For This book is for developers who have a basic understanding of Java language and have 6-12 months of experience with Android development and developers who feel comfortable with OOP concepts. What You Will Learn ? Run a Kotlin application and understand the integration with Android Studio ? Incorporate Kotlin into new/existing Android Java based project ? Learn about Kotlin type system to deal with null safety and immutability ? Define various types of classes and deal with properties ? Define collections and transform them in functional way ? Define extensions, new behaviours to existing libraries and Android framework classes ? Use generic type variance modifiers to define subtyping relationship between generic types ? Build a sample application In Detail Nowadays, improved application development does not just mean building better performing applications. It has become crucial to find improved ways of writing code. Kotlin is a language that helps developers build amazing Android applications easily and effectively. This book discusses Kotlin features in context of Android development. It demonstrates how common examples that are typical for Android development, can be simplified using Kotlin. It also shows all the benefits, improvements and new possibilities provided by this language. The book is divided in three modules that show the power of Kotlin and teach you how to use it properly. Each module present features in different levels of advancement. The first module covers Kotlin basics. This module will lay a firm foundation for the rest of the chapters so you are able to read and understand most of the Kotlin code. The next module dives deeper into the building blocks of Kotlin, such as functions, classes, and function types. You will learn how Kotlin brings many improvements to the table by improving common Java concepts and decreasing code verbosity. The last module presents features that are not present in Java. You will learn how certain tasks can be achieved in simpler ways thanks to Kotlin. Through the book, you will learn how to use Kotlin for Android development. You will get to know and understand most important Kotlin features, and how they can be used. You will be ready to start your own adventure with Android development with Kotlin. Style and approach A step-by-step guide that is filled with numerous real-world examples.
目录
Title Page
Copyrights
Android Development with Kotlin
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
Beginning Your Kotlin Adventure
Say hello to Kotlin
Awesome Kotlin examples
Dealing with Kotlin code
Kotlin Playground
Android Studio
Configuring Kotlin for the project
Using Kotlin in a new Android project
Java to Kotlin converter (J2K)
Alternative ways to run Kotlin code
Kotlin under the hood
The Kotlin standard library
More reasons to use Kotlin
Summary
Laying a Foundation
Variables
Type inference
Strict null safety
Safe call
Elvis operator
Not null assertion
Let
Nullability and Java
Casts
Safe/unsafe cast operator
Smart casts
Type smart casts
Non-nullable smart cast
Primitive data types
Numbers
Char
Arrays
The Boolean type
Composite data types
Strings
String templates
Ranges
Collections
Statements versus expressions
Control flow
The if statement
The when expression
Loops
The for loop
The while loop
Other iterations
Break and continue
Exceptions
The try... catch block
Compile-time constants
Delegates
Summary
Playing with Functions
Basic function declaration and usages
Parameters
Returning functions
Vararg parameter
Single-expression functions
Tail-recursive functions
Different ways of calling a function
Default arguments values
Named arguments syntax
Top-level functions
Top-level functions under the hood
Local functions
Nothing return type
Summary
Classes and Objects
Classes
Class declaration
Properties
Read-write versus read-only property
Property access syntax between Kotlin and Java
Increment and decrement operators
Custom getters/setters
The getter versus property default value
Late-initialized properties
Annotating properties
Inline properties
Constructors
Property versus constructor parameter
Constructor with default arguments
Patterns
Inheritance
The JvmOverloads annotation
Interfaces
Data classes
The equals and hashCode method
The toString method
The copy method
Destructive declarations
Operator overloading
Object declaration
Object expression
Companion objects
Companion object instantiation
Enum classes
Infix calls for named methods
Visibility modifiers
Internal modifier and Java bytecode
Sealed classes
Nested classes
Import aliases
Summary
Functions as First-Class Citizens
Function type
What is function type under the hood?
Anonymous functions
Lambda expressions
Implicit name of a single parameter
Higher-order functions
Providing operations to functions
Observer (Listener) pattern
Callback after a threaded operation
Combination of named arguments and lambda expressions
Last lambda in argument convention
Named code surrounding
Processing data structures using LINQ style
Java SAM support in Kotlin
Named Kotlin function types
Named parameters in function type
Type alias
Underscore for unused variables
Destructuring in lambda expressions
Inline functions
The noinline modifier
Non-local returns
Labeled return in lambda expressions
Crossinline modifier
Inline properties
Function References
Summary
Generics Are Your Friends
Generics
The need for generics
Type parameters versus type arguments
Generic constraints
Nullability
Variance
Variance modifiers
Use-site variance versus declaration-site variance
Collection variance
Variance producer/consumer limitation
Invariant constructor
Type erasure
Reified type parameters
The startActivity method
Star-projections
Type parameter naming conventions
Summary
Extension Functions and Properties
Extension functions
Extension functions under the hood
No method overriding
Access to receiver elements
Extensions are resolved statically
Companion object extensions
Operator overloading using extension functions
Where should top-level extension functions be used?
Extension properties
Where should extension properties be used?
Member extension functions and properties
Type of receivers
Member extension functions and properties under the hood
Generic extension functions
Collection processing
Kotlin collection type hierarchy
The map, filter, flatMap functions
The forEach and onEach functions
The withIndex and indexed variants
The sum, count, min, max, and sorted functions
Other stream processing functions
Examples of stream collection processing
Sequence
Function literals with receiver
Kotlin standard library functions
The let function
Using the apply function for initialization
The also function
The run and with function
The to function
Domain-specific language
Anko
Summary
Delegates
Class delegation
Delegation pattern
Decorator pattern
Property delegation
What are delegated properties?
Predefined delegates
The lazy function
The notNull function
The observable delegate
The vetoable delegate
Property delegation to Map type
Custom delegates
View binging
Preference binding
Providing a delegate
Summary
Making Your Marvel Gallery Application
Marvel Gallery
How to use this chapter
Make an empty project
Character gallery
View implementation
Network definition
Business logic implementation
Putting it all together
Character search
Character profile display
Summary
- 高考英语历年真题核心高频688词汇(合肥新东方高考英语教研中心)
- 2019年全国导游人员资格考试辅导教材-全国导游基础知识(圣才电子书)
- Dup? ce te-am pierdut(Jojo Moyes)
- 纸上王国(邓安庆)
- Castle Rackrent(Maria Edgeworth)
- 大学生初涉职场一本通(第2版)(杨添天 主编)
- 文治帝国:大宋300年的世运与人物【畅销书《一看就停不下来的中国史》作者重磅新书!】(艾公子)
- 365夜亲子共读:写给男孩子的经典智慧故事全集(秦茵)
