Сергей Гречишников

Сергей Гречишников

Неделя
Jul 27, 2020 → Aug 2, 2020
Темы

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

Понедельник


Всем привет, на этой неделе с вами Сергей @srggrch, я занимаюсь разработкой приложения Skill (play.google.com/store/apps/det…) и являюсь лидером и основателем студенческого сообщества Blurred Education.

План у меня будет вот такой: Понедельник: О себе и актуальность вуза на примере НГТУ Вторник: кросс платформа и Kotlin Native Среда: Путь от студента до разработчика + студенческое комьюнити Четверг: Почему я не люблю китайские прошивки, или боли с бекграундом Пятница: Хакатоны

На субботу и воскресенье что нибудь придумаем)

Первым делом давайте познакомимся. Как говорится 1 лайк = 1 факт о том как я пришел к Android и разработке в целом. Но если лайки ставить не будете я все равно напишу "биографический" тред)

Думаю как и многие здесь, программированием я начал интересовать в школе, хотя как мне кажется довольно поздно, примерно в 7 классе. Тогда это были факультативы и профильные классы, первым моим языком был Qbasic, а вторым…. ЛогоМиры

но после логомиров быстро пришел Pascal и было уже не так плохо:з

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

Было так до начала 10го класса, когда я попал в IT школу Samsung, где учили Android разработке. Проходило все это под эгидой НГТУ (я кстати из Новосибирска, пользуясь случаем хочу передать привет маме, папе и землякам).

У меня сначала были опасения, что я не буду успевать писать твиты на работе, но потом я вспомнил сколько собирается проект в Android Studio и все опасения пропали....

Кстати! Давайте проведем перепись населения! Начнем с позиции, выбирайте вашу или какая вам больше подходитИнтересен еще возраст

Интересен еще возраст, надо же знать свою аудиторию!

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

Затем подготовка к ЕГЭ убила напрочь все свободное время и мотивацию что то писать и жить в целом, так что к разработке я вернулся только на первом курсе НГТУ.

В университете я познакомился с очень крутыми ребятами (привет @batyshkaLenin) с которыми мы потом сделали @blur_tech (твиттер акк мертвый, но на сайте и вк есть интересности), в кратце у нас получилось собрать разных студентов с шилом в одном месте и мутить крутые штуки

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

Такие как разные проекты, хакатоны и Blurred Education (про него будет позже). На первом нашем хакатоне мы написали не работающий бек, полуживое приложение на андроид и не заняли ничего, НО ЗАТО КАКОЙ ОПЫТ.

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

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

Потом было несколько проектных школ, разнообразных хакатонов и второе место в финале всероссийского Цифрового прорыва. И, как говорится, вот я здесь

@mobileunderhood >как по мне довольно поздно >в 7 классе Я в 24 года: ༼;´༎ຶ ۝ ༎ຶ༽
На самом деле я не правильно выразился. Программировать то я начал вовремя, но заняться чем то конкретным можно было и пораньше) Просто сейчас когда смотрю назад, понимаю что мог бы, но пинал всем известные органы( twitter.com/skorbut11/stat…

За все это время я успел пописать бекенды, немного фронтендов и алгоритмов для чат ботов, но в конечном итоге я все равно выбрал Android разработку как свою профессию

Хронологические факты закончились, так что дальше будут рандомные

Думаю как и многие здесь, программированием я начал интересовать в школе, хотя как мне кажется довольно поздно, примерно в 7 классе. Тогда это были факультативы и профильные классы, первым моим языком был Qbasic, а вторым…. ЛогоМиры
twitter.com/mobileunderhoo… Тут стоит пояснить, я запутался и под "хотя как мне кажется довольно поздно"я имел ввиду то что прикладным программированием я занялся только в 10 классе, а до этого были только разные математические задачи

@mobileunderhood Android project: building... Flutter hot reload: hold my beer
Но ведь у нас есть aplly code changes... twitter.com/alectogeek/sta…
notion image

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

Иногда мне интересно потрогать что то кроме Android dev, поэтому сейчас я разрабатываю не сложную "ембедед" прилу для терминала

Вы пользуетесь хоткеями в IDE

Давайте поговорим про ̷п̷л̷о̷с̷к̷у̷ю̷ ̷з̷е̷м̷л̷ю̷ образование

Я хочу поделиться с вами своими мыслями по его актуальности на примере своего вуза, НГТУ

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

ДИСКЛЕЙМЕР Я не призываю никого бросать или менять свое мнение о пустеплении в ВУЗ. Вышка это хорошо, просто мне не все понравилось в моем ВУЗе :з

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

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

Сейчас мне кажется было бы гораздо круче, если бы у нас защита проходила как код ревью. Если бы нам говорили что вот так как ты написал не круто, можно написать эффективнее. В конечном итоге ты пишешь 4 вложенных фора, где можно было сделать один и тебе ставят 8/8 за лабу

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

@mudasobwa @mobileunderhood Для деда IDE это шлейф для винчестера!
Не шлейф, а интерфейс! twitter.com/aarexer/status…

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

Я кстати удивлен что в университете никто не рассказывает про гит и вообще про VCS

Несколько лет назад этот аккаунт помог мне получить хотя бы какое то понимание индустрии андроид разработки, тогда я был на первом курсе. Если этот твит наберет 10 лайков, то я напишу несколько вещей которые очень сильно помогли мне въехать в разработку и получить полезные скилы

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

Если в вашем городе проводятся проектные школы, такие как CompTech или ШИФТ от ЦФТ, то это отличный способ научится чему то при поддержки менторов. Мне это помогло получить какие то начальные скилы работы в команде, шепотку навыков управления проектом...

... презентации и выступления на публике, но самое главное я узнал как нормально писать андроид приложения, работать с API и что такое архитектура. Из минусов у нас было то что бек должен был быть только на Java, так что наш JS бекендер спился и бек пришлось писать мне...

... Зато познакомился с тем что такое REST, бекенд и спринг.

@aarexer @mobileunderhood Тебе не надо выходить из IDE, если IDE падает по OOM.
Лайфхак. Если не хотите выходить из IDE поставьте себе 4 гига оперативы XD twitter.com/0leGG/status/1…

@mobileunderhood Смотря какой универ, у нас (в ПНИПУ, Пермский политех) на всех около айти предметах работы сдавались ссылкой на гит (чтобы удобно и чтобы, если работа групповая, то проверить коммиты всех участников). Ну и потом по-старинке на диск 😒😒😒
В НСК в СибГУТИ рассказывают, но в НГТУ очень редкие преподы могу так принять. По старинке это не на диск, а распечатать. У меня половина страниц в отчетах на код уходило... А преподавательский состав старый и консервативный, переубедить их сложно twitter.com/andrey_oshev/s…

@mobileunderhood Нам про svn и гит рассказывал по своей инициативе аспирант на семинаре (вмк МГУ, наверное в 2011 год). Но без командного, близкого к реальному, проекта может быть сложно понять какую боль решают эти технологии, всё-таки они очень прикладные
Мне они решили проблему "ВСЕ СЛОМАЛОСЬ ГДЕ КНОПКА ОТМЕНИТЬ?!" twitter.com/ruggerprogramm…

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

... Что бы это было делать интереснее найдите себе товарищей которым тоже интересно все это и ходите вместе.

@aarexer @mobileunderhood Тебе не надо выходить из IDE, если IDE падает по OOM.
Рандомный твит про железо. НИКОГДА не покупайте себе компьютер с 8 гб RAM для разработки под андроид. Это больно. По моему опыту надо минимум 16гб + быстрый PCIe SSD, а лучше даже 32гб. Но мне сейчас 16 комфортно. twitter.com/0leGG/status/1…

@mobileunderhood Нам 32-то едва хватает :(
Вообще это был реплай на этот твит twitter.com/0leGG/status/1…

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

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

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

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

Является ли знание английского важным для программиста

Знаете ли вы английский язык?

Кстати есть еще один полезный сайд эффект, если вы займете какое то место или имеете прокачанное красноречие, то можно попробовать выбить пару автоматов на сессии

Является ли знание английского важным для программиста
Если нет, то было бы интересно узнать почему? twitter.com/mobileunderhoo…

@aarexer @mobileunderhood Так на русском же почти нету инфы нормальной)
Ставь лайк если тоже не согласен и постоянно заходишь на developer.alexanderklimov.ru/android/ twitter.com/__waleria/stat…

Микротред про IDE:

У нас на проекте есть кроссплатформенные модули и в какой то момент мне пришлось копаться в iOS коде и следственно пользоваться XCode. Тогда я очередной раз убедился в том, что у JetBrains невероятно крутые IDE

Функционала намного больше чем в других и работает иногда даже лучше чем другие. Мои коллеги iOS разрабы поработав в андроид студии теперь завидуют и говорят что тоже хотят крутую IDE

Мораль сей истории такова, что надо просто сделать Invalidate caches and restart и дальше наслаждаться хорошей IDE

Вообще интересно кто в какой IDE пишет код на Android

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

А что говорить про практические предметы связанные с программированием, то в основном они были направлены на один язык и были залочены на определенных технологиях/подходах. Наверное самым либеральным предметом у нас был ВЕБ, там можно было писать на чем угодно.

Но у этого все есть один неявный плюс, я успел пописать на разных языках и посмотреть как оно в других мирах. Если позволите языковой туризм)

Писать на 4к аудиторию это интересно, тоже хочу быть тысячником, подписывайтесь, пожалуйста 😎 @srggrch

@aydarmukh @ruggerprogrammr @mobileunderhood Да за что вам пиво? У меня студия стабильно крешится по нескольку раз в день. Причём появилось совсем недавно.
Кстати последний странный баг который был у меня в студи: у меня постоянно сбрасывался Build Variant, после каждого перезапуска, ужасно бесило, но уже пофиксали twitter.com/vit_ius/status…

На сегодня я думаю пока что закончим, а уже завтра мы поговорим про кроссплатформу, KN и что нибудь ещё интересное!)

Вторник


@mobileunderhood Нестареющая классика vk.com/wall-166578169…
Хороший мем, вот с картинкой, что бы удобнее twitter.com/logfooot/statu…
notion image

Всем привет, сейчас я чуть чуть поработаю и мы начнем тему про кроссплатформу. Хочу сразу сказать что вряд ли это будет что то из разряда докладов Александра Ефременкова, где мы сравним все подходы и придем к С++, это скорее будут сводки с боев и рассказы о том где было больно

Первым делом давайте познакомимся. Как говорится 1 лайк = 1 факт о том как я пришел к Android и разработке в целом. Но если лайки ставить не будете я все равно напишу "биографический" тред)
Как то много тут лайков набралось, придется придумывать... twitter.com/mobileunderhoo…

Ура еще один опрос Сколько мобильных платформ вы поддерживаете

Если ли у вас кроссплафторменный код? (Будет круто если вы расскажите про то что с помощью него у вас реализовано)

Думаю рассказ про мой опыт с Kotlin Multiplatform (далее просто МП/MP) стоит начать с небольшого предисловия. Я занимаюсь разработкой приложения для отслеживания своей активности для лыжников и сноубордистов

У нас уже больше 1.5 года была вынесена часть логики в МП, это была логика определения состояния пользователя, будь то отдых, подъем на подъёмнике или райд. Там в основном алгоритмы, но не простые и хотелось иметь single source of truth на обеих платформах...

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

План изначально был такой: Потестить МП на каких нибудь простых экранах Перенести туда Нетворк слой Перенести базу Перенести вью модели Перенести сервисы Перенести разные инфраструктурные вещи Перенести все что можно ------ Мы сейчас тут ------ Профит!

Уже был вопрос про UI, сейчас разрабатываются разные библиотеки, которые позволяют описывать UI в МП, но мы решили их не использовать, потому что все ещё сырое(

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

Но если с детектором активности все было гладко, то тут начались проблемы. Первым делом у нас стрельнул Ktor (http клиент/сервер на котлине), который ни в какую не хотел работать на iOS. Проблема была с многопоточностью, которая в KN реализована довольно интересным способом...

... сейчас я не буду рассказывать об этом, но если интересно есть хорошая статья в двух частях про это Kotlin Native Stranger Threads medium.com/@kpgalligan/ko… medium.com/@kpgalligan/ko…

Проблема в том, что при компиляции андроид приложения это не играет роли, потому что таргетом для сборки МП является jwm (на самом деле android, но в общем суть одна). А под iOS пока все не очень круто и ктор не умеет нормально работать на бек граунде и ..

При запуске в бекграунд потоке происходит freez (объект пытается стать иммутабельным) и все ломается. Поэтому в конечном итоге мы пришли к тому, что у нас два разных клиента, реализованных через expect/actual (про них чуть позже). Для таргета android это ктор...

...а для iOS это UrlSession

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

... за жизненным циклом простую логику. Тоже самое с нашими базовыми ViewModel и с некоторыми другими компонентами где нужны классы из платформенного SDK

Выглядит это примерно вот так: На первом скриншоте экспект класс, а на втором его платформенная реализация для Android
notion image

... сейчас я не буду рассказывать об этом, но если интересно есть хорошая статья в двух частях про это Kotlin Native Stranger Threads medium.com/@kpgalligan/ko… medium.com/@kpgalligan/ko…
Если когото эта тема заинтересовала, то есть крутые ребята, у которых есть много материалов и библиотек для МП: @Touchlab @KotlinMPP twitter.com/mobileunderhoo…

@mobileunderhood @disablesilence да, будет интересно послушать. А есть какой-то демо проект на 2-3 скрина?
На сколько я помню у JetBrains есть проект, в котором примерно такой подход был, думаю это оно github.com/JetBrains/kotl… twitter.com/pingwinator/st…

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

Бегом читать @SrgGrch, он больше не верит в плоскую землю и не снимает тиктоки! twitter.com/mobileunderhoo…
notion image

Покидайте плейлисты для написания кода, если у вас такие есть и вы слушаете музыку во время работы

Наши бекграунд сервисы в конечном итоге были перенесены в МП, но все ещё стартуются из приложения

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

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

В целом иногда больно, но пользоваться можно

Если когото эта тема заинтересовала, то есть крутые ребята, у которых есть много материалов и библиотек для МП: @Touchlab @KotlinMPP twitter.com/mobileunderhoo…
Кончено же я имел ввиду @TouchlabHQ! twitter.com/mobileunderhoo…

Увы, сегодня у меня какой то дикий завал по работе получился, так что тему МП мы обязательно продолжим завтра!)

Среда


Рандомный факт, NVidia GeFroce Expirience показывает фпс в эмуляторе, хз на сколько точно, но показывает
notion image

В продолжения треда про МП хочется поговорить про наш опыт разработки с точки зрения распределения задач

Не каждый свифт разработчик захочет писать на котлине и не у каждого есть достаточно опыта. В данный момент на моем проекте 2 андроид разработчика и 3 iOS. Говоря про iOS разрабов есть один довольно опытный и два джуна. Они все не против писать на котлине, но...

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

... такие случаи бывают только тогда когда надо проверить "а заведется ли на ${platformName}".

Мне, как андроид разработчику, было не сложно втянутся в МП, единственное пришлось подучить Ktlin DLS для градла и немного покопаться в самом градле для сетапа всей этой истории. Так же сначала было разобраться с моделью потоков KN, которая вступает в игру на iOS

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

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

@mobileunderhood Странный вопрос. Как вообще можно работать программистом, не пользуясь stackoverflow, tutorialspoint, w3schools и прочими источниками - не понимаю. Это какой-то восемнадцатый век.
Английский я знаю, но думаю некоторые делают вот так) twitter.com/AlbertAbuzarov…
notion image

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

Кстати еще один рандомный факт про железо. Когда я собирал себе домашний ПК я боялся что на AMD Ryzen будет плохо работать эмулятор Android, потому что слышал про проблемы с виртуализацией. Комп на райзене я в итоге собрал, полет в эмуляторе отличный! Работает все супер

Давайте начнем с студенческого комьюнити. Я организатор Blurred Education и мы проводим разные митапы, доклады и воркшопы ориентированные на студентов. Много чего мы делаем своими силами, но иногда бывают и приглашенные гости, программисты из разных компаний или...

... коллаборации с другими сообществами, например с FP Community новосибирским.

Наши эвенты посещают от 20 до 150 человек и мы этим гордимся. Одновременно у нас обычно действуют 3 направления: Web, Mobile и Data Engineering, но и есть эвенты которые не посвящены этим темам

Сейчас мы члены сообщества HackClub (github.com/hackclub/hackc…) и скоро будем Google DSC (Developer Student Club), и надеюсь в следующем учебном году стартанем как никогда ранее

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

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

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

У нас даже появились несколько грандиозных планов: Провести хакатон и CTF (Capture The Flag)

Если вы новосибирский студент, то мы вас ждем у нас в сентябре, придумаем что нибудь интересное)

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

Вообще мы уже достаточно долго планируем сделать что-то вроде Data-пиво или что нибудь такого. Где будем собираться в баре и обсуждать всякие штуки по интересам. У нас в Новосибирске уже есть такая штука в МЛ тусовке, надеюсь скоро снимут самоизоляцию и оно будет у нас

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

Четверг


Сегодня у нас тема про китайские прошивки и работы в бекграунде. Начать определенно стоит с опроса) В вашем приложении есть Foreground сервисы?

Вас убивают на хуавеях, хонорах и сяоми?

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

Больше всего проблем именно с хуавеем и что самое смешное там в настройках есть раздел где можно как бы сказать не убивайте меня. ХУЙ все равно убивают.

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

Мы уже перепробовали много чего и узнали что: Хуавей убивает джобы, которые зашедулены, либо блокирует интенты на старт сервера. Мы пытались сделать какой то механизм рестартов, но после всех попыток у нас ничего не вышло
Если вам не лень, то делитесь своими подходами, будем обсуждать) twitter.com/mobileunderhoo…

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

Как говорит мой директор, "поотрывать бы руки вендорам за такое"

@denis_bezrukov_ @mobileunderhood А зачем так сложно? Что мешает создать свой бинарь с ид стравы и посмотреть, убивает ли ось приложуху или нет
КСТАТИ мы нашли ультимативный лайфхак. Если в applicationId содержится слово alarm, то приложение не будут убивать! Проверено на нескольких хуавеях Оо twitter.com/pingwinator/st…

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

Кстати если кому то вдруг интересно, то вот так вот выглядит мой маленький проектик, пока не ембедед, но скоро, надеюсь, он станет терминалом. Вообще если вам интересно, то я могу в выходные чуть чуть рассказать про JWM + Serial Port + купюроприемник:з
notion image

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

Пятница


Ура вот мы и добрались до хакатонов думаю можно пойти прям по порядку:

notion image

Все началось совершенно случайно. Я опаздывал на пару и прямо перед походом мне написал знакомый из магистратуры и сказал что нужна команда на хакатон прямо сейчас. Я согласился и сразу набрал @batyshkaLenin и ещё одному одногруппнику. Мы все быстро нашли ноуты и понеслось

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

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

Кстати говоря это было на первом курсе.

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

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

notion image

Это был урбатон, хакатон от компании Контур. У нас была огромная, по меркам хакатонов, команда целых 8 человек. 2.5 бекендера, 2 мобильщика, 2 фронтендера, 1 дизайнер и 1 дата инженер. Мы пилили приложение гид по интересным местам городов...

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

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

В итоге меня разбудили @drunkdba и @batyshkaLenin с прекрасной фразой "Юра переписал все на ангуляр" и тут я ничего не понял, протер глаза, ещё раз ничего не понял и пошел смотреть. Когда я подошёл я вроде как увидел что то что похоже на бек, НО!

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

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

Пока я спал пацаны переписали весь проект с реакта на ангуляр Это самый дикий пранк вышедший из под контроля
Так сильно я ещё никогда не орал))))) сводки прямиком с поля боя можно прочитать тут: twitter.com/batyshkaLenin/…

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

notion image

CASE-IN всероссийский кейс чемпионат и вот впервые тут есть it case. Чат бот для Росатом. Звучит прикольно, но в мл никто не умеет. Сидим и понимаем что он вряд-ли должен быть весёлым и уметь шутить, а должен понимать команды и выполнять рудные действия в юзер френдли виде

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

... добавляли ответы

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

Кстати опрос) Вы участвуете в хакатонах? Комментарии и истории приветствуются)

@mobileunderhood Не сняли, просто он на другом урле nuckles.blur.tech
Если кто то хочет потыкать бота, то он есть по этой ссылке! nuckles.blur.tech twitter.com/batyshkaLenin/…

Мы не победили, потому что у нас не была достаточно проработана аналитика и оценка стоимости. Тем не менее к нам подходил техдир ГринАтома и говорил что топит за нас, а там сидят лапухи которые ничего не понимают в жюри. Мы заняли второе место с отрывом в 1%...

Победила команда у которой кроме презентации не было ничего, обидно, но пережили

Пока что были падения и недолеты, так что перейдем к взлету

notion image

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

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

Вот так и получилось наше первое место на хакатоне, после 48 часов потного программирования! Кстати у нас должен был быть фронт, но в итоге получилось только мобильное приложение, как вы уже могли понять с фронтом у нас всегда были траблы...

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

Из интересного, кто то написал нейронку на 1С, это был не наш трек, но звучит круто)

А потом был... Финал

notion image

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

Суббота


Ребят, очень странная просьба наверное для такого аккаунта, но вдруг сработает) Сегодня у моей девушки день рождение и будет прикольно если те кому не лень напишут что нибудь вроде "@skakalinap69 с днём рождения!" 😅

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

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

Город кстати довольно красивый и мне запомнился своей старой, более европейской, как мне показалось, архитектурой.

Как вы считаете, если человек пишет под одну из платформ, должен ли он пользоваться ей? Например что бы у Андроид разработчика был телефон на андроид и влияет ли это на что то?

Лично я считаю что да, как минимум это даёт общее понимание выписывается ли то что ты делаешь в общие концепции UI на системе и выглядит ли это все консистентным

Хакатон шел 48 часов, если мне не изменяет память, или 36. Скорее всего 36. Мы попали на кейс Ростелекома и главной целью продукта который нам предстояло разработать, была мативация людей сдавать мусор раздельно, мы долго прорабатывали финансовый аспект проблемы

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

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

Через 12 часов мы уже поддерживали 85 городов России и могли показывать для них карты и пункты приема.

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

Мы злажали с презентацией фронта для аналитики , наверное не стоило его показывать вовсе и нас уделала фигма. Мы заняли 2е или 4е место, я точно не помню из ~20 команд на нашем треке.

Было обидно, команда приуныла, но я не сильно огорчился. Обидно? Да! Получил ли я бесценный опыт? Тоже да! Конечно потом нам предлагали 500к гранта, но гос гранты это конечно хорошо (кхм), но мы отказались)

Воскресенье


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

Первым делом давайте познакомимся. Как говорится 1 лайк = 1 факт о том как я пришел к Android и разработке в целом. Но если лайки ставить не будете я все равно напишу "биографический" тред)
Тред с тредами: О себе: twitter.com/mobileunderhoo…

Давайте поговорим про ̷п̷л̷о̷с̷к̷у̷ю̷ ̷з̷е̷м̷л̷ю̷ образование
Образование: twitter.com/mobileunderhoo…

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

Думаю рассказ про мой опыт с Kotlin Multiplatform (далее просто МП/MP) стоит начать с небольшого предисловия. Я занимаюсь разработкой приложения для отслеживания своей активности для лыжников и сноубордистов

В продолжения треда про МП хочется поговорить про наш опыт разработки с точки зрения распределения задач

Опять небольшая предыстория. У нас в приложении есть форграунд сервис, который отслеживает местоположение юзера и в один момент бы поняли что китайские телефоны нас убивают. Этот факт уже стал мемом офисе.
Бекраунд и хуавей, там треда особо не получилось, но в районе этого твита будут другие: twitter.com/mobileunderhoo…

Давайте начнем с студенческого комьюнити. Я организатор Blurred Education и мы проводим разные митапы, доклады и воркшопы ориентированные на студентов. Много чего мы делаем своими силами, но иногда бывают и приглашенные гости, программисты из разных компаний или...

Ура вот мы и добрались до хакатонов думаю можно пойти прям по порядку:

В оставшеся время попробую придумать что нибудь интересно про терминал, но если у вас остались какие нибудь вопросы, то задавайте!

после этой неделе жду всех в моем твиттере, подписывайтесь! @SrgGrch

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

Ты можешь смотреть по сторонам, трогать все, у тебя реально две руки а не мышка это невероятное погружение. Первым делом я установил Half Life Alyx и Beat Saber. Первая просто эталон ААА игра для ВР и думаю о ней слышали даже те кто не интересуется этим, маст плей

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

Самое забавно то что ты реально устаешь от ВР физически, и это уже какая ни какая нагрузка и наверное чуть чуть полезная) потом я поиграл в super hot и I expect you to die тоже прикольные игры, жаль что супер хот очень быстро проводится

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

Ссылки