Pull to refresh
0
0
Send message

Использование ReSwift: написание приложения Memory Game

Reading time21 min
Views8.9K
ReSwift

Примечание. В этой статье используются Xcode 8 и Swift 3.

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

Для iOS разработчиков доступны более эффективные архитектурные паттерны, такие как MVVM, VIPER и Riblets. Они сильно отличаются, но у них есть общая цель: разбить код на блоки по принципу единой ответственности с многонаправленным потоком данных. В многонаправленном потоке, данные перемещаются в разных направлениях между различными модулями.

Иногда вы не хотите (или вам не нужно) использовать многонаправленный поток данных — вместо этого вы хотите, чтобы данные передавались в одном направлении: это однонаправленный поток данных. В данной статье про ReSwift вы свернёте с проторенного пути и узнаете, как использовать фреймворк ReSwift для реализации однонаправленного потока данных при создании Memory Game приложения, под названием MemoryTunes.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments3

Html страница глазами разработчика приложений. Часть 1: «Подготовка»

Reading time10 min
Views14K

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


Посмотрев на реализации представленные в интернете я ужаснулась. В теле страницы куча текста! С такой разметкой же невозможно работать. А если надо поменять информацию? Это надо лезть в html, искать нужное, и менять в нескольких местах. Короче ужас! И я подумала что хорошо бы использовать базу данных, но это же обычная страница, и разворачивать ради нее целый сервер? и базу? как то перебор! Работая с Angular2 я подумала что было бы классно с его помощью создать страницу, но он очень тяжелый, и не подходит… И тут я вспомнила о его аналоге Vue.js. Легкая библиотека, для создания приложений. Я подумала: "А почему бы не создать сайт с помощью vue и добавить имитацию базы?".


Обдумав все за и против, посмотрев на другие подходы, мне захотелось внести немного "красоты" в html верстку.


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


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


image

Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments37

Kivy — маленький фрукт с большим будущим

Reading time9 min
Views31K

Пpивeтcтвyю вcex!


Ceгoдняшняя небольшая cтaтья, впpoчeм, кaк вceгдa, кoнeчнo жe, o зaмeчaтeльнoм и пpocтoм, кaк тpи кoпeйки, фpeймвopкe для кpoccплaтфopмeннoй paзpaбoтки Kivy.


B дaннoм мaтepиaлe бyдyт paзвeяны мифы o тoм, чтo Kivy нe гoдитcя для paзpaбoтки cлoжныx пpилoжeний, бyдyт oпpoвepгнyты пpeдвзятыe мнения, кoтopыe пpeдcтaвляют paзpaбoтчикaм и зaкaзчикaм Kivy, кaк мaлo пoдxoдящий и кpивoй инcтpyмeнт для cepьeзнoй paбoты и coвceм нeгoдным для production.


Ceгoдняшняя cтaтья бoльнo yдapит пo кocтылям других фреймворков, зacтaвит их пoшaтнyтьcя, ocoзнaть, чтo oни yжe oтнюдь нe eдинcтвeнные и пoдвинyтьcя нaзaд в peйтингe кpoccплaтфopмeннoй paзpaбoтки, cпpaвeдливo ycтyпaя мecтo Kivy, как более быстрому в плане разработки, не менее надежному и более выгодному инструменту!


Всем заинтересовавшимся, милости просим под кат...

Total votes 45: ↑42 and ↓3+39
Comments40

Принцип экономии мыслетоплива

Reading time15 min
Views79K


Представления, на наш взгляд, излишни. Под катом доклад гуру прокрастинатологии Максима Дорофеева, в котором он расскажет, как сделать больше, а устать меньше. Узнаем немного про обезьяну, эффективность и многое другое. Возможно даже, что после прочтения половина всего, что вы слышали ранее о мышлении, обесценится.
Total votes 40: ↑40 and ↓0+40
Comments30

Пишем DNS proxy на Go

Reading time4 min
Views20K

Давно хотел решить проблему с рекламой. Наиболее простым способом сделать это на всех устройствах оказалось поднятие своего DNS сервера с блокированием запросов на получений IP адресов рекламных доменов.
Читать дальше →
Total votes 39: ↑31 and ↓8+23
Comments15

Применяем принцип KISS к самим принципам проектирования

Reading time3 min
Views15K

(Update: заменил картинку на более нейтральную)


Коллега упомянул в беседе принцип "Convention over configuration", и я подумал, блин, наверно это что-то крутое, нужно изучить, почитать статьи, а то отстану от жизни.


Каково было моё удивление, что вcё обьяснение помещается в одной фразе "Используй дефолты, которые можно при желании переопределять".


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


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

Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments22

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Reading time26 min
Views338K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →
Total votes 108: ↑107 and ↓1+106
Comments36

Ещё большее ускорение WebAssembly: новый потоковый и многоуровневый компилятор в Firefox

Reading time6 min
Views14K
Оба авторе: Лин Кларк — разработчик в группе Mozilla Developer Relations. Занимается JavaScript, WebAssembly, Rust и Servo, а также рисует комиксы о коде.

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

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

Firefox 58 также включает в себя двухуровневый компилятор. Новый базовый компилятор компилирует код в 10–15 раз быстрее, чем оптимизирующий компилятор.

Вместе эти два изменения означают, что мы компилируем код быстрее, чем он поступает из сети.



На десктопе мы компилируем 30-60 МБ кода WebAssembly в секунду. Это быстрее, чем сеть доставляет пакеты.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments49

Micro-UART для МикроКонтроллера (ATtiny13A)

Reading time6 min
Views15K

Рад приветствовать вновь всех посетителей этого славного места в интернете, чтобы привнести еще один скромный вклад.

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


Речь пойдет о программной реализации UART, для микроконтроллеров AVR компании Atmel, интеллектуальной собственностью которой с некоторых пор владеет компания Microchip.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments43

Написание кода в docker окружении

Reading time4 min
Views23K

В компании, где я работаю — большинство сервисов запускаются и работают в docker-контейнерах.


В связи с этим, у моих коллег-новичков-в-докере часто возникает вопрос — а как писать код и запускать его в этом чёртовом контейнере???



Для человека, написавшего около сотни docker-образов и запускающего их несколько раз в день — такой вопрос уже не стоит, но когда я разбирался с докером в давние времена — мысль "Как же писать код в докере? Это же сверхнеудобно!" долго была актуальной.


В статье я опишу свои практики работы с образами docker, которые позволяют писать код "как у себя в home", и даже лучше.

docker run --rm -it -v
Total votes 14: ↑10 and ↓4+6
Comments21

Как проследить за своим здоровьем? Полезные mHealth-приложения на смартфон

Reading time5 min
Views12K
Когда речь заходит о здоровье, наши люди делятся на два типа:

1. «Открытый перелом? Не вопрос! Обмотаю подорожником – и само срастётся».
2. «На безымянном пальце появилась родинка – у меня рак IV стадии!».

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

Тем временем благодаря телемедицине и mHealth-технологиям следить за здоровьем стало гораздо проще. Данный список смартфон-приложений – прямое доказательство.

Важно! Приложения носят вспомогательный характер, не являются заменой реальной врачебной консультации или поводом для самолечения!
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments5

Разрабатываем крутой GUI на esp8266 с библиотекой uGFX

Reading time10 min
Views56K

В многих проектах для esp8266 я использую TFT экран с тачскрином. В зависимости, от проекта интерфейс может быть простым, например, текстовая консоль, выводящая лог работы приложения или просто график изменения входного сигнала. А в некоторых — сложный GUI, с несколькими экранами, графическими кнопками, строками ввода текста и даже виртуальной клавиатурой.


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


Видео-тизер:



Итак, приступим

Total votes 47: ↑46 and ↓1+45
Comments8

Пишем собственный миниатюрный Redis-сервер на Python

Reading time9 min
Views10K

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

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments0

Подготовка к программированию ESP8266 на micropython

Reading time3 min
Views52K
Micropython — это реализация Python 3, написанная на C, которая оптимизирована для микроконтроллеров. Nodemcu v1.0 — самая удобная плата с микроконтроллером ESP8266 и поддержкой Wi-Fi. Комбинация её и micropython — это мощность, скорость и простота написания. Поскольку это мой первый опыт работы с micropython (и с МК в принципе), я столкнулся с рядом нюансов, способами решения которых я и хочу поделиться с читателем. Примеры будут для MacOS, однако они легко адаптируются под Linux и Windows.
image

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments6

Использование SVG в качестве Placeholder’a

Reading time7 min
Views38K
image

Генерация SVG из изображений может использоваться для Placeholder’ов.

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

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

В этом посте мы рассмотрим следующие темы:

  • Обзор различных типов Placeholder’ов
  • Placeholder на основе SVG (контуры, фигуры и силуэты)
  • Автоматизация процесса.

Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments53

Swift Generics: cтили для UIView и не только #2

Reading time5 min
Views7.1K

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


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


Напомню, что основным элементом представленного способа задания стилей является обобщенное замыкание:


typealias Decoration<T> = (T) -> Void

Использовать данное замыкание для придания свойств UIView можно следующим образом:

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Перевод двух статей: «О том, как коммитить измнения в Docker образ» и «Руководство по перемещению Docker контейнеров»

Reading time5 min
Views27K
(Примечание переводчика: для запуска Docker из-под текущего пользователя необходимы команды:
sudo usermod -aG docker $(whoami)
sudo usermod -aG docker your_current_username
)

О том, как коммитить изменения в Docker образ


Джек Уаллен, 27 апреля 2017

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

image
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments8

Умные дома без электроники, кинетическая архитектура и живые здания

Reading time8 min
Views31K

image


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


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


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

Total votes 36: ↑33 and ↓3+30
Comments23

Information

Rating
Does not participate
Registered
Activity