Pull to refresh
26
0
Богдан Орлов @KAIIIAJIOT

iOS Разработчик

Send message

BDD тестирование в Swift с помощью Sleipnir

Reading time4 min
Views10K

Objective-C разработчики могут пользоваться различными фреймворками для BDD тестирования своего кода.
Некоторые из них:


С появлением языка программирования Swift мы решили реализовать фреймворк для тестирования в стиле BDD на чистом Swift, без привязки к Objective-C.
После пары недель имлементации мы выпустили первую публичную версию фреймворка Sleipnir.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments4

Мобильная аналитика. Теперь бесплатно!

Reading time3 min
Views13K
Друзья, мы рады поделиться с вами хорошей новостью — официальный запуск сервиса автоматизированного продвижения приложений Appintop состоялся! Кроме того, мы приготовили для вас отличный подарок, на который ушло несколько месяцев кропотливого труда. Это модуль рыночной аналитики SPY, который доступен абсолютно бесплатно! Подписка на подобные сервисы стоит около $10 000 в месяц.

Модуль SPY позволяет:
— просматривать, сколько зарабатывают ТОП-400 приложений по 25 странам;
— подсматривать за конкурентами (выручку и установки);
— выбрать нишу для приложения;
— узнать, сколько нужно установок, чтобы выйти на любую позицию по любому региону;
— узнать, сколько вы будете зарабатывать на определенной позиции;
— выбрать страны для продвижения;
— искать объекты для инвестирования;
— и многое другое.

Каким образом мы собираем данные?

Доступ к модулю SPY бесплатен, но с одним условием: взамен вам необходимо предоставить iTunes connect вашего приложения. Это позволяет нам делать аналитику еще более точной. В системе насчитывается уже более 5000 iTunes connect’ов приложений, которые отдают нам свои данные по установкам и заработку. Большинство аналитических сервисов работают по такой же схеме, и только мы предоставляем все аналитические данные абсолютно бесплатно!

Подключая свой iTunes connect, вы получаете доступ к удобной системе аналитики по 25 самым крупным странам и по ТОП-400 позиций по каждой из них:

image

Как создавался модуль SPY

Создание подобного модуля было очень непростой задачей как с технической стороны, так и со стороны получения iTunes connect’ов. Несколько крупных аналитических компаний, собрав приличный пул приложений, стали монополистами на рынке мобильной аналитики. Но мы верили, что можно создать технически более совершенный сервис, и главное, сделать его бесплатным! Разработчики не должны платить за аналитику, тем более по $10 000 в месяц.
Читать дальше →
Total votes 39: ↑24 and ↓15+9
Comments39

История одного пасхального приложения

Reading time6 min
Views6K

Не яйца красят человека, а человек красит яйца


Лучок, свекла, старый галстук, цветные нитки — сколько способов раскраски яиц знаете вы? Сегодня мы расскажем еще об одном, придуманном нами.

image

Набить морду павлину


Яйца раскрасить — не картошки пожарить.
Читать дальше →
Total votes 55: ↑38 and ↓17+21
Comments18

Как мы спасали глаза с OpenCV

Reading time10 min
Views35K
Материалы этого поста задержались с выходом в свет на 4 месяца. Мы — молодая команда разработчиков, и только учимся нарушать dead-лайны, но кажется, что получается уже неплохо. Предыстория в этой статье, где мы и обещали выложить продолжение. Рассказ пойдёт о том, как же наше приложение работает (или не работает, решать читателю).

Какое приложение? Мы — команда проекта Viewaide (бывший EyeDoc) и пишем софт, который при помощи веб-камеры определяет параметры усталости глаз и выводит уведомления, задача которых снизить риск ухудшения зрения вследствие долгой работы у монитора. Чем 100 раз услышать, лучше 1 раз увидеть.



Скачать и попробовать можно по этой ссылке, как говорится, “бесплатно, без смс”. Кроме софта, у нас имеется ещё и часть web-сервиса, но обо всём по порядку.
Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments18

Гид по новогодним подаркам — 2013

Reading time8 min
Views61K
До нового года осталось всего пол-месяца, и если вы такой же тормоз задумчивый человек, как я — то самое время выбирать подарки. Мы в редакции Box Overview нашли, протестировали, и составили для вас список самых актуальных подарков в этом году.


Итак, посмотрим, чем же хабрапользователи будут заниматься на зимних каникулах? Когда 10 дней не надо идти на работу, а холодильник полон еды с новогоднего стола, нет лучшего развлечения, чем разобраться с новым гаджетом, вкусно пахнущим новой техникой.
Читать дальше →
Total votes 49: ↑37 and ↓12+25
Comments38

Автоматическое тестирование iOS приложений

Reading time6 min
Views30K
image
Бывает, наступает момент, когда нужно следить, не развалился ли лишний раз интерфейс мобильного приложения. Чтобы решить эту проблему используются автоматические тесты. Для веб страниц считается общепринятой практикой использовать Selenium Web driver, поэтому для мобильных приложений я искал похожие вещи. И, на счастье, таких нашлось немало, в них используется Selenium WebDriver JSON Wire Protocol.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments9

Ломаем iOS-приложение. Часть 1

Reading time13 min
Views73K
Вы хорошо поработали, и вот ваше приложение в App Store!

  • Храните учётные записи юзеров?
  • Используете встроенные покупки?
  • Не хотите показывать своё ноу-хау?

Повод задуматься о безопасности кода и данных! Мы будем искать уязвимости в тестовом приложении. В этой статье поговорим о безопасности данных, а в следующей — перейдём к коду.
Много текста и картинок
Total votes 63: ↑51 and ↓12+39
Comments22

Синтезатор речи в iOS7

Reading time2 min
Views13K
В iOS7 встроили синтезатор речи, теперь заставить свое приложение говорить вопрос пары строчек кода.

За синтез речи отвечает класс AVSpeechSynthesizer Достаточно передать ему текст обернутый в класс AVSpeechUtterance и текст будет прочитан смартфоном.

Голос зависит от локали, в том числе поддерживается русский. Речь звучит четко и приятно.

var speechSynthesizer = new AVSpeechSynthesizer ();
var speechUtterance =
  new AVSpeechUtterance ("Shall we play a game?");
speechSynthesizer.SpeakUtterance (speechUtterance);


узнать подробности и послушать как говорит iPhone
Total votes 30: ↑25 and ↓5+20
Comments32

Целимся из пушки

Reading time3 min
Views31K

В статье описан простой алгоритм наведения пушки, когда оси вращения не пересекаются с осью ствола. Быстро найти готовый не получилось – пришлось вспоминать школьные времена. Ну а раз вспомнил – грех не поделиться с остальными. А кто-то где-то, сэкономив время, использует его на создание еще чего-то полезного…

Результат приведенных расчетов используется в аркадной игре. За месяц промахов не было. Если вы разрабатываете симулятор, скорее всего, понадобится что-то более изощренное.
Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments20

Continuous Integration в XCode5

Reading time2 min
Views13K
В пятой версии XCode появился Continuous Integration. Он работает через XCode службу OS X Server ($20, AppStore).

XCode Service умеет все тоже что и любой Continuous Integration сервер, возможно чуть меньше. Огромный плюс — полная интеграция с XCode и свойственная Apple «работа из коробки». Я запустил авто-сборку проекта за полчаса, хотя раньше ни разу не настраивал CI сервер. И не нужно курить мануалы как правильно собирать приложение из командной строки, как включить эмулятор или запустить тесты на устройстве.

xcode continuos integration
подробнее о возможностях
Total votes 23: ↑19 and ↓4+15
Comments16

О проблемах и решении задачи доставки пуш-уведомлений миллионам устройств на различных платформах

Reading time9 min
Views23K
Пуш-уведомления критически важны для мобильных приложений подключенных к интернету. Они позволяют бэкенду сервисов отправлять частые и своевременные обновления определенным пользователям и устройствам, которые затем могут быть представлены в виде обновлений живых плиток, всплывающих тост-уведомлений, бэдж-обновлений и так далее (обратитесь к этой серии статей для того, чтобы узнать больше). Представляясь в таком виде, пуш-уведомления – это, возможно, наиболее мощный механизм вовлечения клиента доступный разработчикам приложений на телефонах, планшетах и ПК.

push-fig1

Существует множество инструментов, которые могут помочь вам упростить работу с пуш-уведомлениями (Windows Azure Mobile Services, например, уже включает в себя такой функционал). С помощью этих инструментов отправка отдельных уведомлений одному отдельному пользователю – это сравнительно простая задача.  Тем не менее, постоянная отправка уведомлений с низкими задержками миллионам мобильных пользователей с учетом реальных требований по локализации, поддержке разных мобильных платформ, персонализации для пользователя становится гораздо более трудной задачей.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments6

Blur в iOS7

Reading time2 min
Views31K
С седьмой версией iOS многие элементы UI стали выглядеть привлекательнее (см. Session 226, Implementing Engaging UI on iOS).

Например, теперь поп-оверы, большинство баров и алерты имеют размытый фон.



Что делать, если хочется добавить блюр в свой контрол, подскажет эта статья.
Читать дальше →
Total votes 64: ↑52 and ↓12+40
Comments25

Советы начинающим iOS разработчикам

Reading time3 min
Views29K
Если не знаешь, надо не бояться, а узнавать.
Айн Рэнд “Атлант расправил плечи”



Добрый день, меня зовут Игорь Томич и я лектор курсов iOS-разработки и сооснователь онлайн курсов Master Up. Это мой первый пост в наш корпоративный блог, в котором я решил поделиться советами для начинающих iOS-разработчиков. Свое первое приложение для iOS я начал писать в начале 2009 года, а в мае 2012 году провел первый курс обучения по рарзработке под эту же платформу и к этому времени у меня скопилось достаточно “часто повторяемых ошибок” и путей их решения.
Читать дальше →
Total votes 63: ↑41 and ↓22+19
Comments33

Почему мы не тестируем. Практика проведения технического интервью

Reading time5 min
Views52K
Я руковожу разработкой ПО уже достаточно много лет. За эти годы мне пришлось провести более тысячи интервью и посчастливилось захантить больше сотни классных программистов. Естественно, у меня сложилась определенная практика проведения технических собеседований, которой я собираюсь поделиться. Возможно, это окажется кому-то полезным.

Ставим задачу
Кого ищем? Ищем эффективных бойцов. Известно, что эффективность программистов со схожим опытом может отличаться в 10 раз (Ф. Брукс) или даже в 27 раз (Р. Гласс). Сразу, оговорюсь, эффективность это не только количество трупов врагов реализованных требований к ПО на единицу трудозатрат, но и умение результативно взаимодействовать с окружающими. Это важно, потому что по моим наблюдениям 50% проектных человеко-часов тратится на коммуникации. У нас это называется «синхронизация ментальных моделей».

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


Если на заводы людей нанимают за умения и обучают нужному отношению к делу, то в разработке ПО, следует поступать наоборот. Нанимать за нужное отношение к делу и учить необходимым умениям. Не следует брать людей, которые знают и умеют, а потом заниматься промыванием их мозгов и пытаться мотивировать их на эффективную работу. Их знания и умения ничего не будут стоить уже через полгода или год.
В идеале, конечно, следует стараться привлечь и знающих, и умеющих, и подходящих по своим жизненным позициям. Но если приходится выбирать, то правильнее выбрать жизненную позицию. Ищем тех, кто хочет развиться и расти, а затем, если необходимо, помогаем им получить требуемые технические навыки. Предлагаем не работу, а возможности.
Почему не тестируем
Total votes 151: ↑125 and ↓26+99
Comments220

Повышать или не повышать — вот в чем вопрос

Reading time4 min
Views62K

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

Рассуждаю я примерно так.

Сколько же надо платить программисту? Как правило, рыночная «вилка» вознаграждения для конкретной квалификации известна и составляет от X до 1.5*X. Можно рискнуть и платить по нижней планке — X. Однако, возможность получать в 1.5 раза больше за ту же работу скорее всего перевесит все остальные мотивы, которые удерживают бойца в моей команде. Ситуация усугубляется еще и тем, что агрессивные «охотники за головами» делают разрыв в вилке еще больше, чтобы побыстрее перекупить квалифицированные кадры. Надо ли платить по верхней планке, тем более, если она сильно завышена? А, может быть, следует платить еще больше?

Заранее, приношу свои извинения, за занудность и излишнюю детальность нижеследующего изложения в стиле — «как для домохозяек». Я много раз пытался объяснять свое видение подхода к решению этого вопроса людям, которые должны были принимать решение о повышении оклада, но они не всегда меня понимали. Или, может, просто, не хотели?
Читать дальше →
Total votes 124: ↑111 and ↓13+98
Comments370

Шаберная пластина как инструмент оверклокера

Reading time6 min
Views129K
Этот жестокий мир теплового хаоса

Мы живем в компьютерном мире, а современная электроника в части кремниевых «мозгов» достаточно тёплая вещь — процессоры нагреваются нещадно, как основные, так и специализированные, GPU например. В каждом электрическом изделии присутствуют радиаторы пассивные и если совсем много тепла нужно рассеять — то и вентиляторы.
Как известно, электротехника это наука о контактах. Так же можно сказать, что и теплотехника — тоже наука о контакте, о тепловом контакте и передаче тепла от теплого к холодному посредством конвекции и/или излучения. Но не будем в это углубляться, поговорим о конкретном решении, направленном на уменьшение перегрева оборудования и сопутствующего шума от активных систем воздушного охлаждения в паре металл-металл.
узнать, что такое шаберная пластина и чем она хороша
Total votes 82: ↑75 and ↓7+68
Comments36

Сервисы P2P-переводов денег с карты на карту Visa и Mastercard

Reading time5 min
Views302K

Задача: как получить деньги от другого человека здесь и сейчас?


Вы оказываете услуги, но при этом не предприниматель. Вы решили что-то продать. Вы расплачиваетесь за всех. Вам нужно погасить задолженность по кредитной карте. Вот лишь небольшой список тех ситуаций, когда нужно передать деньги от одного человека другому.
Вообще вариантов передачи денег несколько: отдать наличными, перевести электронными деньгами, оформить платеж через интернет-банк, сделать перевод с банковской кары на банковскую карту Visa или Mastercard. Каждый способ по-своему хорош, но карты все же рулят!
Мне было интересно сделать review российских сервисов P2P-переводов по банковским картам.

На Июль 2013 г. найдено 6 сервисов по переводу средств с карты на карту по технологиям Visa Money Transfer® и MasterCard MoneySend®:

Под катом можно найти конкретные рекомендации. Предлагаю общественности пользоваться, уточнять и дополнять.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments94

GameDev, Indie, Corona SDK, GameJam 48h, DevConf, Go, Laser Flow

Reading time16 min
Views9.7K
Приветствую! Сразу извиняюсь за заголовок — столько всего хотелось в нём рассказать, но получалось слишком длинно.

Рассказ пойдёт о моей игре (iOS, Android), сделанной с помощью Corona SDK, о самой короне и разработке с ней, о соревновании «напиши игру за 48 часов», о прошедшей недавно DevConf и про язык Go.

Введение


Я уже давно разрабатываю игру в жанре Tower Defense с короной, но игра требует огромного количества времени, чтобы стать по настоящему качественной, а качественные игры это пункт #1 на пути к успеху (пункт #2 это куча денег на маркетинг, если кто не в курсе). Поэтому давно уже хотелось что-то сделать пускай небольшое, но своё и в короткие сроки.

«Осторожно многабукав!»
Я прочитаю - я молодец!
Total votes 26: ↑23 and ↓3+20
Comments7

Не для печати. Как мы запускали журнал для iPad

Reading time4 min
Views4.4K
Преамбула

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

Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments30

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Registered
Activity