Артем Зайцев

Артем Зайцев

Неделя
Jan 25, 2021 → Feb 1, 2021
Темы

Архив недели @r3tam

Понедельник


Всем привет! Меня зовут Артем, я руковожу Flutter разработчиками в Surf. Всю эту неделю я буду здесь делится мыслями, опытом и в принципе стараться круто провести время) Спасибо предыдущим ораторам(@dmtopolog)! Из Амстердама мы возвращаемся в Россию)

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

Чуть позже закину расписание на неделю. Оно будет примерное, об этом чуть позже.

Немного общих принципов этой недели: Несмотря на события в РФ - без политоты Неделя будет достаточно лайтовая в техническом плане Изначально не хотел много говорить про Флаттер, но денёк выделить скорее придется (Далее в треде)

Все что буду писать - чисто субъективные мысли основанные на личном опыте и наблюдениях Кроме расписания буду часов в 18 по мск проводить голосовалку за тему следующего дня(если будут кандидаты) Ну и кроме основной темы в день будет конечно ещё оффтоп

Итак, примерное расписание: ПН: Знакомимся. Буду рассказывать о себе ВТ: Flutter. А как оно вообще? СР: Мобильная разработка: куда мы катимся? ЧТ: Как живёт Flutter в Surf? ПТ: От разработчика до руководителя. Эмоции и что делать. СБ: Досуг, отдых, творчество ВС: Свободный день

И перед тем как начать, давайте сделаем перекличку. На какой стороне ты?

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

Структура рассказа будет в трёх актах: До мобильной разработки. Разработчик мобильных приложений. Руководство отделом.

@vit_ius @mobileunderhood Так с нами же эту неделю флаттерианец)
Да кстати напоминаю:) Это к вопросам почему в опросе был флаттер. twitter.com/anioutkajarkov…

Прелюдия. Первый раз я задумался о программировании, когда у меня появился первый комп. Увидел в каком то журнале, что можно делать игры и рисовал рисунки, думая, что так все и должно работать. В школе увидел Делфи и пробовал писать те или иные игры.

Вообще игры - это драйвер моего вступления в айти.

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

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

Акт 1. Короткий. Вообще до профессионального айти я успел побыть спортсменом, выучить физику, побыть тренером у детей. В бытность спортсмена показался по разным странам, в том числе залетел в Китай и побывал у шаолинских монахов.

Да, к слову, занимался я ушу. Это то, что обычно показывают в китайских фильмах. Веселое было время.

Параллельно с этим, начал искать себя в айти. Прошел через JS, c#, java. Собственно на джаве остановился детальнее.

Во многом, я самоучка. И собственно мой первый проект на джаве я нашел как раз там, где тренировался. У нас был спортивный турнир и я сделал калькулятор очков для него. Упоролся по архитектуре, хотя даже не подозревал, что существуют MV-паттерны.

Когда начали использовать, мелькнула мысль: так у меня есть джава, а она вроде кроссплатформена. Чё б не сделать Андроид приложуху? Просто упакую код в либу и выведу на UI результат.

@mobileunderhood @dmtopolog Как дела у флаттер на иос? Слышал что он тормозит на iPhone 11 Pro, но при этом отлично работает на слабых сяоми
Я думаю, об этом поговорим завтра. Напомните, если что) twitter.com/whalemare/stat…

Раз мысль мелькнула, почему бы не сделать. Это было мое первое Андроид приложение , в котором я месяц делал ViewPager из одинаковых фрагментов. С ним я пришел на курсы от Surf. И с этого момента где-то глубоко засела мысль о кроссплатформе.

Акт 2. Итак, я вступил на путь Android разработчика. Этому способствовало две причины: Я уже мог в Java(и смотрел на Котлин, об этом позднее) У меня не было Айфона Вторая причина естественно весомее:)

В целом, мне тогда все нравилось. Это было новое, архитектуры, мы начали выделять SurfAndroidStandard, и много чего ещё. Я познавал Андроид. Пытался понять Даггер.

И через некоторое время мы решили взять первый проект на Котлин. я уже на тот момент успел его посмотреть, перепройти по несколько раз Kotlin Koans.

Тут небольшое отступление. Вообще , с первого взгляда Котлин мне вообще не понравился. Особенно после родной Java. Были какие-то непонятные конструкции, как то все аляписто.

Но когда я написал несколько строк кода, поработал с коллекциями... Котлин забрал мое сердечко. Котлин one love 💕

Да, кстати, вспомнил ещё одну вещь. Когда то я подумал, а почему вообще меня привлекал фронтэнд. Почему не бек, к примеру? В общем-то ответ я нашел: разработка на фронте позволяет получать мгновенный фидбек о том , что ты делаешь. Кстати , это небольшой минус мобилок.

Здесь все же надо подождать пока проект соберётся:)

И тут во время разработки на Котлин, я узнаю, что есть Multiplatform. Кроссплатфоома опять взыграла во мне. Правда на тот момент она была максимально сырая, на дворе был далёкий 2017(начало 2018). Тогда были какие-то проблемы со сборкой на маки, если помню верно

Так же где то в это время, пришлось поучаствовать в разработке Андроид курса. Вообще, образовательная деятельность - тема отдельная. Могу рассказать в один из дней, если будет интересно

Собственно, летом 18го года я впервые увидел Flutter. И очень расстроился, что Kotlin Multiplatform не был в релизе

Акт 3. Flutter и руководство Дальше понеслась: мы решили залететь в хайп трейн. В январе 19 года мы с @saturovv сделали пилот Flutter Dev Подкаста.

Вообще, для меня 19 год пока самый топовый. Уж очень много всего получилось сделать.

Например, завести вот такого замечательного кота
notion image

И начать Flutter отдел в Surf. Об этом я подробнее расскажу в четверг.

Перейти из разработки в менеджмент - было достаточно болезненно. Об этом в пятницу скорее всего

Вообще, не смотря на переход на Dart и Flutter, я все равно достаточно люблю Kotlin. Dart'у до него не хватает тех или иных вещей. Завтра думаю можно их обсудить

А, кстати, всех Татьян в подписчикам с Татьяниным днём!:)

Ну и я на сегодня уже пропаду. Завтра придется поговорить про Флаттер вероятнее всего и посравнивать Дарт и Котлин. Вроде других кандидатов в темы пока видно не было

@mobileunderhood Может все таки лучше сравнить SwiftUI + Swift vs Dart + Flutter?
Честно, интересная тема. Но боюсь тут будет нужна помощь сообщества, а то мне не хватит опыта в Свифт) Завтра мб раскрутим twitter.com/noTformaT/stat…

Вторник


@mobileunderhood Пользуетесь Mirrors API у себя в компании для создания каких-то внутренних тул для Дарта?
На данный момент нет. Не было необходимости в миррорах. Пока по крайней мере... twitter.com/ikrosent/statu…

@mobileunderhood Ну и про Jetpack Compose интересно, учитывая что они собираются делать его кросс-платформенным и внизу, насколько я знаю, тоже Skia и вообще это похоже на Flutter
Jetpack вроде вообще был достаточно похож, даже именованием сущностей) Но тут буду надеяться на помощь коммьюнити twitter.com/Moxorama/statu…

Всем привет! Начинаем второй день. Смотрю по опросу лидируют iOS разработчики, а флаттеристов менее 10% на данный момент. Раз мы сегодня коснемся Флаттера, то вполне возможно будет небольшой холиварчик...

Итак примерный план на сегодня: Flutter. Как с ним жить? Dart - это боль? Ну и фоном скорее всего сравним языки, фреймворки

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

Но если говорить по факту: меня очень вдохновило , то как можно на нем писать. А самый крутой момент: не зная фреймворка, виджетов, языка , я просто брал и писал название, которое считал наиболее подходящим, и оно оказывается было. Хочешь круглый аватар? Держи CircleAvatar.

О, кстати, забыл про интерактивчик. Flutter - это?

@mobileunderhood В качестве кроссплатформы, у флаттер есть существенный недостаток - кастомный рендер. Эта штука пока ещё заходит на десктопах, но на мобилках люди больше приучены к консистентности UX.
Кстати, интересный момент. В целом, можно сказать что там почти все идентично из-за того, что сделать ооооочень похожий комплект виджетов, которые подчиняются Material и HIG(также вроде на айос). Но ещё более интересно: а не чаще ли сейчас начал встречаться brand-first design? twitter.com/ad1Dima/status…

@c01nd01r_ @mobileunderhood Плохого? да по сути это электрон для мобильных апп. Зачем что-то делать оптимизировано для платформы, если можно универсально. Пипол хавает. а для бизнеса хорошо - 1 раз написал и готово
Так это же и прекрасно. Особенно для бизнеса. Получить оптимальный результат, за меньшие деньги. twitter.com/pingwinator/st…

Судя по реакции , надо вспомнить про одну вещь. Flutter - это определенный инструмент. И у каждого инструмента есть свои ограничения. И конечно, не каждый проект имеет смысл делать на Флюттере:) Но мб это тема отдельного треда

Я тут немного пропал, но скоро вернусь

В целом, я смотрю тут и без меня тусовочка:)

Обещал небольшой оффтоп тред про ограничения и что писать на Флаттер. Чисто субъективные мысли в треде

Когда меня спрашивали об этом года два назад, ответ был примерно следующий: У вас будет меньше 20% взаимодействия с платформой? Берите Флаттер.

Но сейчас типичные взаимодействия покрылись достаточно. И необходимость лезть в натив в определенном скоупе проектов практически минимальна. Про скоуп далее...

Итак, что точно можно писать на Флаттер и с достаточной лёгкостью: 1.екоммы. Интернет-магазины с лояльностью типа всяких сетевых. Здесь минимум взаимодействия с платформой, чаще они уходят в brand first(см. Перекресток, пятерочки).

В целом, банкинг. Он тоже вполне поддается. Были опасения с безопасностью когда за них брались, но опасения были слишком сильны.

@noTformaT @mobileunderhood А в кейсе, если это не реализуемо. Очень просто прикручивается нативный (Android sdk/iOS sdk), через платформенные каналы. Так что нативке + флаттер скорее работают в связке, и сравнивать их нет смысла. А вот взять разные мультиплатформы ReactNative, Flutter и KMP уже дельно
Согласен про связку. Вообще не люблю споры натив vs флаттер: по факту спора нет. У Флаттера есть ограничения и он никогда не заменит натив, в тех или иных кейсах(но это тема для завтра). Они вполне шикарно живут рядом. И даже скорее должны жить рядом. twitter.com/spk_hdj/status…

Пункты выше, уже проверены на опыте. Далее мысли

Вполне банкинг можно расширить до финтеха. Добавятся только графики, с ними вроде можно жить.

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

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

Так как он в любом случае накладывает дополнительные расходы на ресурсы

Вообще по поводу будущего и развития мы ещё поговорим завтра

Продолжим. Вчера был вброс про джанки на iOS. Да, есть такая тема. Если особо не углубляться, то есть проблемы с некоторыми анимация и, особенно векторными на айос.

@mobileunderhood С кастомным рендером всегда велика вероятность, что при очередном обновлении ОС, что-то в этом рендере пойдёт не так. Вероятность, что всё развалится не такая большая (если рендер не использует недокументированное API), но куча мелочей может разъехаться
Кстати, другая сторона медали - кастомный рендер добавляет гибкости в том что нарисовать на экране. Иногда бывает полезно для тех или иных фич, и их реально иногда проще сделать чем в нативе. Но конечно же, везде есть свои +/- и надо думать перед выбором инструмента :) twitter.com/ad1Dima/status…

Какая ещё есть проблема... Ну на первых порах болью был Dart. И вот этому я посвящу отдельный тред.

Тред про дарт. Так как Котлин был моей любовью и очень мне нравился, то странная JSподобная вещь меня крайне не вдохновляла. Часто витала мысль: "Пока пишешь на Flutter(верстаешь) чувствуешь кайф. Пишешь логику - боль."

Вообще я реально долгое время думал, что Дарт это обёртка над джс. Узнал обратное и очень удивился.

Так, время опроса видимо смещается. Оно будет в 19 с этого дня. О чём поговорим завтра:

С утра по МСК гляну и на основе этого определим тему следующего дня.

Показательный момент для меня: надо было отсортировать элементы списка по признаку. Я полчаса искал подходящий метод у Дарта. Оказалась его нет и надо писать логику в ручную. Больно осознавать было, что в Котлине это был встроенный сахар

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

В Дарте же из коробки с этим явно похуже. Но в плюс Дарту: это все набирается постепенно. И есть набор фич , из-за которых именно Дарт используется для Флаттера.

Фичи достойны отдельного треда

Почему все таки Dart?(субъективно) Ну самый очевидный и вероятно верный ответ - потому что Гугл. Как ни крути, а это довольно важно. Как минимум из-за этого команда Флаттера довольно сильно влияет на язык и в нем появляются фичи для фреймворка(spread оператор например)

Dart умеет в AOT/JIT. Тут не готов сейчас закопаться, но по факту именно благодаря этому нам доступен хот релоад. И если не изменяет память поэтому его нет в Compose.

В целом, в продолжение этой темы есть немного старая, но в целом не совсем растерявшая актуальности статья hackernoon.com/why-flutter-us…

В целом, спустя время понимаешь, что Дарт обычный такой язык, которому просто не хватает сахара. Он позволяет все то же самое, а то чего ещё нет, со временем появляется.

Он просто был слишком долго в застое. И флаттер дал ему новый толчок.

Ну и конечно(есть в статье), но очень полезно что он опенсорсный. В их репе прям роадмапы даже доступны. github.com/dart-lang/lang…

Ещё проблема связанная с Флаттером(и которая достойна отдельного дня) - найм. Конечно, стало с одной стороны получше, чем 2 года назад. Но с другой стало потяжелее найти уже хороших инженеров. Но это лучше в отдельный день.

@mobileunderhood Так стоит всё бросать и учить dart или лучше не разводить панику?
Хм, возможно коснемся этого завтра twitter.com/4rontender/sta…

Среда


@mobileunderhood Hot reload есть в SwiftUI)
А это вот новость для меня, не знал. Давайте подробности:) twitter.com/blyabtroi/stat…

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

@mobileunderhood Наверное, проблема поиска хороших инженеров ещё заключается в том, что очень много людей пришли во флаттер из смежных областей + много совсем новичков (низкий порог входа). От состоявшихся нативщиков часто слышал, что их «и так неплохо кормят», поэтому оттуда нет потока во фл-р
Темы найма мы тоже вероятно всего коснемся. Возможно сегодня, но скорее завтра twitter.com/alectogeek/sta…

Самое главное, что нужно понимать про любой фреймворк/подход/метод, что это лишь инструмент. Не нужно делать скрам ради скрама, не нужно надеятся, что он решит все ваши проблемы. Если у вас "медленно продукты запускаются", вам нужно искать способ ускориться, а не внедрять скрам
Как круто! Вчера эти же слова мы в целом говорили про более технические фреймворки. Это такая высокоуровневый мысль : все есть инструмент, у инструмента есть ограничения по применимости, и надо думать головой:) twitter.com/produnderhood/…

Тред третьего дня. Начнем с того, что нативным Android/iOS SDK уже порядка 10 лет. Они отлично справляются со своей задачей, на них с достатком разработчиков и готовых решений. И все это время они очень косо смотрят на любую кроссплатформу...

Да, я буду часто сравнивать именно натив и кроссплатформу(не только Флаттер, о нем сегодня по минимуму). И это лишь потому, что сам в прошлом нативщик и думал точно также.

Окей, почему смотрят косо: Плохая производительность. Тут точно можно молчать про любые решения на вебвью. Но и говорят у RN с этим тоже проблемы иногда(накладные на бридж) Проблемы с UX.

С точки зрения разработчика - это прям критикал. Как минимум потому, что у разработчиков есть профдеформация: через некоторое время начинаешь в любом мобильном аппе видеть проблемы. Тут верстка слегка минимально незаметно поехала, тут нет реакции на нажатие...

Хотя пользователи во многом далеко не так критичны

Небольшой оффтоп: на досуге смотрим женой в который раз Властелин Колец. И в который раз я не перестаю удивляться тому, насколько он круто смотрится.

Долгое время кроссплатформа была таким себе. Хотя конечно же была явно выгодна бизнесу

Ведь почему бы не экономить на разработке? Бизнес всегда хочет получить адекватный результат за меньшие деньги

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

Кроссплатформа в мобайле показала , что она в целом может в адекватное качество

Либо она может экономить бабки заходя с другого конца(с шаринга бизнес логики между платформами). Тут конечно же на ум приходит КММ, хотя по факту это же самое проворачивали в Яндексе на плюсах

@mobileunderhood @anioutkajarkova Вообще, это очень любопытные когнитивные искажения. Про Flutter за пределами андроид тусовки говорят мало. Про Xamarin активно говорят только в .Net тусовке. В итоге даже те кто от JetBrains презентуют Kotlin MP не знают, что идут по стопам Xamarin абсолютно во всём.
Мм, возможно. Но правда как минимум показатель , что на том же Мобиусе появляется больше Flutter'а. Но бенчмарков оцифрованных нет, тут только на ощущениях. В айос тусовке, по ощущениям, Флаттер очень активно шеймят:) twitter.com/ad1Dima/status…

Так вот по личным ощущениям и наблюдениям, бизнес как то активнее начал заказывать кроссплатформу. И ее начали даже больше пиарить, тот же КММ прям довольно неплохо. Да и даже в Compose есть мысли про кроссплатформу

В целом , это во многом очевидно, можно получить оптимально и за меньше денег(касались этого в прошлые дни)

Так же наверное не стоит забывать, что какое то время назад, нативом часто считали C++, блико к железу и тд. Мы часто подразумеваем под нативом платформенные СДК.

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

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

А что думаете вы?

Да, при этом, как по мне, натив не денется никуда. Была ещё аналогия с авто: Натив - это люксовые, не массовые тачки Кроссплтф - массмаркет среднего класса

@mobileunderhood Большая надежда на kmm. Остальная мультиплатформа сомнительна
Вот тут недавно мысль возникла следующая. КММ неплох, даже частенько думал про него. Но давайте возьмём условного одного человека, который хочет запилить сам свой стартам в виде МП. Для использования КММ ему нужно научиться в SwiftUI и Compose(либо просто верстать в нативе) ... twitter.com/iLLuzor/status…

Выучить скорее всего и Свифт и Котлин (для связи UI и бизнес логики). Получается немного накладно.

Да и в команде для простых стеков все равно нужен и тот кто умеет в Айос и тот , кто умеет в Андроид. В целом, по цене и трудозатратам на команду получается чуть дешевле натива. Но дороже других решений.

Такой дорогой массмаркет в мире авто, наверное.

Да и в целом, я считаю, что КММ это по факту нативные приложения с завернутой в одну либу(или несколько) безнесс логикой, переиспользуемой между платформами

Да кстати, напомню, сегодня очень субъективный взгляд. Чисто личное мнение и наблюдения

@mobileunderhood Kmm не для одного человека. Он для компаний, где уже есть ios и android команды, которые дважды пишут одну и ту же логику. На kmm можно написать всю логику один раз и переиспользовать, а ui реализовать отдельно для каждой платформы.
Полностью согласен с этим twitter.com/iLLuzor/status…

@mobileunderhood Я и не спорю. Для простых приложений и флаттера или реактнейтива хватит
Тут мне кстати интересно мнение читателей: а что по вашему мнению простое приложение? Опросник замутить кажется сложновато, надеюсь на дискуссию:) twitter.com/iLLuzor/status…

Мое мнение было в одном из вчерашних тредов

Также вот по наблюдениям ребята пилят на том же Флаттер: аналоги слека, финтехи, платформы для стриминга... Скоуп достаточно интересный...

Вот что происходит, когда работаешь из дома
notion image

@mobileunderhood Kmm не для одного человека. Он для компаний, где уже есть ios и android команды, которые дважды пишут одну и ту же логику. На kmm можно написать всю логику один раз и переиспользовать, а ui реализовать отдельно для каждой платформы.
Кстати, вспомнил, что как раз по этому до флаттера мы немного приглядывались к кмм twitter.com/iLLuzor/status…

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

Причем в данном случае, я не особо настаиваю что это будет именно Флаттер или кмм или что-то ещё. Просто некоторое решение. Может что-то появится ещё и более крутое

Опрос по теме следующего дня. Плановая: как Flutter живёт в Surf. Расскажу о команде, о рынке найма(сейчас активно проводим, поэтому мысли будут по ходу), про интересные проекты и опенсорс.

Давайте сделаем интерактивчики. Буду описывать приложение(набор фич, высокоуровнево). А вы говорить: натив/кроссплатформа. Опросы в треде.

Для разминки. Мобильная версия интернет-магазина. Взаимодействие с сервером по REST, без локального хранения данных. Дизайн достаточно прост, усреднённый между материалом/Купертино. Есть пуш уведомления.

Приложение с лентой видео. Есть много анимаций, много кастомный элементов. Дизайн брендированный. И одинаковый для всех платформ.

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

Клиентский банк. Референсы: Сбербанк, Тинькофф, и все подобные. Набор возможных фич - такой же. Конечно очень критичная фича - безопасность.

Тиндер. Приложение для поиска пары для себя. Анимашки, все дела, все такое милое. Есть небольшой чат с весьма скудным функционалом. Есть возможность отослать/сделать фото.

Кстати, очень круто, если ещё проголовавшие напишут аргументы:)

Финтех. Особенность : очень много данных приходит на девайс в единицу времени. Соединение по gRPC. Эти данные надо обрабатывать и на их основе строить графики, показывать стаканы и прочее.

Екоммерц с программой лояльности. Похоже было выше, но тут со звёздочкой - есть тех.поддержка, клиент хочет чтобы была видеосвязь и чат. Все остальное, как в п.1. А хотя есть важное условие: ограниченный бюджет.

Приложение для такси :)

Четверг


Сегодня я немного припозднился. Долго бежал до зарядки для телефона. Собственно тема сегодня по плану: буду рассказывать о своей команде .

Смотрю интерактивчики с кейсами вызвали довольно неплохую активность) Возможно, мы их продолжим

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

В будущем, как кажется, натив в чистом виде(две разделенные команды) в целом не будет существовать. А вот вариант с кмм вполне себе.

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

Конечно, там иногда нужно привлекать знания натива, но в идеальном мире очень мало.

Собственно с этих пунктов и буду писать ответы.

И поэтому согласен с @mMaxy85 : на Котлине можно написать все, что написано в кейсах. Вопрос только будет ли это оптимально для бизнеса?

Ну тут однозначно любая кроссплатформа. Думаю даже объяснять смысла нет.

Тут интереснее. В целом при такой постановке задачи: вполне залетает кроссплатформа. Видео норм, редактировать тоже можно попробовать.

Касты не проблема для кроссплатформы. Да и продукт(именно продукт) по смыслу уже должен быть кроссплатформенным. Вопрос только есть ли подходящий инструмент?

Да ладно вам. Почему все единогласно за натив? Что тут такого сложного, что не поддается другим решениям?

Солидарен с опросником.

Тут я однозначно скажу , что нужно нативном решение. Как минимум потому, что потоки этих данных надо оптимизировать, иначе они убивают батарею девайса в ноль. У нас был подобного рода проект и это было не тривиально даже на нативе. Что уж говорить о кплтф с ее накладными тратами

Я имею ввиду траты на те или иные доп вычисления, передачу данных между платформой и фреймворком. Да и часто здесь надо оптимизироваться близко к железяке.э

Это все личное мнение. Потому что я скорее всего даже знаю людей, которые пилят подобный проект на кплтф.

Интересное мнение сообщества. Но я тоже склонился к кросс с точки зрения бизнеса. Фичу с видеосвязь в целом можно реализовать. Особенно если она стоит обособленно от основного аппа

Тут просто скажу: поживем увидим:) Пока наверное бы назвал натив.

Ладн, погнали про команду. Тред четверга.

Flutter-отдел существует в Surf уже почти два года. За это время успели и проекты сделать, и статьи пописать, и неплохо вырасти, и курс по Флаттеру придумать. И конечно же залететь в опенсорс. Буду рассказывать обо всем, но если что, накидывайте.

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

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

Вообще, один из плюсов Флаттера для разработчика - здесь вообще на данный момент гораздо проще стать лидером мнений чем в нативе. Гораздо проще писать статьи, доклады, делать вклад в коммьюнити

И да, это все потому, что Флаттер молод. И у него нет 10 лет багажа за спиной.

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

Окей, захлестнул. Дальше мы решили взять проект к для эксперимента: это было приложение для сотрудников одного из ритейлеров. Маленькое такое, но был сканер штрих-кодов.

Перед этим стояла ещё задача свыше: сразу придумать архитектуру, на которой будем писать проекты. Отсюда пошел SurfGear - весь наш опенсорс.

Собственно, и придумали и сделали. Сделали весьма успешно(от них потом ещё один проект пришел). Дальше мы взялись за проект покрупнее(а оказалось гораздо крупнее). Это тоже было приложение для сотрудников, но уже для ресторанного бизнеса(и довольно крупного).

С графиками, работой в офлайне и всякими такими фичами.

Где то в этом районе мы проводили первый найм извне: это было прям интересно. На тот момент сеньоров по Флаттеру в принципе не существовало. Да и мидлов надо было поискать. О том изменилось ли это - будет отдельный тред.

Но уже был виден интерес к фреймворку. Даже со стороны бывших реактеров.

В целом, дальше все пошло достаточно спокойно. Мы работали над проектами и допиливали фичи для опенсорса. Идея ворваться в коммьюнити и задавать тренды не давала покоя. И не даёт до сих пор.

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

Кстати, тут была прикольная фича: мы по факту мигрировали с натива на Флаттер. И нам необходимо было сделать бесшовную авторизацию при обновлении. При этом исходники от старых подрядчиков у нас были не все.

Думаю об этом скоро выйдет статья, так что спойлерить не буду. Единственное , что скажу: на Андроиде сделали до нас какие то гениальные обертки над хранилищами и это крайне усложнило работу. А вот на айос все было прекрасно и стандартно.

Ну и наверно пока прервемся про проекты. На самом деле дальше началась тема опенсорса. До определенного момента мы просто сделали кучу библиотек и пользовали их внутри. Да репо был открыт, но о нем никто не знал.

Было понимание как минимум того, что нужна идея, концепция, лого, брендинг этой истории.

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

В концепции хотелось объединить дух Surf и что-то типа набора компонентов для единой цели. Так родился SurfGear github.com/surfstudio/Sur… (это не реклама)

В целом идея проста: набор для серфинга по Флаттеру. Набор компонентов, кирпичиков для создания приложения. Также в лого присутствует идея шестерёнок, образующих общий механизм.

Или кто что видит в лого?

В целом, процесс развития этого направления в отделе идёт полным ходом. СерфГир пережил уже несколько этапов и сейчас идёт на новый виток. В ближайшем будущем мы планируем его сильно улучшить, наконец то навести порядок в issues, pr templates и тд

Но не этим единым живёт отдел за пределами коммерческой разработки. В 2020 мы гораздо активнее выложились в маркетинг и статьи. Прокачали хабр статьями по Флаттер. Я уже упоминал об этом, но все же, это стало во много возможным из-за духа авантюризма)

Всегда проще писать о чем то новом

Ещё один крупный проект, который мы реализовали в отделе: коммерческий курс по Флаттеру. 48 часов видео, несколько месяцев производства... Было интересно. И сейчас его уже проходит первый поток будущих джунов.

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

Сам курс естественно занял несколько месяцев и огромное спасибо команде за вклад в него. И за поддержку далее, так как вся наша команда участвует в код-ревью текущих студентов курса.

Вообще сама команда - это мега-крутые творческие и скилловые люди. Заряженные и технологиями и желанием делится с коммьюнити. Собственно если бы не они, на было ни опенсорса ни статей

А вот и опрос по теме следующего дня. По плану должно было быть: разраб -> тимлид-> руководитель и эмоции от всего этого. Но, честно, есть ощущение, что тема немногословная. Хотя завтра будет довольно плотный день...

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

Но на самом деле не только за это. По факту там планировались все фичи из кейса 2*. Касты, picture in picture, касты на другие платформы.

В итоге, оказалось, что все это вполне неплохо работает. И с этим вполне нормально работать. Причем, мы даже особо не лезли в натив(если помню правильно). Только подкрутили несколько узких мест.

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

Пятница


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

Всех с пятницей! Это же такой прекрасный день, сегодня после рабочего дня все пойдут отдыхать. А что будешь делать ты?

Ну а пока у нас ещё рабочий день и вечер будет только после. Вчера я обещал немного добить часть тем. Поэтому сегодня: Коснемся найма флаттеристов. Чё там по рынку. Расскажу опять о том как переходил между ролями от разраба до руководителя. 3.ну и конечно оффтоп)

Возможно коснусь ещё прошлых тем, либо придумаю новые:)

@mobileunderhood Буду играть во что-нибудь.
Тема полезная:) Кстати, чё там, киберпанк все прошли? twitter.com/MakarovMykhail…

@mobileunderhood Буду писать долгожданный выпуск @flutterdevcast про null safety в Dart вместе с @mraleph
Дело прекрасное! Надо нести знания в массы! Особенно если на на Подкасте один из разработчиков Дарт VM. twitter.com/saturovv/statu…

Окей давайте начинать. Найм. Как много в этом звуке:) Вообще, за флаттеристами интересно наблюдать. Прям видно как развивается технология и интерес к ней.

Два года назад вакансий на Флаттер почти не было. Да и разработчики туда особо не стремились. Найти было можно, но сразу надо было понимать: это максимум условные миддлы. Среднего уровня разрабы, которые при удаче, покопали фреймворк и пришли из другого стека.

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

Короче, тогда мы набрали несколько человек извне. Следом ещё несколько и достаточно крутых. Уровень в среднем был очень слабенький у кандидатов.

Это было полтора года назад, остальное время мы росли за счёт внутренних ресурсов. И вот недавно опять открылись миру: что же поменялось на рынке?

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

А именно: на рынке полно джунов. Этому способствовал интерес, курсы от различных компаний, хайп, ощущение лёгкости входа. Но компаниям нужны уже хорошие разработчики, как минимум мидлы.

@mobileunderhood А сделай ради интереса опрос про классплатформу на десктопе - электрон победит?
Итак, на небольшой период времени Мобильный разработчик превращается в Десктопного. В треде опрос:) twitter.com/pingwinator/st…

Кто победит для кросспдатформенного десктопа? Варианты хз какие ещё, не силен в десктоп:)

А ещё лучше сеньоры и лиды, которые организуют у них отделы и команды.

И вот , что кажется: свободных мидлов и выше на рынке нет. Или практически нет. Моя гипотеза: все они осели уже в компаниях, которые залетели во Флаттер ранее.

Ещё одна тема этого дня: личный опыт из разработчика в руководителя. Ну что ж, началось все с того что я был стажёром в Андроид отделе...

Вообще, и до этого и после я мыслил себя как разработчика в будущем. Развитие было в целом понятно: Джун, мидл, сеньор(об этом думал как о чем то недостижимом). Разработка мне нравилась и вот почему:

Это творчество. Особенно когда ты не тупо переписываешь ТЗ в форму кода. Придумывать новое - это на самом деле основное что привлекало. Другой вопрос: а много ли нового мы пишем?

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

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

Горение одной части тела , стресс, непонимание как оно вообще должно работать и сны о работе - это ощущения первого месяца. И это даже не самое жуткое.

Главное: у меня отняли мою прелесть(кажись сказывается марафон по Средиземью). У меня отняли ощущение работы в потоке над своей задачей. Я не мог больше включить музло и уйти в транс.

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

Да, у нас тимлиды ещё и код пишут (особенно на небольших командах).

Собственно этот основной драйвер также привел к тому, что я начал распределять время, делегировать, следить за оптимизацией своей работы, автоматизировать рутину и тд.

В итоге, я смог сделать так, чтобы находить время на поток.

Но счастье длилось на прям долго. Я не очень много времени был именно лидом. И достаточно быстро пришлось возглавить отдел.

Здесь я сразу усвоил фразы: 1.задач будет всегда больше чем доступного времени 2. В рабочее время ты больше не сможешь развиваться технически (Хотя 2ой пункт обойти возможно)

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

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

Честно, стать руководителем было уже не так больно. Да, было горячо и стрессово пока не начал приоритезировать. Да, надо было понять, что теперь ответственности куда больше. Да, надо было понять, что правильного ответа почти никогда нет, есть ответственность за принятие решение

И готовность к последствиям.

Что с этим делать - вопрос пока открытый. И нам в компании только предстоит его решить. Но в целом пока компании кажется пытаются предложить условия лучше чем у других. Насчёт получается или нет: не знаю. Но судя по одинаковым компаниям на своей почте - видимо нет)

Я тут пошел за кофе. И возник вопрос. Если кофе, то

Учитывая что мы хотим достаточно неслабо вырасти. Вопрос будет интересным. Ну как минимум по Джуна проблем точно не будет: их полно на рынке, плюс, у нас есть свои курсы(с которых тоже можно забирать подготовленных джунов)

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

Вообще, это очень занятная тема: найти в новой сфере то, что будет для тебя драйвером и приносить кайф.

А забыл ещё одну штуку, которой при переходе начинает не хватать. Точне она начинает меняться. Обратная связь. Фидбек от своих действий. Это один из тех важных пунктов, из-за которых разработчикам тяжело стать лидам, руководителями.

Когда ты разраб, ты видеть результат быстро - сборка, код ревью, таска, что перенеслась в другой статус. Это все даёт инстант фидбек и к нам приходит счастье.

А вот когда ты тимлид - цепь становится длиннее. У тебя уже перестает быть четкой обозначенной задачи, фидбек от деятельности приходит запоздало. И думаю часто тимлиды думаю: а что я вообще сделал за день?

Что уж говорить про руководителя? Особенно если ты руководитель не на продукте, а в целом на отделе. Твои решения и действия могут дать фидбек через не то что недели, но и месяца, а то и больше.

И вот здесь важно найти способ видеть фидбек в более мелких вещах.

Думаю для этого руководители так любят всякие дэшборды, цифры, планы, факты, опросники. С помощью дэшбордов, они могут смотреть как соотносится план/факт по тем или иным ожиданиям от действий и получать фидбек. Причем получать его довольно часто.

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

А, выше был пункт про кодинг: кстати даже в рабочее время вполне можно развиваться. Правда скорее в ширь. Вообще за руководство я успел влезть в : bash, Groovy, JS, Python, objc, swift. Да понемногу, но для общего понимания было достаточно.

Ну и конечно кроме мнеджерства осталось техническая сторона на высоком уровне: архитектура , выбор тех стека, какая то помощь разработчикам с вопросами

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

Вечер все ближе и ближе. Как настроение?

@mobileunderhood Краткий пересказ от твиттера https://t.co/0xZ97Y4LRJ
Не, ну вполне подходит:) twitter.com/DenisNosoff/st…

Ну чтож, всех с вечером пятницы! Вопрос для киберпанкеров:

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

Да, сегодня без опроса по теме. Будет суббота , а это время для досуга, творчества, релакса и свободы)

@mobileunderhood А расскажи, пожалуйста, сложно ли будет тем, кто вошёл в мобильную разработку через флаттер перестроиться на нейтив? Много ли среди них общего?
Хм, интересный вопрос. Надо поразмышлять. twitter.com/alectogeek/sta…

Во-первых, сразу придется перестраиваться под многопоточность. Это немного отличается от того, что есть во флаттер.

Другой принцип лейаутинга. По другому идет просчет размеров элементов и вообще построения UI. Constraints go down, sizes go up, parent sets position уже не будет работать.

Мб завтра или в вс продолжим. Только напомните)

Вот мой ответ на вопрос, что делать вечером в пятницу: сегодня настрой посидеть дома и попить вкусного красного вина. Под, конечно, прохождение киберпанка.

Вообще кстати, если вино, то

Суббота


Эээх, решил пройти за вечер третий акт киберпанка... Но в итоге отвлекся и не прошел.

Сегодня суббота, а это значит, что мы все вероятно отложим свои любимые IDE. А вот куда мы направим этот день? Что делаю в сб?

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

Сегодня тред будет не регулярный и в основном основанный на внезапных мыслях. Начнем мы вот с чего: недавно я понял, что чёт все вечера после работы стали одинаковыми. И вот начала думать , как все разнообразить, и вообще, как лучше отдыхать от основной работы.

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

Это навело на мысль: нас разгружает продолжительная смена контекста, с полным погружением в процесс.

@mobileunderhood А разве условный сеньер-лид из натива, не конвертируется в сеньора-Лида флаттериста, спустя условные месяц-полтора?
Я не уверен в том, что хватит этого времени чтобы прокопать фреймворк. Это будет очень опытный мидл, который станет сеньором в скором времени. Флаттер лёгок на вход, чтобы начать на нем работать. Но там много чего под капотом. twitter.com/spk_hdj/status…

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

Ну и важное ещё: погружение на психическом и эмоциональном уровне.

 
Отсюда возникли несколько направлений(для себя): Кино/книги Видеоигры Творчество Уборка Занятия спортом

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

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

А вот кино/книги/видеоигры это ленивые способы погрузится, испытать другие эмоции, внедрится в чужой и выйти из своего контекста. Пропуская через себя чувства и ощущения других персонажей, на выходе ощущаешь лёгкость и готовность к новому

И поэтому сегодняшний день все же вылился в добивание киберпанка до концовки)

Так, я видимо зафиналил киберпанк. Вот смотрю титры, и ... Что в итоге произошло?

@mobileunderhood На самом деле, если взять сеньерскую андроид команду и один из них окажется опытным-флаттер трейтором, то он очень быстро их перекачивает. Думаю тред о подводных камнях флаттера и о проблемах переката очень бы заехал!
Можем завтра попробовать замутить подобный тредик twitter.com/spk_hdj/status…

Кстати, вчера проводил опрос про кофе, но не спросил главного... Кофе или чай?

Я лично на стороне китайского чая.

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

А тут есть любители настолок? Посоветуйте какие-нибудь, плиз. В идеале не сильно длинные, с большой степенью реиграбельности.

Завтра будет свободный день. Сегодня я играю в настолки и пью вино) Завтра день свободный. Есть несколько вариантов, с утра постараюсь дораскрыть нераскрытые темы.
notion image

Да, те кто советовали Эволюцию - лайк, она давненько есть)

Кстати, ещё мне зашла За бортом. Мы вот в компании гоняем в нее

Меня сегодня не отпускает киберпанк. Кто ты?

Кстати, следит ли здесь кто-нибудь за MMA? Как вам бой Конора с Порье?

Я, честно, когда то активно следил за спортом. Но чё т потом все это разочаровало. Наверное, потому что закончил свою спортивную карьеру

Воскресенье


Сегодня воскресенье! А значит я завершаю свою неделю) Постараюсь провести с пользой и закрыть некоторые вопросы, которые поднимались по ходу.

Точно попробуем в подводные камни при переходе: натив -> Флаттер.

Ну и поофтопим.

Начнем, пожалуй. Ситуация: нативный(iOS или Android) разработчик с опытом, желает перейти на Flutter, чтобы писать сразу под все. Что его ждёт?

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

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

Верстка. Все есть виджет. И это будет иногда ломать. Потому что паддинг - это тоже виджет. И подобные вещи также

Следующая штука: Флаттер непривычно делает просчет макета. Здесь если ты поставил контейнеру определенные размеры, то не факт, что они такими и будут. Влияют ограничения от родителя. Constraints go down, sizes go up, parent sets position основная мысль здесь.

Отсутствие бест практис. (Сейчас с этим получше) Любой андроидер знает, что Relative медленнее Linear layout , а Frame вообще быстр. С виджетами не все так однозначно

Асинхронность. Это тоже ломает, если привык к потокам. Видел у всех, кто приходил с андроида.

@mobileunderhood Стоит добавить самую сложную тему: ты нативный разработчик с кучей опыта, потыкал до полугода на всяких проектах домашних/Фриланс, переложил весь свой опыт и решил перекатиться в флаттер, что делать с работодателями «от 10 лет продакшен опыта в Dart и 3 лет Flutter»
Да, давайте про это. В целом, я считаю, что все отлично решается на собесе. И важно все же понимать фреймворк, а не надеятся на старый опыт. twitter.com/spk_hdj/status…

Допустим, можно до полугода использовать стандартные простые компоненты. Флаттер весьма обманчив этим, у него лёгкий порог входа, чтобы писать из коробки без навыка. Но в реальных проектах понадобятся и сливеры и понимание, что есть три дерева и работа с RenderObjects

Но при этом, я пока не вижу проблемы прийти на собес и показать свои знания. Показать, что разобрался сам. У меня были такие прецеденты.

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

Но если этот сеньор взял и разобрался, то почему бы и не считаться)

@mobileunderhood И можно ещё одну шутку обсудить. Не кажется ли тебе, что рынок библиотек ещё не перегрелся, что DI, что навигации, что компонент китов? И выстрелить в роли инфраструктурщика можно очень круто, в плане имени, публичности и дальнейшего профита, чем просто топить в разработку
Я частично касался этого, но вообще можно ещё разок. Для меня лично: Флаттер также был возможностью залететь в либы, пакеты и стать авторитетом в сообществе. Это гораздо проще чем в нативе. twitter.com/spk_hdj/status…

Действительно нет пока условного даггера, который пользуют все. То же самое с архитекторами и тд.

@mobileunderhood О ещё такой вопрос. Вы уже кучу собесов провели, есть какая-то статистика откуда больше людей катятся веб/iOS/android? Были ли какие-то джуны, для которых это первый фрейм? Конвертировали ли вы внутренних молбильшиков в флаттеристов?
Примерно так, без конкретики , но на ощущениях: Больше андроид/веб. Айос есть, но мало. Ещё часто - вообще иные стеки. Да. Сейчас особенно много джунов. И есть те, для которых это первый раз. У нас процентов 60-70 отдела, конвертация с андроид отдела внутри. twitter.com/spk_hdj/status…

Начинаем тред первой темы. Сегодня я по большей части расскажу о себе. И предлагаю вам стать этаким коллективным Дудем. Я начну рассказывать, а вы будете накидывать вопросы и расспрашивать меня обо всем.
Подтред с интересными за неделю О себе twitter.com/mobileunderhoo…

Почему все таки Dart?(субъективно) Ну самый очевидный и вероятно верный ответ - потому что Гугл. Как ни крути, а это довольно важно. Как минимум из-за этого команда Флаттера довольно сильно влияет на язык и в нем появляются фичи для фреймворка(spread оператор например)

Для разминки. Мобильная версия интернет-магазина. Взаимодействие с сервером по REST, без локального хранения данных. Дизайн достаточно прост, усреднённый между материалом/Купертино. Есть пуш уведомления.
Как развивается мобилка twitter.com/mobileunderhoo… Кейсы twitter.com/mobileunderhoo…

Окей давайте начинать. Найм. Как много в этом звуке:) Вообще, за флаттеристами интересно наблюдать. Прям видно как развивается технология и интерес к ней.

Ещё одна тема этого дня: личный опыт из разработчика в руководителя. Ну что ж, началось все с того что я был стажёром в Андроид отделе...
Переход в руководство twitter.com/mobileunderhoo…

Сегодня тред будет не регулярный и в основном основанный на внезапных мыслях. Начнем мы вот с чего: недавно я понял, что чёт все вечера после работы стали одинаковыми. И вот начала думать , как все разнообразить, и вообще, как лучше отдыхать от основной работы.
Субботний чилл twitter.com/mobileunderhoo…

А тут есть любители настолок? Посоветуйте какие-нибудь, плиз. В идеале не сильно длинные, с большой степенью реиграбельности.
Настолки(лучший тред) twitter.com/mobileunderhoo…

Начнем, пожалуй. Ситуация: нативный(iOS или Android) разработчик с опытом, желает перейти на Flutter, чтобы писать сразу под все. Что его ждёт?
Тред воскресенья twitter.com/mobileunderhoo…

Вообще, я буду потихоньку закругляться. И перед тем как уйти, как вам неделя:

Что ж, пора прощаться. Это была очень крутая неделя, по факту я первый раз вел Твиттер настолько активно. Огромное спасибо всем кто отвечал, накидывал! Вы всегда сможете найти меня здесь twitter.com/r3tam?s=09 Буду стараться делать интересно у себя.

Если вдруг будут вопросы пишите) Так же я постоянно обитаю в телеграмме(r3tam).

Ну и огромное спасибо @igrekde , что позвал!

Понедельник


Всем привет. Меня зовут Ивлев Александр. Если не скромничать то "Апостол программирования". Верю в swift и iOS. По званию team/tech lead. И мы переходим с кроссплатформы/ flutter в натив.

Краткий план: Понедельник: моя история. Вторник: олимпиады. Среда: DI, IoC, DIP, DITranqullity. Четверг: архитектура/структура. Пятница: собеседования. Суббота: хороший код. Воскресенье: опционально

Более детально: Понедельник: история жизни, карьеры, апостола. Поверьте тут много интересностей. Вторник: моё отношение к олимпиадному программированию и проф образованию. Среда: DI, IoC, DIP, DITranqullity. Раз уж я автор этой либы, то я не могу пройти эту тему стороной.

Четверг: Архитектура. Как без неё? :) Будет больше про опыт, отношение, текущая на проекте. Пятница: Собеседования. Буду много ныть, что трава была зеленей, и небо ... Будет и по делу. Суббота: правила написания кода, логирование, тесты. Надеюсь на холивар.

Писать буду много. Я ещё тот графоман :) но не являюсь активным пользователем твиттера, поэтому всё в новинку пока.

И первый день будет посвящен моей истории, под эгидой судьба или совпадение? Сама история условно будет поделена на три части: как стал программистом, кусочек до армии, после армии. Да, да я был в армии. Но про неё возможно в воскресенье.

И сразу вопрос: "а вы верите в судьбу?"

@mobileunderhood Лаги в кроссплатформе не вылечили или просто переросли ее?
Если честно, то я не любитель кроссплатформы. Не верю в то, что есть. Но был опыт и с xamarin (считаю на текущий момент лучшим решением в этом плане, люблю С#) и с С++, и с JavaScript вариантами. twitter.com/alectogeek/sta…

Ну, начнём. Под этим твитом будет о том как же я попал в эту сферу, и первые шаги в ней. И было это в 2004 году. Тогда мне было 13 лет, и познание компьютера заканчивались умение запустить игру на нём 😅

@mobileunderhood О, а почему в плане нет раскрытия этой истории. Почему переходите, с чем столкнулись, какой опыт был у команды разрабатывавшей кросплатформу и т д?
Ой. Кажется я написал не удачно. Я имел ввиду, что автор прошлой недели писал про flutter. Но немного про кроссплатформу будет. По желанию могу буду описывать опыт с С++ который был не самый как мне кажется удачный, но оно работает. twitter.com/spk_hdj/status…

Как и любой подросток в то время, я бегал по горожам и недостроям. И ни о каком программировании не думал. Правда был опыт в паянии - пол. Года занимался. И на тот момент я любил скейтборд.

И последнее важный факт. Именно из-за него, я стал программистом. В жизни не бывает хороших и плохих моментов - всё зависит от точки зрения. Так вот. Я сломал руку. Вроде бы плохо? Ну да в гипсе ходил три месяца. Но...

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

Тут стоит упомянуть родителей - они к моим постоянным сменам интереса относились нормально, и нашли репетитора по программированию. А до этого чем я ток не занимался: танцы, паял, делал самолёты, пение, боевые искусства... Главное всё в среднем по пол. года :)

Дальше относительно всё стандартно: Pascal, преподаватель который явно считал меня "средним", и я гипсе не способный нажать одновременно две клавиши 😂 в общем все условия, чтобы бросить это дело.

Но увлекло. Благо гипс сняли и нашлись курсы. Снова Pascal, но писали уже игры. Как же я в те времена хотел умеет две вещи: научиться двигать экран, и иметь больше 16 цветов. Библиотеку на 256 цветов, я так и не осилил подключить...

Это был 9 класс, и преподаватель по Pascal настоял, чтобы меня отдали в Высший колледж информатики. И небольшой факт о первых трёх лет программирования - в тот момент я был так увлечён, что от меня родители прятали компьютерный шнур - мог по 12 часов в сутки писать код.

И тут снова судьба/случайность. Нашёлся друг тоже помешанный на программировании. Не знаю у кого как, а у меня соперничество один из важных мотиваторов развития. А мы с ним "соревновались" во всём. Это дало огромный скачок в росте

А, что для вас является мотиваторов на работе или при саморазвитии?

И почему мне кажется, что я что-то делаю не так... В плане ретвитов. Вроде поток есть, но привязка твитов друг к другу, а не к первому. Постараюсь исправиться. Чесно, честно 🙄

И вроде история успешного человека - все время пишет код, удачные стечения обстоятельств... Но где-то в это же время я узнал о WOW. И "был человек, нет человека" :) или же?

Все играли в Warcraft 3? Так вот на тот момент я смог дойти до 7 миссии за людей и думал, что это конец - так как не был способен её пройти. Всё, что нужно знать о моих игровых способностях на тот момент 😂

И тут wow... Сколько же я убил на него времени. Иногда мне кажется, что в тот период 12 часов я писал код, и 12 я играл в wow. На остальное времени не было. Был период когда я желел о потраченно времени на игры, но кое, что понял.

А понял я две вещи: Игры хорошо развивают реакцию и умении работать с компьютером. Игры стали той зависимостью которую я могу контролировать. Клин клином вышибают - если у меня появляется зависимость, я её перевожу в игру, а потом отказываюсь уже от игры.

В общем если бы не WoW и StarCraft я бы сейчас не умел пользоваться мышкой нормально даже. Ну и клавиатурой. Правда 10 пальцевых набор познал намного позже.

Ваше отношение к играм?

Колледж прошёл весело. Учеба, программы, олимпиады, игры. Но надо думать над универом. Уточню - платно я бы не смог учиться, так-как это дорого было бы. Но и тут судьба/совпадение/удача.

Тут важны детали. Иду я вечером по колледжу. 5 вечера. Не помню чего я так поздно там делал. Подбегает, в коридоре, ко мне преподавать и говорит - "тут через пол часа олимпиада, хочешь поучаствовать?" Уточню: я в колледже занимался олимпиадным программированием.

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

Каково было моё удивление через неделю когда мне говорят: "ты тут в очный этап прошёл, тебе в Уфу ехать теперь". Я даже вначале не понял о чём речь. То был заочный этап и отбирались 30 первых. Чтож ехать так ехать.

Что там я про совпадения писал? :) Теперь самое интересное. В первый день очного этапа все собрались в столовой. Три мальчика сели случайно за один стол. Пообщались, послушали наставления. ничего примечательного. Но запомним этот факт.

В следующих два дня была сама Олимпиада. Олимпиада как Олимпиада, правда среди СУЗов. Занял я в ней третье место, почти второе. Надавали всяких призов, я ещё и самый младший участник был.

А теперь возвращаюсь к трём мальчикам. Эти три мальчика заняли 1,2,3 место на Олимпиаде. Совпадение? ;)

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

"И мы переходим с кроссплатформы/ flutter в натив.". Этот высказывание многие поняли не так как я хотел. Поэтому уточню - тут имелось ввиду, что прошлый автор недели писал о flutter, а не действие моей команды :)

Переходим к университету. Этот поток будет коротким, и связан с универом. Ну и судьбой/совпадением :)

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

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

@mobileunderhood Xamarin уж очень индусский фреймворк, в котором можно однажды случайно сломать проект, что он никогда уже не соберётся.
Так можно о любой технологии сказать. У нас джуны и xcode проекты ломают, так, что только 1 из 100 сеньоров способен починить, не пересоздавая :) Но не буду спорить, что у xamarin много багов. twitter.com/itscanbeblinch…

После сессии моё отношение к учебе "слегка" изменилось. Я стал ходить только на то, что интересно. Раз упорство на экзамены не влияет, то и смысл тратить время? :)

И второе, что я понял к концу первого курса. Факультет информационных технологий, не такой уж и "информационный". За первый курс занятий физкультурой было больше чем написание кода. А самым важным видимо была математика - коих было много разных видов.

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

Вот третий курс был запоминающимся. Теперь представим ситуацию: у вас последняя пересдача, деканат точно не даст повторку, к вам подходят и предлагают "пошли на зимнюю школу программирования" - которая будет две недели и пересекается с пересдачей. Вы бы пошли?

Я вот пошёл. К слову сказать на экзамене крупно повезло, и я сдал на 4. Но главное, что по итогу зимней школы, мы с приятелем создаём свою команду/компанию. У нас есть договор с игровой студией, на написание игры.

Писали мы игры под iOS. На Obj-C/C++. Библиотека для графики cocos2d (на тот момент даже без Х). Вообще про написание игры я могу много чего рассказать. Много было прикольных решений. Хорошее время было - работали у друга дома, на хаккинтош. Я приходил в 8 утра уходил в 12 вечера

В общем просуществовали 2.5 года. Написали 7 игр, выпустили три. За это время я чудом закончил универ. К слову сказать на 3-4 курсе в универе началось программирование и специализация. У меня была "супер компьютеры и архитектура процессоров".

Ссылки