- write Kotlin functions
- create Kotlin variables
- use Kotlin String interpolation
- use conditionals in Kotlin
- create Kotlin classes
- use Kotlin constants
- work with Lists in Kotlin
- use Loops in Kotlin
- work with Interfaces, Abstract Classes and Inherited Classes in Kotlin
- use special types of classes in Kotlin
- work with Pairs and Maps in Kotlin
- use Kotlin Extension Functions
- convert Java code to Kotlin
- add Kotlin file to existing project
- create a new app using Kotlin
- use Interface callbacks with Kotlin
- add the KotlinX Serialization library to an Android project
- set up a class for Kotlin serialization
- encode and decode JSON
- explain the advantage of Coroutines other Async patterns
- set up app to work with coroutines
- use annotations to ensure proper threading
- prepare methods to be run on coroutines
- spin up coroutine
- move coroutine execution from one thread to another
Build an app which uses the spacetelescope api to retrieve videos and then build a view player to play them.
- Use coroutines to execute network calls to the api
The documentation can be found here Be sure to add the
android:usesCleartextTraffic="true"
attribute to the application tag in your manifest to work with http urls (as opposed to https) return pair from http request method
- Use the serialization library to process the JSON response
You can use the
@Optional
tag andJson.nonstrict.parse
to ignore non-necessary Json properties.
add extention function to video to get the desired video file url that is specified in a constant
- Write an extension function to the VideoData class (the one with the array of video_files) to return a video_file object based on a predetermined value which is stored as a constant in the VideoData class
- Add a
VideoView
,SeekBar
, andButton
to the layout and use them to play the video retrieved from the url- Button - can play/pause the video
- VideoView - Video output
- SeekBar
- Follows progress of the video
- Secondary progress tracks the buffer progress
- User can tap and drag to seek to different locations
You can use the
kotlin-android-extensions
plugin that comes with your kotlin app to use the view ids as objects