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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

f032b2c3c535f3.jpg

Андрей Володин выиграл поездку на 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 год, Ростов-на-Дону

5f7b8d03e0cfa5.jpg

Яна Валиева — единственная девушка-разработчик из России, номинированная на стипендию 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.

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

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

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

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

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

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

d5a01f1e2636c4.jpg

Александр Даниляк учится на пятом курсе МФТИ и является сооснователем проекта 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».

©  vc.ru