SitePoint
  • Premium
  • Library
  • Community
  • Jobs
  • Blog
LoginStart Free Trial
Programming Kotlin Applications
Programming Kotlin® Applications
ABOUT THE AUTHOR
ABOUT THE TECHNICAL EDITOR
ACKNOWLEDGMENTS
INTRODUCTION
WHAT DOES THIS BOOK COVER?
WILL THIS BOOK TEACH ME TO PROGRAM MOBILE APPLICATIONS IN KOTLIN?
KOTLIN: A NEW PROGRAMMING LANGUAGE
WHAT IS KOTLIN?
KOTLIN IS OBJECT-ORIENTED
INTERLUDE: SET UP YOUR KOTLIN ENVIRONMENT
CREATING USEFUL OBJECTS
INITIALIZE AN OBJECT AND CHANGE A VARIABLE
UPGRADE YOUR KOTLIN CLASS GAME
KOTLIN HAS A LARGE NUMBER OF TYPES
OVERRIDING PROPERTY ACCESSORS AND MUTATORS
CLASSES CAN HAVE CUSTOM BEHAVIOR
TYPE SAFETY CHANGES EVERYTHING
WRITING CODE IS RARELY LINEAR
OBJECTS, CLASSES, AND KOTLIN
ALL CLASSES NEED AN EQUALS(X) METHOD
EVERY OBJECT INSTANCE NEEDS A UNIQUE HASHCODE()
SEARCHING (AND OTHER THINGS) DEPEND ON USEFUL AND FAST EQUALS(X) AND HASHCODE()
BASIC CLASS METHODS ARE REALLY IMPORTANT
GOOD CLASSES ARE NOT ALWAYS COMPLEX CLASSES
CLASSES CAN DEFINE DEFAULT VALUES FOR PROPERTIES
SECONDARY CONSTRUCTORS PROVIDE ADDITIONAL CONSTRUCTION OPTIONS
HANDLE DEPENDENT VALUES WITH CUSTOM MUTATORS
NEED SPECIFICS? CONSIDER A SUBCLASS
YOUR SUBCLASS SHOULD BE DIFFERENT THAN YOUR SUPERCLASS
LISTS ARE JUST A COLLECTION OF THINGS
LISTS (AND COLLECTIONS) CAN BE TYPED
LISTS ARE ORDERED AND CAN REPEAT
SETS: UNORDERED BUT UNIQUE
MAPS: WHEN A SINGLE VALUE ISN'T ENOUGH
FILTER A COLLECTION BY … ANYTHING
COLLECTIONS: FOR PRIMITIVE AND CUSTOM TYPES
GENERICS ALLOW DEFERRING OF A TYPE
GENERICS TRY TO INFER A TYPE WHEN POSSIBLE
COVARIANCE: A STUDY IN TYPES AND ASSIGNMENT
CONTRAVARIANCE: BUILDING CONSUMERS FROM GENERIC TYPES
UNSAFEVARIANCE: LEARNING THE RULES, THEN BREAKING THEM
TYPEPROJECTION LETS YOU DEAL WITH BASE CLASSES
CONTROL STRUCTURES ARE THE BREAD AND BUTTER OF PROGRAMMING
IF AND ELSE: THE GREAT DECISION POINT
WHEN IS KOTLIN'S VERSION OF SWITCH
FOR IS FOR LOOPING
USE WHILE TO EXECUTE UNTIL A CONDITION IS FALSE
DO … WHILE ALWAYS RUNS ONCE
GET OUT OF A LOOP IMMEDIATELY WITH BREAK
GO TO THE NEXT ITERATION IMMEDIATELY WITH CONTINUE
RETURN RETURNS
CLASSES IN THE REAL WORLD ARE VARIED BUT WELL EXPLORED
A DATA CLASS TAKES THE WORK OUT OF A CLASS FOCUSED ON DATA
DESTRUCTURING DATA THROUGH DECLARATIONS
YOU CAN “COPY” AN OBJECT OR MAKE A COPY OF AN OBJECT
DATA CLASSES REQUIRE SEVERAL THINGS FROM YOU
DATA CLASSES ADD SPECIAL BEHAVIOR TO GENERATED CODE
DATA CLASSES ARE BEST LEFT ALONE
STRINGS ARE TERRIBLE AS STATIC TYPE REPRESENTATIONS
COMPANION OBJECTS ARE SINGLE INSTANCE
ENUMS DEFINE CONSTANTS AND PROVIDE TYPE SAFETY
SEALED CLASSES ARE TYPE-SAFE CLASS HIERARCHIES
REVISITING THE SYNTAX OF A FUNCTION
FUNCTIONS FOLLOW FLEXIBLE RULES
FUNCTIONS IN KOTLIN HAVE SCOPE
FUNCTION LITERALS: LAMBDAS AND ANONYMOUS FUNCTIONS
LOTS OF FUNCTIONS, LOTS OF ROOM FOR PROBLEMS
SCOPE FUNCTIONS PROVIDE CONTEXT TO CODE
USE LET TO PROVIDE IMMEDIATE ACCESS TO AN INSTANCE
WITH IS A SCOPE FUNCTION FOR PROCESSING AN INSTANCE
RUN IS A CODE RUNNER AND SCOPE FUNCTION
APPLY HAS A CONTEXT OBJECT BUT NO RETURN VALUE
ALSO GIVES YOU AN INSTANCE … BUT OPERATES ON THE INSTANCE FIRST
SCOPE FUNCTIONS SUMMARY
ABSTRACT CLASSES REQUIRE A LATER IMPLEMENTATION
INTERFACES DEFINE BEHAVIOR BUT HAVE NO BODY
DELEGATION OFFERS ANOTHER OPTION FOR EXTENDING BEHAVIOR
INHERITANCE REQUIRES FORETHOUGHT AND AFTERTHOUGHT
PROGRAMMING KOTLIN FOR ANDROID
KOTLIN AND JAVA ARE GREAT COMPANIONS
WHEN KOTLIN QUESTIONS STILL EXIST
NOW WHAT?
WILEY END USER LICENSE AGREEMENT

Community Questions