У проекта Anko, призванного улучшить Android-разработку на Kotlin, более 15 000 звёзд на GitHub, то есть это одна из самых известных Kotlin-библиотек. Однако теперь было официально объявлено о прекращении работы над ней.


Компания JetBrains представила эту библиотеку в 2015-м, когда Kotlin ещё не был официально поддерживаемым языком разработки для Android, но отдельные мобильные разработчики уже им заинтересовались. Исходным назначением Anko была удобная работа над UI прямо в Kotlin-коде (а не в отдельных XML-файлах). Позже, помимо этого, активно обратились и к другим Android-задачам: например, к работе с SQLite.


Библиотека привлекла внимание разработчиков и попала во многие приложения, в какой-то степени поспособствовав успеху Kotlin на Android. Однако, как признают в прощальном тексте её создатели, полностью воплотить идеи не удавалось из-за ограничений платформы и дефицита ресурсов. А тем временем в Android-разработке многое изменилось: для работы с SQLite компания Google представила новый инструмент Room, для работы с UI — Jetpack Compose, для различных других задач — Android KTX.


В результате сложилась ситуация, когда Kotlin стал приоритетным языком Android-разработки, но поспособствовавшая этому библиотека не разделила с ним успех, а становилась всё менее актуальной. Её разработка соответствующим образом затухала, и с февраля 2019-го в проекте не было ни одного коммита. Поскольку Anko по-прежнему используется, сообщество задавало вопросы о будущем проекта. И теперь получило ответ: прекращение работы над проектом, де-факто уже произошедшее, было закреплено официальным сообщением.


Если по такому поводу хочется поностальгировать — можно посмотреть доклад с Mobius 2016 года от Яна Жуланова (основного разработчика Anko), частично посвящённый этой библиотеке. На момент этого выступления и Kotlin, и Anko в мире Android были многообещающими новичками.


Комментарии (21)


  1. samodum
    02.12.2019 12:17

    Не прошла проверку временем. Оно и к лучшему.
    Совершенно непонятно кому пришло в голову писать вёрстку в коде, да ещё сделать это модой


    1. Neikist
      02.12.2019 12:38
      +3

      Да в идее то ничего плохого. Мне тот же флаттер приятнее xml в андроид, тем более это производительнее. Просто реализовано было все как то… не цепляюще.
      Впрочем это не самая большая часть anko была насколько помню.


    1. phillennium Автор
      02.12.2019 12:50
      +5

      Я лично не фанат вёрстки в коде, но вообще-то видно, что она многим нравится: Google в Jetpack Compose тоже обещает светлое будущее без XML, и прямо сейчас в Android-чатах вижу стоны «анко придётся выпиливать, но возвращаться к XML страшно не хочется, скорее бы Compose доделали».

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


      1. prs123
        02.12.2019 12:57
        -1

        Интересно, а как тогда передать UI-дизайнеру делать верстку, если не в xml?
        Он же не программист и в голове крутить то, как отображаются элементы, описанные в коде, довольно сложно


        Поэтому, мы как раз плотно используем xml. Дизайнер копается в XML и его редакторе, разработчик-программист — пишет код, посматривая на xml для изучения структуры и Id элементов


        1. zagayevskiy
          02.12.2019 13:30
          +5

          Дизайнер рисует макеты, разработчик их воплощает.


          1. prs123
            02.12.2019 13:51
            -5

            Ну рисовать макеты и я могу. А вот воплотить это дело в верстке, со всеми отступами, тенями и прочим — не-не. Более того, при вёрстке с помощью xml можно моментально посмотреть, не ожидая сборки приложения


            1. STFBEE
              02.12.2019 14:07

              С предпросмотром верстки на Anko проблем нет: medium.com/mindorks/how-to-preview-dsl-layouts-made-using-anko-layouts-f885c6bf67b3


              1. prs123
                02.12.2019 14:14

                И все равно нужно собирать проект каждый раз. Из Вашей ссылки:
                "Now this might not work in the first go as we need to rebuild the project for the layout to render properly."
                И, как понимаю, здесь можно только посмотреть. А перемещать и менять вложенность элементов — нельзя


              1. prs123
                02.12.2019 14:18

                Достаточно html/css и xml. Причем правила верстки у них несколько схожи.
                Если не знать то, каким образом это вообще верстаться будет, то макет вообще никак не сможет быть воплощён в реальность


            1. zagayevskiy
              02.12.2019 14:15
              +3

              Ага, а потом Android Studio ломается на больших проектах и бесконечное «Waiting for build to finish...» на просмотре вёрстки.
              Андроид-разработчик обязан уметь наверстать то, что ему нарисует дизайнер. Дизайнер должен пользоваться своими привычными инструментами и лезть в xml ему вообще незачем. Достаточно отдавать макет в Zeplin/Figma.


              1. prs123
                02.12.2019 14:21

                Ничего не ломается. У нас конечно, не гигантский-гигантский проект, но достаточно большой и имеющий несколько модулей. Да, конечно, иногда после запуска студия может показать это уведомление на секунд 10, но это пока файлы в основном индексируются. И да, машина отнюдь не с 32 Гб памяти, а 8


                1. zagayevskiy
                  02.12.2019 21:53

                  У вас не ломается, а у нас ломается. В целом — ломается.


          1. SteelJames
            02.12.2019 20:49

            Сразу видно, что вам не доставался проект, написанный на Anko другими программистами.
            Одно дело писать самому, когда понимаешь как всё должно выглядеть и работать. И совсем другое дело — разбираться в чужой вёрстке, написанной кодом. В XML-раз и посмотрел вёрстку, цвета, шрифты, размеры, положение элементов относительно друг друга. А с Anko приходится самому рендерить в голове. Производительность падает до нуля.


            1. zagayevskiy
              02.12.2019 21:54

              Сразу видно, что вы не писали проектов, на которых студия тупить начинает. И XML нужно уметь точно так же в голове держать и рендерить.


              1. SteelJames
                03.12.2019 12:32

                Если студия начинает тупить от проекта, то тут большие вопросы к тому, как и кем был написан проект. Наверняка из-за обилия сторонних библиотек, монструозных зависимостей, сложной вёрстки, тяжёлых ресурсов… И вот теперь вопрос — а правильно ли всё это?
                Я стараюсь избегать этого, а вы? Поэтому да, я не писал таких проектов и не хочу такие писать и уж тем более поддерживать.


                1. zagayevskiy
                  03.12.2019 14:40

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


                  1. SteelJames
                    03.12.2019 15:57
                    -1

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


                  1. samodum
                    04.12.2019 00:35
                    +2

                    Это какой-то пи**ец в отрасли, если существуют команды, которые занимаются настройкой билдов и архитектуры. Вы явно свернули куда-то не туда


  1. anonymous
    00.00.0000 00:00


  1. anonymous
    00.00.0000 00:00


  1. habrahabrovec
    02.09.2020 16:10

    Туда ей и дорога