Connect with us

Статьи

Подключение к Интернету Вещей: Аппаратные платформы

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

AppTractor

Опубликовано

/

     
     

Развитие рынка информационных технологий привело к развитию концепции Интернета вещей (Internet of things). Принцип IoT подразумевает создание сети различных устройств, которые умеют взаимодействовать друг с другом или с внешней средой. Желание многих пользователей перейти от роли потребителя к роли создателя подтолкнуло некоторых производителей к созданию доступных, свободно программируемых платформ. Как оказалось, данные решения способны справиться с самыми различными задачами – от создания автономных интерактивных объектов до решения инфраструктурных задач.

Давайте посмотрим, что же собой представляют наиболее популярные IoT-платформы, с которых стоит начать знакомство новичку-энтузиасту, увлеченному технологией Интернета вещей. Кроме того, мы расскажем о перспективах облачных решений и появившейся в этом году ОС Windows 10 IoT, которая как нельзя лучше подходит для работы с «общительными» устройствами.

Arduino: начало начал

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

arduino

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

Проекты, построенные на этой платформе, могут быть полностью автономными, а могут «общаться» с различным программным обеспечением, установленным на компьютере. Интегрированная среда разработки (IDE), представляющая собой полностью открытый исходный код, работает одинаково хорошо на компьютерах под управлением Мac, Linux и Windows. IDE построена на базе языка программирования Processing и будто специально разработана для новичков и всяческих экспериментов. Кроме того, данный язык применяется для создания визуализаций и благодаря платформе Java Virtual Machine может создавать интерактивные программы с отображением анимации и выводом изображений.

Подытожив вышесказанное, отметим, что этот язык был разработан для изучения базового уровня компьютерного программирования в визуальном контексте, он является открытым проектом, полностью бесплатен, с доступным для всех желающих исходным кодом. По сути, все программы пишутся на основе C/C++, а собираются и компилируются с помощью avr-gcc (в Windows версии — WinAVR).

Возможно, основной причиной успеха Arduino является наличие аналого-цифрового входа, с помощью которого можно подсоединить разнообразные датчики: света, температуры, звука. Также можно использовать цифровые датчики SPI либо I2C, что позволяет платформе «покрыть» 99% рынка данных дополнений.

Следует помнить, что Arduino – это микроконтроллер (в основном, используется 8-битный микроконтроллер ATmega), а не мини-компьютер. В связи с этим его возможности ограничены. В то же время Arduino отлично подойдет начинающим конструкторам для моделирования своих проектов. А еще он имеет огромное сообщество пользователей, учебников и разнообразных примеров проектов и обеспечивает отличное взаимодействие с внешним оборудованием.

[notice]

iPhone научили сортировать M&Ms по цвету

456083973

Как разобрать M&Ms по цвету? Можно посадить Золушку перебирать конфетки, можно создать Minecraft, продать его Microsoft и купить особняк со специальной конфетной комнатой, а можно просто создать робота на основе iPhone 5S, который будет делать это. Конечно, одним смартфоном не обойтись – еще нужен компьютер с Arduino и сервоприводы, но основная задача распознавания конфет по цвету ложится, конечно, на iPhone. Единственная незадача – если вы любите коричневые M&Ms, то пока цифровая камера не может их различить. Соорудить такой же сортировщик вы можете сами, автор проекта выложил подробную инструкцию по сборке и код тут.
[/notice]

Raspberry Pi: малиновый идеал

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

Компьютер выпускается уже четыре года и с тех пор компания продала более 8 миллионов различных вариантов. Последняя версия — Raspberry Pi 3. Это первый 64-битный компьютер со встроенной Wi-Fi и Bluetooth связью. По данным директора Raspberry Pi Foundation Эбена Аптона, на создание третьей версии ушло около года. Внутри это 64-битный 4-ядерный 1.2 ГГц процессор ARM Cortex A53, 1 Гб оперативной памяти, графика VideoCore IV, Bluetooth 4.1 и 802.11n Wi-Fi. Как говорят разработчики, новая архитектура позволяет достичь прироста производительности по сравнению с Raspberry Pi 2 до 50% на той же частоте. Стоит Raspberry Pi 3 по-прежнему 35 долларов (есть также минималистичная модель Raspberry Pi Zero стоимостью всего пять долларов).

Raspberry

Одной из самых интересных особенностей Raspberry Pi является наличие портов GPIO. GPIO (General Purpose Input-Output) – это низкоуровневый интерфейс прямого управления портами ввода-вывода. На Raspberry он представлен в виде 40-штырькового разъема. С помощью специально написанных программ пользователь может управлять устройствами, подключенными к этому разъему. При чем это может быть как обычный светодиод, так и сложная система, например «умный дом» или робот.

Raspberry Pi работает в основном на операционных системах, основанных на Linux ядре (в том числе и Android). Запуск Windows возможен благодаря средствам виртуализации таким, как XenDesktop.

Чтобы собрать приложение на своём стационарном компьютере для Raspberry Pi, нужно скачать и настроить специальный инструментарий, который включает в себя ARM-компилятор и некоторые библиотеки, скомпилированные для целевой ARM-платформы (например glibc).

Intel Galileo: верный соратник Arduino

В октябре 2013 года свою первую версию микрокомпьютера представила корпорация Intel. Intel Galileo являет собой высоко интегрированную плату, которая по размеру лишь немного превосходит стандартную кредитную карту. На борту решения от Intel разместились процессор Intel Quark X1000 с частотой 400 МГц, материнская плата, которая комплектуется флэш-памятью объёмом 8 Мб и оперативной памятью 256 Мб. Также имеется порт VLAN с пропускной способностью 100 Мб, разъём micro-SD, слот mini PCI express, порты RS 232, USB 2.0 с возможностью подключения около 128 (!) устройств. Платформа работает под управлением облегчённой версии Linux, а также поддерживает стандартную среду разработки Arduino. Если сравнивать Galileo с другими платформами, отметим некоторые особенности решения от Intel, такие как собственный контролер для USB, возможность обмена данными без участия SPI (в том числе и работа VLAN-порта). Впервые реализован полноценный PCI Express слот, который позволяет устанавливать Wi-Fi, Bluetooth и 3G. IDE программируется так же, как привычная Arduino.

galileo

Стоит отметить, что такие микропроцессоры, как Galileo, могут использоваться во многих областях, начиная от управления робототехникой, и заканчивая системами, подходящими под концепцию IoT-технологий. Для развертывания собственных решений компанией Intel предусмотрено две платформы – Intel Galileo и Galileo Gen2. А еще можно будет управлять процессами при помощи мобильных приложений на вашем телефоне.

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

Tibbo Project System: глоток свежего воздуха

Тайваньская компания Tibbo Technology Inc предложила пользователям концепцию своей платформы Tibbo Project System (ТРS) в 2014 году. Последняя относится к новой линейке продукции, предназначенной для создания устройств автоматизации. Основными компонентами здесь выступают плата (TPP), ввод/вывод (Tibbit) и корпус (TPB).

tps

Сама плата является программируемой печатной, на ней уже разведены все необходимые элементы, предназначенные для быстрого начала работы, – микросхемы аппаратного сброса reset, программируемый чип, обвязка питания, программируемая кнопка MD, светодиоды, звуковой индикатор. Также есть площадки, на которых можно разместить внешние модули ввода/вывода (их мы рассмотрим ниже). Для программирования была разработана собственная среда TIDE (Tibbo Integrated Development Environment). Само же программирование происходит с помощью одного из двух основных языков на выбор программиста – Tibbo Basic и Tibbo C. Оба языка программирования типизированы и объектно-ориентированы. Всем, кто привык к языку С+, не стоит разочаровываться, так как С-компилятор уже готов – его релиз ожидается в самое ближайшее время.

Модули ввода/вывода, в русскоязычном сегменте Интернета именуемые тиббитами (Tibbits, или Tibbo Bits) представляют собой компактные модули с заданным заранее функционалом (ввод/вывод): ЦАП, вход, АЦП, ШИМ, реле, порт RS232, Wiegand, модем GPRS, процессор PIC и т.д. Изначально они разрабатывались для собственной системы ТРS, но, как оказалось, могут работать в любой системе. Установка на TPP-платы проводится достаточно просто, без пайки и лишних сложностей, все как в детском конструкторе. А уже в собранном виде легко устанавливается в TPB-корпус.

Для большинства похожих коммерческих проектов необходимы корпуса, при этом не каждая компания может себе это позволить, особенно если речь идет о мелкосерийном производстве. В данном случае инженеры компании Tibbo заранее предусмотрели, где и как разместить TPP-плату, разработав TPB корпус. Сами корпуса, помимо своей многофункциональности, выглядят довольно стильно. Таким образом, разработав и создав TPB-корпус, компания Tibbo достигла целостности и завершенности проекта, что позволяет в конечном итоге получить законченное устройство автоматизации. Пока что налажено производство трех типов корпусов: TPB2, TPB2L, TPB3.

Проект быстро развивается и на данный момент уже обзавелся различными дополнениями и аксессуарами Tibbo Project System: пластины виброзащиты, модули расширения Wi-Fi, блоки питания, заглушки и т.д.

Облачные платформы

Стремление IТ-технологий к постоянному совершенствованию в конечном итоге приводит к их оптимизации. Помимо стандартных платформ для IoT, существуют облачные решения, которые дают очень удобный сетевой доступ в режиме «по требованию» к набору настраиваемых вычислительных ресурсов, доступных для определенной группы пользователей: хранилищ данных, серверов, приложений и/или сервисов, сетей.

Отправной точкой в развитии облачных вычислений (а затем и самих платформ), можно считать появление CRM-систем в 1999 году. Чуть позже компания Amazon начала предоставлять услуги к вычислительным ресурсам через свой книжный магазин. Уже в августе 2006 года нынешний интернет-гигант реализовал свой проект под названием Elastic Computing Cloud (Amazon EC2).

Платформы, предоставляющие услуги облачных вычислений, имеют различные модели для работы с клиентами. Среди них можно выделить Cloud Software as a Service (SaaS), Cloud Platform as a Service (PaaS), Cloud Infrastructure as a Service (IaaS) и другие. Любую из этих моделей клиент выбирает сам, ориентируясь на потребности своего бизнеса.

Из наиболее известных облачных сервисов можно выделить следующие: Amazon S3, Microsoft Azure, Google App Engine, Salesforce1 Platform, Heroku. Из отечественных стоит упомянуть Reg.ru (Jelastic), Софтлайн (CloudServer), Онланта (ОnCloud), Яндекс (Cocain).

Глобальная облачная платформа AWS IoT (Amazon Web Service) полностью автоматизирована. Она предоставляет возможность подключатся и безопасно работать между собой всем облачным устройствам и приложениям. Одно из многих достоинств AWS – возможность безопасно и надежно работать с огромнейшим числом сообщений, направляя их конечным портам AWS и другим устройствам. Благодаря различным встроенным сервисам (Amazon S3, Amazon Machine Learning, AWS Lambda, Amazon DynamoDB) AWS обеспечивает возможность комплексной автоматизации подключённых устройств, мониторинга и управления данными и т.д.

awsIot1

Особняком здесь стоит Amazon S3 (Amazon Simple Storage Service) – надежный инструмент для хранения объектов, который отлично подойдет для разработчиков. С его помощью можно получать или хранить любой объем данных, при этом платить нужно только за те ресурсы, которые используются непосредственно в настоящее время. Amazon S3 имеет простой в использовании веб-интерфейс и включает в себя различные виды хранилищ, предназначенных для решения определенных задач. Сервис можно использовать как самостоятельно, так и совместно с другими сервисами AWS, например, с пакетом Amazon Elastic Compute Cloud (Amazon EC2).

Особого внимания заслуживает и облачная платформа Microsoft (Windows) Azure, которая предоставляет те же инструменты и возможности для обработки и хранения данных, что и Amazon S3. На данный момент используются две облачные модели Windows Azure – платформы PaaS и IaaS. Успешная работа Windows Azure обеспечивает глобальную сеть дата-центров непотопляемой корпорации Microsoft.

OC для Интернета вещей

Детище Билла Гейтса не остановилось на одних лишь облачных платформах, в этом году представив специализированную операционную систему Windows 10 IoT, которая сможет работать на одноплатных платформах. Разработчики предполагают, что в дальнейшем она сможет стать основой для домашних интеллектуальных систем, подключаемых к Интернету вещей. Уже сейчас с помощью Windows 10 IoT можно разрабатывать хабы для домашних устройств. При правильном использовании внутреннего функционала фреймворка AllJoyn можно управлять окружающими устройствами. Таким образом, решение от компании Microsoft обещает развиться в многофункциональную панель управления, которая способна собирать данные с сенсоров и других устройств.

[notice]

Microsoft IoT Pack for Raspberry Pi 2

Microsoft-iot

Microsoft приняла участие в создании нового набора Internet of Things Pack for Raspberry Pi 2. Этот набор – прекрасный способ для разработчиков и всех заинтересованных начать свое знакомство с Интернетом вещей.

Набор — это совместное «произведение» IoT-подразделения Microsoft и компании Adafruit, которая занимается как раз продажей всякого рода железа для конструирования.

В набор входит корпус Adafruit Raspberry Pi, плата для сборки, набор проводов, Wi-Fi модуль, источник питания, датчики влажности, цвета и температуры, серийный порт.

А связывает все это воедино, естественно, Windows 10 IoT Core.
[/notice]

Светлое будущее

В завершение нашего рассказа отметим, что технологии Интернета вещей уже нашли широкое применение в повседневной жизни. Экосистема IoT настолько велика, что охватывает практически все сферы деятельности человека, начиная с простого подключения Wi-Fi, Bluetooth, 3G и заканчивая применением новых технологий в энергетике и нефтегазовом секторе. Что же касается облачных платформ, то они позволяют не только упростить производство, но и способны удешевить его путем переноса интеллектуальной составляющей части с конечного продукта в «облако».

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Обучение

Истории разработчиков, получивших первую работу после 30, 40 и 50 лет

Куинси Ларсон, преподаватель в freeCodeCamp, собрал более 300 историй разработчиков, которые доказывают, что начинать учиться программированию никогда не поздно.

Анна Гуляева

Опубликовано

/

Почему я это сделал

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

Мне __ лет. Мне уже поздно учиться разработке?

Это один из самых распространенных вопросов в разработке в целом. Чтобы показать вам, сколько разработчиков волнует их возраст, я зашёл на Quora. Конечно, я нашел людей всех возрастов, которые переживают из-за того, что они «слишком старые», чтобы учиться программированию и становиться разработчиком: 60, 59585756555453, 52, 51504948474645444342414039383534333231, 29282726252423222120191817161514.

Что вы скажете кому-то, кто переживает, не слишком ли уже поздно? Многие люди ограничатся старой цитатой Уолта Диснея: «Если вы можете представить это, вы можете сделать это!»

Но я понимаю эти переживания. Я работал учителем и не умел программировать до 30 лет. До этого возраста я не мог написать даже простой код на JacaScript. Я не мог установить Linux. Да, я даже не мог настроить роутер без помощи жены.

Я получил первую работу в качестве разработчика в 31. И, конечно, я верю, что возраст — это просто число. И что все, кто могут вложить в обучение свои силы, могут научиться программировать и получить работу.

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

Я собрал доказательства, чтобы убедить людей расслабиться по поводу возраста

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

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

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

Поэтому однажды, после очередной попытки успокоить тревоги людей, я пересмотрел свой подход. Я подумал: «Возможно, я смогу найти список разработчиков, которые получили первую работ в 30, 40 или больше лет. Может быть, это убедит людей перестать так беспокоиться о возрасте».

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

Оказалось, что многие разработчики получили первую работу в 30, 40 или 50 лет. Вот несколько историй:

https://twitter.com/mikleane/status/949452946600730626?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2F2215e9cee7ade93a7ffbf76c00f6702a%3FpostId%3D64306eb6bb27

https://twitter.com/americanwombat/status/949486088325799937?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2Ff3305f7a1f903b59e7c4c9a9c6edd974%3FpostId%3D64306eb6bb27

https://twitter.com/jefflazerus/status/949457462939205632?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2Fc3053bd231b0056db2839f8c57f3828d%3FpostId%3D64306eb6bb27

https://twitter.com/peterdaily/status/949453856127307776?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2F054d685fc2fed0e12bfc45634abf6296%3FpostId%3D64306eb6bb27

https://twitter.com/gillessew/status/950138976655912960?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2F48799b09a4826507d15624371e46bf60%3FpostId%3D64306eb6bb27

https://twitter.com/amwcodes/status/949581047808716800?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2F46ff7a793cd12eb3273696b47e4f17f3%3FpostId%3D64306eb6bb27

https://twitter.com/dbriesz/status/949483215256825856?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2F5daccc8369b60bb9807d39e133237d74%3FpostId%3D64306eb6bb27

https://twitter.com/jessdelgrande/status/950163504773902342?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fmedium.freecodecamp.org%2Fmedia%2F700f10a61f7d7a18fd00ba8d9bc31ecf%3FpostId%3D64306eb6bb27

Я создал список из 300 разработчиков, которые начали после 30, чтобы показать, сколько людей начали переход к разработке ПО в более старшем возрасте. Я буду и дальше вести этот список. Поэтому, если вы разработчик, получивший первую работу после 30, твитните мне с хэштегом #DevAfter30, и я добавлю вас в список.

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

Комментарии
Продолжить чтение

Магазины приложений

Apple планирует объединить приложения для iPhone, iPad и Mac

Корпорация Apple работает над созданием нового способа взаимодействия с компьютерами Mac: через простые в использовании приложения, доступные для скачивания в App Store. Сейчас приложения для macOS доступны для скачивания в Mac App Store – это город-призрак с ограниченным выбором и редко обновляемыми программами. Джей лаб пишет, что Apple планирует изменить эту ситуацию, предоставив людям возможность использовать один набор приложений, которые одинаково хорошо работают на всем семействе устройств: iPhone, iPad и Mac.

Джей лаб

Опубликовано

/

Автор:

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

Sketch покидает Mac App Store

В настоящее время разработчикам приходится создавать два разных приложения: одно для iOS – операционной системы мобильных устройств Apple, и одно для macOS – системы, на которой работают компьютеры Mac. Это значительно увеличивает объем работы. Более того, пользователи Apple часто жалуются на недостаточную поддержку и несвоевременное обновление приложений для Mac. Например, популярное приложение Twitter регулярно обновляется на iPhone и iPad, а версия для Mac уже давно не обновилась и считается некачественной. С появлением возможности разработки одного приложения для Mac, iPad и iPhone, пользователи будут получать обновления одновременно.
Объединение приложений может помочь платформам iOS и MacOS развиваться и расти как единое целое. Это станет самым большим изменением для программной платформы Apple с момента появления iOS.

Однако идея Apple по объединению мобильных и настольных приложений не нова. Перед тем, как завершить выпуск программного обеспечения Windows для смартфонов, корпорация Microsoft анонсировала технологию Universal Windows Platform, которая позволяет разработчикам создавать приложения, которые будут работать на всех устройствах – планшетах, телефонах и компьютерах. Магазин приложений Google Play стал доступен для некоторых ноутбуков, работающих на Chrome OS, что позволило пользователям компьютеров запускать приложения для смартфонов и планшетов, такие как Instagram и Snapchat.

UnDistracted: опыт запуска Мак-приложения вне магазина Apple

На данный момент неясно, планирует ли Apple объединить магазины приложений для Mac и iOS, но примечательно то, что версия магазина для iPhone и iPad была переработана в этом году, в то время как версия для Mac не обновлялась с 2014 года.

Идея объединения приложений является частью долгосрочной стратегии Apple, целью которой является сделать основы его аппаратного и программного обеспечения более похожими. Несколько лет назад компания начала разрабатывать собственные процессоры для устройств iOS. В то время как Apple планирует унифицировать приложения, возможно, однажды они смогут использовать один и тот же основной процессор на компьютерах Mac и iOS.

Комментарии
Продолжить чтение

Мероприятия

Как я участвовал в хакатоне с 13 днями опыта в программировании

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

Анна Гуляева

Опубликовано

/

Я даже не понял, что подал заявку на хакатон. Я услышал этот термин в подкасте CodeNewbie, когда кто-то делился своей историей. Из подкаста я запомнил рекомендацию стать частью сообщества. Поэтому, когда я увидел пост в группе freeCodeCamp Las Vegas о мероприятии StartUp Weekend, он привлек мое внимание.

Это мероприятие было посвящено созданию новых компаний через объединение предпринимателей, дизайнеров и разработчиков. Но, согласно моему аккаунту freeCodeCamp, я занимался программированием всего 13 дней. Я оставил комментарий под постом и спросил, могу ли я получить пользу от этого мероприятия, несмотря на нехватку знаний и опыта. Мне ответил Майк Зиетлоу и сказал, что я могу получить пользу, только мне нужно будет постараться. Поэтому я оставил заявку на то, что я сначала принял за митап.

Когда я приехал на место и не мог найти нужную комнату, я начал сомневаться в себе, но встреча с дружелюбными людьми помогла мне почувствовать себя уверенней. Я встретил Майка и мы обсудили, что я могу сделать на хакатоне.

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

Майк на питче своей идеи

Выбор команды

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

Поэтому я искал команду, в которой будут опытные разработчики. Так получилось, что Майк питчил идею создания сайта для связи предпринимателей и разработчиков из Лас-Вегаса. Пять разработчиков и два бизнес-аналитика вступили в эту команду, и так появилась Developers.Vegas.

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

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

Работа над проектом

Наконец пришло время работы над проектом. До этого мероприятия я писал код в браузерных редакторах в freeCodeCamp и CodePen. После общения с командой я скачал VS Code. Я понял, что не понимаю, как все это работает. Мне нужно было разобраться с git, концепцию которого я понял, но мне ещё многому предстояло научиться. В один момент я работал над master вместо своей ветки. Эта работа была довольно нервной. Я думал, что подведу всю команду. Но, к счастью, я ничего не разрушил.

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

Мне напомнили заходить в Google, как только я застряну. Это звучит несложно, но я думаю, здесь есть особая техника. Я должен был знать, что задаю верные вопросы и получаю нужные ответы. Потом я понял, что никто не хотел браться за работу, которую дали мне. Я пока слишком мало знаю, чтобы понять, почему все ненавидят CSS.

На мероприятии я мог поучиться у других разработчиков. Я немного узнал о React и работе компонентов. Мы обсуждали код, когда пытались понять, как извлечь данные из базы данных, чтобы отобразить их на сайте. Я даже помог решить одну из проблем, когда захотел попробовать что-то новое. В процессе мы поняли, почему один участник команды не мог справиться с проблемой: мы управляли кое-чем как массивом, когда это на самом деле был объект. Тогда я понял, что действительно вношу вклад в работу команды.

Итоги

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

Я думаю, что значительная часть успеха команды основана на лидере. С самого начала Майк страстно относился к своему проекту. Большую роль сыграло его решение уделить время познакомиться друг с другом. Он также сыграл роль куратора, и наш успех во многом основан на том, что в команде был человек, который понимал конечную цель и средства для её достижения.

В итоге мы заняли второе место! Я рад, что поучаствовал в этом событии. Хотя оно и прервало мою 13-дневную серию на freeCodeCamp, я бы сделал это снова.

Комментарии
Продолжить чтение

Разработка

Как приложение Wikipedia готовится к работе в офлайне

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

AppTractor

Опубликовано

/

Автор:

Представляем вашему вниманию статью Риты Хо, соучредителя Wikimedia.

Нам в Wikimedia нам нравится начинать процесс проектирования с понимания аудитории. В 2017 году наша инициатива «Новые читатели» проводила этнографические исследования в Нигерии и Индии. Несколько моментов сильно повлияли на Android-команду Wikipedia:

Мобайл доминирует в выходе в Интернет, а Android — главная платформа. Мобильные приложения бьют все рекорды: мгновенные сообщения и социальные медиа находятся в топе.

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

Особенности работы в офлайне

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

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

Проектирование для офлайн

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

1. Осознавать состояние

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

Примеры различных уведомлений, когда приложение отключено от Сети. Слева: “тост” уведомление, когда отображается автономная версия статьи. Центр: сообщение отображается в автономной библиотеке при поиске в автономном режиме. Справа: сообщение о том, что можно обновиться.

2. Контекстные действия

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

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

Разница между онлайн и офлайн.

3. Обратная связь на медленном соединении

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

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

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

Мы также планируем обновить экран загрузки, чтобы показать “скелет” приложения – так пользователи смогут понимать, какой контент получается в момент открытия приложения,  это лучший индикатор прогресса, чем текущий статический экран с буквой «W» от Wikipedia.

4. Умное кеширование для ненадежных соединений

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

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

5. Контроль использования данных

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

Слева: настройка изображения. Справа: Предпочитаю использование автономного содержимого.

В будущем планируется еще больше контроля, в том числе:

  • Возможность загрузки статей только по WiFi
  • Исключительно автономный режим
  • Загрузка изображений с низким разрешением перед загрузкой изображений с полным разрешением

6. Использование и хранение данных

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

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

Мы также изучаем способы уменьшить размер самого приложения, рассматривая альтернативы “тяжелым” функциям. Например, использование Mapbox для просмотра статей поблизости в режиме карты.

7. Обучение пользователей

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

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

Экран обучения пользователей для офлайн-библиотеки.

Пустые экраны.

8. Совместное использование офлайн

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

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

Наконец, помимо функции «Автономная библиотека», само приложение Wikipedia также может быть загружено из сторонних источников, доступно на F-Droid (за пределами магазина Google Play), его можно скачать как APK на нашем сайте.

9. Вопросы экономии батареи

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

Недавнее обновление добавило “черный” режим, поскольку было доказано, что устройства AMOLED получают значительную экономию энергии при использовании пользовательского интерфейса в черном цвете.

Что любопытно, эту функцию мы внедрили после того, как наше сообщество попросило об этом.

Примеры черного режима.

Приложение для Wikipedia является открытым проектом и вы можете принять участие в его развитии. Официальная страница: https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/App_hacking.

Комментарии
Продолжить чтение

Наша рассылка

Каждому подписавшемуся - "1 час на UI аудит": бесплатный ускоренный курс для разработчиков!

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

Вакансии

Популярное

X

Спасибо!

Теперь редакторы в курсе.