Программа рассчитана на начинающих и опытных специалистов в области IT, однако присоединиться к лекторию можно с любым бэкграундом.
Ссылки на онлайн-трансляции будут доступны после регистрации.
Для всех желающих мы также организуем трансляцию лекций онлайн: можно будет не только прокачать знания, но и выиграть призы.
До встречи в июле!
06.06
Эта трансляция — пролог. Вы познакомитесь с основными персонажами, локациями и особенностями прокачки. А также сможете получить ценные артефакты вселенной Young&&Yandex.
07.06
В этой лекции мы разберёмся, что такое Node.js. Обсудим историю и архитектуру платформы, границы применимости и то, как мы используем Node.js в Яндексе. Вы узнаете про то, как правильно писать код для Node.js, какую модульную систему выбрать и какие на рынке существуют фреймворки. А так же затронем вопросы инструментов разработчика.
09.06
10.06
Немного посмотрим на то как гит устроен внутри, и в каких состояниях могут находится файлы которые он контролирует.
Разберемся с самыми распространенными ситуациями в которых что-то может пойти «не так» и научимся не бояться потерять что-то в истории коммитов.
13.06
14.06
На лекции мы поговорим о том, для чего нужна типизация в современном вебе, об ее истоках и развитии. Остановимся на TypeScript — системе типов, которая победила всех. Рассмотрим простые типы и практические рекомендации.
15.06
Рассмотрим Typescript с точки зрения теории множеств, разберем контроль выполнения и дженерики.
16.06
Разберём домашнюю работу, попробуем найти основные ошибки.
19.06
19.06
Познакомимся с одной из популярнейших библиотек для создания пользовательских интерфейсов и научимся эффективно использовать ее возможности.
21.06
Продолжаем изучение React. Разберемся в более продвинутых темах и поговорим про эффективное использование и оптимизацию приложения с react.
22.06
Выполняется получение данных. Подождите несколько секунд, а затем еще раз попробуйте вырезать или скопировать.
26.06
26.06
Поговорим об автотестах и о том, почему необходимо их писать. Познакомимся с видами тестирования — модульным и интеграционным. Подробно поговорим о модульных тестах: как изолировать внешние зависимости, как тестировать взаимодействие с другими модулями. Попробуем написать модульные тесты для приложения на React. Рассмотрим наиболее эффективные приемы, которые помогут писать полезные тесты и легко их поддерживать.
Часть 2. «Интеграционное тестирование»
Лекция посвящена введению в интеграционное тестирование. В первой части поговорим о том, что такое интеграционное тестирование и чем оно отличается от модульного. В каких случаях нужно писать модульные тесты, а в каких — интеграционные?
Вторая часть лекции посвящена автоматизации интеграционных сценариев. Настроим инфраструктуру для автоматизации интеграционных тестов в браузере и рассмотрим инструмент, используемый в Яндексе для написания автоматических интеграционных тестов.
28.06
Ответим на вопрос: «Что такое доступность, кому она нужна и зачем?» Расскажем про скринридеры и другие ассистивные технологии. Покажем, как сделать интерфейс, с которым смогут взаимодействовать разные группы пользователей: от самых основ, как обеспечить доступность с помощью нативных HTML тегов, до продвинутых техник: какой нужно писать JavaScript и как правильно использовать ARIA-атрибуты.
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
03.07
Обсудим, что такое производительность веб-страниц и от чего она зависит. Также поговорим про основные показатели и инструменты для их мониторинга, рассмотрим основные подходы к оптимизации скорости загрузки веб-приложений.
06.07
На лекции расскажут о том, когда и как появился процесс сборки веб-приложений и как можно переиспользовать подход к настройке параметров ML-модели, чтобы улучшить сборку. Вы узнаете об архитектурном устройстве webpack: как и зачем в нем появились те или иные абстрации и как эти абстрации увидеть вживую. Обсудите стандартные техники: chunk splitting, innerGraph tree shaking, dynamic imports, minimizers, deadcode ellimination, module concatenation.
Лектор объяснит, почему к сборке стоит относиться как к продуктовой фиче и за какими метриками стоит следить, чтобы вам и вашим пользователям было комфортно.
10.07
Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое vim и как из него выйти.
12.07
Разберемся с самыми сложными темами JavaScript. Поговорим о преобразовании типов, метапрограммировании, прототипном наследовании, контексте, возможностях коллекций, итераторах и генераторах, модулях.
14.07
17.07
Разбор задач по темам «Сортировка событий» и «Деревья»
17.07
19.07
Как создавать графические эффекты и анимации при помощи CSS, JS, SVG, Canvas и WebGL, что эффективнее использовать в разных ситуациях. Познакомимся с аудиотегом и Web Audio API для работы со звуком. Рассмотрим API браузера для синтеза и распознавания речи.
Поговорим о способах применения видеотега для отображения роликов. Разберем понятия стриминг, кодек и контейнер. Узнаем, как Стив Джобс повлиял на индустрию стриминга и как плеер выбирает качество для проигрывания.
24.07
24.07
Во второй части лекции сконцентрируемся на процессе локализации. Разберем на конкретных примерах способы работы с переводами в маленькой и большой командах, посмотрим, как параллельная разработка влияет на процесс локализации. Остановимся на автоматизации и возможных способах повышения эффективности при работе с переводами.
06.06
Эта трансляция — пролог. Вы познакомитесь с основными персонажами, локациями и особенностями прокачки. А также сможете получить ценные артефакты вселенной Young&&Yandex.
08.06
10.06
13.06
В ходе лекции мы разработаем два типичных приложения: telegram-бот и сервис на основе aiohttp. Посмотрим на принципы организации кода и разберемся, когда использовать тот или иной паттерн проектирования.
14.06
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, типичных ошибках и лучших практиках. Узнаете, что такое RPС и какие бывают реализации.
15.06
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
16.06
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
19.06
Разбор задач по темам «Сложность, тестирование, особые случаи» и «Линейный поиск»
20.06
Рассмотрим протоколы простых и расширенных запросов, соединения в PostgreSQL и их ограничения, то, как устроены пулы соединений и как они позволяют обойти ограничения соединений. Обсудим, до какого порога можно наращивать количество соединений с PostgreSQL и какие проблемы при этом возникают. Как устроены и какую задачу решают прокси-пулеры соединений (PgBouncer, Odyssey и др.). Также рассмотрим масштабирование PostgreSQL, синхронную и асинхронную репликацию. Как разрабатывать отказоустойчивые приложения, как реагировать на переключение мастера и реплик на примере абстракции менеджера пулов.
22.06
На лекции поговорим о том, зачем нужны тесты и как их писать. Рассмотрим способы улучшения качества кода и избавления его от багов с помощью различных инструментов: от линтеров до E2E-тестов. Вы узнаете или вспомните, как использовать flake8, mypy, pytest, fixture, coverage, mock, factory boy, faker и многое другое. В конце посмотрим на примере, как добавить фичу в готовое API и отловить баги с помощью тестов.
26.06
Разбор задач по темам «Множества» и «Словари и сортировка подсчётом»
27.06
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
28.06
В практической части доклада мы подробно поговорим о требованиях, предъявляемых к сервису. Покажем пример того, как нужно работать с ними, чтобы правильно оценить нагрузку, которая в будущем прилетит на ваш сервис.
При помощи Облачного сервиса Load Testing в демонстрационном режиме проведем тестирование производительности экспериментального сервиса, определим его максимальную производительность.
29.06
Не лекция про Deploy.
30.06
Не лекция про Deploy.
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
06.07
На лекции мы познакомимся с асинхронным программированием в Python. Обсудим, в чём проблема синхронных приложений, какие есть решения. Узнаем преимущества и недостатки у процессов и потоков в веб-серверах. Рассмотрим, что не так с асинхронными приложениями. Затронем тему выбора между синхронным и асинхронным решением
10.07
Разработка безопасных сервисов. Расскажем о составляющих безопасной разработки с фокусом на фазу дизайна приложения и его непосредственной разработки, подсветим потенциальные проблемы.
14.07
Узнаете почему всё чаще сервисы предоставляют grpc API, что из себя представляет типичный grpc сервис и как без боли поддерживать его.
17.07
Разбор задач по темам «Сортировка событий» и «Деревья»
17.07
18.07
19.07
Разберёмся, как настроить контроль за состоянием сервиса при помощи логгирования и метрик.
20.07
24.07
Разбор задач по ранее пройденным темам.
06.06
08.06
10.06
13.06
В этой лекции поговорим об архитектуре кода, рассмотрим какие проблемы и трудности возникают при написании приложения, какие есть методики и подходы их решения, рассмотрим паттерны проектирования, взглянем на базовые аспекты Spring Framework и покажем некоторые интересные способы его применения.
14.06
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, типичных ошибках и лучших практиках. Узнаете, что такое RPС и какие бывают реализации.
15.06
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
16.06
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
19.06
Разбор задач по темам «Сложность, тестирование, особые случаи» и «Линейный поиск»
20.06
Разбираемся в работе с базой данных из Java-приложений. Поговорим о протоколах запросов в PostgreSQL. Рассмотрим соединения в PostgreSQL и ограничения, связанные с ними. Узнаем, как прокси-пулеры соединений, такие как PgBouncer и Odyssey, помогают решить задачи управления соединениями. Посмотрим, как масштабировать PostgreSQL с помощью синхронной и асинхронной репликации для распределения нагрузки и обеспечения отказоустойчивости. Обсудим ORM и миграции баз данных.
22.06
Во время лекции поговорим о том, что такое тестирование ПО, какие бывают тесты и зачем их писать.
Расскажем о библиотеках для тестирования Java: Junit5 и spock. Подробно рассмотрим unit, интеграционные и e2e тесты. Обсудим как писать эффективные тесты.
26.06
Разбор задач по темам «Множества» и «Словари и сортировка подсчётом»
27.06
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
28.06
о требованиях, предъявляемых к сервису. Покажем пример того, как нужно работать с ними, чтобы правильно оценить нагрузку, которая в будущем прилетит на ваш сервис.
При помощи Облачного сервиса Load Testing в демонстрационном режиме проведем тестирование производительности экспериментального сервиса, определим его максимальную производительность.
29.06
Не лекция про Deploy.
30.06
Не лекция про Deploy.
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
06.07
На лекции мы обсудим такие понятия как параллелизм, конкурентность и асинхронность. Разберёмся, зачем они нужны, и какие в Java есть средства для работы с ними
10.07
Разработка безопасных сервисов. Расскажем о составляющих безопасной разработки с фокусом на фазу дизайна приложения и его непосредственной разработки, подсветим потенциальные проблемы.
13.07
14.07
17.07
Разбор задач по темам «Сортировка событий» и «Деревья»
17.07
18.07
Поговорим про:
20.07
Лекция про основные этапы найма в большие it-компании. Что нужно делать и что НЕ нужно делать, чтоб максимизировать шансы попасть в компанию своей мечты. Рассмотрим лайфхаки по подготовке и действиям на собеседованиях.
21.07
24.07
Разбор задач по ранее пройденным темам.
Эта трансляция — пролог. Вы познакомитесь с основными персонажами, локациями и особенностями прокачки. А также сможете получить ценные артефакты вселенной Young&&Yandex.
12.06
Поговорим о парадигмах программирования. Обсудим набор правил SOLID, а так же познакомимся с идиомами C++ (RAII, Pimpl, CRTP)
14.06
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, типичных ошибках и лучших практиках. Узнаете, что такое RPС и какие бывают реализации.
15.06
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
16.06
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
19.06
Разбор задач по темам «Сложность, тестирование, особые случаи» и «Линейный поиск»
19.06
Рассмотрим многопоточность в С++, проблемы и их решения при написании кода, примитивы синхронизации, а также немного заглянем в корутинный движок и посмотрим на его реализацию.
20.06
Вы вкратце познакомитесь с тем, какие БД поддерживает фреймворк userver, более подробно как работать с PostgreSQL из userver, а так же как жить с изменчивой схемой данных.
22.06
В первой части рассказа мы зарберёмся, какие проблемы возникают в высоконагруженных сервисах, как их решать, и как при этом не усложнять написание повседневного кода. Во второй части, погрузися в использование одного из таких фреймворков — 🐙 userver. Разберёмся как писать серверные приложения на HTTP и gRPC, что такое динамические конфиги и компонентная система, и рассмотрим написание тестов.
26.06
Разбор задач по темам «Множества» и «Словари и сортировка подсчётом»
26.06
Вы узнаете о том, что такое тестирование, как и зачем писать тесты, их разновидности, и как делать это эффективно.
27.06
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
28.06
В практической части доклада мы подробно поговорим о требованиях, предъявляемых к сервису. Покажем пример того, как нужно работать с ними, чтобы правильно оценить нагрузку, которая в будущем прилетит на ваш сервис.
При помощи Облачного сервиса Load Testing в демонстрационном режиме проведем тестирование производительности экспериментального сервиса, определим его максимальную производительность.
29.06
Не лекция про Deploy.
30.06
Не лекция про Deploy.
03.07
На лекции мы разберём классические подходы к построению микросервисов в целом, посмотрим на средства, которые предоставляет нам userver для этого. Во второй части лекции поговорим об устойчивости системы к нагрузке и возможностям её ограничения вообще и в userver в частности.
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
04.07
Вы познакомитесь с базовыми подходами построения асинхронных сервисов, системными деталями их реализации, и узнаете, какие инструменты для написания асинхронного кода есть в языке С++ . Получите представление об основных шагах, необходимых для создания асинхронного движка.
10.07
Разработка безопасных сервисов. Расскажем о составляющих безопасной разработки с фокусом на фазу дизайна приложения и его непосредственной разработки, подсветим потенциальные проблемы.
11.07
14.07
Узнаете почему всё чаще сервисы предоставляют grpc API, что из себя представляет типичный grpc сервис и как без боли поддерживать его.
17.07
Разбор задач по темам «Сортировка событий» и «Деревья»
17.07
Познакомимся с современным Дата-центром Яндекса. А также поговорим о «железе» в Дата-центрах и людях, которые там работают.
18.07
20.07
Лекция про основные этапы найма в большие it-компании. Что нужно делать и что НЕ нужно делать, чтоб максимизировать шансы попасть в компанию своей мечты. Рассмотрим лайфхаки по подготовке и действиям на собеседованиях.
24.07
Разбор задач по ранее пройденным темам.
Эта трансляция — пролог. Вы познакомитесь с основными персонажами, локациями и особенностями прокачки. А также сможете получить ценные артефакты вселенной Young&&Yandex.
13.06
14.06
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, типичных ошибках и лучших практиках. Узнаете, что такое RPС и какие бывают реализации.
15.06
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
16.06
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
19.06
Разбор задач по темам «Сложность, тестирование, особые случаи» и «Линейный поиск»
22.06
Поговорим про подходы к тестированию, посмотрим на написание юнит, интеграционных и end-to-end тестов.
26.06
Разбор задач по темам «Множества» и «Словари и сортировка подсчётом»
27.06
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
28.06
В практической части доклада мы подробно поговорим о требованиях, предъявляемых к сервису. Покажем пример того, как нужно работать с ними, чтобы правильно оценить нагрузку, которая в будущем прилетит на ваш сервис.
При помощи Облачного сервиса Load Testing в демонстрационном режиме проведем тестирование производительности экспериментального сервиса, определим его максимальную производительность.
29.06
Не лекция про Deploy.
30.06
Не лекция про Deploy.
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
07.07
На лекции обсудим некоторые особенности работы Go и их влияние на производительность. Познакомимся с пакетом unsafe, особенностями его взаимодействия с рантаймом и принципами безопасного использования. Рассмотрим примеры написания более эффективного кода используя пакет unsafe.
10.07
Разработка безопасных сервисов. Расскажем о составляющих безопасной разработки с фокусом на фазу дизайна приложения и его непосредственной разработки, подсветим потенциальные проблемы.
13.07
На лекции вы познакомитесь с различными способами поиска ошибок, узнаете, как правильно собирать отладочную информацию, получите представление о методах оптимизации приложений и узнаете, как можно понять, почему приложение аварийно завершило работу.
14.07
Узнаете почему всё чаще сервисы предоставляют grpc API, что из себя представляет типичный grpc сервис и как без боли поддерживать его.
17.07
Разбор задач по темам «Сортировка событий» и «Деревья»
17.07
Познакомимся с современным Дата-центром Яндекса. А также поговорим о «железе» в Дата-центрах и людях, которые там работают.
18.07
Поговорим про:
20.07
Лекция про основные этапы найма в большие it-компании. Что нужно делать и что НЕ нужно делать, чтоб максимизировать шансы попасть в компанию своей мечты. Рассмотрим лайфхаки по подготовке и действиям на собеседованиях.
24.07
Разбор задач по ранее пройденным темам.
Эта трансляция — пролог. Вы познакомитесь с основными персонажами, локациями и особенностями прокачки. А также сможете получить ценные артефакты вселенной Young&&Yandex.
14.06
Вы познакомитесь с нетривиальными особенностями языка Kotlin и его связями с JVM. Мы разберём особенности системы типы, generic’и, посмотрим на устройство коллекций, обсудим сборщик мусора и Java Memory Model.
16.06
В лекции мы рассмотрим основные инструменты разработки, отладки и профилирования, которые важно знать каждому Android-разработчику, чтобы работать эффективно и продуктивно. Обсудим возможности и полезные горячие клавиши Android Studio, а также познакомимся с профайлерами, дебаггером и инспекторами студии. Разберемся в функциях Developer options и узнаем о новинках в инструментах разработки, появившихся за последний год.
19.06
Разбор задач по темам «Сложность, тестирование, особые случаи» и «Линейный поиск»
19.06
Лекция посвящена потокам и асинхронности. Мы поговорим про основы многопоточности: доступ к разделяемому ресурсу, базовая блокировка потоков, мониторы, проблема видимости значений переменных из разных потоков. Затронем пакет java.util.concurrent и опишем общую картину работы процесса и потоков приложения под Android.
21.06
Лекция посвящена корутинам. Мы расскажем, что такое корутины, для чего они нужны и чем будут полезны. Изучим их внутреннюю реализацию, а также обсудим специфику их работы в Android. Также рассмотрим библиотеку корутин: билдеры, работа с контекстом, диспатчеры, скоуп функции и многое другое. Изучим механизм отмены корутин, а также обработку ошибок. И в заключение детально рассмотрим Flow, специфику его работы и примеры использования.
23.06
В лекции про сетевое взаимодействие разберемся с тем, как нам работать с бэкендом, как получать и отправлять данные. Поговорим про сетевые протоколы и стандарты HTTP и REST, про разные форматы данных. После этого перейдем к рассмотрению конкретных библиотек и инструментов в Android: OkHttp, Retrofit, библиотеки парсинга данных. И также затронем работу с файлами, картинками, пушами и сокетами. Под конец лекции обсудим вопросы авторизации и безопасности данных.
26.06
Разбор задач по темам «Множества» и «Словари и сортировка подсчётом»
26.06
Поговорим об архитектуре: для чего она нужна, какая она должна быть и как лучше этого достичь. Разберем разные принципы и шаблоны, которые помогут сделать архитектуру лучше, посмотрим на примеры их применения и в конце разберемся с архитектурными особенностями построения приложений под Android.
28.06
В лекции про DI на простых примерах обсудим что такое Dependency Injection и зачем это нужно. Затем перейдём к развёрнутому описанию того, как использовать DI Framework Dagger 2, чем он хорош, какие у него есть возможности и best practices. Также рассмотрим типичные ошибки компиляции и проблемы, которые случаются при работе с Dagger 2.
30.06
Разберем все возможности, которые предоставляет нам Android для хранения и обработки данных, начиная от простого (настроек и SharedPreferences / DataStore) заканчивая базами данных и сложными связями в Room. Кроме этого поговорим про работу с файлами и про то, как Android хранит файлы приложений и пользователя. И под конец подробно разберем, зачем нужен и как использовать ContentProvider.
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
03.07
Разберём как снизить количество багов при написании загрузчиков, как сделать код обработки данных проще и понятнее, а также как сделать загрузчики удобнее в использовании.
05.07
Лекция про улучшение пользовательского опыта и визуальной составляющей в приложениях. Поговорим про то, как делать отзывчивый интерфейс и почему это важно. Покажем какие ещё бывают элементы UI в Android и потом перейдём к рассказу про стили, цвета, темы, а также уделим пристальное внимание анимациям.
07.07
Jetpack Compose — современный инструмент для создания пользовательских интерфейсов на Android. На этой лекции мы рассмотрим, как Compose упрощает разработку UI, в чем его преимущества по сравнению с традиционным подходом, использующим View, и изучим основные концепции, которые необходимы для того, чтобы вы смогли применять Compose на практике при разработке приложений.
10.07
12.07
17.07
Разбор задач по темам «Сортировка событий» и «Деревья»
17.07
В этой лекции познакомимся, как незрячие люди пользуются Android приложениям и как сделать приложение доступным для них. Научимся пользоваться TalkBack — приложением для чтения с экрана. Разберемся как Talkback озвучивает экранные элементы, и где мы, как разработчики, можем это сломать. Рассмотрим основные проблемы и их решения, связанные с внедрением доступности, а также лучшие практики по адаптации доступности. Напоследок, познакомимся с процессами связанными с поддержкой доступности приложения в Яндекс Go.
19.07
Поговорим про то, зачем и как лучше тестировать мобильные приложения. Пройдемся по разным подходам, уровням и инструментам для написания автотестов: юнит-тесты с JUnit, интеграционные с Robotlectric, UI-тесты с Espresso. Также разберемся с более сложными вопросами: как бороться с флаки-тестами, мокать объекты и подменять ответы сервера.
20.07
Рассмотрим основные концепты KMM, что это и как это хорошо «приготовить». Почему КММ так популярен и какие есть плюсы по сравнению с другими фреймворками. Сделаем демо приложение полностью на КММ и в связке с Compose.
24.07
26.07
27.07
28.07
Эта трансляция — пролог. Вы познакомитесь с основными персонажами, локациями и особенностями прокачки. А также сможете получить ценные артефакты вселенной Young&&Yandex.
13.06
В лекции рассмотрим понятие архитектуры, для чего нужна и как правильно ее строить. Начнем с базовых принципов, необходимых для любой архитектуры приложений под iOS. Рассмотрим две основные архитектуры — классическую, пригодную для приложений на базе UIKit и новую, применимую для приложений на SwiftUI.
14.06
На этой лекции мы поговорим о слое UIView и обо всём, что с ним связано: о верстке, отрисовке, иерархии UIView и обработке событий в iOS. Лекция будет полезна как студентам, которые начинают изучать платформу iOS и хотят сразу приступить к разработке различных экранов, так и опытным разработчикам, чтобы освежить знания.
16.06
На этой лекции мы поговорим о слое UIViewController и обо всём, что с ним связано. Лекция будет полезна как студентам, которые начинают изучать платформу iOS и хотят сразу приступить к разработке различных экранов, так и опытным разработчикам, чтобы освежить знания.
19.06
Разбор задач по темам «Сложность, тестирование, особые случаи» и «Линейный поиск»
19.06
В лекции рассмотрим основные инструменты iOS-разработчика. Вначале поговороим о XCode в качестве среды разработки, какие предоставляет возможности по работе с проектами. Посмотрим на способы подключения библиотек, разберемся в dsym, crashlog, code signing. В заключении сравним Swift Package Manager и Cocoapods в качестве инструментов управления зависимостями, узнаем о разработке своих пакетов.
21.06
Обсудим понятие concurrency, и способы организации кода для построения отзывчивых приложений и эффективной обработки событий.
Посмотрим на различные механизмы и абстракции — от базовых примитивов (Thread/Lock/Condition/etc), до более современных подходов (GCD и Swift Concurrency).
Также обзорно затронем понятия lock‑free/wait‑free, и некоторые особенности архитектур современных мобильных процессоров.
23.06
В лекции рассмотрим работу с сетью. Обзорно разберем способы взаимодействия клиент-сервер: какие бывают, на что обращать внимание при выборе. И конкретно остановимся на HTTP+JSON как наиболее простом и часто встречаемом. Также обсудим авторизацию и немного коснемся безопасности.
26.06
Разбор задач по темам «Множества» и «Словари и сортировка подсчётом»
28.06
Мы поговорим о том, какие задачи можно решать с помощью локального хранения данных на устройства, а также о том, какие технологии нам могут в этом помочь и как выбрать среди них ту, которая лучше всего справится с вашей задачей.
30.06
03.07
Разбор задач по темам «Префиксные суммы и два указателя» и «Бинарный поиск»
03.07
На этой лекции мы рассмотрим инструменты и технологии, позволяющие сделать наши приложения более доступными. Поговорим про адаптацию приложения для людей с нарушениями зрения, тонкости перевода на другие языки и поддержку тёмной темы.
06.07
В этой лекции поговорим об отладке, дебагинге и профилировании.
Классифицируем проблемы. Рассмотрим тулинг для диагностирования каждого из класса проблем. Составим ментальную карту, которая поможет выбрать инструмент для быстрой диагностики проблем.
Отдельное внимание уделим крешам. Поговорим про то как подстелить себе соломки с помощью проверок в компаил тайме.
07.07
Вы познакомитесь со SwiftUI и узнаете, как создавать с его помощью пользовательские интерфейсы в своих приложениях: от построения лейаута до создания анимаций. Также вы узнаете про то, как работают некоторые элементы изнутри, какие трудности могут возникнуть и как с ними работать.