Апрель 13

Реализация кастомного UI-элемента для выбора времени. Часть 2

В первой части статьи я подробно воссоздал процесс реализации циферблата. Теперь мы подошли к самому интересному и сложному этапу создания собственного кастомного контрола.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Реализация кастомного UI-элемента для выбора времени. Часть 2 отключены
Апрель 13

Реализация кастомного UI-элемента для выбора времени. Часть 1

17 ноября в Москве в рамках Международной конференции мобильных разработчиков MBLTdev Александр Зимин выступил с докладом на тему «Визуализируем за рамками стандартных компонентов UIKit». В первую очередь, этот доклад заинтересует iOS-разработчиков, которые хотят узнать больше о разработке кастомных UI-элементов. Меня он заинтересовал примером кастомного контрола, который я решил реализовать и доработать с учетом тезисов, озвученных в докладе. Пример был реализован на Swift, я реализую его на Objective-C.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Реализация кастомного UI-элемента для выбора времени. Часть 1 отключены
Апрель 13

Стэнфордские курсы CS193P Зима 2017: Разработка iOS 10 приложений с помощью Swift

Стэнфордский университет, США — один из лучших в мире в области информатики (Computer Science). Он щедро делится своими курсами, и одним из самых популярных и успешных курсов является курс CS193P по разработке приложений на iOS, который читает профессор Пол Хэгерти. Это курс читается ежегодно, начиная с 2010 года. На данный момент актуальным является курс CS193P «Developing iOS 10 Apps with Swift», Зима 2017 года — «Разработка iOS 10 приложений с использованием Swift», и на момент написания статьи уже выложены почти все Лекции (15 из 18) и почти все Задания (5 из 6) на iTunes U (но можно смотреть и на Youtube).
В новом курсе отчетливо видно, что профессор сделал небольшой разворот всего курса от ОБЪЕКТНО-ОРИЕНТИРОВАННОГО программирования, к ФУНКЦИОНАЛЬНОМУ программированию с множеством неизменяемых объектов с APIs похожими на математические функции.
Конечно, iOS вовсе не была сконструирована на основе идеи функционального программирования. Но люди, которые изобретали Swift, держали “в голове” идею о функциональном программировании. Так что при разработке вашего iOS приложения (по крайней мере в части Модели) вы можете использовать множество элементов функционального программирования.

Это новый рубеж в iOS программировании, потому что в течение 10 лет люди, в основном, использовали в iOS программировании только reference type объекты, имея в виду концепцию объектно-ориентированного программирования. Но когда вы программируете на Swift с помощью структур structs и перечислений enums, и особенно если вы подключаете механизмы протоколов protocols и Generics, то вы можете реально сделать прекрасную работу, имеющую дело с реальным функциональным программированием.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Стэнфордские курсы CS193P Зима 2017: Разработка iOS 10 приложений с помощью Swift отключены
Апрель 11

Упрощаем работу с CloudKit, или синхронизация в духе Zen

Введение

Облачная синхронизация — закономерный тренд нескольких последних лет. Если вы разрабатываете под одну или несколько Apple платформ (iOS, macOS, tvOS, watchOS) и задачей является реализация функционала синхронизации между приложениями, то в вашем распоряжении есть очень удобный инструмент, или даже целый сервис — CloudKit.

Нашей команде постоянно приходится прикручивать функционал синхронизации данных с CloudKit, в том числе в проектах, которые используют CoreData в качестве хранилища данных. Поэтому возникла, а затем была реализована идея — написать универсальный интерфейс для синхронизации.

CloudKit — это не просто фреймворк. Это полноценный BaaS (Backend as a Service), т.е. комплексный сервис с полноценной инфраструктурой, включающей в себя облачное хранилище, пуш-уведомления, политики доступа и многое другое, а также предлагающий универсальный кросс-платформенный программный интерфейс (API).

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Упрощаем работу с CloudKit, или синхронизация в духе Zen отключены
Апрель 10

Инструменты для команды удалённых разработчиков

Сегодня все чаще говорят о возможности удаленной работы. Тут и там большие компании анонсируют повсеместный исход офисного и не только планктона из корпоративных теплиц. Разработчики – первые, кого вспоминают в этот контексте. Работая удалённым разработчиком, вы зачастую не можете встретиться лицом к лицу с клиентом, лично представить свой проект, присесть за стол к коллеге, чтобы вместе решить какую-то проблему. Из-за этого у некоторых может возникнуть впечатление, что у удалённой работы есть ряд серьёзных недостатков. На мой взгляд, и по мнению десятков тысяч удаленных разработчиков это ложное впечатление. Удалённые разработчики в целом счастливее, работают усерднее, и быстро осваивают подходящие инструменты для совместной работы. Конечно, удалённая работа — вещь непростая. Ведь нас с детства приучают к тому, что нам нужен коллектив, и что общаться нужно лицом к лицу. Уходя из офиса на удалёнку, приходится учиться пользоваться инструментами, компенсирующими географическую распределённость команды. Под катом — подборка инструментов, которая поможет вам эффективно взаимодействовать с коллегами в других городах и странах. Безусловно, это не весь инструментарий. Было бы любопытно прочесть о ваших находках в комментариях к данной статье. Читать дальше →

Раздел: Без рубрики | Комментарии к записи Инструменты для команды удалённых разработчиков отключены
Апрель 9

Дайджест интересных материалов для мобильного разработчика #198 (2-9 апреля)

Из нового дайджеста вы можете узнать, как устроено автоматическое тестирование в Почте, в нескольких вариантах о том, как работать с WebRTC, о том, что Android стал самой используемой ОС в мире, что MZ собирает все данные мира и о средней «по больнице» вовлеченности людей в приложения.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Дайджест интересных материалов для мобильного разработчика #198 (2-9 апреля) отключены
Апрель 8

WebRTC, Safari

В апреле прошлого года по сети прокатился пресс-релиз о том, что Apple выкатывает поддержку WebRTC в браузерах Safari для Mac OS и iOS. С момента выхода пресс-релиза скоро пройдет ровно год, как Apple продолжает выкатывать WebRTC для Safari. Ждем.

Однако ждут не все. Кому-то требуется реал-тайм видео в Safari прямо сейчас и в этой статье мы расскажем как обходиться без WebRTC в браузере iOS Safari и Mac OS Safari и чем можно его заменить. Читать дальше →

Раздел: Без рубрики | Комментарии к записи WebRTC, Safari отключены
Апрель 8

Фото-реалистичная графика в мобильной игре или первая в мире «видео»-игра (мобильная)

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

image

В нашем же случае, "видео"-игра — это видеоигра, основанная на реальном видео.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Фото-реалистичная графика в мобильной игре или первая в мире «видео»-игра (мобильная) отключены
Апрель 7

Не будет преувеличением сказать, что это гипербола

Предлагаю пятничные апрельские тезисы про Что наша жизнь? Игра…

Здесь нет кода и смысла, нет математики и ссылок на GitHub.
Короче, самый то, чтобы не читать. Но ты прочти.

А началось все с этой морды


.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Не будет преувеличением сказать, что это гипербола отключены
Апрель 7

Удобная локализация iOS приложений в Interface Builder

Не так давно я опубликовал подробную инструкцию по использованию LocoLaser — утилиты для локализации Android и iOS приложений в Google Sheets. Мне бы хотелось продолжить тему локализации и обратить больше внимания на iOS приложения. В отличии от Android, в iOS разработке есть ряд мелких но неприятных моментов, которые, в сумме, могут привести к совсем не мелким проблемам.

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

Раздел: Без рубрики | Комментарии к записи Удобная локализация iOS приложений в Interface Builder отключены