Обновить
0
0
mmd@mmd

Пользователь

Отправить сообщение

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

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

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

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

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

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


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

Все для watchOS

Время на прочтение4 мин
Охват и читатели6.9K


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

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

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

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

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

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

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

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

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

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


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

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

Время на прочтение5 мин
Охват и читатели14K
Теплым летним вечером, в процессе разработки очередного приложения для 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 без создания сервера

Время на прочтение3 мин
Охват и читатели7.7K


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

Чистилка. Боремся с нечистым на руку софтом

Время на прочтение3 мин
Охват и читатели30K
Некоторое время назад моя сестра попросила посмотреть ноутбук который «глючит». Выражалось это в показе рекламных баннеров со звуком на рабочем столе, открытие дополнительных вкладок в браузере. И, самое главное, загрузка iframe с рекламой, который полностью перекрывал страницу и не давал нормально пользоваться интернетом.



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

Специальная сим-карта плюс интернет-телефония или «сип с ногами» для всех

Время на прочтение4 мин
Охват и читатели32K
Еще тогда, когда трава была зеленее, Солнце ярче, а сервисы интернет-телефонии для недорогих звонков по всему миру популярнее, в начале 2010 года, был выпущен в свет проект интернет-телефонии для физических лиц A-FON.RU

Всю свою достаточно долгую и насыщенную жизнь наш а-фон старательно конкурировал с другими аналогичными сервисами, честно приводил «клиентов-физиков» со 100 рублями в месяц, которые иногда превращались в «клиентов-юриков» с 10 тысячами рублей в месяц. И, вроде бы, жить ему и дальше и продолжать нести миру милое, доброе, вечное — дешевые звонки через интернет для всех, но время неумолимо движется вперед и по состоянию «на сейчас» команда проекта стала четко улавливать первые признаки того, что модель «установил софтфон-настроил-позвонил за 2 рубля в Пекин» медленно, но верно входит в рецессию. Социальные сети и мессенджеры тихо и незаметно делают свое черное дело, клиент становится капризным и избалованным, клиенту подавай новые бесплатные сервисы и фичи, чтобы этот самый клиент продолжал использовать твой сервис, а не вайберы-фейсбуки-вконтакты. Что же, у нас есть что предложить — наши замечательные переработанные FMC сим-карты

image

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

Детектируем, разбираем, изучаем, паяем и глушим полицейские радары и лидары

Время на прочтение17 мин
Охват и читатели206K
Давным давно, в 1902 году, сидят в кустах трое полицейских (с интервалами в 1 милю), у каждого секундомер и телефон. Проносится мимо первого автомобиль, он тут же засекает время и звонит второму, второй делает математические вычисления и звонит третьему, а тот уже останавливает машину. (пруф)


«Антирадар» в разборе. (Радар-детектор — пассивный приемник сигналов полицейских радаров, предупреждающий водителя о необходимости соблюдать установленный скоростной режим.)

Сегодня речь пойдет о приборах для радиоэлектронной борьбы на наших дорогах.
Пока антирадары и радар-детекторы у нас не запрещены, то РЭБ у нас не ведется, но в некоторых странах война идет по полной. Мы же можем только подготовиться.
Радиоэлектронная борьба (РЭБ) — разновидность вооружённой борьбы, в ходе которой осуществляется воздействие радиоизлучениями (радиопомехами) на радиоэлектронные средства систем управления, связи и разведки противника в целях изменения качества циркулирующей в них военной информации, защита своих систем от аналогичных воздействий, а также изменение условий (свойств среды) распространения радиоволн. Wikipedia
Как противостоять тому, кто пытается снять о вас информацию без вашего ведома и как защитить свои «персональные данные» от несанкционированного съема.

Радары, детекторы радаров, детекторы детекторов радаров. О том, какие бывают, как сделать/распилить самому и то и другое.
(Спасибо интернет-магазину fonarimarket.ru за предоставленное оборудование)
Читать дальше →

Как я рисовал дизайн приложения для конкурса Mail.Ru Group

Время на прочтение7 мин
Охват и читатели28K


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

Вместо вступления


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

В один из таких дней я наткнулся на заметку «Конкурс для дизайнеров от Почты Mail.Ru». Обычно я не принимаю участия в подобных конкурсах, но здесь совсем другая история. Задание мне показалось нестандартным и от того очень интересным. Меня это зацепило с профессиональной точки зрения. Смогу ли я решить поставленную задачу или на худой конец разработать и предложить концепты, которые получат применение в готовом приложении?

С этими мыслями я приступил к работе.
Читать дальше →

Датчики и микроконтроллеры. Часть 3. Измеряем ток и напряжение

Время на прочтение12 мин
Охват и читатели350K

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

Содержание


Часть 1. Мат. часть. В ней рассматривается датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассматриваются статические и динамические характеристики датчика.
Часть 2. Датчики климат-контроля. В ней рассматриваются особенности работы с датчиками температуры, влажности, давления и газового состава
Часть 3. Датчики электрических величин. В этой части я рассмотрю датчики тока и напряжения
Читать дальше →

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы

Время на прочтение12 мин
Охват и читатели15K

Введение



Давным давно, в далекой Галактике, когда жесткие диски были не более 100 Мб (а кое где их и не было вовсе), шина адреса всего 16 бит, о графических 3D-ускорителях никто, или почти никто даже не помышлял, а Интернет приходил в редкие дома, по мокрым бельевым веревкам через пищащие коробки…

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

Теплый и, в каком-то смысле, ламповый монитор прошлого...


Осторожно! Много скриншотов

Ностальгия по КУВТ: запускаем эмулятор MSX под Linux

Время на прочтение7 мин
Охват и читатели21K

Предисловие


Знакомство с компьютером каждый из нас начинал по своему и в разное время. Кто-то помнит ДВК, «Искры» и «Агаты», а кто-то сразу сел за IBM PC под Win 9x. Довольно часто попадаются ностальгические статьи, читать которые всегда интересно, ибо написанное сравниваешь с личным опытом и вспоминаешь, как было у тебя.

А вот у меня было так:

Yamaha КУВТ2 — ученическое место


Такие «рабочие станции» — Yamaha YIS503III, в середине-конце 90х были в нашем школьном компьютерном классе. Их было 9 штук + учительский компьютер и матричный принтер. Всё это дело соединялось локальной сетью с топологией «шина» Монитор у ученических машин был в 256 оттенках зеленого

Монохромный ученический дисплей


Подробнее, для тех у кого тоже учащенно забилось сердце

Часы Pebble Time заговорили по-русски

Время на прочтение2 мин
Охват и читатели22K


Появилась кастомная прошивка для Pebble Time с поддержкой кириллицы! С родной прошивкой часы показывают прямоугольники вместо русских букв, из-за чего невозможно читать нотификации на русском языке. Интересно что автор прошивки Семен Марьясин разобрался с новым форматом ресурсов, пользуясь лишь опытом написания патчей для предыдущего поколения часов. Своих Реbble Time для тестов у него пока нет.
Читать дальше →

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

Время на прочтение3 мин
Охват и читатели30K
Существует множество ресурсов, с помощью которых вы можете начать изучать язык или продолжить улучшать его. Но мы хотели бы рассказать вам о некоторых очень полезных и, возможно, не слишком известных сервисах для совершенствования ваших знаний.



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

Умные часы Pebble Time: анбоксинг и первые впечатления

Время на прочтение4 мин
Охват и читатели21K


Так вышло, что я одним из первых в России держу в руках умные часы Pebble Time Development Preview. До старта официальных продаж еще далеко, и даже часы для участников Kickstarter-кампании не начали рассылать. Тем не менее, я уже заполучил эти часы, так как компания Pebble решила заранее разослать некоторое количество тестовых бесплатных часов для разработчиков популярных сторонних приложений.
Читать дальше →

Pebble Time — первые впечатления

Время на прочтение3 мин
Охват и читатели20K
Pebble Time - первые впечатления

Я достаточно быстро стал поклонником продукции Pebble. Как купил первые их часы — так сразу и стал, так как ну очень уж с ними удобно. В итоге, я полгода пользовался пластиковым «пебблом», потом год — Pebble Steel, а последние две недели носил Pebble Time, которые бесплатно получил от разработчиков. Под катом небольшой обзор последних.
Читать дальше →

Как из пустой пластиковой бутылки, картинки и шейдера сделать игру для iOS за выходные

Время на прочтение7 мин
Охват и читатели31K
Как-то раз я спросил у своей жены:
— У нас же нет планов на выходные?
— Вроде нет, — ответила она.
— Тогда я еще разок поковыряю этот Swift.
— Поковыряй.

И вот я поставил перед собой задачу, написать очень простую игрушку для iOS на Swift'е, не прибегая к какому-либо ^.*C.*$ (прошлый мой опыт ознакомления со Swift'ом закончился тем, что 80% проекта были написаны на Objective-C (который из-за моего С++'ного мышления, сократился до ближайшего известного мне (Objective-C)+2C-Objective = C)).


Задача


Дано: Одна картинка, какие-то соображения в голове.
Надо: Игра написанная до звонка будильника в понедельник.

Не буду подробно описывать вещи, которые прошли для меня безболезненно, надеюсь, что и у вас они не должны вызвать недопонимания.
Решение

Захват контекста замыканиями вместо делегирования в iOS 8 Swift

Время на прочтение9 мин
Охват и читатели14K


При проектировании iOS приложений со многими MVC приходится решать вопросы передачи информации от одного MVC к другому как в прямом, так и в обратном направлении. Передача информации в прямом направлении при переходе от одного MVC к последующему осуществляется обычно установкой Mодели того MVC, куда мы переходим, а вот передача информации «назад» из текущего MVC в предшествующий осуществляется с помощью делегирования как в Objective-C, так и в Swift.

Кроме того, делегирование используется внутри одного MVC между View и Controller для их «слепого взаимодействия».

Дело в том, что Views — слишком обощенные (generic) стандартизованные строительные блоки, они не могут что-то знать ни о классе, ни о Controller, который их использует. Views не могут владеть своими собственными данными, данные принадлежат Controller. В действительности, данные могут находиться в Mодели, но Controller является ответственным за их предоставление. Тогда как же  View может общаться с Controller? С помощью делегирования.

Нужно выполнить 6 шагов, чтобы внедрить делегирование во взаимодействие View и Controller:

  1. Создаем протокол делегирования (определяем то, о чем View хочет, чтобы Controller позаботился)
  2. Создаем в View weak свойство delegate, типом которого будет протокол делегирования
  3. Используем в View свойство delegate, чтобы получать данные/ делать вещи, которыми View  не может владеть или управлять
  4. Controller объявляет, что он реализует протокол
  5. Controller устанавливает self (самого себя) как делегата View путем установки свойства в пункте #2, приведенном выше
  6. Реализуем протокол в Controller

Мы видим, что делегирование — не простой процесс.
Как в Swift, так и в Objective-C, процесс делегирования можно заменить использованием замыканий (блоков), принимая во внимание их способность захватывать любые переменные из окружающего контекста для внутреннего использования. Однако в Swift реализация этой идеи существенно упрощается и выглядит более лаконичной, так как  функции (замыкания) в Swift являются «гражданами первого сорта», то есть могут объявляться переменными и передаваться как параметры функций. Простота и абсолютная ясность кода в Swift позволят более широко использовать замыкания (closures), захватывающие контекст, для взаимодействия двух MVC или взаимодействия Controller и View без применения делегирования.

Я хочу показать использование захвата контекста замыканиями на двух примерах, взятых из стэнфордского курса 2015 «Developing iOS 8 Apps with Swift» (русский эквивалент находится на сайте «Разработка iOS+Swift+Objective-C приложений»).

Один пример будет касаться взаимодействия View  и Controller в пределах одного MVC, а другой — двух различных MVC. В обоих случаях  захват контекста замыканиями позволит нам заменить делегирование более простым и элегантным кодом, не требующим вспомогательных протоколов и делегатов.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Ставропольский край, Россия
Дата рождения
Зарегистрирован
Активность