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

— Для начала расскажите немного о себе. Чем вы занимаетесь сейчас?

— Разработкой под Android в польской компании Droids on Roids, создаём софт для клиентов по всему миру. Я работаю в этой компании уже четыре года.

Помимо этого, участвую в жизни сообщества. Например, я со-организатор TOAST — одной из крупнейших встреч разработчиков под Android в Польше, проходящей каждые два месяца. А также со-организатор GDG Wroclaw и Women Techmakers.

— К сообществам ещё вернёмся, а пока не могли бы вы рассказать, как началась ваша карьера?

— Всё началось очень давно, я написала свою первую программу, когда мне было 15 лет. Недавно я её снова нашла, и она ужасна, но именно с неё всё началось. Тогда я не думала заниматься этим всю жизнь. В то время в IT женщины были редкостью, поэтому мне казалось, что это не для меня. Я вернулась к программированию во время учёбы. Моя специальность — биомедицинская инженерия, это сочетание медицины и инженерного дела, так что с IT это никак не связано. Примерно тогда я прошла курс по Android, и тогда же решила, что могу заниматься этим профессионально. Так вот и началось.

— Из проектов, над которыми работали, какой-либо стал для вас особенно важным?

— Самым важным для меня был релиз моего первого коммерческого проекта. Тогда стало ясно, что я могу делать то, что мне нравится (программировать), и мне за это будут платить деньги. Что я могу поделиться сделанным с другими людьми, они могут скачать моё приложение и убедиться в том, что это классная штука. Для меня тогда это было важно.

Проектом, над которым я работаю сейчас, тоже горжусь, он называется Loop — это рамка, такое устройство, на котором можно смотреть фото, видео и общаться. Её можно поставить на стол или подарить своему дедушке, который не очень хорошо дружит с компьютерами, чтобы показывать ему фотографии. Мне нравится этот проект, потому что я вижу, что в такой вещи есть потребность.

— А почему изначально выбрали именно Android, а не что-то другое?

— Специально не выбирала. Познакомилась я с ним на курсах, и это было моё первое знакомство с мобильной платформой. Android очень популярен — много ресурсов, есть большое сообщество, на Stack Overflow много вопросов и ответов. Поэтому начинать знакомиться с мобильными платформами было лучше именно с Android.

— Теперь вопрос с подвохом. Каким смартфоном вы сейчас пользуетесь?

— Да, действительно с подвохом. Вынуждена признать, что использую айфон. Когда рассказываешь кому-то про Android, и при этом тебя видят с iPhone, это иногда создаёт трудности. Но здесь попросту работает интеграция с другим железом, которым я пользуюсь: моими MacBook и Apple Watch. Ради этого у меня iPhone.

— Но существуют же ChromeOS и Android Wear… Ладно, шутка. Что касается Android — нравится ли вам, как разработчику, то, как Android изменился на протяжении своего существования?

— В целом, мне нравится, что они добавляют интеграцию для широко используемых сценариев. Вся библиотека Architecture Components была создана для операций, которые разработчики выполняют по многу раз: скажем, БД-библиотека Room. Хорошо, что они стараются упростить жизнь разработчикам. Это прекрасный подход.

— Как вы относитесь к тому, что Android стал более жёстко контролировать ресурсы, вроде режима Doze?

— К этому я также отношусь положительно. Да, разработчикам проще, когда не нужно заниматься вещами вроде фоновых процессов, но пользователям от этого хуже. Поэтому, на мой взгляд, правильно, что разработчиков заставляют делать эти вещи. То же касается и перехода к runtime permissions, когда приложения запрашивают разрешения по мере необходимости, а не все сразу. Как разработчикам нам эти ограничения не нравятся, но для пользователей это к лучшему.

— Но каждый раз, когда нам нужно выполнить что-либо в фоновом треде предсказуемым образом, приходится страдать.

А: Да. Зато — во имя высокой цели.

— Вас интересует Flutter, давайте поговорим о нём. Для начала: а вы пробовали другие кроссплатформенные решения вроде React Native или Xamarin?

— В серьёзных продакшн-приложениях не использовала, только пробовала на очень простых проектах, так что у меня есть только общее представление о том, как эти платформы работают по сравнению с Flutter. Но он от них очень отличается.

— React Native и Xamarin так и не смогли стать мейнстримным решением. Как вы думаете, с чем это связано? Сможет ли Flutter изменить ситуацию?

— Да, они действительно не стали общераспространёнными. Разработчики по-прежнему очень многого боятся. Например, когда они пишут для нескольких платформ, боятся, что многие вещи не будут работать. А Flutter ещё не вышел из стадии release preview, и это создаёт впечатление, что его использовать в продакшне рискованно — но это не так.

Из-за того, что кроссплатформенные решения не заточены под определённую платформу, люди боятся вещей, специфичных для платформы: например, фоновых задач, о которых мы уже говорили, или Bluetooth. Люди могут бояться, что эти вещи будет сложно или даже невозможно реализовать при помощи кроссплатформенных решений, или что результат будет выглядеть не так, как «родное» решение. Или опасаются, что сообщество будет небольшим, и не удастся найти ответ, если возникнет какой-либо вопрос.

И во всех этих аспектах с Flutter проблем нет: у него большое сообщество и он выглядит, как «родной». Так что, хотя у людей есть причины опасаться кроссплатформенности, я думаю, Flutter может поменять отношение к таким решениям.

— При помощи Flutter и ему подобных UI создаётся целиком для всего приложения. Но существуют другие подходы: Kotlin/Native предлагает писать логику приложения кроссплатформенно, а UI для каждой платформы отдельно. Такой подход не может быть предпочтительнее?

— Это замечательный подход для тех приложений, где UI по каким-то причинам очень разный. Но во многих приложениях UI очень похож или даже одинаков на обеих платформах. И здесь, на мой взгляд, у Flutter очень большое преимущество.

— Российское Android-сообщество относится к кроссплатформенным решениям негативно. Когда менеджер предлагает ради экономии переписать всё на React Native, многие разработчики приходят в ярость. Специфично ли такое отношение для России, или вы наблюдали нечто подобное и в Польше?

— Я понимаю, чем вызвана эта неприязнь. Что касается Польши, то я могу судить по количеству людей, делающих доклады по Flutter на конференциях, и по количеству участников тренингов по Flutter, которые мы организовывали — там мы учили пользоваться Flutter и писать на нём приложения. Так вот: это количество постоянно увеличивается, и интерес разработчиков к кроссплатформенным решениям растёт. Люди устают писать всё по два раза, фиксить одни и те же баги дважды, тестировать всё два раза. Я думаю, из-за этого они и ищут новые решения, и этим же объясняется интерес к Flutter. Так что я бы сказала, что сообществу Flutter уже начинает нравиться — но пока что не заказчикам. Это уже другая история.

— Есть ли у вас опыт с Flutter в продакшне?

— Из-за упомянутого отношения заказчиков пока что нет. Я сейчас работаю с Flutter сугубо для себя. Насколько я вижу, клиенты более настороженно относятся к изменениям, чем разработчики — наверное, из-за того, что они рискуют своими деньгами. Для того, чтобы у клиентов появилось доверие к Flutter, может потребоваться какое-то время.

— Давайте теперь проверим, обладаете ли вы даром предвидения. Как вы думаете, в что будет в будущем Android? Flutter предназначен ещё и для Fuchsia — насколько вероятно, по-вашему, что она займёт место Android?

— Сложный вопрос. Начну с будущего Android: мы уже сказали, что направление, в котором они сейчас двигаются, в большей степени учитывает интересы пользователей и в меньшей — разработчиков. В целом, Android начинает в большей степени напоминать iOS, где пользователь весьма ограничен и ничего не может поменять, но эти ограничения работают ему же на пользу и обеспечивают ему больший комфорт.

Что касается Fuchsia, то тут пока что сложно что-либо сказать, поскольку проект пока находится на очень ранней стадии. Но Google, скорее всего, действительно собирается рано или поздно заменить Android на Fuchsia. Я надеюсь, что к тому времени, когда Fuchsia будет закончена, Flutter уже обретет популярность и опасения разработчиков относительно него уйдут.

— Встретимся через несколько лет — будет ясно, правы вы или нет. А пока давайте поговорим об IT-сообществах. Вы уже упомянули некоторые, в которых вы активны — с чего именно началось ваше участие в них?

— На данный момент я участвую в Women Techmakers Wroclaw и GDG (Google Developers Group). GDG — это сообщество людей, которых интересуют технологии Google в целом, не только Android, но и Firebase, Cloud, тот же Flutter. Мы помогаем этим людям найти контакт друг с другом.

Наша группа была создана в мае прошлого во время организации Google I/O Extended — это когда устраивают совместный просмотр Google I/O в разных городах по всему миру. Наше мероприятие мы проводили в кинотеатре, и, по-моему, это было очень удачной идеей: обычно люди смотрят Google I/O на компьютере, а тут можно было посидеть с попкорном перед большим экраном. С января этого года у нас стало значительно больше разной деятельности. Мы организуем менее масштабные встречи, например тренинги — недавно мы проводили тренинг Flutter Study Jam.

— Какая ваша роль в этих сообществах? Что делаете лично вы?

— Я одна из организаторов. Это значит, что я ответственна за организацию мероприятий. Я выясняю, какие потребности у сообщества, есть ли интерес к некоторой теме, а также занимаюсь чисто административными вещами, например, определяю место для встречи и тому подобное. Иногда я выступаю в качестве спикера на тренингах. В основном мои обязанности сводятся к перечисленному.

— Думаю, самый важный вопрос: почему вы этим занимаетесь? Такое занимает много времени, а материальной выгоды вы от этого не получаете. Что именно мотивирует?

— Да, иногда этим тяжело заниматься после работы, если за это тебе никто не платит. Но мне просто нравится делиться знаниями. Эти мероприятия дают замечательную возможность встретиться различным точкам зрения. Например, на наших тренингах по Flutter были люди, которые каждый день пишут на React Native. Мне было интересно сравнить Flutter и React Native, обсудить плюсы и минусы с другими людьми. Так что я не только делюсь знаниями с другими, я учусь сама. Думаю, это здесь самое ценное.

— Теперь сложный и насущный вопрос. Вы состоите в Women Techmakers, а в интернете сейчас много говорится о diversity. Что именно вы об этом думаете?

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

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

— А какой процент женщин на ваших встречах? Например, в GDG Wroclaw? У нас в GDG аналогичный оказался всего 3%.

— У меня сейчас на руках нет точной статистики, но невысокий. Правда, когда мы организовывали встречу на международный женский день, где слово «женщина» было прямо в названии, там 90% присутствующих были женщинами.

— Что в Польше с развитием IT-сообществ — насколько они являются зрелыми, много ли встреч?

— Я думаю, что развитие идёт в положительную сторону. Наша GDG во Вроцлаве проводит мероприятия довольно редко, где-то каждые два месяца. Но существуют более активные GDG: в Кракове встречи проводятся каждый месяц, в Жешуве тоже делает довольно много. Кроме того, есть много встреч, не связанных с GDG — во Вроцлаве на регулярной основе проходит где-то восемь различных собраний для Android-разработчиков.

— Напоследок хочется поспрашивать о вашем увлечении: по вашему твиттеру видно, что вы любите путешествовать. Какое место из всех, которые вы посетили, произвело на вас наибольшее впечатление?

— Наверное, Таиланд. Я там была в прошлом году, и люди там мне очень понравились. Потрясающая еда, великолепные виды. В общем, он меня покорил.

— А можете поделиться негативным опытом?

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

— Вы бывали раньше в России?

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

— Хотите тогда сказать что-нибудь российским читателям или участникам Mobius? Можно от лица всех жителей Польши, если это не слишком большая ответственность!

— Да что вы, какая ответственность, всего-то все жители одной страны! Если кроме шуток, то мне хотелось бы убедить читателей прийти на доклад или хотя бы попробовать Flutter. Но я думаю, это может быть полезно любому, кто когда-либо уставал от разработки под Android — по меньшей мере, есть смысл попробовать. Так что приходите на мой доклад, я расскажу, чем мне так приглянулся Flutter и почему, на мой взгляд, он может понравиться вам.

— Спасибо! Наверное, под определение «когда-либо уставал от разработки под Android» подходит вообще каждый Android-разработчик.

Конференция Mobius, где Паулина подробно расскажет о работе с Flutter, пройдёт в Москве 8-9 декабря. Понять подробнее, чего ждать от мероприятия, можно по этому видео:


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


  1. Neikist
    10.10.2018 13:10
    +2

    Активность вокруг флаттера на хабре в последнее время прям радует)


    1. irbis_al
      10.10.2018 13:24
      +1

      Вот не знаю… я попробовал Flutter…
      Первое впечатление действительно можно писать сложный UI, насыщенный «рюшечками» намного проще чем на java ,kotlin, радует то, что код не разнесен по файлам(xml представление и логика в java файлах) с другой стороны… памяти в смартфоне он забирает в 10 раз больше.(Обычное тоже самое на java 5-10 мб Во flutterr начиная с 60м и притормаживает…
      сам размер apk(Примитивного приложения flutter) тоже внушительный от 25мб… Компилируется и собирается намного дольше java.
      И попробовал скомпилировать и запустить, что-то посложнее из примеров
      startflutter.com/?utm_source=medium&utm_medium=article&utm_campaign=blog
      И тут же «уперся рогом» в зависимости новых и старых версий пакетов,- и так не завелось.(Написал разработчикам пока без ответа)


      1. Neikist
        10.10.2018 13:29

        Ммм… Вопрос, вы случайно не дебаг сборку собирали? Я уже в каментах к одному из таких постов как то писал что дебаг и релиз сборка отличаются. Если не ошибаюсь — в дебаг сборке вообще dartvm используется, а вот релиз в чистый натив под арм собирается.

        Вот ссылка где человек пересобирает apk в релиз:
        habr.com/post/423091/#comment_19168815


      1. phillennium Автор
        10.10.2018 13:38

        А чем именно не нравится разнесение XML-представления и Java-логики? Я не в порядке возражения «это неправильная точка зрения», просто любопытно, потому что для меня разнесение ощущается довольно естественным: мы же в любом случае разносим свой код и не делаем гигантские файлы (ну, кроме некоторых), а тут и критерий разделения очевидный.


        1. Neikist
          10.10.2018 13:43

          Мне кстати тоже не нравится такое деление, получается что у нас вью на несколько частей делится, да еще и каждая по своим правилам пишется/используется. Мне веб фронтенд именно поэтому не нравится во многом (не только из за этого конечно, но это одна из причин).


        1. irbis_al
          10.10.2018 13:45
          +1

          Вы знаете… это, конечно, субъективно… но я не комфортно себя чувствую…
          сходил туда потом туда, потом в этот файл… когда проект разрастается и экранов (и не только экранов, всяких ListLayoutов) становится немеряно… неудобно.Тем более есть с чем сравнить (я просто разрабатываю на java desktop приложения).
          Я даже смотрел kotlin anko, где можно в коде писать UI… намного удобней,(во всяком случае для меня… именно поэтому экспериментирую React native Вот Flutter попробовал)


      1. Neikist
        10.10.2018 13:44

        Еще немного про производительность:
        apptractor.ru/develop/proverka-skorosti-i-proizvoditelnosti-prilozheniya-na-flutter.html
        Но это довольно старая статья, его все еще продолжают допиливать и оптимизировать.


  1. technic93
    10.10.2018 14:52

    Разработчики, которые не пользуются своим софтом и даже платформой под которую они пишут. Выглядит очень подозрительно со стороны пользователя. Они хоть представляют как этим будут пользоваться?


    1. Neikist
      10.10.2018 14:55

      Ну, насчет своего софта выглядит довольно нормально. Например в случае приложения для ремонтников — странно если программист в нем будет отмечать выполнение работ, по ремонтам ездить и т.д.))
      А насчет платформы в основном согласен, желательно самому пользоваться.


      1. Borz
        10.10.2018 19:25

        почему не рассматривается вариант использования и той и другой платформы сразу?


        1. Neikist
          10.10.2018 19:36

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


  1. rusfearuth
    11.10.2018 10:04
    +1

    Не знаю, я как не гляну в флаттер, так вообще. Такое чувство что его писала девушка, которую бросил программист и она решила всем отомстить.


    Какая-то каша, кода, верстки, бизнес логики. Жесть. Ну и Dart, вырви глаз. =/


    1. Neikist
      11.10.2018 12:21

      Какая-то каша, кода, верстки, бизнес логики

      Вопрос организации кода. А то что не приходится верстку делить на кучу файлов и нет необходимости смешивать xml и код — как по мне отлично.

      Ну и Dart, вырви глаз. =/

      А он то чем не угодил?


      1. rusfearuth
        11.10.2018 13:06

        По мне лучше разделять View от логики. В Flutter мухи, мед,… ну и по списку.


        Так же я не видел больших каких то примеров. Так типа посмотри как вот это у нас типа вау. А как по серьезному? Сходит в сеть, положить данные в хранилище, асинхронность. Ничего такого в более взрослых примерах не видел.


        Так что я сомневаюсь что кроме свисто-свистелок можно что-то серьезное сделать.


        1. Neikist
          11.10.2018 13:10

          Хз, как по мне заложенная в архитектуру компиляция в натив под арм дает немало. Не говоря уж о фуксии.

          Вью от логики отделять хорошо, кто же спорит, вот только лично мне не по нраву когда способ описания вью отличается от способа описания логики очень сильно, к тому же в случае андроида (да и иос вроде) идет деление на описание вью в виде хмл, описание вью в виде активити, фрагментов и своих вьюшек, плюс местами вью все равно программно создаются или же меняются их свойства… В общем дикая смесь какая то.


          1. rusfearuth
            11.10.2018 17:55

            Да как бы давно устоявшийся подход. По мне ничего плохого. В том же вебе, вы даже с учетом React все равно теги пишете в JSX. Так что тут ничего такого. А вот та дикая вложенность во вложенности и вложенностью погоняющая в Flutter. Просто выкали глаз


            1. Neikist
              11.10.2018 18:02

              Я ничего не пишу на react) И вообще для веба). Как раз то что веб поделен на css/html/язык программирования одна из важных причин почему не хочу в него идти). Вторая причина это то что нет выбора и есть только js.
              А от вложенности поможет простая декомпозиция.


              1. rusfearuth
                12.10.2018 20:58

                Ой ) Вы уже пошли на компромис ;) а вот очень сложная верстка если? То что в реалии тебе выкатывают дизайнеры у которых мысль улетает так, что потом думаешь как ее гвоздями прибить к реалии?


                Думаю застрелиться будет проще.


                1. Neikist
                  12.10.2018 23:27

                  Эмм… А где компромисс? А вообще мне действительно нравится когда свойства вьюхи управляются самим кодом на котором вьюха написана, а не неведомым движком. У меня поэтому частично олдскул десктоп приложения вызывают радость что там нет всяких долбанутых языков разметки (хотя конечно там свои беды).
                  А веб с css и html меня действительно дико бесит.


        1. dzigoro
          11.10.2018 14:22

          Не топлю за флаттер, но они используют flux-архитектуру(редьюсеры, экшны, вот это все), так что все в порядке там будет в плане больших приложений.


  1. Skycaptain
    11.10.2018 14:59

    Какова статистика жертв среди менеджеров, предложивших писать android app на react native/ xamarin?