Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 3407 сообщений
Cообщения с меткой

разработка мобильных приложений - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

[Из песочницы] Mountebank: гибкое мокирование web API

Пятница, 18 Августа 2017 г. 14:04 (ссылка)

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



Даже если вам повезло и ваш продукт имеет минимум зависимостей от внешних сервисов, скорее всего внутри он разбит на компоненты (классика жанра — backend/frontend), которые можно и нужно тестировать по отдельности. Это значит, что внешней зависимостью уже является api соседнего компонента, команда разработки которого совсем не горит желанием предоставлять вам инструменты для управления его состоянием.



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



Решить эту проблему может мокирование API внешних систем.



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



В данной статье я опишу Mountebank: инструмент, который позволяет быстро и очень гибко мокировать API прямо из автотестов без необходимости писать свой веб-сервис.



Возможности mountebank'а:




  • мокирование API на протоколах tcp, http, https, smtp;

  • мокирование неограниченного количества API одновременно;

  • гибкое переопределение логики mock-API прямо во время тестов используя конфигурационный API mountebank'a;



Читать дальше ->

https://habrahabr.ru/post/335900/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Полезные книги о разработке мобильных игр на Android и iOS

Четверг, 17 Августа 2017 г. 17:30 (ссылка)

image



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



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



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

Читать дальше ->

https://habrahabr.ru/post/335606/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Yamichat — настраиваемый чат-бот и онлайн-консультант в одной платформе

Четверг, 17 Августа 2017 г. 10:13 (ссылка)

Чат-бот общается с посетителями вашего сайта, сам собирает контактные данные или передает диалог свободному оператору. Создатели Yamichat – московская команда, которую возглавляет Олег Ратунин. Идея разработки появилась в процессе упаковки очередного стартап-проекта, когда сотрудники частично погружались в техническую поддержку и коммуникацию с пользователями в тикетах. В результате пришлось постоянно сталкиваться с рутинными процессами, которые следовало автоматизировать, чтобы сотрудники не отвлекались от текущих задач внутри компании. К таким процессам отнесли и пересекающийся паттерн вопросов, с которыми клиенты обращаются ежедневно.



image


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

https://habrahabr.ru/post/335818/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Борьба с динамическими библиотеками в Swift

Среда, 16 Августа 2017 г. 16:51 (ссылка)

Честно говоря, когда мы приступили к работе над перезапуском Яндекс.Карт, я и представить себе не мог, сколько проблем нам в итоге доставит Swift. Если вы начали писать на Swift совсем недавно, то, поверьте, вы пропустили все самое интересное. Каких-то два года назад не было инкрементной компиляции в принципе (даже пробел в любом файле приводил к полной пересборке), сам компилятор постоянно вылетал с Segmentation Fault на вполне безобидных вещах вроде тройной вложенности типов или наследования от Generic, индексация проекта длилась невообразимо долго, автодополнение работало через раз и так далее и тому подобное, всех бед не счесть. Подобные моменты несомненно усложняют жизнь программистам, но постепенно решаются с каждым обновлением Xcode. Однако есть более существенные проблемы, влияющие не только на разработку, но и на качество приложения: запрет компиляции статических библиотек из свифтового кода, а также отсутствие поддержки Swift на уровне iOS.





Изначально не было очевидно, что использование Swift и динамических библиотек приводит к росту времени запуска. Мы не сравнивали время запуска с предыдущей версией и воспринимали долгую загрузку как данность. Да и средств диагностики того, что же на самом деле происходит на этапе загрузки приложения, в общем-то не было. Но в один прекрасный день разработчики Apple добавили возможность профилирования работы системного загрузчика. Оказалось, что загрузка динамических библиотек занимает очень много времени по сравнению с другими этапами. Конечно, с нашим кодом тоже не все было идеально, но, пожалуй, это частные особенности отдельного приложения и не всем будет интересно о них читать. А вот борьба с динамическими библиотеками — общая тема для всех разработчиков, использующих Swift. Именно об этой проблеме и пойдет речь.


Читать дальше ->

https://habrahabr.ru/post/335768/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Часть 2. Сначала они воруют, а когда ты побеждаешь, то тебя убивают

Среда, 16 Августа 2017 г. 12:50 (ссылка)

Часть 1. Сначала они воруют, а когда ты побеждаешь, то тебя убивают



Реакция на первую статью была очень сильной.

Во-первых, на неё отреагировал ДИТ. Их представитель появился в комментариях, а затем ответ на статью дал руководитель ДИТ.

Во-вторых, на нее отреагировал интернет. Большое количество СМИ рассказали об этой истории своим читателям.



В этой статье будет разбор ответа ДИТ, парочка «ужастиков» со стороны ДИТ, раскрытие деятельности ООО «Альтарикс» и 1000 отзывов от детей и родителей.

И да, у меня хорошие новости! Заявление в ФАС подано!


Читать дальше ->

https://habrahabr.ru/post/335688/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Дайджест интересных материалов для мобильного разработчика #216 (6 августа — 13 августа)

Воскресенье, 13 Августа 2017 г. 16:28 (ссылка)

В центре этой недели – история противостояния разработчиков, ДИТа Москвы и закрытие API для доступа к электронным дневникам. А кроме нее: автоматизация тестирования, чистая архитектура, мобильный фрод и многое другое.












Сначала они воруют, а когда ты побеждаешь, то тебя убивают

В начале лета 2017 года, я спросил ЕМП: «Будут ли какие-то изменения в методах или в функционале?», а мне ответили, что пока они не знают. 1 августа я получил письмо о том, что АПИ больше не будет и попросили меня сообщить моим пользователям, что теперь надо пользоваться госуслугами.




Заблуждения Clean Architecture

На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.




Разработка интерфейса приложения для пожизненного использования на примере мобильного дневника диабета

Главное, чего нужно было достичь при разработке приложения – это удобства и быстроты ведения дневника диабета. Соответственно, приоритетной целью стало сокращение времени ввода данных в приложение и доступа к ним.



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



iOS





Android





Windows





Разработка





Аналитика, маркетинг и монетизация





Устройства, IoT, AI







< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/335534/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[recovery mode] IOTV — простой HTTP протокол для работы с сообщениями и командами IOT объектов в сервисе VIALATM

Пятница, 11 Августа 2017 г. 23:01 (ссылка)





Несколько разрработчиков, использующих сервис VIALATM для работы с IOT объектами, обратились ко мне с просьбой реализовать простой http протокол. Ранее они использовали MQTT протокол, но в силу каких-то причин им было необходимо более простое решение. Протокол реализован. В этой статье его краткое описание.





Для поддержки портокола IOTV в сервисе зарезервирован порт 7746 (для работы по протоклу https следеут использовать порт — 7745).



HTTP header



Все запросы по протоколу IOTV должны содержать в заголовке (http header) атрибут «iotv-user». Если в настройках учетной записи «IOTV password» установлен, атрибут «iotv-password» в заголвке должен совпадать с этим значением, в противном случае он может быть опущен.







Обязательный атрибут



Все запросы должны содеражать обязательный атрибут«root».







Дополнительные атрибуты



К запросам может быть добавлен атрибут «time». Он должен быть установлен в формате UNIX STAMP (количество секунд с 1 января 1970 года). Если этот атрибут опущен, то временем события считается время поступления запроса на сервер. Все прочие возможные атрибуты зависят от того, как определен объект IOT в сервисе. В ответ на запрос возвращаются текущие значения всех атрибутов объекта



Примеры



GET

Request: vialatm.com:7746/?root=HOME&A1=5&B1=12

Response: A1=5&B1=12&C1=14



POST

Request: vialatm.com:7746/



JSON

Data: {«A1»:«12»,«root»:«HOME»,«B1»:«44»}

Response: {«A1»:«12»,«B1»:«44»,«C2»:«12»}

XML

Data: 73HOME87

Response: 738788

POST FORM

Data: A1=543&root=HOME&B1=12&

Response: command=12.4&A1=543&B1=12&C1=14



Команды в ответ на запросы



Для IOT объектов можно определить команды







В этом случае, когда задается команда для объекта, она посылается в ответе на IOTV запрос:







Примеры ответов на запросы в этих случаях:



GET

Request: vialatm.com:7746/?root=HOME&A1=5&B1=12

Response: command=12.4&A1=5&B1=12&C1=14



POST

Request: vialatm.com:7746/



JSON

Data: {«A1»:«12»,«root»:«HOME»,«B1»:«44»}

Response: {«command»:«12.4»,«A1»:«12»,«B1»:«44»,«C2»:«12»}

XML

Data: 73HOME87

Response: 12.4738788

POST FORM

Data: A1=543&root=HOME&B1=12&

Response: command=12.4&A1=543&B1=12&C1=14

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/335468/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<разработка мобильных приложений - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda