Оффтоп Philipp Kontsarenko
18 895

5 российских студентов, которых Apple пригласила на WWDC 2017

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

В закладки

Каждый год в начале лета Apple проводит WWDC — конференцию, на которой компания представляет новые версии программного обеспечения — iOS, macOS, watchOS, tvOS — и проводит встречи с инженерами, на которых они делятся с разработчиками советами по созданию продуктов.

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

Филипп Захарченко. 16 лет, Москва

Филипп Захарченко и Тим Кук

Ученик 10 класса московской экономической школы «Зайцево» Филипп Захарченко выиграл поездку на WWDC второй год подряд: при этом, если в прошлом году он посещал конференцию по программе для школьников, то в 2017 году он участвовал уже в конкурсе для студентов.

Захарченко рассказал, что начал изучать программирование в 12 лет, а его первым языком программирования стал Visual Basic: «В какой-то момент, работая над социальным веб-сервисом, я осознал, что будущее, скорее всего, не за сайтами, а именно за приложениями. А основным толчком для меня стал релиз Swift».

«Язык пришлось изучать самостоятельно: при помощи документации и немногочисленных инструкций. Swift хорошо структурирован и достаточно прост в освоении — поэтому на изучение основных принципов и создание первого приложения to-do list ушло менее недели», — рассказывает разработчик.

Я достаточно долго думал над тем, какой проект реализовать [в 2017 году], ведь Swift Playgrounds является специфической платформой, направленной на образование. В какой-то момент я вспомнил видео с WWDC 2016 "Everyone Can Code", и подумал, что можно было бы создать интерактивную сцену, на которой за короткое время объяснялись бы основные принципы программирования в общем и использования языка Swift в частности.

В итоге получилась 3D-сцена, за три минуты вводящая пользователя в принципы программирования: затрагиваются переменные, условия, массивы, их сортировка и циклы.

{ "items": [{"title":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f \u0438\u0433\u0440\u0430 \u0434\u043b\u044f \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0432 WWDC 2017","image":{"type":"image","data":{"uuid":"https:\/\/png.cmtt.space\/paper-media\/c0\/4f\/2c\/2673009f2b8b26.jpg","width":1360,"height":1023,"size":0,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"https:\/\/png.cmtt.space\/paper-media\/92\/72\/6b\/ea86a06e332cc6.jpg","width":1360,"height":1019,"size":0,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"https:\/\/png.cmtt.space\/paper-media\/71\/c7\/07\/f44057362f4957.jpg","width":1360,"height":1018,"size":0,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"https:\/\/png.cmtt.space\/paper-media\/8d\/de\/0c\/27405d19053ed6.jpg","width":1360,"height":1016,"size":0,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"https:\/\/png.cmtt.space\/paper-media\/66\/2c\/e6\/9f1f15d4737c1b.jpg","width":1360,"height":1024,"size":0,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"https:\/\/png.cmtt.space\/paper-media\/ad\/04\/ab\/4c8883812f2e13.jpg","width":1360,"height":1021,"size":0,"type":"jpg","color":"","external_service":[]}}}] }

В свободное от учебы время Захарченко занимается разработкой приложений для iOS, macOS, watchOS, tvOS. Среди них мобильный трекер для отслеживания дедлайнов Deadliner, карты для iOS с дополненной реальностью Extmaps, виртуальная клавиатура для ученых с греческим алфавитом GreekType, macOS-конвертер для создания GIF ZetGIF и таймер для перевода компьютера в спящий режим Sleep App.

Также Захарченко работает iOS-разработчиком в итальянском стартапе AnyPark и является сооснователем платформы для создания интерактивных пользовательских форм, опросов, голосований CrowdBack.

«За счет совершенно различных типов вопросов достигается высокая конверсия самой формы. В режиме реального времени можно получить такие данные, как эффективность опроса, посещаемость, количество участников, наиболее частые ответы, рекомендации, слабые и сильные стороны компании», — поясняет разработчик. По его словам, CrowdBack все еще находится в разработке, но уже получил первые инвестиции.

После школы Захарченко планирует переехать в США, чтобы продолжить обучение в университете: «Достаточно давно я начал рассматривать эту страну как возможность для поступления в университет. Поездка в США и на WWDC в частности позволила мне конкретизировать мой выбор».

Андрей Володин. 21 год, Воронеж

Андрей Володин выиграл поездку на WWDC второй год подряд. В 2016 году Apple пригласила его благодаря разработанному им алгоритму с использованием технологии Metal, который ускорял обработку графики в сто раз.

После первой поездки в Сан-Франциско разработчик начал преподавать Swift в университете: «Мои пары стали очень популярными, приходили даже студенты из других факультетов, спрашивали, можно ли посидеть послушать».

Володин рассказывает, что изначально решил попробовать Swift на волне интереса к новому языку программирования, при этом знакомиться с ним пришлось самостоятельно: «У нас в Воронеже на тот момент о нем даже не слышали». Язык привлёк его возможностями «из коробки»: «После него возвращаться к C/C++ бывает больно. Swift подкупает огромным сообществом разработчиков — чтобы ты не захотел, скорее всего, это уже есть на GitHub».

«Пожалуй, самый главный недостаток является и его преимуществом — Swift Evolution. Это одна из фундаментальных вещей, которая делает Swift тем, что он есть, но я, например, уже год не могу портировать старый проект с Swift 2.3 на 3.x, так как конвертор просто не справляется», — считает Володин.

После WWDC 2016 у меня появилась безумная идея портировать мой игровой движок, созданный под iOS и macOS, на другие платформы, используя тот же Swift.

Я написал письма людям из сообщества разработчиков Swift — некоторые из них работали в Apple и Facebook, и таким образом попал в закрытый канал в Slack, где мы общались с влиятельными программистами на равных — несмотря на то, что мне всего 20 лет. Часто общался с разработчиками из Аргентины в чате, а по ночам моя мама не понимала, почему я не сплю и говорю по-английски.

Андрей Володин

В конце декабря 2016 года Володин портировал свою разработку для iOS и macOS на Linux. Он предполагал, что сможет представить проект как заявку на участие в WWDC в 2017 году.

Я написал о своей разработке в Twitter, и заметку «лайкнул» Крис Латтнер — создатель Swift. Однако мои последующие планы были полностью разрушены из-за того, что полностью сменился регламент на студенческую стипендию WWDC 2017. Было понимание, что Apple не сильно интересуют твои прошлые заслуги.

Андрей Володин

«Ко мне вновь пришла безумная идея, — рассказывает Володин. — Как вы знаете, процессор в устройстве быстрый, но исполняет команды последовательно, при этом графическая карта даёт возможность исполнять, например, 40% команд одновременно, но каждую из них медленнее. С учетом того, что я увлечен технологией Metal, у меня возникла идея написать игру, которая полностью рассчитывалась бы на графической карте, чтобы на стороне процессора ничего не происходило с точки зрения логики и отрисовки».

По словам разработчика, первые прототипы появились всего за четыре дня до дедлайна подачи заявок в Apple: «За считанные часы до срока я тестировал версию через нескольких друзей на их устройствах, и подался прямо перед закрытием. Это, конечно, был больше эксперимент, нежели реальная цель. Получилось красиво — сама игра отрисовывается не с помощью вершинок, а с помощью шейдера. Она получилась неоновая, красивая. Своей идеей для WWDC 2017 я решил изменить парадигму, когда задействуется только одно состояние процесса».

Яна Валиева. 21 год, Ростов-на-Дону

Яна Валиева — единственная девушка-разработчик из России, номинированная на стипендию Apple. Она учится на четвертом курсе Южного федерального университета и подала заявку для участия в конференции благодаря преподавателю курса iOS Development, на котором изучают разработку на Swift.

Для участия в WWDC Валиева разработала игру реверси, в которой пользователь может соревноваться с компьютером.

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

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

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

Яна Валиева

В своём университете Валиева проводит мастер-классы по компьютерным наукам — в том числе для программы Microsoft Student Partners — и занимается разработкой системы оценки навыков вождения: «Я написала приложение для iOS-устройств, которое собирает показания датчиков, отправляет их на сервер в облаке и предоставляет пользователю результаты эксперимента. С помощью алгоритмов машинного обучения сервер выполняет оценку навыков вождения пользователя».

Вадим Захаренко. 20 лет, Москва

Вадим Захаренко учится на третьем курсе факультета вычислительной математики и кибернетики МГУ, где изучает машинное обучение, разрабатывает open-source-инструмент для тематического моделирования BigARTM (тематическое моделирование решает задачи определения тем в документах; поиска, классификации, аннотации коллекций документов и новостных потоков) и работает iOS-разработчиком в компании Jufy, где занимается проектом, связанным с криптографией и нейросетями.

Разработчик рассказал, что познакомился со Swift благодаря своему другу Ивану Грачеву — победителю WWDC Scholarship 2016 года: «Было просто эстетически приятно открыть Xcode, чтобы начать писать что-то на Swift». При этом первым опытом iOS-разработки для него стало приложение Google Maps Timeline для iOS, над кодом которого он работал во время стажировки в Google.

Google Maps Timeline для iOS

Для участия в WWDC 2017 разработчик создал базу для многофункциональной библиотеки машинного обучения на языке Swift.

Сейчас в App Store очень популярны приложения, которые используют машинное обучением и нейросети. В основном, это работа с графикой, например, приложения Prisma, MSQRD, Fabby. Чаще всего, все вычисления происходят на сервере, либо на клиенте используется библиотека C++, которая интегрируется потом со Swift или кодом Objective-C.

Идея моей заявки на WWDC заключалась в том, чтобы сделать базу для удобной и многофункциональной библиотеки машинного обучения на чистом Swift — то есть сделать процесс использования машинного обучения в iOS-приложении проще.

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

Вадим Захаренко

Александр Даниляк. 21 год, Москва

Александр Даниляк учится на пятом курсе МФТИ и является сооснователем проекта ColorMe — технологии для определения цветотипа человека. С ее помощью бизнес в бьюти-сфере может таргетировать свои товары под конкретных людей по фотографии — например, по обычному селфи.

«В качестве клиентов мы рассматриваем интернет-магазины одежды и косметики, салоны красоты и бьюти-издания. Мы предоставляем нашу технологию в виде SDK и API», — рассказывает разработчик.

В 2014 году Даниляк вместе с четырьмя разработчиками создал команду, которая участвовала в различных хакатонах: PayPal Battlehack 2014, Skoltech Hackathon. В 2015 году его команду отобрали для участия в Facebook Finals 2015 — мероприятия проходило в штаб-квартире Facebook в Калифорнии.

«Во время всех хакатонов я был ответственным за UI/UX и iOS-реализацию. Потом был перерыв, команда распалась, и уже с новой командой я вернулся к хакатонам через пару лет: поучаствовали в MLH Junction 2016 в Хельсинки и получили награду за наилучшее использование AWS в конкурсе HackUPC Winter 2017 в Барселоне. Некоторые из проектов, реализованных в рамках хакатонов, переросли в самостоятельные стартапы, например, ColorMe», — рассказал разработчик.

Разработкой приложений Даниляк увлекся на втором курсе университета, при этом в качестве платформы для обучения выбрал виртуальные уроки Stanford University с курсом iOS Application Development.

К моменту изучения Swift, я уже был знаком с C++, Java, Python и Objective-C, то есть некоторый опыт изучения языков уже был. Также, многие подходы из iOS-разработки одинаковы для Objective-C и Swift.

Лучшие источники, чтобы познакомится с языком:

— Официальная книжка от Apple. Написана на простом английском, есть примеры кода. Очень хороший вариант.

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

Затем нужно изучить UIKit для создания приложений или 2D/3D-движки для создания игр. Для изучения и того и другого отлично подойдут следующие материалы:

Raywenderlich.com — сайт с туториалами для программирования под все современные платформы. Отлично написано, все моменты подробно объяснены, есть как простые, так и сложные.

Appcoda.com — тоже хороший сайт с туториалами.

Александр Даниляк

Для участия в WWDC разработчик написал простейшую игру в 8-битном стиле: «Хотелось попробовать что-то новое, поэтому писал ее для macOS и пользовался фреймворком для 2D игр от Apple: SpriteKit».

#wwdc

{ "author_name": "Philipp Kontsarenko", "author_type": "editor", "tags": ["wwdc"], "comments": 29, "likes": 50, "favorites": 36, "is_advertisement": false, "subsite_label": "flood", "id": 23796, "is_wide": false, "is_ugc": false, "date": "Tue, 16 May 2017 08:48:34 +0300" }
{ "id": 23796, "author_id": 4, "diff_limit": 1000, "urls": {"diff":"\/comments\/23796\/get","add":"\/comments\/23796\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/23796"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

29 комментариев 29 комм.

Популярные

По порядку

Написать комментарий...
13

Парни молодцы большие, особенно девушка! А ты сидишь на диване и исходишь слюной, пока школьники ездят в Калифорнию :laughing:

Ответить
16

совершенно верно. Только не "ты", а "мы"

Ответить
9

Офигеть, и это в 16 лет! В приятном шоке от нашей молодёжи!

Ответить
5

Если честно сам язык Swift не выглядит перспективным, даже если его и выбрали как второй Apple. Но тем не менее сейчас не об этом.

Таких молодых людей по (нашей, я говорю о нашей) стране сотни, чаще всего они заканчивают свою динамику на производстве каких-то небольших приложений и сама дорога в большой Айти бизнес для них закрывается. Будем честны, такими как Дуров они навряд-ли станут, но в этом скорее беда нашего экономического строя. В нашей стране с населением в два раза меньше чем в США и в почти 10 чем в Китае присутствует достаточно высокая концентрация золотой молодежи (Я не о мажорах говорю, а вот о таких умах). Вполне логичным было бы создание особенных экономических зон для ИТ бизнеса. Как ранее предлагал тот-же Дуров грамотным решением (на мой взгляд) является превращение из Крыма в IT офшор. Унификация и снижение налогов (в том числе и для фонов), дебюрократизация, laissez-faire, упрощение визового режима для стран ЕС (Хотя безусловно это должно согласовываться с ФСБ) - все это и еще многое другое являются ключом для создания благоприятной атмосферы для девелоперов и ученых.

Ответить
5

Крым под санкциями, в том числе многих IT компаний, насколько я знаю. Плюс он не признан почти никем — мало вероятно что кто-то туда поедет.

Мне думается, тут проблема архитектурная и даже если сейчас будут какие-то начинания, то результат все равно окажется в стиле Роснано и Сколково.

Ответить
1

К сожалению это правда. Санкции очень сильно мешают.

Сколково и Роснано не работают по принципу laissez-faire, вот именно поэтому мы и видим бессмысленные траты на почти бессмысленные проекты. Нужно чтобы в их деятельности был заинтересован рынок, а этого к сожалению нет.

Ответить
2

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

Ответить
6

Бедный мальчик, в 16 лет гей из запада пропагандирует ему нетрадиционные отношения. Как сказал бы Милонов, забанить Apple, Кука и VC.

А если серьёзно, то вау. Рад за ребят. Они талантливы и этого заслужили.

Ответить
0

Фотка, где пацана обнимает Тим Кук, - хм....

Ответить
19

Пропал пацан :( а вот если бы как нормальный парил вейпы в падике – может чего и выросло из него!

Ответить
0

Поцелуй в живот от ввп его исцелит (:

Ответить
–10

Самых лучших забирают, суки

Ответить
7

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

Ответить
0

Сами они никуда не уедут без помощи спонсоров. А вот средний айкью в России упадёт после их отьезда. Чему тут радоваться?

Ответить
0

Радоваться нужно тому, что умный и активный человек нашёл место для максимальной самореализации.

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

Ответить
3

Совковое мышление.

Даже если один из пяти вернёться и будет делать страну лучше - это всё равно лучше чем пять из пяти будут тухнуть на диване.

Ответить
0

Вернёться, как же

Ответить
1

Всё хорошо, но у меня маленький вопрос:
почему на сайте BigARTM написано Konstantin Vorontsov (профессор РАН, д.ф.-м.н. как я понимаю), а в статье кто-то другой ?

Тогда уж не разрабатывает, а участвует в разработке, наверное будет более корректно. Или я не прав, просветите !

Ответить
4

Безусловно, я участвую в разработке в составе научной группы Воронцова Константина Вячеславовича - автора идеи и руководителя проекта.

Ответить
1

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

Ответить
1

Поздравляю. Желаю добиться выдающихся успехов.

Ответить
1

Почему у вас тоже мысли о том же, а ?

Ответить
0

Журналисты спецом самую провокационную фотку в топ поставили.
Манипулируют нами, бессовестные.

Ответить
0

Хорошее фото в анонсе - гарантия успеха !

Ответить
1

Где же Тим держит свою руку?

Ответить

Комментарий удален

0

В мои 32 статья меня очень мотивирует! )
спасибо.

Ответить
–29

Своих мозгов нехватает, побираются по миру.

Ответить
–9

Минусаторы, вы считаете что программы по привлечению умных людей из других стран, это не высасывание интелектуального капитала из них?

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Хакеры смогли обойти двухфакторную
авторизацию с помощью уговоров
Подписаться на push-уведомления