Pull to refresh
0
0
Send message

Анимации в iOS для начинающих. Модели, классы от Core Animation, блоки

Reading time10 min
Views66K
Думаю, всем разработчикам хочется в той или иной степени украсить свои приложения различными эффектами. Android-отдел компании Live Typing уже выпустил две статьи на эту тему: про тип классов Animator и собственную библиотеку CannyViewAnimation, заменяющую им несовершенный ViewAnimator. Я представляю отдел iOS-разработки нашей компании и тоже хочу высказаться на тему, которая важнее, чем кажется.

Эта статья — введение в мир анимаций для iOS-приложений. Рекомендуется тем, кто никода не работал с анимациями, либо не понимает некоторые моменты в стандартных iOS-анимациях.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments3

Жизненный цикл UIViewController'a

Reading time10 min
Views154K
Большинство прикладных приложения под iOS таким или иным образом используют UIViewController'ы. Там где UIKit фрэймворк — там и UIViewController'ы. Их много, они повсюду, они сидят в засадах и выглядывают из-за каждого угла. Поэтому, любой программист под iOS — будь он зеленым новичком, едва ступившим на тропу программирования, либо матерым профессионалом своего дела, должны знать о UIViewController'aх все.

Причиной написания данной поста является то, что, как оказалось, можно преспокойно программировать под iOS полгода, и не знать полностью о жизненном цикле UIViewcontroller'ов. И на небольших проектах это даже получается. Однако, когда приходится иметь дело с серьезным, достаточно большим проектом, то появляются определенные проблемы с нехваткой памяти, «неправильной» и «непонятной» работой контроллеров, пропажей данных, и еще со многими типичными проблемами, о которых будет написано ниже.

Так вот. В данном посте, я еще раз расскажу о жизненном цикле UIViewController'ов, расскажу о том, что и где стоит делать, и в каком случае. Пост ориентирован на разработчиков разных уровней, так что кто-то узнает для себя что-то новое, а кто-то найдет повод отпинать моменты, на которые стоит обратить внимание Junior'ов в команде.

Всех заинтересовавшихся, прошу
под кат
Total votes 70: ↑64 and ↓6+58
Comments43

Туториал по AsyncDisplayKit 2.0 (Texture): Начало работы

Reading time16 min
Views14K


«Искусство – это все, что вы можете сделать хорошо. Все, что вы можете сделать качественно» (Robert M. Pirsig).


От переводчика:
С появлением autoLayout создавать интерфейс iOS-приложения стало намного проще и быстрее. Вам больше не нужно думать о подгонке размеров под определенные устройства, autoLayout сделает это за вас. Вычисление происходит на основе констрейнтов относительно ближайших элементов. Чем больше таких зависимостей, тем дольше будет строиться autoLayout, и это основная проблема всех приложений с сложным интерфейсом.
Использование AsyncDisplayKit позволит вам на порядок уменьшить объем работ, выполняемых в основном потоке, и реализовать сложные интерфейсы с минимальным количеством кода. Ребята из Raywenderlich сделали подробный и наглядный туториал по работе с ним. Надеюсь, что перевод статьи поможет вам ещё быстрее освоить этот фреймворк.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Какие вопросы задавать на собеседовании

Reading time11 min
Views44K
Каждый разработчик время от времени ищет работу и проходит собеседования. Кто-то хочет попробовать что-то новое, получить большую ЗП или попасть в компанию, в которую всегда мечтал. Не обошло это событие и меня стороной.

Посетив множество компаний, я решил поделиться наблюдениями о том, как чаще всего проходит набор специалистов, в том числе техническое собеседование и просто общение с потенциальными коллегами. И после предложить свои идеи по улучшению общепринятого процесса.

Чтобы в итоге собеседование не выглядело для соискателя как:


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

И добро пожаловать под кат.
Total votes 28: ↑23 and ↓5+18
Comments40

Свежая подборка ресурсов для маркетолога мобильных приложений: книги и блоги

Reading time6 min
Views22K


Оставаться хорошим маркетологом без постоянного самообразования немыслимо — банальная истина, о которой, тем не менее, часто забывают. А если вы занимаетесь продвижением мобильных приложений, то задача усложняется: не так легко найти проверенные источники с актуальной информацией, которую можно использовать на практике. Сегодня мы приготовили для вас пятничную подборку из 10 книг последних лет и 10 блогов, которые могут быть полезны маркетологу мобильных приложений.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments2

Многопоточность (concurrency) в Swift 3. GCD и Dispatch Queues

Reading time28 min
Views321K
Надо сказать, что многопоточность (сoncurrency) в iOS всегда входит в вопросы, задаваемые на интервью разработчикам iOS приложений, а также в число топ ошибок, которые делают программисты при разработке iOS приложений. Поэтому так важно владеть этим инструментом в совершенстве.
Итак, у вас есть приложение, оно работает на main thread (главном потоке), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI). Как только вы начинаете добавлять к вашему приложению такие «затратные по времени» куски кода, как загрузка данных из сети или обработка изображений на main thread (главном потоке), то работа вашего UI начинает сильно замедляться и даже может привести к полному его «замораживанию».



Как можно изменить архитектуру приложения, чтобы таких проблем не возникало? В этом случае на помощь приходит многопоточность (сoncurrency), которая позволяет одновременно выполнять две или более независимые задачи (tasks): вычисления, загрузку данных из сети или с диска, обработку изображений и т.д.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments14

Использование блоков в iOS. Часть 2

Reading time23 min
Views9.6K
В первой части нашего урока мы использовали Storyboard для настройки view. Во второй и заключительной части мы наконец-то добрались до самих блоков. Мы поговорим о том, что блоки собой представляют, каков их синтаксис, как их использовать и затронем кучу примеров. Будет показано, как использовать блоки с NSArray, UIView-анимациями, Grand Central Dispatch, и многим другим.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments5

Декабрьский дайджест продуктового дизайна: Книга Atomic Design, Adobe XD для Windows и UX-тренды 2017 года

Reading time8 min
Views11K
Уже шесть лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-ноябрь 2016.

Дайджест продуктового дизайна, декабрь 2016
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments4

27 open-source ништячков для iOS разработчика

Reading time7 min
Views24K

1. DZNEmptyDataSet


Это должно быть стандартом, встроенным в iOS, как способ работы с пустыми таблицами и просмотром коллекций. По умолчанию, если табличное представление пустое, то на экране ничего не отображается. Это не лучший пользовательский опыт, который вы можете получить.

С этой библиотекой вам необходимо всего лишь соответствовать определённым протоколам и iOS сама позаботиться о просмотре коллекций и выделит необходимое особым шрифтом, в виде красивых сообщений для пользователя. Элементарное решение для каждого проекта под iOS.

image


Total votes 29: ↑23 and ↓6+17
Comments9

Новая зимняя стажировка для разработчиков в Redmadrobot

Reading time3 min
Views11K


Привет, Хабр! Мы открываем набор на третью стажировку для разработчиков в Redmadrobot. Старт 19 января 2017 года, продолжительность программы 7-8 недель. Сбор заявок до 25 декабря.
Интересно? Подробности под катом.
Total votes 15: ↑14 and ↓1+13
Comments18

Обучаемся самостоятельно: подборка видеокурсов по Computer Science

Reading time11 min
Views127K
image

Содержание


  1. Введение в Computer Science
  2. Структуры данных и Алгоритмы
  3. Системное программирование
  4. Распределенные системы
  5. Базы данных
  6. Объектно-ориентированный дизайн и разработка софта
  7. Искусственный интеллект
  8. Машинное обучение
  9. Веб-разработка и интернет-технологии
  10. Concurrency
  11. Компьютерные сети
  12. Разработка мобильных приложений
  13. Математика для программистов
  14. Теория информатики и языки программирования
  15. Архитектура компьютера
  16. Безопасность
  17. Компьютерная графика
  18. Работа с изображениями и компьютерное зрение
  19. Интерфейс Человек-Компьютер
  20. Вычислительная биология
  21. Прочее

Total votes 78: ↑64 and ↓14+50
Comments23

Core Data для iOS. Глава №3. Теоретическая часть

Reading time28 min
Views26K
Хабралюди, добрый день!
Сегодня хочу начать написание ряда лекций с практическими заданиями по книге Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.



Содержание:

Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments4

Зачем нужны UITableViewController и UICollectionViewController

Reading time5 min
Views16K
Всем привет, меня зовут Артём, я iOS-разработчик. Сегодня хочу рассказать о подходах к использованию UITableViewController и UICollectionViewController.

Едва ли можно найти мобильное приложение, в котором не используется списочное представление данных. Существенную часть времени мы (iOS-разработчики) проводим с TableView или CollectionView. Именно поэтому критически важным является выбор подходов к использованию этих базовых элементов из соображений скорости разработки и стоимости дальнейшей поддержки создаваемых решений. Хочу поделиться выводами, к которым мы пришли с коллегами в Touch Instinct.

Статья рассчитана на разработчиков, которые работают с TableView (CollectionView), но почему-то не работают с TableViewController (CollectionViewController). Далее будет упоминаться только TableView(Controller), но все написанное касается и CollectionView(Controller) тоже.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments10

Macaw — удобная библиотека для векторной графики в Cocoa

Reading time10 min
Views9.9K

Привет Хабр! Современные интерфейсы мобильных приложений содержат тонны иллюстраций и анимаций, начиная от хитрых градиентов и заканчивая диаграммами акций. Поэтому мобильным разработчикам приходится тратить огромное количество времени, чтобы превратить красивый дизайн в функциональное приложение, которое, к тому же, будет работать на устройствах различных размеров.


Именно с этой проблемой мы столкнулись во время разработки iOS приложений. Чтобы упростить задачу, мы разработали графическую библиотеку Macaw, которая позволяет описывать сложные интерфейсы в виде понятных объектов сцены и даже напрямую отображать SVG графику с поддержкой событий и анимации.


Интересно? В этой статье мы познакомим вас с базовыми понятиями Macaw и вместе создадим диаграмму с анимацией, используя минимум кода.


image
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments17

Что нового в Swift 3?

Reading time10 min
Views24K
Как мы все давно знаем, Apple интегрировала Swift 3 в Xcode 8. Это первая версия языка с открытым исходным кодом, который работает как на macOS, так и на Linux. Если вы следили за процессом развития языка на Swift Evolution с декабря прошлого года и успели с ним поэкспериментировать в IBM sandbox, вы уже наверное поняли, что в нем появилось множество изменений. Совершенно уверен, что при компилировании существующего проекта в Xcode 8, ваш код удивит вас наличием ошибок. Но это поправимо. Давайте познакомимся с некоторыми изменениями в новой версий языка.
image
Читать дальше →
Total votes 39: ↑29 and ↓10+19
Comments20

Как правильно заказать и продвинуть мобильное приложение: дайджест полезных материалов

Reading time3 min
Views14K
image

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

Я решил собрать дайджест полезных материалов, которые позволят ответить на эти вопросы и избежать распространенных ошибок, а значит — получить хороший результат за разумные деньги.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments1

По итогам Rambler.iOS #8

Reading time2 min
Views5.4K

Splash Screen


Две недели назад, 5 октября, состоялась восьмая встреча Rambler.iOS, которую мы предварительно анонсировали на Хабре. В этот раз основной акцент был сделан на контенте самой конференции — мы подготовили четыре крутых доклада, в том числе один от иностранного докладчика.


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments1

Лекции Техносферы. 2 семестр. Информационный поиск (весна 2016)

Reading time4 min
Views8.4K
Современная поисковая система, качество работы которой воспринимается как данность, является сложнейшим программно-аппаратным комплексом, создателям которого пришлось решить огромное количество практических проблем, начиная от большого объема обрабатываемых данных и заканчивая нюансами восприятия человеком поисковой выдачи. На курсе второго семестра Техносферы «Современные методы и средства построения систем информационного поиска» мы рассказываем об основных методах, применяемых при создании поисковых систем. Некоторые из них — хороший пример смекалки, некоторые показывают, где и как может применяться современный математический аппарат.

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

Лекция 1. «Введение в информационный поиск»




Алексей Воропаев, руководитель группы рекомендаций Поиска Mail.Ru, дает определение понятия информационного поиска и делает обзор существующих поисковых систем, рассказывает об индексации и поисковых кластерах.
Total votes 35: ↑35 and ↓0+35
Comments0

Xcode: наверное, лучший способ работы со сторибордами

Reading time5 min
Views49K

Этот пост является вольным переводом статьи Xcode: A Better Way to Deal with Storyboards by Stan Ostrovskiy


Некоторые примеры кода в оригинальной статье устарели (ввиду выхода Swift 3) и в переводе были изменены.


Советы и рекомендации по работе с Interface Builder.


Apple серьезно улучшили Interface Builder в новом Xcode 8. Использование size classes стало более интуитивным, возможность масштабирования сториборда — очень удобной, а полное превью прям в Interface Builder — просто великолепным. Для тех у кого были сомнения насчет использования Interface Builder, это может стать хорошими плюсами.


С другой стороны, у многих разработчиков все еще есть некоторые проблемы с Interface Builder когда они создают большие многоэкранные приложения со сложной навигацией.


В этой статье я поделюсь некоторыми из лучших практик для работы со сторибордами в вашем проекте. Вы уже пользуетесь Interface Builder, или только делаете первые шаги в этом направлении? — в любом случае, эти советы будут полезны для вас.


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

В вашем проекте есть один файл main.storyboard, который выглядит вот так?



С точки зрения дизайнера, все хорошо: полностью видно UI и навигацию. И это именно то, для чего Interface Builder и был создан.

Но для разработчика это несет множество проблем:

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments48

Запускаем простой блог на Wagtail CMS (Django) — часть 2

Reading time9 min
Views18K
С момента написания первой части про Wagtail CMS уже вышла версия 1.6.3 — самое время продолжить наш путь по созданию простого блога.

Часть 1
Часть 3

В первой части мы создали только первый пост в блоге. Для полноценной работы нашего сайта этого мало, так что пора сделать полноценный подраздел, вывод на главную трех последних постов, навигацию, хлебные крошки и слайдер.

Запускаем простой блог на Wagtail CMS (Django) - часть 2
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments6

Information

Rating
Does not participate
Registered
Activity