— Концепции UI в iOS 7
— UIDynamics: перестаём видеть, начинаем ощущать
— UICollectionView: обобщение лэйаута и API
— AutoLayout: переход от императивного стиля к декларативному
— TextKit: избавляемся от CoreText
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactiveSociality Rocks!
В докладе будет рассказано, как создавалась топовая социальная онлайн игра "Зомби Ферма", в которую играет уже более 8 000 000 пользователей не только русскоязычных, но и зарубежных социальных сетей.
С какими трудностями пришлось столкнуться в процессе разработки и дальнейшей поддержки игры.
Какие проблемы возникали и какими путями они устранялись.
Какие решения позволили поднять игру на более высокий уровень в техническом плане. Как оптимизировалась работа движка и как усовершенствовалась серверная база.
Почему для нас не проблема DAU в 5 000 000.
Докладчиками будут описаны тонкости в процессе создания социальной игры “Зомби Ферма”: как преодолевались трудности, которые возникали в процессе разработки продукта. Как устранялись проблемы, касающиеся обслуживания игры. Как велась работа над оптимизацией и усовершенствованием некоторых процессов. Какие технологии помогли поднять игру в ТОПы и привлечь внимание более 14 000 000 пользователей не только русскоязычных, но и зарубежных социальных сетей. Каким методом была создана та самая “технология успеха”
Core Text is Apple's text layout framework that provides a simpler API compared to the older ATSUI framework. It allows converting text into glyphs and positioning them correctly within a given space. The key steps in using Core Text include: 1) creating an attributed string, 2) creating a CTFramesetter, 3) creating a CGPath, and 4) creating a CTFrame to draw the text. Important techniques include resetting the text matrix, breaking layout into parts to improve performance, and flipping coordinates to match Cocoa's upside-down drawing model.
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactiveSociality Rocks!
В докладе будет рассказано, как создавалась топовая социальная онлайн игра "Зомби Ферма", в которую играет уже более 8 000 000 пользователей не только русскоязычных, но и зарубежных социальных сетей.
С какими трудностями пришлось столкнуться в процессе разработки и дальнейшей поддержки игры.
Какие проблемы возникали и какими путями они устранялись.
Какие решения позволили поднять игру на более высокий уровень в техническом плане. Как оптимизировалась работа движка и как усовершенствовалась серверная база.
Почему для нас не проблема DAU в 5 000 000.
Докладчиками будут описаны тонкости в процессе создания социальной игры “Зомби Ферма”: как преодолевались трудности, которые возникали в процессе разработки продукта. Как устранялись проблемы, касающиеся обслуживания игры. Как велась работа над оптимизацией и усовершенствованием некоторых процессов. Какие технологии помогли поднять игру в ТОПы и привлечь внимание более 14 000 000 пользователей не только русскоязычных, но и зарубежных социальных сетей. Каким методом была создана та самая “технология успеха”
Core Text is Apple's text layout framework that provides a simpler API compared to the older ATSUI framework. It allows converting text into glyphs and positioning them correctly within a given space. The key steps in using Core Text include: 1) creating an attributed string, 2) creating a CTFramesetter, 3) creating a CGPath, and 4) creating a CTFrame to draw the text. Important techniques include resetting the text matrix, breaking layout into parts to improve performance, and flipping coordinates to match Cocoa's upside-down drawing model.
Архитектура для мобильных игр - с чего начать и популярные решения / Евгений ...DevGAMM Conference
В Интернете очень мало информации об архитектуре игр, много узкоспециализированной информации, подходов и закономерностей, но не хватает общего взгляда сверху. Этот доклад предназначен как для начинающих программистов, не знающих с чего начать, так и для опытных программистов, желающих сравнить свои решения с другими.
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"IT Event
В докладе пойдет речь о верстке для UITableView и, в частности, UICollectionView. Зимин Александр расскажет о том, почему стоит использовать UICollectionView чаще, чем вы думаете, как не сесть в лужу с оптимизацией и динамично подстраивать верстку под контент. Доклад будет сопровождаться работой в Xcode, реальными примерами кода и полезными ссылками.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays
От Flux к Redux. Расскажу о том, как и почему появилась методолгия Flux и какие проблемы она решила. А также почему стоит перейти или как минимум попробовать в деле Redux.
Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотем...GoIT
21 ноября GoITClub совместно с Zeo Alliance провели ивент, посвященный тестированию мобильных приложений.
Рассмотрели 2 самых популярных ОС - Andoird и iOS
Блок Android
1. Особенности операционной системы Android - Иван Мурзак (Android developer, Co-Founder&CTO at Capitan Inc.)
2. Особенности тестирования приложения на Android (Specific functional, Performance, Device park selection) - Михаил Железнов (QC Engineer at SoftServe)
3. Особенности тестирования приложения на Android (Human Interface Guideline, Tools) - Юлия Смирнова (QC Engineer at SoftServe)
4. Автоматизация тестирования верстки - Александр Хотемской (Senior Client Automation QA Enginner at Wargaming)
Блок iOS
1. Особенности операционной системы iOS - Ольга Макаревич (QA Engineer at EPAM)
2. Особенности тестирования приложений на iOS - Александр Буратынский ( Senior QA Analysyt at Global Logic)
3. Тестирование с использованием инструментов xCode - Максим Гонтар (Mobile Developer, Lead Engineer at Global Logic) - презентация отутствуе, было живой показ программы.
Видеозапись мероприятия можно посмотреть на официальном канале GoIT на Youtube
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что хорошо работающий фронтенд — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но и циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
А.Левенчук -- Понятие системы в системной инженерииAnatoly Levenchuk
Доклад Анатолия Левенчука "Понятие системы в системной инженерии. Системная инженерия против инженерии систем" на 70 заседании Русского отделения INCOSE, 23 января 2013г.
<p><a><img src="http://strana-sovetov.com/images/stories/tip/health/calm-the-nerves_big.jpg"></a></p>
<p>Now therefore, if ye have done truly and sincerely, in that ye<br>have made Abimelech king, and if ye have dealt well with Jerubbaal and<br>his house, and have done unto him according to the deserving of his<br>hands; 9:17 (For my father fought for you, and adventured his life<br>far, and delivered you out of the hand of Midian: 9:18 And ye are<br>risen up against my father’s house this day, and have slain his sons,<br>threescore and ten persons, upon one stone, and have made Abimelech,<br>the son of his maidservant,
king over the men of Shechem, because he<br>is your brother;) 9:19 If ye then have dealt truly and sincerely with<br>Jerubbaal and with his house this day, then rejoice ye in Abimelech,<br>and let him also rejoice in you: 9:20 But if not, let fire come out<br>from Abimelech, and devour the men of Shechem, and the house of Millo;<br>and let fire come out from the men of Shechem, and from the house of<br>Millo, and devour Abimelech.<br><br>9:21 And Jotham ran away, and fled, and went to Beer, and dwelt there,<br>for
fear of Abimelech his brother.<br><br>9:22 When Abimelech had reigned three years over Israel, 9:23 Then God<br>sent an evil spirit between Abimelech and the men of Shechem; and the<br>men of Shechem dealt treacherously with Abimelech: 9:24 That the<br>cruelty done to the threescore and ten sons of Jerubbaal might come,<br>and their blood be laid upon Abimelech their brother, which slew them;<br>and upon the men of Shechem, which aided him in the killing of his<br>brethren.<br><br>
More Related Content
Similar to iOS 7. Новые концепции и новые средства
Архитектура для мобильных игр - с чего начать и популярные решения / Евгений ...DevGAMM Conference
В Интернете очень мало информации об архитектуре игр, много узкоспециализированной информации, подходов и закономерностей, но не хватает общего взгляда сверху. Этот доклад предназначен как для начинающих программистов, не знающих с чего начать, так и для опытных программистов, желающих сравнить свои решения с другими.
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"IT Event
В докладе пойдет речь о верстке для UITableView и, в частности, UICollectionView. Зимин Александр расскажет о том, почему стоит использовать UICollectionView чаще, чем вы думаете, как не сесть в лужу с оптимизацией и динамично подстраивать верстку под контент. Доклад будет сопровождаться работой в Xcode, реальными примерами кода и полезными ссылками.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays
От Flux к Redux. Расскажу о том, как и почему появилась методолгия Flux и какие проблемы она решила. А также почему стоит перейти или как минимум попробовать в деле Redux.
Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотем...GoIT
21 ноября GoITClub совместно с Zeo Alliance провели ивент, посвященный тестированию мобильных приложений.
Рассмотрели 2 самых популярных ОС - Andoird и iOS
Блок Android
1. Особенности операционной системы Android - Иван Мурзак (Android developer, Co-Founder&CTO at Capitan Inc.)
2. Особенности тестирования приложения на Android (Specific functional, Performance, Device park selection) - Михаил Железнов (QC Engineer at SoftServe)
3. Особенности тестирования приложения на Android (Human Interface Guideline, Tools) - Юлия Смирнова (QC Engineer at SoftServe)
4. Автоматизация тестирования верстки - Александр Хотемской (Senior Client Automation QA Enginner at Wargaming)
Блок iOS
1. Особенности операционной системы iOS - Ольга Макаревич (QA Engineer at EPAM)
2. Особенности тестирования приложений на iOS - Александр Буратынский ( Senior QA Analysyt at Global Logic)
3. Тестирование с использованием инструментов xCode - Максим Гонтар (Mobile Developer, Lead Engineer at Global Logic) - презентация отутствуе, было живой показ программы.
Видеозапись мероприятия можно посмотреть на официальном канале GoIT на Youtube
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что хорошо работающий фронтенд — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но и циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
А.Левенчук -- Понятие системы в системной инженерииAnatoly Levenchuk
Доклад Анатолия Левенчука "Понятие системы в системной инженерии. Системная инженерия против инженерии систем" на 70 заседании Русского отделения INCOSE, 23 января 2013г.
<p><a><img src="http://strana-sovetov.com/images/stories/tip/health/calm-the-nerves_big.jpg"></a></p>
<p>Now therefore, if ye have done truly and sincerely, in that ye<br>have made Abimelech king, and if ye have dealt well with Jerubbaal and<br>his house, and have done unto him according to the deserving of his<br>hands; 9:17 (For my father fought for you, and adventured his life<br>far, and delivered you out of the hand of Midian: 9:18 And ye are<br>risen up against my father’s house this day, and have slain his sons,<br>threescore and ten persons, upon one stone, and have made Abimelech,<br>the son of his maidservant,
king over the men of Shechem, because he<br>is your brother;) 9:19 If ye then have dealt truly and sincerely with<br>Jerubbaal and with his house this day, then rejoice ye in Abimelech,<br>and let him also rejoice in you: 9:20 But if not, let fire come out<br>from Abimelech, and devour the men of Shechem, and the house of Millo;<br>and let fire come out from the men of Shechem, and from the house of<br>Millo, and devour Abimelech.<br><br>9:21 And Jotham ran away, and fled, and went to Beer, and dwelt there,<br>for
fear of Abimelech his brother.<br><br>9:22 When Abimelech had reigned three years over Israel, 9:23 Then God<br>sent an evil spirit between Abimelech and the men of Shechem; and the<br>men of Shechem dealt treacherously with Abimelech: 9:24 That the<br>cruelty done to the threescore and ten sons of Jerubbaal might come,<br>and their blood be laid upon Abimelech their brother, which slew them;<br>and upon the men of Shechem, which aided him in the killing of his<br>brethren.<br><br>
Similar to iOS 7. Новые концепции и новые средства (20)
7. Контент
• Контент — набор элементов (коллекция)
• Задачи:
- показать элементы коллекции
- навигация по коллекции
- редактирование коллекции
- анимации элементов
8. UITableView
• Элементы — ячейки списка
• Навигация — вертикальный скроллинг
• Редактирование —
принудительное (кнопка), свайпы,
лонгтап (перемещение)
• Анимации — встроенные (fade, bottom,
automatic…), изменение высоты ячеек
9. UITableView
• Плюсы:
- механизм reusable-ячеек
- хорошо реализует наиболее частый
случай отображения (список)
- простой API
• Проблемы:
- ограничения лэйаута
- ограничения интерфейса API
12. UITableView
• Чем более естественно и интересно мы
хотим отобразить коллекцию, тем сложнее
нам заставить это делать UITableView
• Так было до iOS 6
• Большасть часть лэйаута была скрыта в
SDK
• Почему бы не отдать лэйаут коллекции в
руки программисту?
13. UICollectionView
• Появилась отдельная сущность, которая
занимается лэйаутом
UICollectionViewLayout
UICollectionView UICollectionViewLayout
Delegate
Data Source
14.
15. UICollectionView
• Механизм reusable-ячеек
• Максимально обобщённый API:
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)
- наша задача — определять, какие indexPath
соответствуют элементам внутри запрашиваемого
прямоугольника
• Отдельные сущности для ячейки и её
атрибутов — UICollectionViewLayoutAttributes
17. UICollectionView
• Cell — элемент коллекции
• Supplementary — соответствует функции от
элемента коллекции (например, заголовок
секции)
• Decoration — элемент лайаута!
20. UICollectionView
• Атрибуты — это характеристика ячейки с
точки зрения лэйаута
• Конечно, поддержка наследников
• Разделение понятия элемента и его
представления в рамках одного лэйаута
21. UICollectionView
• В результате получаем максимально
настраиваемое отображение и поведение
коллекций
• Механизм reusable ячеек
• Анимация смены лэйаута
• Если нужны обычные списки, то есть
встроенный UICollectionViewFlowLayout,
который заменит вам Table View
23. UIKit Dynamics
• Новый взгляд на дизайн
Визуально
показываем
пользователю, что
элемент делает:
тени
выпуклость
…
До iOS 7
Интерфейс
“реагирует” на
взаимодействие,
как будто это
физический
элемент среды
iOS 7
26. UIDynamicItem
• Это не обязательно UIView, а всё, что
удовлетворяет протоколу
• Collection View Layout атрибуты
удовлетворяют протоколу!
• Можно использовать связку
UICollectionView + Dynamics
• Пример:
- Messages в iOS 7
27. Где использовать?
★ Конечно, для анимаций
★ В коллекциях — dynamics слегка оживит
элементы
- Только там, где взаимодействие
пользователя с коллекцией
действительно схоже с реальностью
• Для задания сложного лэйаута, когда
Auto Layout не спасает
29. Зачем?
• Представление контента —
первоочередная задача
• Много динамики, связей и сценариев
поведения, а как следствие — много
вариантов отображения контента
• Становится сложнее уследить за фреймами
• Autoresizing mask спасает, но далеко не
всегда
30. Springs & Struts
• Проблема в императивном стиле
• Явное указание системе, что и где
расположить
• Много связей — много пересчета фрэймов
• Пересчет фрэймов — потенциальное место
для ошибки
• Никогда не уверены, все ли кейсы учтены
31. Auto Layout
• Пусть пересчетом занимается система
• Мы определим правила и опишем их для
системы
• Декларативный стиль
• Описываем цель, а не способ её
достижения
• Ловим ошибки на этапе описания правил
32. Auto Layout
• Система линейных уравнений/неравенств
• Каждое решение — вариант расположения
элементов
• Становится возможным указывать на
зависимости между параметрами
элементов
• Intrinsic size — размер элемента в
зависимости от контента
35. Что было?
• UIKit
- примитивная обработка текста
- UILabel
- добавили NSAttributedString
- проблемы при работе с
пользовательскими шрифтами
- сложно реализовать задумки
дизайнера
36.
37. Что было?
• Core Text
- низкоуровневое мощное средство
- Frame, Line, Run, Glyph
- сложности во взаимодействии с UIKit
- часто необходимо спускаться на
уровень Core Graphics для обработки и
“особого” вывода глифов
38. Text Kit
• iOS 7
- Objective-C интерфейс API
- Сравним по возможностям с Core Text
- Отличная работа с пользовательскими
шрифтами
- Полная интеграция с UI Kit
43. NSLayoutManager
• Character + Font = Glyph
• Glyphs + Locations = Text Layout
• Это контроллер
• Берёт данные из NSTextStorage и
отображает их в NSTextContainer
• Настраиваем через делегата и
наследование