LibCode»Блог

LibCode — это библиотека кода и знаний для разработчиков, где каждый найдет полезные ресурсы, уроки и инструменты для создания и совершенствования своих проектов.

SQL | PHP | Kotlin | Python | C++ | JavaScript

Kotlin: Строку в JSON

Для работы с JSON в Kotlin используется библиотека kotlinx.serialization. Вот как это работает:

Настройка проекта


Добавьте в "build.gradle" следующие зависимости:
plugins {
    kotlin("jvm") version "1.8.0"
    kotlin("plugin.serialization") version "1.8.0"
}

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0")
}

Создание модели данных


Создайте data-класс с аннотацией @Serializable:
@Serializable
data class User(
    val name: String,
    val age: Int,
    val email: String
)

Преобразование объекта в JSON


Используйте метод encodeToString():
fun main() {
    val user = User("Иван", 25, "ivan@example.com")
    
    // Преобразование в JSON строку
    val jsonString = Json.encodeToString(user)
    println(jsonString)  // {"name":"Иван","age":25,"email":"ivan@example.com"}
}

Дополнительные возможности



Работа с коллекциями
val users = listOf(
    User("Иван", 25, "ivan@example.com"),
   
...

От куда берётся надпись "Hello Android"?

Надпись “Hello Android” может появиться в вашем приложении несколькими путями:

Шаблон проекта
При создании нового проекта в Android Studio по умолчанию может генерироваться макет с этим текстом, если выбран определённый шаблон.

Строковые ресурсы
Текст может быть прописан в файле "strings.xml" в ресурсах:
<string name="hello_android">Hello Android</string>

Макет активности
В файле макета (например, activity_main.xml) может быть напрямую прописан TextView:
<TextView
    android:text="@string/hello_android"
    ... />

Код активности
Текст может устанавливаться программно в MainActivity:
textView.text = "Hello Android"

Кэширование проекта
Иногда старые версии ресурсов могут оставаться в кэше, из-за чего отображается не тот текст, который вы ожидаете.

Чтобы избавиться от нежелательного текста:
  • Проверьте файл "strings.xml" на наличие строки “Hello Android”.
  • Посмотрите макет в "res/layout".
  • Проверьте код активности на наличие прямого задания текста.
  • Очистите проек
...

Kotlin: Условные операторы и циклы

В этом уроке научимся управлять ходом программы: проверять условия и повторять действия с помощью циклов.

Условный оператор if‑else


Конструкция if‑else позволяет выполнять разные блоки кода в зависимости от условия.

Базовый синтаксис:
if (условие) {
    // код, если условие истинно
} else {
    // код, если условие ложно
}

Пример в "MainActivity.kt":
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val textView = findViewById<TextView>(R.id.textView)
    val age = 18

    if (age >= 18) {
        textView.text = "Вы совершеннолетний"
    } else {
        textView.text = "Вам меньше 18 лет"
    }
}

Важные нюансы:
  • Условие должно возвращать Boolean (true/false).
  • Ветку else можно опустить, если она не нужна.
  • В Kotlin if может возвращать значение (как выражение):
    val status = if (age >= 18) "Взрослый" else "Ребёнок"

Оператор when (аналог switch)


when —...

Структура папок Android-приложения: полное руководство

Структура проекта — это фундамент любого Android-приложения. Правильная организация файлов помогает:
  • Упростить разработку
  • Облегчить поддержку кода
  • Улучшить командную работу
  • Оптимизировать сборку

Базовая структура проекта


app/
  src/
    main/
      java/ или kotlin/
      res/
      assets/
      AndroidManifest.xml

Основные папки и их назначение


Исходный код
java или kotlin — содержит основной код приложения:
  • Activity
  • Фрагменты
  • Утилиты
  • Модели данных

Ресурсы (res/)
layout — XML-макеты пользовательского интерфейса:
  • Макет активности
  • Макет фрагмента
  • Макет списка

values — файлы с ресурсами:
  • strings.xml — строки
  • colors.xml — цвета
  • dimens.xml — размеры
  • styles.xml — стили

drawable — графические ресурсы:
  • Изображения
  • Векторная графика
  • Селекторы

mipmap — иконки приложения для разных.
anim — файлы анимации.
transition — файлы переходов между экранами.

Дополнительные папки
assets — статические файлы, не обрабатываемые системой сборки.
jni — нативный код.
proguard-rules.pro — правила обфускации.

Орг

...

Kotlin: Переменные, типы данных и вывод на экран

В этом уроке разберём основы работы с данными: как хранить информацию, какие типы существуют и как показывать текст прямо в интерфейсе приложения.

Переменные: "val" vs "var"


В Kotlin две ключевые конструкции для объявления переменных:
  • val — неизменяемая переменная (аналог константы). После присвоения значения его нельзя поменять.
  • var — изменяемая переменная. Значение можно перезаписывать.

Пример в коде (MainActivity.kt):
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val greeting = "Привет!"          // val — нельзя изменить
    var counter = 0               // var — можно менять
    counter = counter + 1         // работает
    // greeting = "Пока!"          // ошибка: нельзя перезаписать val
}

Когда что использовать
  • val — для данных, которые не должны меняться (названия, настройки).
  • var — для счётчиков, динамических значений.

Основные типы данных


  • String: (Пример: "Текст") С
...