Search
Write a publication
Pull to refresh
32
0
Александр Салтыков @john_samilin

Пользователь

Send message

PWA, «Зловещая долина» и стабильная работа в офлайне

Reading time9 min
Views9.2K
В июле прошлого года на Altitude 2016 Алекс Рассел (Alex Russell) из Fastly рассказал, как он видит будущее мобильных приложений с учетом PWA и service worker, как обеспечить надежную работу приложения в офлайне и как обойти «зловещую долину» в мобильном интерфейсе.

Сейчас service worker — это программируемое прокси внутри браузера


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

Такая закономерность проиллюстрирована на рисунке 1. Хорошо видно, что с увеличением времени загрузки веб-страницы:

1) сильно падает количество обращений к странице;
2) постоянно растет процент отказов.


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

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

Упрощаем универсальное/изоморфное приложение на React + Router + Redux + Express

Reading time8 min
Views19K

На Хабре уже было предостаточно статей про то, как делать универсальное (изоморфное) приложение на стеке React + Redux + Router + Koa/Express (Google в помощь), однако я заметил, что все они содержат повторяющийся код для серверного рендеринга. Я решил упростить задачу и выделить этот общий код в библиотеку, так и появился на свет Create React Server, работает примерно так:


import Express from "express";
import config from "./webpack.config";
import createRouter from "./src/createRouter";
import createStore from "./src/createStore";
import {createExpressServer} from "create-react-server";

createExpressServer({
  createRouter: (history) => (createRouter(history)),
  createStore: ({req, res}) => (createStore()),
  port: 3000
}));

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

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

Facebook Audience Network — новое слово в монетизации сайтов и приложений

Reading time4 min
Views16K
В монетизации своих ресурсов владельцы активно используют партнерские рекламные системы. Традиционно в лидерах Google Adsense, AdMob и Рекламная Сеть Яндекса (РСЯ). В последнее время модернизировалась и проявляет активность рекламная система фейсбука — Facebook Audience Network (FAN). Поэтому и пишу о ее новизне, хотя появилась эта сеть несколько лет назад. Она имеет ряд уникальных особенностей, рассмотрим их подробно.



Концепция


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

Функциональное программирование для всех

Reading time33 min
Views354K

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →

Нейронные сети на JS. Создавая сеть с нуля

Reading time8 min
Views92K

КПДВ про нейронные сети


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


Но врожденные любознательность и энтузиазм довели меня до того, что я стал одним из разработчиков Synaptic — проекта фреймворка для построения нейронных сетей на JS с 3к+ звезд на GitHub. Сейчас мы с автором фреймворка занимаемся созданием Synaptic 2.0 с ускорением на GPU и WebWorker-ах и с поддержкой почти всех основных фич любого приличного NN-фреймворка.


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

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

Краткое руководство как стать Google Certified Associate Android Developer

Reading time7 min
Views31K
image В данной статье я вкратце опишу процесс получения сертификата начинающего андроид разработчика. Разработкой под андроид я занимаюсь уже более 4-х лет, но до настоящего момента так и не удосужился обзавестись никаким соответствующим сертификатом, хотя парочкой сертификатов по Java я обзавелся. А сложилось так по одной простой причине — сертификаты андроид разработчиков выдавали какие угодно компании, кроме собственно компании разработчика этого самого Android. Вышеупомянутые Java сертификаты были выданы компанией Oracle, что делает их наличие хоть немного осмысленными.

И вот наконец свершилось — Google открыла свою программу сертификации андроид разработчиков. Но и тут не обошлось без ложки дегтя — пока доступен только сертификат начинающего андроид разработчика. Мне он в общем-то без надобности, но любопытство и тяга к коллекционированию подтолкнули меня к его получению. Полезность получения сертификатов как таковая является отличной темой для холивара. Я немного затрону этот вопрос в конце статьи, а пока перейду к описанию процесса.
Читать дальше →

Построение Android приложений шаг за шагом, часть вторая

Reading time11 min
Views56K


В первой части статьи мы разработали приложение для работы с github, состоящее из двух экранов, разделенное по слоям с применением паттерна MVP. Мы использовали RxJava для упрощения взаимодействия с сервером и две модели данных для разных слоев. Во второй части мы внедрим Dagger 2, напишем unit тесты, посмотрим на MockWebServer, JaCoCo и Robolectric.
Читать дальше →

Итоги Rambler.Android #4

Reading time2 min
Views5.7K
image

Совсем недавно, 26 октября, мы провели открытый митап Rambler.Android #4. Это наш первый Android-митап после долгого перерыва. И мы с уверенностью можем заявить, что возвращение состоялось.
Читать дальше →

Как получить новые установки для игры? Попробуйте мета-игры

Reading time3 min
Views6.2K
Чем быстрее растет игровая индустрия, тем большее значение в создании игр приобретают геймплей, UX, вопросы маркетинга и монетизации. Комплексная маркетинговая стратегия сегодня не может не учитывать показатели удержания. Это связано как с растущей стоимостью привлечения новых пользователей, так и с жесткой конкуренцией на игровом рынке. Вместе с компанией KamaGames мы изучили эффективность разных рекламных стратегий для повышения удержания игрока.
Читать дальше →

Некоторые тонкости использования Service Workers

Reading time7 min
Views27K


Предисловие


Сервис-воркеры (Service Workers, да простят меня читатели) сегодня являются полезным дополнением к основной функциональности сайта: тут и работа в оффлайне, и фоновая синхронизация данных, и модные пуш-уведомления.

Однако большое количество статей про сервис-воркеры выглядят достаточно сжато и описывают простые примеры. Я попробую обратить внимание на некоторые особенности работы сервис-воркеров, так что требуются какие-то базовые знания. Отправной точкой может быть эта статья (перевод) или чуть более подробная статья.
Читать дальше →

Cicerone — простая навигация в Андроид приложении

Reading time8 min
Views89K


На этой схеме не скелет древнего обитателя водных глубин и не схема метро какого-то мегаполиса, это карта переходов по экранам вполне реального Андроид приложения! Но, несмотря на сложность, нам удалось её удачно реализовать, а решение оформить в виде небольшой библиотеки, о которой и пойдет речь в статье.


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

TechnoLive: Как создать успешную мобильную игру, Иван Федянин

Reading time29 min
Views9.2K
image

Привет, Geektimes! Продолжаем публиковать расшифровки наших трансляций о разработке игр. Сегодня вас ждет рассказ Ивана Федянина, руководителя студии Fast Forward, про выбор жанра и ниши при создании мобильной игры.

Кстати, уже сегодня в 19:00 стартует следующая трансляция. Участники: Александр Паньков, креативный директор в студии Allods Team, и Александр Мишулин, креативный директор проекта Игры Mail.Ru. Узнаем о том, что игрового баланса в привычном смысле не существует!

Как превратить смартфон в микрофон (идеи и вопросы)

Reading time4 min
Views64K
Всем привет. Я бы хотел поговорить о том как можно превратить смартфон в микрофон для компьютера. У меня есть несколько идей, некоторые из которых я уже пробовал применять.


Зачем это нужно?


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

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

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

Реалии работы геймдизайнером в большой студии на примере BioWare

Reading time5 min
Views15K
Сегодня в блоге программы «Менеджмент игровых интернет-проектов» мы начинаем новую рубрику переводов статей по геймдизайну от иностранных экспертов. И первая статья, с которой мы хотим вас познакомить, написана по лекции директора по геймдизайну Bioware Джеймса Олена, на тему «Реалии работы гейм-дизайнером в большой студии на примере BioWare».


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

Как набить кучу шишек и выпустить игру

Reading time9 min
Views19K
Все началось в далеком 2013 году. Тогда игрушек на Android было хоть и много, но всяко меньше чем сейчас. И выпустив свою игру на тогда еще Android Market, можно было получить какую-никакую, а денежку. А поскольку мне нравится делать игры, сомнений не было — выпускаем игру. Мы — это маленькая команда из программиста, художника и тестировщика\генератора идей. Забегая наперед — шишек и граблей мы собрали предостаточно. В основном будет обзор технических моментов, поэтому статья будет полезна всем, кто как-либо связан с разработкой игр. Не повторяйте наших ошибок.
Читать дальше →

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

Reading time3 min
Views14K
image

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

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

Полный гид по нативной рекламе в мобильном приложении

Reading time5 min
Views16K

Нативная реклама сегодня – один из самых многообещающих форматов для разработчиков мобильных приложений. По прогнозам eMarketer, бюджеты на него в 2017 году вырастут на 25%. Этот формат уже предлагают все крупнейшие рекламные сети: Applovin, Avocarrot, Facebook, Flurry, myTarget, Pubnative, InnerActive, StartApp, Mopub и другие. А это значит, что разработчикам уже сейчас стоит задуматься, как использовать нативную рекламу в своих проектах.
Читать дальше →

Лёгкая интеграция tor в android приложение на примере клиента для рутрекера

Reading time7 min
Views20K
Мне давно было интересно, можно ли легко добавить проксирование через тор в Android приложение. Вроде бы довольно очевидная задача, плюс тор браузеры уже под эту платформу давно есть… Но есть много задач, которые сложнее, чем кажутся. Для нетерпеливых сразу скажу — да, можно, и получается довольно легко, быстро и классно. В особенности если не копать с нуля, а воспользоваться моими наработками.

Для примера я буду использовать приложение для работы с рутрекером — никто не любит код, который работает со сферический конём в вакууме. Раньше это приложение обходило блокировку при помощи Google Compression Proxy — но увы — то ли рутрекер, то ли гугл выпилил возможность авторизации с этой проксёй. Сразу скажу, что, конечно, есть всякие впны и прочее, что вы используете для лёгкого обхода блокировки и просмотра сериальчиков. Но речь здесь идёт не про это. Как вы понимаете, тор можно использовать в мобильном приложении для огромного количества вещей — например, для доступа к веб сайтам в .onion или для реализации особо безопасного мессенджера.
Читать дальше →

Как мы придумали и сделали свою первую игру на Android. Часть 1: Механика игры

Reading time5 min
Views26K
Всем привет! Мы два новоиспеченных разработчика мобильных игр, бывшие одноклассники, выпускники Казанского федерального университета, Айдар и Эд.

Айдар: «История нашей игры «Syncomania» началась с того, что мне приснился странный сон. Он представлял собой компьютерную игру, где на квадратном поле синхронно передвигались четыре белых шарика. Когда первый из них вырвался за пределы игрового поля, я проснулся. Наутро я позвонил Эду, а уже в обед мы встретились во дворе университета, где я работал».

Эд: «Какой программист не мечтал сделать свою игру? Летом 2014-го у меня было много свободного времени, и я с радостью ухватился за эту идею. Тогда мы и представить себе не могли, с какими трудностями мы столкнемся».

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

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

Разница между восточными и западными играми жанра «три в ряд»

Reading time3 min
Views24K


Наша команда недавно готовила графику для канадского разработчика игр жанра "три в ряд". Несколько дней назад игра вышла. Я был так рад, что сразу поделился этой новостью со всеми близкими друзьями. Сам я живу в Китае.

Одна девушка сказала: «Но ведь персонажи совсем не милые». Тогда я попросил её оценить 天天爱消除, игру «три в ряд» от китайского разработчика Tencent.

«А эти персонажи милые?»

«Да, да!»

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

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

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead