Pull to refresh
0
0

User

Send message

Паттерны проектирования, взгляд iOS разработчика. Часть 1. Стратегия

Reading time4 min
Views15K

Содержание:


Часть 0. Синглтон-Одиночка
Часть 1. Стратегия
Часть 2. Наблюдатель


Напомню, что в этой серии статей, я разбираю книгу "Паттерны проектирования" Эрика и Элизабет Фримен. И сегодня мы изучим паттерн "Стратегия". Поехали.


Откуда растут ноги (и крылья)


Авторы книги рассказывают нам историю о создании приложения SimUDuck. Начнем с реализации начального состояния приложения: у нас есть абстрактный класс Duck и два его наследника: MallardDuck и RedheadDuck. Тут же мы сталкиваемся с первой сложностью: в Objective-C и Swift нет абстрактных классов.


Выходим из ситуации...

Забавные нюансы Win10 и что с этим делать

Reading time3 min
Views71K
Случайно обнаружил несколько забавных нюансов работы Win10, которые сильно могут потрепать нервы пользователям. Но кто предупрежден — тот вооружен.

1. Safe-mode & Win10
2. Циклическая перезагрузка при установке обновлений.
Читать дальше →

33 iOS библиотеки с открытым исходным кодом, которые будут популярны в 2017 году

Reading time5 min
Views24K
Отличного пятничного настроения, друзья!
Сегодня мы приготовили для вас полезный перевод поста основателя Ecler Studios Paweł Białecki, в котором он предлагает нашему вниманию 33 open source проекта для iOS разработчиков.
С помощью своего аккаунта в GitHub он открыл для себя множество перспективных инструментов и отобрал, по его мнению, лучшие из них для своих читателей.


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

Насколько удобным может быть API для рисования в iOS?

Reading time4 min
Views7.9K

Здравствуйте, меня зовут Виктор, я работаю в компании Exyte. Недавно мы выложили в open source нашу внутреннюю разработку — библиотеку для работы с векторной графикой и ее анимации Macaw. Я хочу поделиться впечатлениями от применения ее в реальном проекте и рассказать о ее преимуществах над нативным API.


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


  • Отнаследоваться от UIView, чтобы переопределить drawRect
  • Описать "сцену" используя устаревший Core Graphics API

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


ControlImage


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

В копилку инструментов для прототипирования: Make My App

Reading time3 min
Views9.7K
Прототипирование давно стало одним из ключевых этапов разработки приложения. Введение визуальных образцов в обсуждение продукта снижает риски и устраняет неопределенность, тем самым позволяя сохранить время и деньги, которые были бы потрачены на разработку непроверенных решений. Прототипы могут с пользой применяться на разных этапах работы над продуктом — в частности, это отличное средство точно сформулировать техническое задание.



Если кратко суммировать все преимущества, прототипирование позволяет:

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

На сегодняшний день на рынке представлено такое изобилие решений для прототипирования всевозможных видов софта, что сориентироваться среди них непросто. На Хабре можно найти обзоры о множестве подобных программ. Как и многие другие разработчики, мы долгое время держались проверенного решения — небезызвестного Moqups — жалея времени тестировать многочисленные альтернативы. На Make My App — инструмент, о котором пойдет речь в обзоре, мы вышли случайно, благодаря рекомендации со стороны: в списках мы этот продукт не находили. Ниже представляем небольшой обзор, по которому можно составить общее представление о функционале приложения.
Читать дальше →

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

Reading time7 min
Views24K

1. DZNEmptyDataSet


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

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

image


Обновление Windows 10 «поломало» миллионы HD веб-камер

Reading time5 min
Views94K

Logitech C920 — одна из веб-камер, которые начинают глючить после установки обновления Windows 10 Anniversary Update

На форуме техподдержки Windows многочисленные пользователи сообщают о проблемах с веб-камерой после установки последнего обновления Anniversary Update (Windows 10 version 1607, OS Build 14393.10 'anniversary). После установки апдейта веб-камеры больше не могут передавать видео, закодированное в MJPEG или H.264, а работают только в режиме передачи несжатого видео YUV.

Начинают глючить Skype в режиме HD-видео, Open Broadcaster Software (OBS), различный софт для видеонаблюдения (CCTV) и др. Проблема подтверждена для множества моделей USB веб-камер, в том числе для очень популярных Logitech C920 и C930e.
Читать дальше →

Как улучшить работу модема при плохом покрытии сети

Reading time7 min
Views90K
Привет. В этот раз мы решили написать статью об антеннах, в контексте антенн для USB-модемов. Расскажем о том, какие они бывают, почему так выглядят, какие проблемы решает каждая из антенн.

Мы учли пожелания в комментариях к предыдущей публикации о том, чтобы писать «проще», в то же время мы не можем не использовать технические описания и терминологию. Надеемся, что у нас получился нужный баланс удобного и одновременно полезного содержания.

Периодически, на электронную почту завода приходят вопросы вроде: «Почему купленная мною 3G антенна не ловит LTE?», или «Вскрыл вашу антенну — одни железки/фольга, где же усилитель?» и много других вопросов.

Было решено написать статью в том числе для ответов и на такие вопросы. Цель материала — показать, как работают такие антенны на примере собственных изделий и помочь выбрать нужную антенну для приема интернет-сигнала именно в вашей ситуации.
Читать дальше →

Как бесплатно обновить Windows 7 и 8.1 до Windows 10 после 29.07.2016

Reading time4 min
Views892K
Как известно, в Microsoft изначально заявляли, что Windows 10, вышедшая 29.07.2015, будет бесплатным обновлением для розничных и OEM инсталляций Windows 7 и Windows 8.1 в течении одного года – до 29.07.2016. А после 29.07.2016 обновление через Windows Update предлагаться не будет, и его придётся покупать. Windows Update на Windows 7 и Windows 8.1 регулярно предлагал выполнить обновление до Windows 10.


В действительности, с 19.07.2016 на всех активированных системах с установленными розничными изданиями Windows 7/8.1 на которые пользователи регулярно устанавливали рекомендованные обновления Microsoft, включился счётчик с обратным отсчётом оставшегося для бесплатного обновления времени. Безусловно, это подстегнуло многих, отложивших обновление на последние дни. И, как и обещали, с 29.07.2016 предложения бесплатно обновить ОС через Windows Update исчезли. Неужели те, кто не успели обновить остались без возможности получить новую ОС бесплатно? К счастью, нет! Возможность бесплатного обновления ОС осталась. Давайте разберемся, как теперь можно обновить свои Windows 7 и Windows 8.1 до Windows 10.
Читать дальше →

Облако Mail.ru в Total Commander

Reading time2 min
Views105K
Да, это именно то, что вы представили. Доступ к cloud.mail.ru как к диску прямо внутри файлового менеджера. Ссылка в конце статьи.

А ещё TC научился показывать иконки во вкладках!

Будем откровенны: безальтернативный механизм работы с облаком Mail.ru через синхронизацию очень неудобен. По сути, у пользователя нет полноценного контроля над единичными файлами; всё, что предлагает ему стандартный клиент — двустороннее зеркалирование указанных им данных. Если же нужно отойти от этого сценария, скажем, скачать из облачного архива единственный файл на несинхронизированном устройстве — приходится запускать браузер и пытаться сделать что-то через веб-интерфейс, в котором даже поиска нет. Учитывая, что содержимое облачных каталогов подгружается по мере прокрутки, поиск в браузере может и не помочь.
Есть и другие кейсы, при которых работа с облаком становится затруднительна. Доступ к облаку по webdav, который решил бы все проблемы, отключён (хотя работал какое-то время после запуска сервиса).
При этом сервис бесплатно предоставляет довольно значительный объём хранилища (раздачу террабайтов все помнят?), лимитирования скорости я ни разу не замечал, и за всё время работы с сервисом нареканий к нему не возникло. Для резервирования и пересылки не слишком приватных данных облако Mail.ru подходит очень хорошо. Ограниченность клиента — единственная проблема.

Раз она есть — надо её решать.
Читать дальше →

Книга «Swift 2.2. Основы разработки приложений под iOS и OS X»

Reading time2 min
Views8.2K
Всем привет! Мы в феврале писали пост о книге «Swift. Основы разработки приложений под iOS». Недавно у нас вышло второе издание:

image Данная книга содержит исчерпывающую информацию для всех желающих научиться программировать на замечательном языке Swift и создавать собственные iOS-приложения. Вы найдете не только теоретический материал, но и большое количество практических примеров и заданий, которые позволят постичь все тонкости нового языка. Дерзайте, ведь, изучив Swift, вы сможете создавать приложения для любой платформы — iOS, OS X, tvOS или watchOS.

В сравнении с предыдущим изданием данная книга содержит следующие изменения и дополнения:
— весь материал актуализирован в соответствии со Swift версии 2.2 и Xcode 7.3.
— добавлено большое количество нового учебного материала. В частности, переработана глава 26. Теперь книга не просто обучает Swift, но и готовит вас к полноценной разработке приложений.
‰- учтены пожелания и замечания пользователей по оформлению и содержанию.
‰- исправлены найденные опечатки.
Читать дальше →

О замене, ремонте и опыте эксплуатации Pebble Watch

Reading time6 min
Views21K
В статье расскажу о том, как сейчас заменить свои часы на новые, как починить старые и поделюсь опытом эксплуатации спустя почти два года использования Pebble Watch и Watch Steel.

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

Реализация MVVM в iOS с помощью RxSwift

Reading time5 min
Views45K
Существует бесчисленное множество статей относительно шаблона MVVM в iOS, но немного о RxSwift, и мало кто акцентирует внимание на том, как выглядит паттерн MVVM на практике и как его реализовать.

ReactiveX

ReactiveX — библиотека для создания асинхронных и основанных на событии программ при помощи наблюдаемой последовательности.  — reactivex.io

RxSwift — относительно молодой фреймворк, который позволяет "реактивно программировать". Если Вы ничего о нем не знаете, тогда наведите справки, потому что функциональное реактивное программирование (FRP) набирает обороты, и не собирается останавливаться.
Читать дальше →

Pebble: Timeline — вид «изнутри»

Reading time7 min
Views12K
И на улице обладателей «классических» Pebble случился праздник — началось закрытое (по подписке) beta-тестирование Timeline-прошивки (которую, кстати сказать, обещали ещё в августе). Приглашаю под кат, разобраться что представляет из себя Timeline, который изначально доступен пользователям Pebble Time и уже скоро будет радовать (или не очень) всех владельцев Pebble.
Читать дальше →

Разработка быстрых мобильных приложений на Android. Часть вторая

Reading time14 min
Views33K
В Edison мы часто сталкиваемся с оптимизацией мобильных приложений и хотим поделиться материалом, который считаем крайне полезным, если вы решаете одну из двух задач: а) хотите чтобы приложение меньше тормозило; б) хотите сделать красивый, мягкий и гладкий интерфейс для массового пользователя.

Предлагаем вашему вниманию первую часть перевода статьи Udi Cohen, которую мы использовали как пособие для обучения молодых коллег оптимизации под Android.

(Читать первую часть)


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

Все для watchOS

Reading time4 min
Views6.8K


Мы обратили внимание на активную работу по приложениям для watchOS выпускника нашего Акселератора, решили не отставать и поспособствовать активному использованию новой платформы.

Ниже представлен список фреймворков, библиотек и примеров приложений для watchOS.
Читать дальше →

Работа iOS App в фоновом режиме

Reading time4 min
Views45K
Стояла задача, чтобы программа отправляла через web socket текущие координаты по заданному пользователем интервалу. К тому же, программа должна работать в фоне и если пользователь или iOS по какой то причине её выгрузит из памяти, то желательно чтобы она перезапустилась и продолжила работу в фоне.
Поставленную задачу надо решить только средствами iOS без изменения серверной части (никаких Push Notifications).

Отправлять координаты по таймеру когда программа свернута в фон не составляет проблемы, для этого можно использовать background location mode для получения координат и long-running tasks для таймеров.

Но так как в iOS нет такой прелести как Android Background Services, то если вручную завершить программу, код перестает выполняться. Потому основная сложность заключается в том, как максимально быстро запустить программу в фоне, чтобы она продолжила выполнять свою задачу дальше, если её по каким то причинам выгрузила из памяти iOS, или если пользователь перезагрузил устройство, или если он вручную «убил» программу.

Теперь о том, что помогло решить данную задачу в приемлемом варианте:
Читать дальше →

Как выбирать видеорегистратор 2015: самый большой в интернете FAQ для обычного покупателя

Reading time25 min
Views34K
Время от времени на Geektimes публикуются обзоры автомобильных видеорегистраторов. Статьи о конкретных моделях – это конечно хорошо, но о том, как всё-таки найти регистратор «по душе» здесь толком ещё никогда не рассказывали.

Меня зовут Александр Шуб, на протяжении последних пяти лет я постоянно тестирую регистраторы, пишу материалы о них для различных изданий. И, что особенно важно, тесно общаюсь с инженерами нескольких российских брендов, выпускающих и продающих автомобильные «чёрные ящики». Недавно мной был написан (уж простите за нескромность) самый-самый большой в рунете FAQ по выбору регистраторов. В котором я постарался осветить все более-менее популярные вопросы потенциальных покупателей, возникающие в процессе выбора видеорега. А заодно я изложил свой взгляд на то, что, по моему мнению, неверно рассказано в схожих статьях.


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

Опыт отправки Apple Push Notification через SNS сервис от Amazon и немного полезного кода

Reading time5 min
Views14K
Теплым летним вечером, в процессе разработки очередного приложения для iOS, у меня совпало два фактора — возникла необходимость реализации Apple Push Notification (APN) и желание попробовать что-то совсем новое для меня. Идти проторенной дорогой через один из множества сервисов, предлагающих отправку APN не хотелось.

Для изобретения велосипеда был выбран Amazon Simple Notification Service (Amazon SNS). Amazon SNS — это сервис, который позволяет вам отправлять сообщения-нотификации, посредством разнообразных механизмов (APN, GCM, e-mail, SMS и т.д.).

О том, как это работает и более подробную информацию можно прочитать в документации Amazon. Я расскажу совсем немного, чтобы определиться с дальнейшей терминологией. У SNS есть два типа клиентов — публикаторы (publishers) и подписчики (subscribers). Публикаторы с подписчиками асинхронно обмениваются сообщениями (messages), которые доставляются подписчикам, посредством разнообразных механизмов. Для отправки групповых сообщений подписчики могут быть сгруппированы по темам (topics). Тогда все подписчики, подписанные на тему, получат сообщение в эту тему отправленное.

Картинка из документации Amazon:
image
Читать дальше →

UrbanAirship — push без создания сервера

Reading time3 min
Views7.6K


Компания UrbanAirship помогает разработчикам с 2009 г. Их платформа позволяет реализовать отправку push-уведомлений на большинстве мобильных платформ: iOS, Android, BlackBerry, Windows, PhoneGap. Сегодня мы поговорим об основных тонкостях использования UrbanAirship и возможностях библиотеки для платформы iOS.
Читать дальше →

Information

Rating
Does not participate
Location
Ставропольский край, Россия
Date of birth
Registered
Activity