Закладки0
UsupovMarket / Курсы по программированию / [Специалист] Kotlin. Уровень 1. Основы программирования, 2020 (Марат Хакимов)
Почему такая цена?
  • Добавлено: 2020-04-02
  • Автор курса: Марат Хакимов
  • Цена у автора: 19990 руб.
  • Сайт автора: Перейти
  • Доступ: Облако Mail / Yandex / Google
  • Загрузка: PC / Smartphone / Tablet

Kotlin это новый популярный объектно-ориентированный язык программирования. Kotlin используется для создания серверного программного обеспечения, прикладных программ, Android-приложений, разработки веб-сайтов, игр и многого другого. Обладая современным и упрощенным по сравнению с Java синтаксисом, Kotlin устраняет значительное количество его недостатков, сохраняя 100 % совместимость с Java. Созданные на языке Kotlin приложения могут успешно работать на любом компьютере независимо от его архитектуры.

На курсе «Kotlin. Уровень 1. Основы программирования» рассматриваются все элементы и конструкции самого языка Kotlin, а также разбираются варианты его совместного использования с Java. Все теоретические положения детально демонстрируются на практических примерах сертифицированными преподавателями Центра «Специалист».

Курс предназначен для всех программистов, желающих повысить свой уровень.

По окончании курса Вы будете уметь:
  • Использовать ветвление и циклы
  • Создавать методы на Kotlin
  • Применять лямбда-выражения
  • Работать с массивами и со строками
  • Разрабатывать классы на Kotlin
  • Работать с Data-классами
  • Изучите систему типов Kotlin
  • Использовать наследование и полиморфизм
  • Разрабатывать абстрактные классы и интерфейсы
  • Обрабатывать ошибки, возникающие в программе
  • Научитесь пользоваться коллекциями
  • Познакомитесь с функциональным программированием
  • Использовать в программе параметризованные типы
  • Получите представление о тестировании кода на Kotlin
  • Получите представление о паттернах проектирования
Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы. Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.

Продолжение описания Программа курса:
Модуль 1. Введение в Kotlin

  • Языковые лексемы
  • Модули, пакеты, файлы и классы
  • Настройка среды
  • Константы, переменные и функции
  • Строки, строковые шаблоны
  • Система типов
  • Допустимость null
  • Совместимость с Java
  • Лабораторная работа: работа со строковыми литералами и шаблонами строк
Модуль 2. Функции, методы и операторы
  • Создание и вызов функций
  • Именованные аргументы, значения по умолчанию
  • Операторы ветвления
  • when
  • Автоматическое приведение типов
  • Операторы циклов
  • Диапазоны
  • Пары и триплеты
  • Деструктурирование и мультидекларации
  • Встраивание функций
  • Лабораторная работа: циклы и ветвление
  • Лабораторная работа: замена if и switch на when
Модуль 3. Лямбда-выражения
  • Синтаксис лямбда-выражений
  • Ссылки на методы
  • Функциональные интерфейсы
Модуль 4. Разработка классов
  • Обзор основных концепций ООП
  • Перечисления
  • Объявление класса
  • Поля, свойства, методы, модификаторы доступа
  • Конструкторы и инициализаторы
  • Data-классы
  • Перегрузка операторов
  • Функции-расширения и свойства-расширения
  • Отложенная инициализация
  • Лабораторная работа: создание классов
  • Лабораторная работа: конструкторы и инициализаторы
  • Лабораторная работа: Data-классы
Модуль 5. Внутренние, вложенные классы
  • Внутренние классы
  • Вложенные классы
  • Шаблон синглтон
  • Объекты-компаньоны
  • Лабораторная работа: Использование объектов-компаньонов
Модуль 6. Наследование и полиморфизм
  • Наследование как механизм повторного использования кода
  • Конструктор при наследовании
  • Преобразование типов
  • Виртуальные методы и позднее связывание
  • Абстрактные классы и методы
  • Open, final, sealed
  • Делегирование как альтернатива
  • Лабораторная работа: создание иерархий классов
Модуль 7. Интерфейсы и аннотации
  • Концепция интерфейсов
  • Объявление интерфейса
  • Методы в интерфейсах
  • Реализация интерфейса
  • Использование и создание аннотаций
Модуль 8. Обработка исключений
  • Концепция исключений
  • Исключения Kotlin
  • Использование операторов try, catch и finally
  • Идиома try-with-resource
  • Лабораторная работа: работа с исключениями
  • Лабораторная работа: обработка исключений Java кода
Модуль 9. Коллекции
  • Иерархия классов коллекций
  • Концепция параметризованных типов данных
  • Работа с параметризованными методами и интерфейсами
  • Обзор возможностей коллекций в Kotlin
  • Лабораторная работа: работа с коллекциями
Модуль 10. Функциональное программирование
  • Функции высшего порядка
  • Работа с коллекциями в функциональном стиле
  • Последовательности
  • Лабораторная работа: функциональное программирование при работе с коллекциями
Модуль 11. Тестирование
  • JUnit
  • Mockito
  • Лабораторная работа: тестирование методов и классов

Содержание складчины (файлы и папки)
Kotlin 1. День 01.mp4 [166m 779k 738]
Kotlin 1. День 02.mp4 [186m 772k 355]
Kotlin 1. День 03.mp4 [188m 501k 416]
Kotlin 1. День 04.mp4 [185m 3k 843]
Kotlin 1. День 05.mp4 [180m 189k 674]
Kotlin 1. День 06.mp4 [189m 730k 309]
Kotlin 1. День 07.mp4 [190m 153k 359]
Kotlin 1. День 08.mp4 [182m 339k 101]
Kotlin 1. День 09.mp4 [170m 575k 547]
Kotlin 1. День 10.mp4 [120m 947k 192]

Материалы

01
Kotlin-classes-4-interfaces-7-internal-5.pdf [217k 757]
Kotlin-intro-1-functions-2.pdf [277k 815]
log-line.txt [178]
Manning - Яремов, Исакова - Kotlin в действии [2018].pdf [41m 823k 730]
passwd.txt [6k 665]

Lesson1
build.gradle [570]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main
Lesson1Kt.class [7k 586]

META-INF
Lesson1.kotlin_module [31]

test
TestGreet.class [896]
TestSalary$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [863]
TestSalary$testNegativeSalary$thrown$1.class [1k 511]
TestSalary.class [2k 358]

META-INF
Lesson1.kotlin_module [16]

kotlin

compileKotlin
build-history.bin [225]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [4k 547]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
constants.tab [4k 96]
constants.tab.keystream [4k 96]
constants.tab.keystream.len [8]
constants.tab.len [8]
constants.tab.values.at [674]
constants.tab_i [32k 768]
constants.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [1k 739]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [127]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [11k 640]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [751]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [5]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [205]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [1k 739]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values [2k 449]
lookups.tab.values.at [28k 671]
lookups.tab.values.s [2]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

compileTestKotlin
build-history.bin [311]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [1k 161]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [386]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [522]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [755]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [294]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [79]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [386]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [2k 213]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

reports

tests

test
index.html [2k 637]

classes
TestGreet.html [2k 50]
TestSalary.html [2k 148]

css
base-style.css [2k 645]
style.css [1k 135]

js
report.js [5k 252]

packages
default-package.html [2k 259]

test-results

test
TEST-TestGreet.xml [402]
TEST-TestSalary.xml [451]

binary
output.bin [0]
output.bin.idx [1]
results.bin [256]

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin
Lesson1.kt [3k 725]

resources

test

java

kotlin
TestGreet.kt [319]
TestSalary.kt [623]

resources

02
Kotlin-classes-4-interfaces-7-internal-5.pdf [217k 757]
log-line.txt [178]
passwd.txt [6k 665]

Lesson2
build.gradle [570]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

java

main
Person.class [430]

kotlin

main
FizzBuzzKt.class [1k 484]
RegexpKt.class [10k 286]

color
Color.class [1k 777]
ColorKt.class [747]

cru
Cru$WhenMappings.class [477]
Cru.class [1k 876]
CruKt.class [1k 310]

graphics
Rectangle.class [1k 842]
RectangleKt.class [627]

META-INF
Lesson2.kotlin_module [131]

strings
StringUtilKt.class [3k 367]

ui
Button.class [951]
TextView.class [961]
View$DefaultImpls.class [710]
View.class [460]
ViewKt.class [855]

users
Person.class [1k 404]
PersonKt.class [1k 206]

test
ExtensionTest.class [1k 100]
RegexpTest.class [466]
TestFizzBuzz.class [472]

META-INF
Lesson2.kotlin_module [16]

generated

sources

annotationProcessor

java

main

kotlin

compileKotlin
build-history.bin [791]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [4k 492]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [1k 5]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [2k 471]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [97]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [5k 470]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [853]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]
subtypes.tab [4k 96]
subtypes.tab.keystream [4k 96]
subtypes.tab.keystream.len [8]
subtypes.tab.len [8]
subtypes.tab.values.at [141]
subtypes.tab_i [32k 768]
subtypes.tab_i.len [8]
supertypes.tab [4k 96]
supertypes.tab.keystream [4k 96]
supertypes.tab.keystream.len [8]
supertypes.tab.len [8]
supertypes.tab.values.at [149]
supertypes.tab_i [32k 768]
supertypes.tab_i.len [8]

lookups
counters.tab [5]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [145]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [1k 190]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [10k 735]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

compileTestKotlin
build-history.bin [31]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [576]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [258]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [258]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [332]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [138]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [67]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [258]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [413]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

reports

tests

test
index.html [2k 469]

classes
ExtensionTest.html [2k 42]

css
base-style.css [2k 645]
style.css [1k 135]

js
report.js [5k 252]

packages
default-package.html [2k 88]

test-results

test
TEST-ExtensionTest.xml [390]

binary
output.bin [0]
output.bin.idx [1]
results.bin [100]

tmp

compileJava

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java
Person.java [190]

kotlin
FizzBuzz.kt [457]
Regexp.kt [8k 278]

color
Color.kt [219]

cru
Cru.kt [376]

graphics
Rectangle.kt [384]

strings
StringUtil.kt [881]

ui
View.kt [781]

users
Person.kt [191]

resources

test

java

kotlin
ExtensionTest.kt [385]
RegexpTest.kt [309]
TestFizzBuzz.kt [378]

resources

03
Kotlin-classes-4-interfaces-7-internal-5.pdf [241k 941]

Lesson3
build.gradle [572]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

java

main

nested
JavaOuter$JavaInternal.class [542]
JavaOuter$JavaNested.class [354]
JavaOuter.class [820]
User.class [438]

kotlin

main

calc
Animal.class [363]
CalcKt.class [4k 33]
Cow.class [833]
Dog.class [833]
Expr.class [730]
Goat.class [837]
Mul.class [1k 153]
Num.class [687]
Sum.class [1k 153]

META-INF
Lesson3.kotlin_module [32]

over
Animated.class [674]
AnimatedButton.class [669]
Animator.class [656]
Base.class [732]
Clickable.class [371]
Client.class [2k 410]
Outer$Internal.class [834]
Outer$Nested.class [530]
Outer.class [577]
OverKt.class [1k 516]
RichButton.class [757]
Secret.class [464]
User.class [1k 230]
User1.class [1k 431]
User2.class [969]

generated

sources

annotationProcessor

java

main

kotlin

compileKotlin
build-history.bin [1k 59]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [13k 109]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [9k 295]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [9k 965]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [79]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [19k 550]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [2k 265]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]
subtypes.tab [4k 96]
subtypes.tab.keystream [4k 96]
subtypes.tab.keystream.len [8]
subtypes.tab.len [8]
subtypes.tab.values.at [729]
subtypes.tab_i [32k 768]
subtypes.tab_i.len [8]
supertypes.tab [4k 96]
supertypes.tab.keystream [4k 96]
supertypes.tab.keystream.len [8]
supertypes.tab.len [8]
supertypes.tab.values.at [679]
supertypes.tab_i [32k 768]
supertypes.tab_i.len [8]

lookups
counters.tab [4]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [109]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [719]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [15k 313]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

tmp

compileJava

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

nested
JavaOuter.java [618]
User.java [205]

kotlin

calc
Calc.kt [2k 929]

over
Over.kt [2k 925]

resources

test

java

kotlin

resources

04
Kotlin-classes-4-interfaces-7-internal-5.pdf [239k 115]
Kotlin-lambda-3-func-10.pdf [170k 422]

Lesson4
build.gradle [576]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

java

main
JavaClickListener.class [149]
JavaView.class [395]
Singleton.class [565]

kotlin

main

META-INF
Lesson4.kotlin_module [30]

object
ClickListener.class [385]
ObjectKt$main$1.class [1k 157]
ObjectKt$main$listener$1.class [1k 184]
ObjectKt.class [845]
Outer$Loader.class [1k 340]
Outer.class [841]
Singleton.class [1k 519]
View.class [871]

operators
BarbWire.class [853]
Hedgehog.class [853]
LateInit$init$1.class [1k 250]
LateInit$init$2.class [1k 250]
LateInit.class [1k 879]
OperatorsKt$lazyValue$2.class [1k 365]
OperatorsKt.class [3k 201]
Point.class [2k 333]
Rect.class [1k 158]
Snake.class [841]

test
Base.class [460]
Child.class [467]
RationalNumber.class [2k 100]
TestKt.class [3k 330]

view
Person.class [2k 402]
UIKt$main$adult$1.class [1k 750]
UIKt$main$create$1.class [1k 978]
UIKt$main$maxage$1.class [1k 64]
UIKt.class [2k 781]

generated

sources

annotationProcessor

java

main

kotlin

compileKotlin
build-history.bin [937]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [3k 445]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [580]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [2k 64]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
java-sources-proto-map.tab [4k 96]
java-sources-proto-map.tab.keystream [4k 96]
java-sources-proto-map.tab.keystream.len [8]
java-sources-proto-map.tab.len [8]
java-sources-proto-map.tab.values.at [392]
java-sources-proto-map.tab_i [32k 768]
java-sources-proto-map.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [73]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [3k 730]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [736]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]
subtypes.tab [4k 96]
subtypes.tab.len [8]
supertypes.tab [4k 96]
supertypes.tab.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [97]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [569]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [6k 151]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

tmp

compileJava

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java
JavaClickListener.java [73]
JavaView.java [120]
Singleton.java [388]

kotlin

object
Object.kt [1k 43]

operators
Operators.kt [1k 605]

test
Test.kt [1k 511]

view
UI.kt [1k 507]

resources

test

java

kotlin

resources

05
Kotlin-lambda-3-func-10.pdf [188k 384]
Workplace.kt [947]

Lesson5
build.gradle [463]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main

lambda
Emp.class [2k 875]
LambdaKt.class [4k 646]
Person.class [2k 416]
WorkplaceKt.class [10k 17]

META-INF
Lesson5.kotlin_module [49]

kotlin

compileKotlin
build-history.bin [258]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [11k 244]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [3k 61]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [6k 215]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [175]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [31k 756]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [2k 78]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [5]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [301]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [3k 61]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values [9k 341]
lookups.tab.values.at [25k 777]
lookups.tab.values.s [10]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

lambda
Lambda.kt [2k 424]
Workplace.kt [2k 327]

resources

test

java

kotlin

resources

06
Kotlin-lambda-3-func-10.pdf [188k 384]
Kotlin-testing-11.pdf [169k 132]

Lesson6
build.gradle [668]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main

calculator
Calculator.class [1k 680]
CalculatorKt.class [896]

functions
Counter.class [1k 7]
FunctionsKt$formatString$1.class [1k 528]
FunctionsKt$isEven$1.class [1k 178]
FunctionsKt$isOdd$1.class [1k 177]
FunctionsKt$main$1.class [1k 581]
FunctionsKt.class [4k 183]
LazyClass$initial$2.class [1k 185]
LazyClass.class [2k 508]

mail
Client.class [857]
Mailer.class [575]
MailKt.class [1k 230]
PersonalInfo.class [852]

META-INF
Lesson6.kotlin_module [86]

mockito
MyClass.class [649]

test

calculator
CalculatorTest$combineAddAndMul$1.class [1k 209]
CalculatorTest$combineAddAndMul$2.class [1k 237]
CalculatorTest$combineAddAndMul$3.class [1k 237]
CalculatorTest$divisionByZeroThrowsException$exception$1.class [1k 175]
CalculatorTest$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [878]
CalculatorTest.class [6k 18]

META-INF
Lesson6.kotlin_module [16]

mockito
TestingMockito$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [875]
TestingMockito$MockitoHelper.class [1k 192]
TestingMockito$testThrows$thrown$1.class [1k 154]
TestingMockito.class [7k 32]

kotlin

compileKotlin
build-history.bin [650]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [5k 578]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [1k 644]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [3k 571]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [88]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [7k 745]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [1k 346]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [5]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [133]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [1k 125]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [15k 459]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

compileTestKotlin
build-history.bin [1k 120]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [5k 30]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [1k 172]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [2k 707]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [3k 797]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [1k 766]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [5]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [127]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [1k 92]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [8k 192]
lookups.tab.keystream [8k 192]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values [3k 399]
lookups.tab.values.at [21k 171]
lookups.tab.values.s [2]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

reports

tests

test
index.html [2k 471]

classes
mockito.TestingMockito.html [2k 733]

css
base-style.css [2k 645]
style.css [1k 135]

js
report.js [5k 252]

packages
mockito.html [2k 90]

test-results

test
TEST-mockito.TestingMockito.xml [914]

binary
output.bin [0]
output.bin.idx [1]
results.bin [357]

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

calculator
Calculator.kt [456]

functions
Functions.kt [1k 607]

mail
Mail.kt [394]

mockito
MyClass.kt [142]

resources

test

java

kotlin

calculator
CalculatorTest.kt [3k 352]

mockito
TestingMockito.kt [3k 225]

resources

07
BookService.kt [414]
json-example.txt [319]
Kotlin-json-xml-retrofit-11+.pdf [118k 778]
Kotlin-lambda-3-func-10.pdf [188k 384]
Kotlin-testing-11.pdf [169k 132]
Wrox - Meier, Lake - Professional Android [2018].pdf [19m 675k 628]
xml-example.txt [608]

Lesson6
build.gradle [989]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main

booksevice
BookService.class [508]
LendBookManager.class [1k 476]

calculator
Calculator.class [1k 680]
CalculatorKt.class [896]

functions
Counter.class [1k 7]
FunctionsKt$formatString$1.class [1k 528]
FunctionsKt$isEven$1.class [1k 178]
FunctionsKt$isOdd$1.class [1k 177]
FunctionsKt$main$1.class [1k 581]
FunctionsKt.class [4k 183]
LazyClass$initial$2.class [1k 185]
LazyClass.class [2k 508]

json
Book.class [3k 408]
BookOwner.class [3k 326]
JsonProcessorKt.class [2k 72]

mail
Client.class [857]
Mailer.class [575]
MailKt.class [1k 230]
PersonalInfo.class [852]

META-INF
Lesson6.kotlin_module [134]

mockito
MyClass.class [649]

xml
Book.class [2k 939]
Catalog.class [1k 268]
XMLProcessorKt.class [2k 216]

test

bookservice
TestBookService$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [880]
TestBookService$testCheckoutException$thrown$1.class [1k 189]
TestBookService.class [2k 936]

calculator
CalculatorTest$Initializer.class [1k 270]
CalculatorTest.class [2k 279]

main
TestMail.class [1k 738]

META-INF
Lesson6.kotlin_module [16]

mockito
TestingMockito$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [875]
TestingMockito$MockitoHelper.class [1k 192]
TestingMockito$testThrows$thrown$1.class [1k 154]
TestingMockito.class [7k 228]

kotlin

compileKotlin
build-history.bin [48]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [3k 290]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [1k 133]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [1k 891]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [64]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [6k 82]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [727]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [4]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [115]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [853]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [2k 769]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

compileTestKotlin
build-history.bin [31]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [1k 547]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [531]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [861]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [1k 375]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [553]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [73]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [368]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [8k 192]
lookups.tab.keystream [8k 192]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [4k 807]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

reports

tests

test
index.html [2k 483]

classes
calculator.CalculatorTest.html [2k 542]

css
base-style.css [2k 645]
style.css [1k 135]

js
report.js [5k 252]

packages
calculator.html [2k 102]

test-results

test
TEST-calculator.CalculatorTest.xml [636]

binary
output.bin [181]
output.bin.idx [102]
results.bin [132]

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

bookservice
BookService.kt [1k 78]

calculator
Calculator.kt [456]

functions
Functions.kt [1k 607]

json
Book.kt [133]
BookOwner.kt [110]
JsonProcessor.kt [877]

mail
Mail.kt [700]

mockito
MyClass.kt [142]

xml
Catalog.kt [1k 308]
XMLProcessor.kt [1k 528]

resources

test

java

kotlin

bookservice
TestBookService.kt [1k 349]

calculator
CalculatorTest.kt [3k 719]

main
TestMail.kt [1k 70]

mockito
TestingMockito.kt [3k 390]

resources

08
DicResult.kt [3k 253]
Kotlin-collections-generics.pdf [108k 534]
Kotlin-json-xml-retrofit-11+.pdf [121k 435]
Kotlin-lambda-3-func-10.pdf [188k 384]
Kotlin-testing-11.pdf [169k 132]
yandex-dictionary.txt [83]

Lesson6
build.gradle [1k 41]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main

booksevice
BookService.class [508]
LendBookManager.class [1k 476]

calculator
Calculator.class [1k 680]
CalculatorKt.class [896]

functions
Counter.class [1k 7]
FunctionsKt$formatString$1.class [1k 528]
FunctionsKt$isEven$1.class [1k 178]
FunctionsKt$isOdd$1.class [1k 177]
FunctionsKt$main$1.class [1k 581]
FunctionsKt.class [4k 183]
LazyClass$initial$2.class [1k 185]
LazyClass.class [2k 508]

json
Book.class [3k 408]
BookOwner.class [3k 326]
JsonProcessorKt.class [2k 72]

mail
Client.class [857]
Mailer.class [575]
MailKt.class [1k 230]
PersonalInfo.class [852]

META-INF
Lesson6.kotlin_module [177]

mockito
MyClass.class [649]

retrofit

dictionary
Def.class [2k 452]
DicResult.class [1k 819]
DictionaryRunnerKt.class [3k 55]
Ex.class [1k 773]
ExTr.class [1k 96]
Mean.class [1k 98]
Syn.class [2k 90]
Tr.class [3k 873]
YandexDictionaryService.class [1k 141]
YandexJsonDictionaryService.class [1k 190]

json
Def.class [4k 51]
Head.class [498]
JsonDictionaryResult.class [3k 336]
Tr.class [2k 539]

xml
Book.class [2k 939]
Catalog.class [1k 287]
XMLProcessorKt.class [3k 288]

test
TestHamcrest.class [835]

bookservice
TestBookService$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [880]
TestBookService$testCheckoutException$thrown$1.class [1k 189]
TestBookService.class [2k 936]

calculator
CalculatorTest$Initializer.class [1k 270]
CalculatorTest.class [2k 279]

main
TestMail.class [1k 738]

META-INF
Lesson6.kotlin_module [16]

mockito
TestingMockito$inlined$sam$i$org_junit_jupiter_api_function_Executable$0.class [875]
TestingMockito$MockitoHelper.class [1k 192]
TestingMockito$testThrows$thrown$1.class [1k 154]
TestingMockito.class [7k 228]

kotlin

compileKotlin
build-history.bin [1k 196]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [5k 598]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [2k 171]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [3k 211]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [73]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [11k 845]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [1k 375]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [4]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [169]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [1k 720]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [8k 192]
lookups.tab.keystream [8k 192]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [6k 515]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

compileTestKotlin
build-history.bin [48]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [1k 899]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [671]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [1k 1]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [1k 610]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [613]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [85]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [508]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [8k 192]
lookups.tab.keystream [8k 192]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [5k 371]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

reports

tests

test
index.html [2k 467]

classes
TestHamcrest.html [2k 30]

css
base-style.css [2k 645]
style.css [1k 135]

js
report.js [5k 252]

packages
default-package.html [2k 86]

test-results

test
TEST-TestHamcrest.xml [379]

binary
output.bin [0]
output.bin.idx [1]
results.bin [80]

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

bookservice
BookService.kt [1k 78]

calculator
Calculator.kt [456]

functions
Functions.kt [1k 607]

json
Book.kt [133]
BookOwner.kt [110]
JsonProcessor.kt [877]

mail
Mail.kt [700]

mockito
MyClass.kt [142]

retrofit

dictionary
DicResult.kt [3k 253]
DictionaryRunner.kt [752]
YandexDictionaryService.kt [635]
YandexJsonDictionaryService.kt [709]

json
Def.kt [142]
Head.kt [50]
JsonDictionaryResult.kt [116]
Tr.kt [97]

xml
Catalog.kt [1k 308]
XMLProcessor.kt [1k 517]

resources

test

java

kotlin
TestHamcrest.kt [239]

bookservice
TestBookService.kt [1k 349]

calculator
CalculatorTest.kt [3k 719]

main
TestMail.kt [1k 70]

mockito
TestingMockito.kt [3k 390]

resources

Lesson8
build.gradle [463]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main

collections
Bitmap.class [483]
Box.class [1k 247]
CollectionsKt.class [3k 547]
Processor.class [758]
Result.class [1k 270]

META-INF
Lesson8.kotlin_module [46]

kotlin

compileKotlin
build-history.bin [418]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [2k 658]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [1k 426]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
inline-functions.tab [4k 96]
inline-functions.tab.keystream [4k 96]
inline-functions.tab.keystream.len [8]
inline-functions.tab.len [8]
inline-functions.tab.values.at [181]
inline-functions.tab_i [32k 768]
inline-functions.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [1k 912]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [67]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [4k 545]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [621]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [85]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [535]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [8k 101]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

collections
Collections.kt [1k 762]

resources

test

java

kotlin

resources

09
android1-1.pdf [881k 58]
Kotlin-lambda-3-func-10.pdf [246k 541]
Wrox - Meier, Lake - Professional Android [2018].pdf [19m 675k 628]

Lesson9
build.gradle [579]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [30]

build

classes

kotlin

main

META-INF
Lesson9.kotlin_module [89]

scope
FlickrService.class [1k 24]
MyApplyKt$createMap$1.class [1k 872]
MyApplyKt.class [1k 980]
Photo.class [5k 295]
Photos.class [4k 160]
Result.class [2k 594]
ScopeKt.class [3k 882]
Window.class [1k 201]

swing
ExampleKt$main$1$1$onResponse$$inlined$let$lambda$1.class [1k 234]
ExampleKt$main$1$1.class [3k 207]
ExampleKt$main$1.class [1k 510]
ExampleKt.class [3k 355]

trycatch
TryCatchKt.class [1k 744]

kotlin

compileKotlin
build-history.bin [139]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [3k 154]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [404]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [1k 684]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [70]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [4k 661]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [726]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [4]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [115]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [834]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [11k 513]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

scope
FlickrService.kt [549]
MyApply.kt [336]
Photo.kt [247]
Photos.kt [157]
Result.kt [85]
Scope.kt [1k 66]

swing
Example.kt [2k 598]

trycatch
TryCatch.kt [494]

resources

test

java

kotlin

resources

10
PhotoPresenterContract.kt [223]
PhotoViewContract.kt [111]
PresenterTest.kt [1k 774]
RepositoryContract.kt [92]
yandex-translate.key.txt [84]

Taxi
build.gradle [463]
gradle.properties [26]
gradlew [5k 305]
gradlew.bat [2k 269]
settings.gradle [27]

build

classes

kotlin

main

META-INF
Taxi.kotlin_module [44]

taxipark
Driver.class [2k 30]
Passenger.class [2k 48]
TaxiPark.class [3k 868]
TaxiParkTaskKt.class [2k 765]
Trip.class [4k 795]

test

META-INF
Taxi.kotlin_module [48]

taxipark
TaxiParkTestUtilKt.class [9k 383]
TestTask1FakeDrivers.class [9k 512]
TestTask2FaithfulPassengers.class [11k 37]
TestTask3FrequentPassengers.class [12k 104]
TestTask4SmartPassengers.class [12k 834]
TestTask5TheMostFrequentTripDurationPeriod.class [15k 325]

kotlin

compileKotlin
build-history.bin [31]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [644]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [337]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [413]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [52]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [2k 803]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [174]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [61]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [197]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [4k 96]
lookups.tab.keystream [4k 96]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [573]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

compileTestKotlin
build-history.bin [31]
last-build.bin [81]

caches-jvm

inputs
source-to-output.tab [4k 96]
source-to-output.tab.keystream [4k 96]
source-to-output.tab.keystream.len [8]
source-to-output.tab.len [8]
source-to-output.tab.values.at [1k 192]
source-to-output.tab_i [32k 768]
source-to-output.tab_i.len [8]

jvm

kotlin
class-fq-name-to-source.tab [4k 96]
class-fq-name-to-source.tab.keystream [4k 96]
class-fq-name-to-source.tab.keystream.len [8]
class-fq-name-to-source.tab.len [8]
class-fq-name-to-source.tab.values.at [509]
class-fq-name-to-source.tab_i [32k 768]
class-fq-name-to-source.tab_i.len [8]
internal-name-to-source.tab [4k 96]
internal-name-to-source.tab.keystream [4k 96]
internal-name-to-source.tab.keystream.len [8]
internal-name-to-source.tab.len [8]
internal-name-to-source.tab.values.at [589]
internal-name-to-source.tab_i [32k 768]
internal-name-to-source.tab_i.len [8]
package-parts.tab [4k 96]
package-parts.tab.keystream [4k 96]
package-parts.tab.keystream.len [8]
package-parts.tab.len [8]
package-parts.tab.values.at [52]
package-parts.tab_i [32k 768]
package-parts.tab_i.len [8]
proto.tab [4k 96]
proto.tab.keystream [4k 96]
proto.tab.keystream.len [8]
proto.tab.len [8]
proto.tab.values.at [3k 161]
proto.tab_i [32k 768]
proto.tab_i.len [8]
source-to-classes.tab [4k 96]
source-to-classes.tab.keystream [4k 96]
source-to-classes.tab.keystream.len [8]
source-to-classes.tab.len [8]
source-to-classes.tab.values.at [369]
source-to-classes.tab_i [32k 768]
source-to-classes.tab_i.len [8]

lookups
counters.tab [3]
file-to-id.tab [4k 96]
file-to-id.tab.keystream [4k 96]
file-to-id.tab.keystream.len [8]
file-to-id.tab.len [8]
file-to-id.tab.values.at [85]
file-to-id.tab_i [32k 768]
file-to-id.tab_i.len [8]
id-to-file.tab [4k 96]
id-to-file.tab.keystream [4k 96]
id-to-file.tab.keystream.len [8]
id-to-file.tab.len [8]
id-to-file.tab.values.at [589]
id-to-file.tab_i [32k 768]
id-to-file.tab_i.len [8]
lookups.tab [8k 192]
lookups.tab.keystream [8k 192]
lookups.tab.keystream.len [8]
lookups.tab.len [8]
lookups.tab.values.at [5k 633]
lookups.tab_i [32k 768]
lookups.tab_i.len [8]

sessions

reports

tests

test
index.html [3k 604]

classes
taxipark.TestTask1FakeDrivers.html [37k 718]

css
base-style.css [2k 645]
style.css [1k 135]

js
report.js [5k 252]

packages
taxipark.html [3k 258]

test-results

test
TEST-taxipark.TestTask1FakeDrivers.xml [41k 960]

binary
output.bin [0]
output.bin.idx [1]
results.bin [40k 598]

gradle

wrapper
gradle-wrapper.jar [55k 190]
gradle-wrapper.properties [202]

src

main

java

kotlin

taxipark
TaxiPark.kt [669]
TaxiParkTask.kt [1k 253]

resources

test

java

kotlin

taxipark
TaxiParkTestUtil.kt [1k 514]
TestTask1FakeDrivers.kt [8k 846]
TestTask2FaithfulPassengers.kt [10k 510]
TestTask3FrequentPassengers.kt [12k 224]
TestTask4SmartPassengers.kt [14k 93]
TestTask5TheMostFrequentTripDurationPeriod.kt [18k 213]

resources
Объем: 1.72Гб.



Продолжение здесь

Отзывы

(Читать все отзывы ->)
Минимальная длина отзыва - 50 знаков.
Или
Кликните на изображение чтобы обновить код, если он неразборчив

С этим курсом также покупают

Больше курсов из категории «Курсы по программированию»