Синхронизация данных в iOS приложениях, использующих Core Data


the-cloud-rainbow-unicorn

В этой статье мы хотим рассказать о том, с какими проблемами вы можете столкнуться при реализации синхронизации данных в iOS приложениях и какие существуют подходы и средства для их решения. Мы постараемся осветить этот вопрос с разных сторон, дав наиболее общий обзор этой темы, но все же основной интерес для нас будут представлять приложения, модель данных которых достаточно сложна для того, чтобы использовать структурированную базу данных и фреймворк Core Data.

Continue reading

Использование возможностей UIDynamicAnimator в приложениях под iOS 7

После выхода iOS 7 у разработчиков появилось очень много новых инструментов для создания интересных и увлекательных эффектов и анимаций. Но уместность использования многих из них по-прежнему остаётся под вопросом. Изучив некоторые из них, мы решили в новом нашем проекте сделать анимацию, аналогичную реализованной Apple в приложении «Сообщения».

Для реализации такого поведения нам пришлось заменить используемый сначала экземпляр класса UITableView на UICollectionView, так как только последний был адаптирован Apple для работы с объектом-аниматором UIDynamicAnimator

 

После этого мы переопределили стандартный UICollectionViewFlowLayout:

в котором определили  объект UIDynamicAnimator и переопределили необходимые для реализации функции:

Динамическое поведение становится активным, когда вы его добавляете к объекту- аниматору, который является экземпляром UIDynamicAnimator. Аниматор определяет контекст в котором динамическое поведение выполняется.

Объект UIAttachmentBehavior определяет связь между динамическим элементом класса UICollectionViewLayoutAttributes и точкой item.center. Когда точка перемещается, присоединенный элемент также перемещается. C помощью свойств length, damping и frequency можно настроить поведение нужным нам образом.

Также важно правильно подобрать resistanceFactor

Другие статьи по теме:

  1. Эффект параллакса в iOS приложениях
  2. Осваиваем Core Motion в iOS

 

Реализация лайв-стриминга снимаемого видео в приложении для iOS

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

Continue reading

Продвижение стартапа до публичного релиза. Case Study.

запуска роста

В данной статье я хотел бы рассказать вам историю продвижения предварительного релиза нашего нового приложения — инновационной видеокамеры, которую мы назвали Together. В настоящее время существует множество способов привлечения внимания первых пользователей к программному продукту. Здесь нам удалось проложить собственный путь, и мы спешим поделиться им с вами. Сначала я посвятил несколько дней (или даже недель) поиску существующих надежных и проверенных методов продвижения. Потом у меня ушло еще больше времени на поиск и апробацию моего собственного метода (конечно, с учетом полученных знаний). Итак, для начала давайте посмотрим, какие действия я предпринял и каких результатов добился. Continue reading

Эффект параллакса в iOS приложениях

layersParallax

Идея использования параллакса в дизайне мобильных приложений не нова. Как и многие другие, она пришла к нам из мира веб-дизайна, где поначалу стала очень распространённым направлением. Параллакс придаёт дизайну впечатляющий эффект глубины и кажущийся объём. К настоящему моменту в силу некоторых неудобств, связанных со спецификой разработки веб-приложений, мода на параллакс в оформлении сайтов поутихла. Однако мобильные приложения — это совсем другой разговор. Параллакс в мобильном дизайне живёт и пока не собирается никуда уходить, и даже добавлен по-умолчанию в дизайн новой iOS 7!

В этой статье мы расскажем вам о нашем компоненте DVParallaxView, и продемонстрируем на примере его устройства, как добавить в приложение точно такой же эффект параллакса, как и в home screen в iOS 7. И даже лучше. Continue reading

Осваиваем Core Motion в iOS

Gyroscope2

Появление в серии телефонов iPhone акселерометра, гироскопа и магнетометра открыло новые возможности перед разработчиками приложений для iOS. Однако, несмотря на то, что с момента появления доступа к их API прошло уже несколько лет, до сих пор в интернете существует довольно мало информации по их использованию. С одной стороны — эта тема в действительности не так объёмна, чтобы посвящать ей книги или даже серии статей. Но с другой — существуют определённые детали и подводные камни, о причинах и сути которых нужно знать. Эта статья предназначена для тех разработчиков, которые хотят освоить использование акселерометра и гироскопа в iPhone. Continue reading

Плеер плейлистов для iOS

DVPlaylistPlayer Title

Одной из основных частей приложения, так или иначе работающего с видео, является видеоплеер. Если вы хотя бы раз имели дело с интеграцией плеера в своё приложение, то наверняка знаете, что его настройка и кастомизация занимает определённое время. Также мы готовы поспорить, что чаще всего вам не нужен был плеер, который играл бы только одно видео за всё время работы с приложением. В большинстве случаев вы бы хотели использовать плейлисты. В этой статье мы хотим рассказать вам о разработанном нами открытом компоненте, который мы используем для воспроизведения видео в нашем проекте Together. Речь пойдёт о плеере плейлистов DVPlaylistPlayer.
Continue reading

Эффект Blur в iOS приложениях

Внешний вид является одной из важнейших составляющих успеха приложения на iOS. Стильный продуманный дизайн и эффектный внешний вид всегда производят на пользователя исключительно положительное впечатление и добавляют очков в пользу вашего приложения при выборе его в App Store.

Как произвести приятное впечатление на пользователя? Хорошего внешнего вида можно добиться множеством способов, одним из которых является наложение эффектов на различные части интерфейса и изображение в целом. О, пожалуй, самом распространенном из таких эффектов — эффекте Blur — и пойдет речь в данной статье. Мы рассмотрим способы наложения фильтра Blur с использованием различных фреймворков, а также проведем небольшой эксперимент и сравним производительность рассмотренных способов. Continue reading

Подводные камни при разработке крупных приложений на Node.js

Уже стало понятно, что Node.js — яркий тренд в сообществе web-разработчиков. В данной статье мы попытаемся затронуть следующие вопросы: какие подводные камни могут ожидать разработчика, и стоит ли вообще переходить на нее.

В основном Node.js ассоциируется у разработчиков с небольшими сервисами народе чата. (подробнее в статье «Разработка высокопроизводительных сервисов на Node.js»). На то есть веские причины. Нода отлично подходит для сервисов, которые поддерживают постоянное подключение к клиенту, либо долгое время ожидают ответа от него. Отсутствие блокировки ввода/вывода позволит читать большие файлы, оставляя при этом ваш сервис готовым к обработке новых запросов. Continue reading

Best Practices для взаимодействия сервера и приложения

iOS Best Practices

Сейчас, в эпоху роста и развития мобильных приложений, всё более актуальным становится правильное построение клиент-серверного взаимодействия. При взаимодействии мобильного приложения с сервером следует обратить внимание на следующие моменты: гибкость, расширяемость, документирование, поддержка старых версий API, кеширование. В этой статье мы рассмотрим наиболее важные аспекты разработки и проектирование сервисов, которые помогут достичь лучших результатов. Continue reading