Как стать автором
Обновить

Компания Touch Instinct временно не ведёт блог на Хабре

Сначала показывать

Экскурсия по площадке Google I/O

Время на прочтение6 мин
Количество просмотров5.9K
Привет, я Андрей, управляющий партнер в Touch Instinct. Расскажу вам, как съездил на Google I/O. Ниже экскурсия по площадке в Маунтин-Вью, обзор конференции и много фоток.


Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

Тест-анализ в мобильной разработке

Время на прочтение5 мин
Количество просмотров9.1K


Меня зовут Лена, я руководитель отдела тестирования Touch Instinct.

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

Расскажу, какие аналитические задачи встают перед тестированием в Touch Instinct и как мы их решаем.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Штаб-квартира Touch Instinct. Экскурсия по петербургскому офису

Время на прочтение2 мин
Количество просмотров13K
Привет! Я Алиса, маркетолог в Touch Instinct. Мы делаем мобильные приложения для неравнодушных брендов. Сегодня небольшая экскурсия по штаб-квартире в Петербурге, присоединяйтесь.

image
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии11

Упрощение локализации в iOS

Время на прочтение5 мин
Количество просмотров7.3K


Всем доброго времени суток! Меня зовут Николай, я iOS-Lead в компании Touch Instinct. В процессе разработки часто приходится иметь дело с проектами, которые должны работать на нескольких языках. Расскажу, к какому подходу мы пришли при работе с локализацией.


Минусы базовых подходов


Есть несколько основных подходов для локализации iOS-приложения. Сперва стоит определиться, разрабатывается приложение с использованием storyboards или нет.


С использованием storyboards


Можно локализовывать строки напрямую в storyboard. Однако, при таком подходе есть ряд минусов:


  • в случае наличия большого количества storyboards, локализованные строки разбросаны по проекту;
  • невозможность использования атрибутных строк, а также строк, которые состоят из нескольких составных частей;
  • вам всё равно придется часть строк локализовывать в коде. Это ведет к еще большему разбросу в приложении;
  • фактически отсутствует возможность что-то проверить другому разработчику при проведении code review.

Без storyboards


В этом случае локализуем всё в коде. Однако и тут есть ряд минусов. Дело в том, что файлы со строками локализации localizable.strings — магические. При изменении таких файлов очень велика вероятность возникновения ошибки из-за человеческого фактора. Изменения нельзя отследить, пока ошибка не будет найдена в процессе тестирования.


Таким образом, хотя для локализации уже есть готовые механизмы в iOS SDK, они имеют существенные минусы. Более подробно смотрите здесь.


Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии24

Работа с ConstraintLayout через XML-разметку

Время на прочтение22 мин
Количество просмотров122K

ConstraintLayout


Привет! Меня зовут Гавриил, я Android-лид Touch Instinct.


В марте Google выкатил релизное обновление ConstraintLayout. Презентовали его еще на прошлом Google I/O. С того момента прошел почти год, ConstraintLayout стал лучше, быстрее и оброс новыми возможностями. Например, приятно, что появилась возможность объединения элементов в цепи — это позволяет использовать ConstraintLayout вместо LinearLayout.


О всех новых и старых возможностях ConstraintLayout я и постараюсь рассказать в этой статье. Предупрежу сразу — статья будет длинная и других семи частей не будет. Про визуальный редактор ConstraintLayout в статье не будет ни слова — только XML-разметка (по старинке) и немного кода.

Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии6

6 концепций функционального программирования. Польза и примеры использования

Время на прочтение9 мин
Количество просмотров40K
Доброго времени суток! Меня зовут Иван Смолин, я разработчик мобильных приложений на платформе iOS. Сегодня предлагаю вам окунуться в мир функционального программирования. Статья носит по большей части теоретический характер, нежели практический. В ней я постараюсь дать определения основным понятиям функционального программирования и покажу примеры реализации на C, Objective-C, Swift, Haskell.

Функциональное программирование — это парадигма программирования, которая акцентируется на вычислении через функции в математическом стиле, неизменяемость, выразительность и уменьшение использования переменных и состояний (ссылка).

Существует 6 основных концепций:

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

Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии27

айСоветы

Время на прочтение2 мин
Количество просмотров5.1K


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

Наш CEO Андрей Басков отвечает на вопросы про управление проектами и мобильной студией, продажник Дима Костин про отношения с клиентами, тест-лид Полина Тревогина про тестирование, я про продвижение и стратегию, арт-директор Александр Юдин про дизайн и проектирование.

Мы разбираемся в бизнес приложениях. Про игры не спрашивайте, технические вопросы (как подружить Xamarin с Unity) мы тоже решили исключить.

Подписывайтесь через RSS или Twitter.

Под катом, для примера, ответ на вопрос «Как дешево разработать мобильное приложение».
Читать дальше →
Всего голосов 36: ↑17 и ↓19-2
Комментарии14

Multipeer connectivity framework в iOS7

Время на прочтение3 мин
Количество просмотров18K
Multipeer Connectivity Framework передает текстовые сообщения, потоки и файлы между iOS устройствами, находящимися рядом. Для этого используются WiFi сети, прямое WiFI соединение и Bluetooth. То есть интернет не требуется.

Фреймворк позволяет взаимодействовать устройствам из разных сетей, например у смартфона №2 включен только WiFi, а у №3 только Bluetooth. Если в радиусе доступности этих устройств будет третий смартфон с включенным Wifi и Bluetooth, смартфоны №2 и №3 смогут прозрачно обмениваться
данными.


Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии6

Live Mobile через неделю в Москве

Время на прочтение2 мин
Количество просмотров2.3K
12-13 ноября в Москве в Digital October пройдет Live Mobile!.

В мероприятии примут участие: App Annie, Flurry, ChartBoost, AviaSales, Game Insight и еще 20 других.

Под катом я расскажу почему стоит посетить конференцию и как попасть на нее бесплатно.


Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии5

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

Время на прочтение2 мин
Количество просмотров13K
В iOS7 встроили синтезатор речи, теперь заставить свое приложение говорить вопрос пары строчек кода.

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

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

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


узнать подробности и послушать как говорит iPhone
Всего голосов 30: ↑25 и ↓5+20
Комментарии32

Continuous Integration в XCode5

Время на прочтение2 мин
Количество просмотров13K
В пятой версии XCode появился Continuous Integration. Он работает через XCode службу OS X Server ($20, AppStore).

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

xcode continuos integration
подробнее о возможностях
Всего голосов 23: ↑19 и ↓4+15
Комментарии16

Позиционирование мобильных студий

Время на прочтение5 мин
Количество просмотров6.8K
В рейтинге Apps4All зарегистрировались 146 мобильных студий. Около десяти из них придумывают и проектируют приложения для заказчиков и имееют нормальное портфолио. Остальные сдают разработчиков «в аренду» или пока не сделали стоящих работ.

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

Подробнее про позиционирование читайте в презентации Андрея Терехова (Terekhov).

А я расскажу про позиционирование трех мобильный студий: ГАЛС Cофт, е-Легион и Touch Instinct.

Читать дальше →
Всего голосов 35: ↑24 и ↓11+13
Комментарии9

RevealApp — Firebug для iOS приложений

Время на прочтение1 мин
Количество просмотров8.1K
Два дня назад вышел RevealApp. RevealApp это MacOS приложение. Он показывает иерархию UI-компонентов приложения в понятном и мощном 3D-представлении и позволяет менять UI на лету. Идея похожа на Firebug или Web Inspector для сайтов.

Возможные применения:
— отладка UI, визуальный поиск непонятных багов в layout и тд;
— знакомство с приложением, написанным другим разработчиком, открываете Reveal и быстро анализируете структуру экранов (отображаются в том числе элементы созданные в runtime);
— дизайнеры (или разработчики под их присмотром) могут тестировать дизайн без перекомпиляции приложения (а давайте подвинем иконку выхода на три пикселя влево).

Reveal используют Flipboard, Artsy, Xamarin и другие.


Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии16

Реджекты приложений в AppStore

Время на прочтение2 мин
Количество просмотров16K

Apple Review Guidelines достаточно подробны, но приложения проверяют живые люди и часто трактуют правила по разному.

Предлагаю в комментариях рассказать о ваших реджектах приложений и как вы их решили.
Под катом несколько примеров.

Читать дальше →
Всего голосов 40: ↑30 и ↓10+20
Комментарии48

Процесс тестирования мобильных приложений

Время на прочтение4 мин
Количество просмотров137K
Тестирование – очень важный этап разработки мобильных приложений.

Стоимость ошибки в релизе мобильного приложения высока. Приложения попадают в Google Play в течении нескольких часов, в Appstore несколько недель. Неизвестно сколько времени будут обновляться пользователи. Ошибки вызывают бурную негативную реакцию, пользователи оставляют низкие оценки и истерические отзывы. Новые пользователи, видя это, не устанавливают приложение.

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

Поэтому в отделе тестирования у нас работает 8 человек (0,5 тестировщика на программиста), за его развитием и процессами следит выделенный тест-лид.

Под катом я расскажу как мы тестируем мобильные приложения.


Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии22

Apple разрешила устанавливать старые версии приложений

Время на прочтение1 мин
Количество просмотров26K
iOS-пользователи могут скачать старую версию приложения, если последняя версии не поддерживает их устройство или версию системы.



Если вы не уверены, что старые версии приложений будут работать корректно эту функцию можно отключить.
как заблокировать старые версии
Всего голосов 24: ↑14 и ↓10+4
Комментарии7

Разработка мобильных приложений с Dropbox Datastore API

Время на прочтение4 мин
Количество просмотров9.4K
У Dropbox есть три API для мобильных приложений:
  • Drop-ins два простых UI компонента: Chooser для выбора файла из Dropbox-директорий пользователя и Saver для сохранения файлов в Dropbox. Никакой настройки, аутентификации. Вызываете компонент, взамен получаете ссылку на файл. Под iOS и Android доступен только Chooser, Saver появится позже.
  • Core API самый низкоуровневый API. Он позволяет читать и записывать файлы и директории на сервере Dropbox. Авторы называют API — RESTish. То есть он использует HTTP, читаемые URL, JSON ответы, но не следует REST принципам досконально. Для аутентификации используется OAuth 2.0.
  • Sync API работает поверх Core API и выглядит как доступ к файловой системе. Директории и файлы доступны даже без доступа к интернету и синхронизируются автоматически с серверами Dropbox. Самое удобное API для разработки мобильных приложений.

Sync API хорош, но по статистике, многие мобильные разработчики используют его для хранения структурированных данных. Сериализуют их в JSON, сохраняют в файлы, синхронизируют с облаком. Это работает до тех пор, пока не происходит одновременного изменения данных с разных устройств. Даже если вы поменяете не конфликтующие по смыслу данные, на уровне файла это будет конфликт и Dropbox не сможет его решить.

Поэтому мы выпустили Datastore API. Он синхронизируем не файлы, а данные, чем-то похож на удаленную NoSQL базу данных с кешированием.

Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии4

Indoor навигация с iBeacon в iOS7

Время на прочтение4 мин
Количество просмотров50K
В iOS7 появилась поддержка iBeacon. Интернет пестрит заголовками:
— Почему iBeacon может быть самой важной функцией iOS7.
— iBeacon откроет новую эру локационных приложений.
— Как iBeacon может убить NFC.
— iBeacon и будущее мобильных платежей.

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

Под катом я расскажу что такое iBeacon на самом деле, как его можно использовать и покажу пример приложения для навигации по нашему офису.


Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии24

iOS 7 и Xamarin

Время на прочтение2 мин
Количество просмотров25K
18 сентября, одновременно с официальным релизом iOS 7, вышел Xamarin.iOS 7.

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

Под катом Мигель рассказывает о самых интересных, на его взгляд, изменениях в iOS 7 API с ссылками на примеры кода.




Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии14

Как устроены продажи в мобильной студии

Время на прочтение6 мин
Количество просмотров11K
Привет Хабр!

Меня зовут Дима, мне 21 год. В Тач Инстинкт я пришел год и три месяца назад на позицию менеджера по продажам. Приходил еще будучи студентом, просто попробовать и, возможно, сделать свою последнюю попытку в качестве продажника. До этого я много где пытался продавать: я продавал курсы ЕГЭ, катаясь по школам; продавал лицензии на строительство, обзванивая по холодной базе город Сочи. В своё время я даже вписался в мутную МЛМ историю.

Под катом dmitrykostin расскажет как устроен отдел продаж в нашей компании: CRM, планирование и отчеты.
Читать дальше →
Всего голосов 37: ↑17 и ↓20-3
Комментарии16