Pull to refresh
9
0
Юрий Петров @mrDevGo

Руководитель отдела разработки во Friflex

Send message

Это значит вам сильно повезло?. Но выражать свои мысли можно более конструктивно.

Да, раньше, не было альтернатив. Из-за этого много проектов делали на auto_route. И что бы перейти на другой тип навигации в проекте, для компании это будет стоить дорого. Вот и тянут дальше эту лямку). Сейчас же есть и навигатор 2 или go_router. Лучше в новых проектах рассмотреть их использование. Ну, или если проект не совсем сложный, попробовать переехать на Navigator.

И не забудьте про скалирование в самих папках. x1, x2, x3

В данном примере, использование концепции bloc to bloc, просто по моему мнению очень хорошо подошла для примера паттерна.

Согласен, паттерн не однозначный, и я не спорю, что RxDart хорошая штука. Но смысл в данной статье пояснить простым языком и на простом примере паттерн EventBus. Использовать его или нет, это уже ваше решение.

Я не готов рассуждать про сравнение пакетов, так как это страшно холиварная тема. В статье рассказывается именно про паттерн.

Да, можно и так, так же есть и много других способов. Тут же идёт речь именно про паттерн.

Привет, шейдеры выполняются на графическом процессоре. В этом вся идея.

Спасибо огромное за статью, очень интересно и все понятно. Признаюсь, я раньше немного не так понимал как работает FlutterEngine.

Отличная статья, спасибо за труд.

Я из 2020 года, Kotlin зашёл и ещё как зашёл. Теперь он официальный язык для Android. И теперь все пишут на Kotlin.

Я рад, что вы заинтересовались моей первой публикацией на хабре.
Но хотел бы вам, возразить. Во-первых, я ни коим образом не хвалюсь, так как алгоритм придумал не я, я его просто описал. Если вам не интересно, можете не обращать внимания и пройти мимо. Я думаю, что кому-то это пригодится.
Во-вторых, специально для вас я добавил в код несколько строчек и он уже легко считает возведение в степень. Так как возведение в степень имеет более высокий приоритет чем +-*/.
функция getPostFixEx
    // Добавляем новое условие
         it == "^" -> {
               push(it)
         }


функция calcPostFix
item == "^" -> {
    stack[stack.lastIndex - 1] = (stack[stack.lastIndex - 1].toDouble()
                                             .pow(stack.last())).toInt()
    stack.removeAt(stack.lastIndex)
}

Так как возведение в степень имеет более высокий приоритет чем +-*/. Для возведения в степень необходимо добавить пару строк в код.
функция getPostFixEx
    // Добавляем новое условие
         it == "^" -> {
               push(it)
         }


функция calcPostFix
item == "^" -> {
    stack[stack.lastIndex - 1] = (stack[stack.lastIndex - 1].toDouble()
                                             .pow(stack.last())).toInt()
    stack.removeAt(stack.lastIndex)
}

Я вас не понял, причем здесь другие инструменты? Я просто описал алгоритм преобразования из инфиксной записи в постфиксную. А по коду на Kotlin, если использовать все возможности Kotlin, то код был бы меньше, но понять его было бы труднее.
Что бы понять как он работает.
Это просто пример на Kotlin не более. Написан специально как можно проще, что бы новичку было понятно как это работает. Смысл статьи в алгоритме, который можно реализовать на любом языке.

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Works in
Registered
Activity

Specialization

Backend Developer, Mobile Application Developer
Lead
Docker
Nginx
Dart
Flutter
Kotlin
Android development
iOS development
Client-server applications