Pull to refresh
21
0
Алексей @java73

Kotlin/Python fun hobby

Send message

Никто не заставляет идти на поводу одисейщиков. Я как летал, так и летаю по настроению.

О, да!!! Спасибо. Наконец-то. Я бы книжку купил на эту тему как про Doom)

По мне, так дополнительный движок Ashley к LibGDX в разы упрощает понимание игростроя в связке с ООП и дает правильную концепцию деления игровых сущностей, игровых систем и рендеринга. Не знаю насчет Java, но с Kotlin оно спаривается очень хорошо, плюс есть свои ktx на все библиотеки, еще более упрощающие синтаксис.

Зачем делать на Kotlin так?:
class Game {
    private lateinit var store: Store
    private lateinit var question: Question

    fun init(context: Context) {
        this.store = StoreFactory.getStore(context)

        question = store.getQuestionById(1)
    }


Когда идиоматичнее так:
class Game(context: Context) {
    private val store = StoreFactory.getStore(context)
    private var question = store.getQuestionById(1)


А это вы просто пишете с помощью Kotlin на другом каком-то языке, кажется, паскале:

fun getAnswers(): List<Answer> {
        val list: MutableList<Answer> = ArrayList(this.answers)
        val shouldAdd: Int = 4 - list.size

        for (i in 1..shouldAdd) {
            list.add(Answer("", -1))
        }

        return list
    }


Я бы предложил так (хотя сама идея добавить пустышками до нужного кол-ва так себе, явно неразумное ограничение, с которым нужно бороться в другом месте):

fun getAnswers(): List<Answer> = listOf(answers, List(4 - answers.size) { Answer("", -1) }).flatten()


Rx и Mvp уже пару лет вытесняются Kotlin coroutines и Mvvm/Mvi. Активити фрагментами или вообще Compose. Для json есть библиотеки Kotlin serialization, для андроида — gson, moshi и т.д.
Сделал по идиоме Kotlin для класса Settings...:
companion object {
        const val HOUR_TO_MILLIS = 60 * 60 * 1000   // hours to milliseconds
        const val TRANSLATE_SWITCH = "translate_to_ru"
        const val REFRESH_INTERVAL_BAR = "refresh_interval"
        const val IS_PREFERENCES_CHANGED = "preferences_changed"
    }

Оставляю, чтоб было что улучшить при следующем взгляде на код) Я потом вынес в константу ключ, по которому взаимодействуют фрагменты, а строки для различения классов, так как используются только в одном месте, оставил бы.

соглашусь, кульбиты вверх ногами в rxJava и корутины очень наглядный пример.
Странно, вроде одни и те же люди так по-разному проголосовали здесь и в соседней статье свежей, где C# сравняли (не сравнили, а именно сравняли) с Kotlin. Там пока навалились шарписты на новые проекты))

Спасибо за статью. Вот, что упростил (если использовать livedata или flow): весь inner class со всеми его методами и проверками заменяется на одну строку на каждый валидатор, привязанный к инпуту:


viewModel.eqCount.observe(viewLifecycleOwner) { validateEqCount(); validateXCount() }
viewModel.xCount.observe(viewLifecycleOwner) { validateXCount() }

ну оно отделяет часы от минут визуально. Удобно и понятно сразу.
Разумеется. Но с ним я лично только начал недавно знакомиться (там вообще документации на две тысячи страниц). И тут цель материала вообще изложить основные принципы, на которых строится разработка ORM.
хаба Freepascal или Lazarus нет, к сожалению.
мне кажется, не с проста никто до сих пор этого не сделал…
Есть онлайн OCR, использующий tesseract, там очень плохо с распознаванием контрастно-половинчатых цифр…
Судя по тому, что написано про Go, это язык, разработанный гуглом, преимущественно для системного программирования. И там не то, чтобы хорошо с ООП, там совсем другая парадигма. А я только привык к этой)
поэтому я и изучаю усиленно python. Но пока, когда надо сделать что-то быстро и работоспособное, пусть в качестве прототипа, мне удобнее это делать в паскале. Кстати, на нем тоже можно и web-приложения делать, но это, конечно, не основное паскалевское предназначение, даже не как языка, а как системы.
Воот, до такого и допилю со временем))
Как раз описанный в начале случай. База данных юридических лиц. В егрюл размер доли может храниться в виде денежной суммы, десятичной дроби или обыкновенной. 10000 рублей ровно на троих не разделить, поэтому по 1/3 каждому. Сложение всех долей должно давать 1 в качестве проверки.
Как всторостепенное приложение — написал калькулятор для того, чтоб ребенок мог проверять верно ли он решает школьные задачи.
Просто префикс для параметров.
Ну, видимо юристов тут не любят — карму снимают.
1

Information

Rating
Does not participate
Location
Сенгилей, Ульяновская обл., Россия
Date of birth
Registered
Activity