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-сцена, за три минуты вводящая пользователя в принципы программирования: затрагиваются переменные, условия, массивы, их сортировка и циклы.
В свободное от учебы время Захарченко занимается разработкой приложений для 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.
Для участия в 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».
© vc.ru