13 заметок с тегом мобильная разработка

Ctrl + ↑ Позднее

Innovation comes from trial and error. Scientific breakthroughs are often a result of countless experiments. The successful inventions are born out of countless attempts — just like the Edison light bulb.

It looks like the same principle can be applied to digital products. Luckily, in software we have a true luxury of being able to run experiments in production and learn from them without a huge cost overhead. Compare it with the construction business where a building can be built only once, then possibly tweaked just a little, and all the learnings can be applied only in the next project. However, in startups and small companies the experiments are surprisingly not that common — while in some large companies the whole established product can be an automated A/B-test machine. Let me share some points which should be kept in mind while doing experiments to ensure a successful outcome. I hope that even if you are not doing experiments now, you will see why they can be useful for you, and what to pay attention to.

1. Have a clear hypothesis

This is the most important tip. Don’t even start unless you have a clear understanding of what the proposed change should bring, and ideally what the action plan should be after the experiment concludes.

Good example:

If we reduce the amount of steps in the onboarding flow, more people will finish it and start using our service. If this turns out to be true, we will roll out the shorter flow.

Bad example:

If we redirect some of our app users to our website, more people will use our service.

Why bad: not really clear if more usage comes from the redirect itself — maybe it’s people who have to continue a critical task on web + there is no clear action plan — should we wind down the web version, should we prioritize the app, should we redirect on certain pages, etc.

2. Adjust for the stage of the product

If your product is rather established, you can run smaller experiments where each of them can move certain metrics. Then you iterate and gradually improve the whole thing. There is almost certainly no point in making drastic changes that can bring a lot of chaos in individual metrics.

If your product is still looking for product market fit, then basically every change can be big enough to steer the whole thing in a new direction, especially if there are not too many users. That means many decisions should be rather driven by your product vision and intuition, although you should still make informed decisions and measure the outcomes. And again, see the first point above — always have a clear hypothesis and an action plan.

3. Running a controlled experiment is better than not running it at all

Often some people on the team can be skeptical about some proposed changes, for example, having a new payment method can bring a lot of new purchases, however, this can be not enough to justify the flat fee that you’d need to pay for the integration. Running an experiment on a small number of users and proving it in a real life scenario is much more valuable than doing such projections, especially if the internal conversation seems to be stuck, and there is no clear path forward. If the implementation cost is not massive, probably the best move here is to get a buy-in from leadership and be clear about the hypothesis and the action plan depending on the outcome.

4. Have the right set up and tools

Always make sure that:

  • Test and control groups have consistent experience — i.e. a user from the test group will always have the test experience during the lifetime of the experiment.
  • Results are statistically significant — you can use some online tools to verify you get a proper result, not just random noise. Also keep in mind that the bigger the metric move you expect, the fewer participants you need to prove it — and vice versa.
  • Metrics are correctly calculated — meaning that you can reliably measure the outcome for the test vs control groups.

5. Be aware of other experiments that can affect your experiment results

Some experiments can be affected by external events — such as seasonality, or an operating system update, etc. Other experiments can lead to a different outcome because of other tests being run simultaneously. Try to avoid this by making the experiments either smaller or isolated from each other.


You introduce a new login screen, and also introduce Sign In with Google button.

Probably the best way here is to split into 4 independent groups (two-by-two: old/new login screen and with/without the Google button), and analyze accordingly.

6. Even negative results are a good learning

Sometimes people are afraid that their experiments can lead to worse results. I’d say this is still a positive learning because if the experiment was run in a controlled environment with a clear hypothesis, you don’t affect real users much, and most importantly now you know that some of your ideas won’t work out, and you can safely put it away until better times. Just treat it as a lucky scenario vs doing the same change because someone strongly believed in it and didn’t even run an experiment.

If all these points are taken care of, then hopefully the experiments should provide useful learnings to make your product better. Please share any interesting experiments you’ve run and what eye-opening insights they’ve brought.

Recently I’ve started writing more frequently about software engineering and mobile development in particular — mainly in English language — just to capture some thoughts that I find important, and some of them would hopefully be useful to other people too.
* * *
В последнее время я начал писать чаще об IT в целом и мобильной разработке в частности — в основном на английском языке — чтобы поделиться некоторыми мыслями, которые важны и интересны мне. Я надеюсь, что они будут также полезны и другим людям.

мобильная разработка   программирование   разработка   эксперименты
28 апреля 2018, 13:32

Обновление Прибывалки

Самарчане, встречайте большое обновление Прибывалки для iOS! Если вдруг кто-то не в курсе, Прибывалка показывает время прибытия самарского транспорта.

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

  • Появилась функция построения маршрута. Можно выбрать две произвольные точки из остановок, популярных мест, адресов или текущего местоположения.
  • Заработали оповещения о важных событиях на дорогах города. Если вдруг кто-то задумает перекопать Московское шоссе, мы сообщим.
  • Добавились новые виды транспорта. Прибывалка теперь поддерживает метро, электрички и речной транспорт, но пока прогнозы от них нестабильны. Будем делать всё возможное, чтобы это исправить.

И, как обычно, куча важных штук:

  • локализация на английский;
  • местные новости;
  • пешеходная навигация к остановке;
  • фидбек прямо из приложения;
  • виджет;
  • новомодные вещи типа 3D Touch, Spotlight Search или haptic-фидбек;
  • открытие остановки по QR-коду;
  • масса микроулучшений в поиске.

Красоту вроде не испортили:

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

Качайте, хвалите и критикуйте:

Скачать в App Store

И расскажите друзьям:

ios   мобильная разработка   прибывалка

и как его исправить

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

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

Но есть один косяк — из коробки часы поддерживают лишь небольшой набор тренировок:

  • ходьба,
  • бег,
  • велосипед,
  • плавание,
  • эллиптический тренажёр,
  • гребля,
  • степпер,
  • «остальное» (Other).

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

  • теннис,
  • баскетбол,
  • традиционная силовая,
  • функциональная,
  • кросс-фит.

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

В АппСторе оказалось много приложений для разных видов спорта, и это натолкнуло меня на мысль порыться в документации HealthKit — фрэймворка для работы с тренировками и данными о здоровье. Оказалось, что в SDK доступен трекинг 70 (!) видов спорта.

Правда, почти все эти приложения какие-то кривоватые

В итоге я решил написать минималистичное watchOS-приложение, в котором были бы только нужные мне тренировки с возможностью легко добавить любую другую. Приложение получило кодовое имя «Just Do It», потому что там нет даже целей (мне и не нужно). Есть только выбор спорта и вывод основных показателей в процессе тренировки — время, калории, текущий и максимальный пульс.

Ну и главное — я хотел научиться писать приложения для часов. В итоге получилось вот что:

В комплекте идёт iOS-приложение, через которое можно стартануть тренировку на часах.

Исходный код лежит на Гитхабе.

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

Занимайтесь спортом! :-)

apple   apple watch   devstory   ios   iphone   swift   watchos   мобильная разработка   программирование   спорт
15 октября 2015, 20:32

Новая Прибывалка для Самары

Самарчане, встречайте новую Прибывалку для iOS! Прибывалка показывает время прибытия автобусов, трамваев и троллейбусов в Самаре.

Несколько лет назад ребята из Самара-Информспутника запустили сервисы информирования о самарском транспорте. Одним из таких сервисов стала Прибывалка. Самое клёвое в их сервере — то, что оценивается реальная ситуация на дорогах: положение транспорта, скорость потока, пробки и аварии. Поэтому получаются точные прогнозы.

Я транспортом пользуюсь редко, но осенью 2013 года мне пришлось один день передвигаться без машины. Я стоял на остановке, а нужного трамвая всё не было, и я вспомнил, что существует Прибывалка для айфонов. Решил скачать и потестить. Помню, что тогда меня поразили две вещи: какой же полезный это сервис и как же неудобно всё сделано. Усугублялось всё тем, что приложение было написано на Adobe AIR — кроссплатформенном движке, который добавляет тормозов и не способствует хорошему дизайну приложений. Прогноз сбылся, я сел в свой трамвай и твитнул о том, что неплохо бы разработчикам поработать над дизайном. Сработала магия Твиттера — твит увидел Александр Сергеев и предложил сделать свою версию:

Идея засела в голове. Александр дал доступ к API, а я написал простенький сервис получения прогнозов. Я долго пытался понять, как именно сделать приложение удобнее, и нарисовал пару экранов, но дальше дело не продвинулось. В конце 2014 я рассказал Жене Демьяненко, что хотел бы сделать такое приложение, и через пару дней он прислал первые мокапы. «А чё, так можно было?» — подумал сразу я, потому что на них удачно решалась главная проблема старой Прибывалки — необходимость пробираться через несколько экранов, чтоб увидеть прогноз. И мы начали вместе работать в свободное время над новой версией. Весной я понял, что одному с кодом справляться тяжело — и в самый подходящий момент на помощь пришёл Вася Скарлухин. А потом Лёша Кузнецов сделал промостраничку.

Новая Прибывалка делает всё то же, что и старая, но гораздо лучше:

  • Показывает прогнозы прибытия транспорта. Прогнозы для ближайших остановок моментально выводятся на главный экран.
  • Помогает найти остановки поблизости. Компас, расстояние и карта подсказывают, где находится остановка и сколько до неё идти.
  • Знает ситуацию на всех остановках города. Находит любую из 1437 остановок Самары по названию или улице.

А ещё она красивая:

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

Не стесняйтесь — присылайте отзывы и предложения нам на почту. Качайте и ставьте звёздочки:

Скачать в App Store

И рассказывайте о Прибывалке друзьям:

app store   apple   ios   iphone   мобильная разработка   прибывалка
Ctrl + ↓ Ранее